對于ROS而言,其最常用的就是Topic話題以及Service兩個了。之前我們在了解Unity Robotics Hub時候就了解到基本的Unity和ROS的通訊,下面我們來詳細介紹一下Unity與ROS的話題與服務(wù)。
ROS和Unity之間的通信是通過Unity的“ROS-TCP-Connector”軟件包和ROS的“ROS-TCP-Endpoint”軟件包進行通信的。
1. Unity與ROS鏈接
ROS方面的準備步驟如下,首先添加端口號“10000”“5005”,啟動Docker鏡像。
Unity和ROS之間的通信需要端口號“10000”“5005”。為了在Unity中導(dǎo)入消息文件,也進行文件夾的安裝。
docker run -p 6080:80 -p 10000:10000 -p 5005:5005 --shm-size=1024m tiryoh/ros-desktop-vnc:melodic
安裝“ROS-TCP-Endpoint”軟件包,用于ROS程序與Unity通信
cd ~/catkin_ws/src
git clone https://github.com/Unity-Technologies/ROS-TCP-Endpoint
cd ..
catkin build
source ~/catkin_ws/devel/setup.bash
然后就是Unity端準備步驟如下,首先就是安裝ROS-TCP-Connector。這需要確保Unity的版本在2020.2以上。然后在在Unity菜單“Window→Package Manager”中打開“Package Manager”,“+→Add Package from git URL….”中輸入以下URL,按下“Add”按鈕,然后我們就會看到ROS-TCP-Connector插件安裝成功

然后在Unity中完成對ROS的設(shè)置,首先選擇Unity菜單“Robotics→ROS Settings”

確認以下的設(shè)定是否正確
?Connect on Startup : True
?Protocol : ROS1
?ROS IP Address : 127.0.0.1
?ROS Port : 10000
?Show HUD : True
?KeepAlive time (secs):在指定秒數(shù)以上沒有發(fā)送其他消息的情況下,頻繁測試連接。這個時間越長,ROSConnection認識到Topic停止響應(yīng)所花費的時間就越長。
?Network timeout (secs):消息發(fā)送超過指定秒數(shù)時,視為連接失敗。這個時間越長,ROSConnection認識到Topic停止了響應(yīng)所花費的時間就越長。
?Sleep time (secs):在確認新消息之前,睡眠的秒數(shù)。如果減少這個時間,響應(yīng)會變快,但是會消耗更多的CPU。
-
通信
+關(guān)注
關(guān)注
18文章
6273瀏覽量
139334 -
ROS
+關(guān)注
關(guān)注
1文章
290瀏覽量
18356 -
Unity
+關(guān)注
關(guān)注
1文章
131瀏覽量
23062
發(fā)布評論請先 登錄
EtherCAT運動控制器在ROS上的應(yīng)用開發(fā)案例(下)
Unity開發(fā)者Arm指南-特效圖形技術(shù)介紹
ROS的含義與機器人操作系統(tǒng)ROS的介紹
unity開發(fā)的數(shù)字游戲可在unity里打開應(yīng)用程序免費下載
ROS基本介紹
ROS/ROS 2 介紹
ROS部署PaddlePaddle的CV模型
如何將消息導(dǎo)入Unity
Unity與ROS的Service話題介紹
ROS核心框架介紹
ROS通信接口機制介紹

Unity與ROS鏈接介紹
評論