大學四年很快就要過去了,這個學期我要做畢業設計,題目是基於twincat的機械人運動控制系統的設計。說實話,我校的機械設計製造及其自動化專業雖然在國內名列前茅,但對於本科階段的教育過於注重設計與製造,而對於其自動化的部分則有明顯輕視(也可能是因為我們沒有立足自動化的課程設計吧,反正各種課設使我具備了紮實的機械設計製造基本功)。總之,對我來說基本是從零開始學習twincat及其上位機的搭建,我在csdn上找到了一些在此方面有經驗的前輩,他們為我提供了不少解決方案。機械人運動控制系統的搭建在國內剛剛起步,在此特指協作機械人,機械人及數控一直以來都是我國的弱勢領域,協作機械人的市場基本被abb、kuka和keba等公司瓜分,所以我認為在我之後仍然會有許多人在這個領域不斷探索,我將把我的學習過程在部落格裡詳細寫出,希望能夠對大家有所幫助。
本課題的要求是搭建乙個基於twincat的運動控制系統,其需要具有人機介面,從而便於供客戶控制協作機械人。
twincat 3:對於win10及win7 64位版本,是無法安裝普通版本的tc2的,雖然倍福有64位版本的tc2推出,但它並不支援執行,只能作為編輯器使用。所以在此我選擇了tc3來搭建運動控制系統。
c#及vs2013:c#作為一種在c及c++基礎上發展了的語言,其在圖形介面的製作方面具有得天獨厚的優勢,所以我計畫使用c#來搭建上位機。當然,labview也是乙個不錯的選擇。
本課題的完成需要解決以下幾個問題:
首先要在安裝好tc3之後能夠控制伺服電機,現階段我手頭並沒有伺服電機可使用,而且為了實現控制的實時性,必須要通過英特爾的網絡卡來製作ethercat網口,不幸的是目前大部分市售的膝上型電腦安裝的並不是英特爾的網絡卡,所以這部分的內容我將在上機除錯的階段再完成。
對於協作機械人,最基本的功能就是插補功能,包括直線插補和圓弧插補,這兩個功能的實現決定了其他所有運動的實現。我們知道,tc3中其實包括乙個運動控制模組,,即nc模組,通過這個模組我們可以輕鬆實現機械人的插補功能。但對於本課題,這項功能並不適用,因為本協作機械人需要實現乙個特殊功能:機械人可在插補運動過程中被外力推離既定路線,插補中斷,在外力消失後機械人可自動回到既定路線繼續插補運動。在tc3的nc模組執行時,機械人是無法被推動的,所以我們必須繞過nc模組,通過plc生成脈衝訊號來直接控制電機。由於tc的所有功能的實現都是由功能塊疊加組合來實現的,所以我們需要先找到nc模組中控制訊號生成的那個功能塊。
在我之前已經有研究生做過人機介面,但我此次要做的人機介面與其說是控制器不如使用編譯器更加合適,最後要實現的功能包括在我的程式中執行其他人的運動控制演算法,包括視覺識別,手勢示教等,所以將其他語言編譯為iec61131-3也是我面臨的乙個問題,對此我偶然知道了roslyn這個微軟的.net平台的開源編譯器,不知道它能不能幫助我解決這個問題。
在上位機和twincat之間通訊也是乙個問題,不過由於學長之前做過這個專案,所以據說只需要在工程中引用tcads.dll和另乙個批處理檔案即可實現變數通訊。
ruby學習隨筆1
函式的括號可有可無,如puts x 或puts x 為避免使用歧義,最好使用括號 在不影響函式使用的情況下可以去掉括號。語句末尾的分號可有可無,一行語句有多個語句時要用分號隔開。只有nil和false是假,其他都是真。puts直接輸出一行內容,包括回車換行 print輸出字串,但是不包含回車換行 p...
lua學習隨筆 1
最近在用lua寫遊戲,用的是quick cocos2dx,研究了一下它的機制,或者說是tolua 的機制吧,怕以後忘了,寫在這兒做下記錄。首先,lua最強大的型別就是table,它可以儲存任何變數,number boolean string,甚至可以儲存table。table是乙個hash表,也就是...
機器學習隨筆1
1.dropout技術 在訓練深度學習網路的過程中,按照一定概率將一部分神經網路單元丟棄掉,即從原始的網路中找出乙個更瘦的網路。2.機器學習主流的學習演算法分為無監督學習和監督學習。3.監督學習下的回歸問題主要 連續值得輸出,而分類問題 離散值的輸出。4.m 訓練樣本的數量 x 輸入變數 特徵 y ...