rosbrige為沒有ROS的功能模塊提供了一個(gè)JSON的接口(JSON是一種websocket通訊的數(shù)據(jù)形式,非常簡(jiǎn)單除暴而不顧及內(nèi)存,其實(shí)我挺不喜歡)。有很多前端可以與Rosbridge 互動(dòng),包括websocket服務(wù)器。Rosbridge_suite是一個(gè)復(fù)合的功能包,包含了rosbridge,各種前端封裝包,和一個(gè)幫助包。
參考文獻(xiàn):ROS wiki
源碼:https://github.com/RobotWebTools/rosbridge_suite.git
1 關(guān)于
這里包括兩部分:協(xié)議和實(shí)現(xiàn)
1.1 Rosbridge協(xié)議
Rosbridge Protocol就是向ROS發(fā)送JSON命令的一個(gè)規(guī)范,使用這個(gè)協(xié)議訂閱一個(gè)主題的例子如下:
{ "op": "subscribe",
"topic": "/cmd_vel",
"type": "geometry_msgs/Twist"
}
這個(gè)規(guī)范不針對(duì)任何編程語言和傳輸方式,只要支持JSON即可。
1.2 實(shí)現(xiàn)
rosbridge_suite是一個(gè)集合,提供了一個(gè)微博創(chuàng)可貼傳輸層。
這個(gè)包包括:
- rosbridge_library 核心rosbridge包。rosbridge_library負(fù)責(zé)接受JSON命令并將指令發(fā)送給ROS,同樣,由ROS發(fā)送的指令會(huì)由其轉(zhuǎn)換為JSON字符串發(fā)出。
- rosapi 使某個(gè)ROS可執(zhí)行程序可以訪問為ROS client libraries準(zhǔn)備的服務(wù)。包括獲取和設(shè)置參數(shù),得到主題列表等。
- rosbridge_server 當(dāng) rosbridge_library提供JSON <-> ROS的轉(zhuǎn)換,它將傳輸層就提供給了其他程序。Rosbridge_server提供了一個(gè)websocket連接,所以瀏覽器就可以與rosbridge通信了。
2 源碼
源碼可以直接由github獲?。?a target="_blank" rel="nofollow">https://github.com/RobotWebTools/rosbridge_suite
3 安裝
Rosbridge可以直接debian安裝:
sudo apt-get install ros-<rosdistro>-rosbridge-server
4 教程
4.1 初級(jí)教程
這個(gè)教程的內(nèi)容是如何啟動(dòng)rosbridge server 并且和它通信。
4.1.1 安裝Rosbridge
安裝了ROS之后,就可以安裝Rosbridge,指令如下:
sudo apt-get install ros-<rosdistro>-rosbridge-suite
4.1.2 運(yùn)行Rosbridge
安裝完ROS和Rosbridge以后,首先需要讓系統(tǒng)知道他們的存在,就是配置一下環(huán)境變量:
source /opt/ros/kinetic/setup.bash
接下來就可以啟動(dòng)Rosbridge了,啟動(dòng)rosbridge和它的包,比如osbridge_server 和 rosapi,安裝的時(shí)候安裝了一個(gè)啟動(dòng)文件,用法如下:
roslaunch rosbridge_server rosbridge_websocket.launch
運(yùn)行該文件,就會(huì)啟動(dòng)rosbridge并且創(chuàng)建了一個(gè)websocket,默認(rèn)監(jiān)聽9090端口。
我們可以通過修改 ~/port 參數(shù)監(jiān)聽其他的端口,示例如下:
<launch>
<include file="$(find rosbridge_server)/launch/rosbridge_websocket.launch" >
<arg name="port" value="8080"/>
</include>
</launch>
4.1.3 與Rosbridge通信
可以找一個(gè)簡(jiǎn)單的websocket客戶端在線測(cè)試網(wǎng)頁,連接它測(cè)試一下。
4.2 進(jìn)階教程
這里要介紹的是如何在rosbridge上開發(fā)。
4.2.1 編譯Rosbridge
Rosbridge 2.0支持像Catkin一樣管理編譯。
- 1安裝rosbridge依賴rosauth
sudo apt-get install ros-kinetic-rosauth
其實(shí)前面已經(jīng)安裝過了
- 2 source一下
source /opt/ros/kinetic/setup.bash
- 3 創(chuàng)建一個(gè)工作空間
mkdir ~/ws
- 4 clone rosbridge suite 資源
mkdir ~/ws/src
cd ~/ws/src
git clone https://github.com/RobotWebTools/rosbridge_suite.git
- 5 編譯rosbridge
cd ~/ws
catkin_make
- 6 安裝
把新編譯的rosbridge安裝到ROS路徑
cd ~/ws
source devel/setup.bash
后面可以參照教程4.1運(yùn)行了。