加入星計劃,您可以享受以下權益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴散
  • 作品版權保護
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入

【2017貿(mào)澤大賽】二等獎作品:VR視角遠程牽引控制機械臂

2018/03/27
150
服務支持:
技術交流群

完成交易后在“購買成功”頁面掃碼入群,即可與技術大咖們分享疑惑和經(jīng)驗、收獲成長和認同、領取優(yōu)惠和紅包等。

虛擬商品不可退

當前內(nèi)容為數(shù)字版權作品,購買后不支持退換且無法轉(zhuǎn)移使用。

加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論
  • 方案介紹
  • 相關文件
  • 相關推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

VR第一視角遠程牽引控制機械臂項目概述:
項目方案:VR+動捕+機械臂。
項目完成情況:
把CC3220開發(fā)板TCP Server弄出來了,可以遠程控制機械臂了,最終還是沒有時間搭建HTTP Server,攝像頭共享就只能作罷了。
不采用傳統(tǒng)的輸入設備(如:鍵盤、鼠標、手柄等)來做控制,也不是簡單的讓機械臂和操作者的手臂同步。具體實現(xiàn)步驟如下。
1. 制作一個機械臂
某寶上直接買了一個幾十塊現(xiàn)成的,雖然很糙,但是足夠用了。
2. 安裝機械臂的第一視角
配合兩個舵機實現(xiàn)上下左右的轉(zhuǎn)動。
這里本來應該是用JPEG攝像頭連到CC3220開發(fā)板來做遠程的, 開發(fā)板上搭建HTTP Server最終還是沒搞定。
測試的時候用了一臺手機代替開發(fā)板(手機上倒是做了完整的測試界面,包括控制、攝像頭畫面、信息窗口)。
3. 機械臂的遠程控制及第一視角的遠程共享
這里先說說之前的測試方案:
機械臂和控制第一視角的舵機都用Arduino驅(qū)動,把Arduino和手機用OTG線連接。手機上搭建一個HTTP服務器,負責接收遠程指令和手機攝像頭畫面(作為機械臂的第一視角)的遠程共享。機械臂的控制指令通過手機USB發(fā)送給Arduino。
結合CC3220的方案:
攝像頭畫面共享沒實現(xiàn),沒有搞定開發(fā)板上的HTTP Server。在官方Demo里的“network_terminal”的基礎上修改的TCP Server,從Socket里面獲得控制指令,轉(zhuǎn)換成PWM信號控制機械臂的舵機。這次只控制機械臂的舵機,沒有遠程攝像頭舵機的控制。
4. 在3D開發(fā)環(huán)境下的開發(fā)
首先重構一個虛擬的機械臂,只要保證重要的機械結構一致就可以了,其它的細節(jié)不需要(參考下圖)。
然后為用戶構建一個虛擬的半透明屏幕,綁定在視角前方,用來顯示機械臂第一視角的畫面。(U

nity下面獲取遠程畫面不是很方變,這里沒有做視頻流,而是通過刷新的方式一幀一幀獲取攝像頭畫面,用base64Binary格式壓縮到HTTP服務器的響應中)
導入一個單手臂的模型,并握有配套的手柄模型。

因為要用到VR,這里選擇了Unity3D。遠程通信要實現(xiàn):

  • 讓操作者用頭部轉(zhuǎn)動去控制機械臂第一視角的轉(zhuǎn)動
  • 分析虛擬機械臂的運動從而計算出相應的控制指令來實現(xiàn)現(xiàn)實的機械臂和虛擬機械臂的同步。

結合CC3220的方案:
上面展示的是測試時候的方案,手機VR的SDK用的是Cardboard。結合CC3220開發(fā)板的時候,更換了Google Daydream的SDK,手柄也直接替換成了Daydream的手柄。沒有搞定遠程視頻共享,所以刪掉了虛擬的半透明屏幕,重新制作了虛擬工作環(huán)境:包括多視角觀察窗口(左測和上方兩個視角)、傳感器監(jiān)控(數(shù)據(jù)、模型)、舵機轉(zhuǎn)角計算結果的監(jiān)控、虛擬鍵盤(用于設置TCP Server的IP地址和端口)。Daydream下面不能像Cardboard一樣設計屏幕輸入界面,所以才設計了一個虛擬鍵盤。

5. 引入動捕設備
用三顆MPU6050實現(xiàn)手臂動捕,這樣在虛擬環(huán)境下就有了完全同步的虛擬手臂了。測試的時候用了一個自制的手柄不帶任何運動傳感器。
結合CC3220開發(fā)板做測試的時候,采用Daydream,可以用Daydream的遙控器代替自己做的手柄。雖然Daydream的遙控器是九軸的,但校準方面還是純主觀性的,說白了跟六軸的效果是一樣。在Daydream下面藍牙插件做的有點問題,不夠順暢。如果不壓縮數(shù)據(jù),會出現(xiàn)明顯的延時和卡頓,目前還是依靠犧牲傳感器計算結果的精度來解決。感興趣可以看看后面的一個演示視頻,遙控器可以不用死死捏在手上,可以變換握姿。操作上也更加豐富了。另外,Daydream的遙控器有觸摸板,配合觸摸板下的按鍵,可以實現(xiàn)多種操作的組合。
6. 控制流程
測試方案:
(動捕設備) (運動分析得到控制指令)
操作者的手臂 ------> 同步的虛擬手臂 ------> 牽引虛擬的機械臂 ------> 遠程讓機械臂同步

(頭部轉(zhuǎn)動分析得到控制指令)
操作者的頭部 ---------------------------------> 遠程讓機械臂同步

(遠程圖傳)
虛擬環(huán)境下的虛擬屏幕<-------------機械臂第一視角
CC3220方案:
(敲擊輸入)
虛擬鍵盤 -----------------> 設置TCP Server的IP和端口
(動捕設備) (運動分析得到控制指令)
操作者的手臂 ------> 同步的虛擬手臂 ------> 牽引虛擬的機械臂 ------> 遠程讓機械臂同步
項目開發(fā)環(huán)境:
硬件清單:
測試方案:

  • 機械臂 x 1(四個舵機)
  • 舵機 x 2(用于轉(zhuǎn)動手機)
  • Arduino x 1
  • 安卓手機 x 2
  • 動捕設備 x 1(IMU:MPU6050 x 3, MCU:MSP430F5259, BLE:CC2540)
  • 手柄 x 1

CC3220的方案:

  • 機械臂 x 1(四個舵機)
  • CC3220 x 1
  • 安卓手機 x 1(7.0以上系統(tǒng),Daydream Ready)
  • 動捕設備 x 1(IMU:MPU6050 x 3, MCU:MSP430F5259, BLE:CC2540)
  • Daydream手柄 x 1

3D開發(fā)環(huán)境:
測試方案:

  • Unity3D 5.4.2 + Cardboard SDK

CC3220的方案:

  • Unity3D 5.6.3 + Google VR SDK

CC3220開發(fā)環(huán)境:

  • CCS7.4 + simplelink_cc32xx_sdk_1_60_00_04

項目圖片:
測試方案:
機械臂

安裝了手機

手機測試軟件界面

動捕設備+控制手柄

動捕佩戴好后拍照

Unity3D開發(fā)環(huán)境界面截圖
VR畫面截圖

CC3220的方案:
機械臂:

動捕設備+Daydream手柄

動捕佩戴好后拍照

Unity3D開發(fā)環(huán)境界面截圖
VR界面截圖:

項目視頻:
用手機代替開發(fā)板測試的視頻:

動捕加Daydream演示視頻:

CC3220測試視頻:

  • VR第一視角遠程牽引控制機械臂.rar
    描述:兩套全部資料

相關推薦

電子產(chǎn)業(yè)圖譜