ROS進(jìn)階學(xué)習(xí)(七) - rosbrige_suite

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)行了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • PART I 1.rosbridge介紹rosbridge(rosbridge_suite)是ros官方為開發(fā)者提...
    marine0131閱讀 10,121評(píng)論 0 2
  • 創(chuàng)建一個(gè)ROS Package 這個(gè)教程包括使用roscreate-pkg或者catkin去創(chuàng)建一個(gè)新的packa...
    鐵熊玩創(chuàng)客閱讀 5,193評(píng)論 0 7
  • 大家好,關(guān)于機(jī)器人操作系統(tǒng)ROS的安裝,很多文章都寫的非常詳細(xì),我也在這些材料的幫助下,在VMware上安裝了Ub...
    keepStriving閱讀 7,668評(píng)論 2 8
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,761評(píng)論 25 709
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,506評(píng)論 19 139

友情鏈接更多精彩內(nèi)容