對于ROS而言,其最常用的就是Topic話題以及Service兩個了。之前我們在了解Unity Robotics Hub時候就了解到基本的Unity和ROS的通訊,下面我們來詳細介紹一下Unity與ROS的話題與服務。
ROS和Unity之間的通信是通過Unity的“ROS-TCP-Connector”軟件包和ROS的“ROS-TCP-Endpoint”軟件包進行通信的。
1. Unity與ROS鏈接
ROS方面的準備步驟如下,首先添加端口號“10000”“5005”,啟動Docker鏡像。
Unity和ROS之間的通信需要端口號“10000”“5005”。為了在Unity中導入消息文件,也進行文件夾的安裝。
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的設置,首先選擇Unity菜單“Robotics→ROS Settings”
確認以下的設定是否正確
?Connect on Startup : True
?Protocol : ROS1
?ROS IP Address : 127.0.0.1
?ROS Port : 10000
?Show HUD : True
?KeepAlive time (secs):在指定秒數以上沒有發送其他消息的情況下,頻繁測試連接。這個時間越長,ROSConnection認識到Topic停止響應所花費的時間就越長。
?Network timeout (secs):消息發送超過指定秒數時,視為連接失敗。這個時間越長,ROSConnection認識到Topic停止了響應所花費的時間就越長。
?Sleep time (secs):在確認新消息之前,睡眠的秒數。如果減少這個時間,響應會變快,但是會消耗更多的CPU。
-
通信
+關注
關注
18文章
6070瀏覽量
136423 -
ROS
+關注
關注
1文章
280瀏覽量
17095 -
Unity
+關注
關注
1文章
127瀏覽量
21877
發布評論請先 登錄
相關推薦
評論