承接上篇,上篇講到,SLAMWARE ROS SDK的發布,既可以讓用戶在機器人開發中實現使用SLAMWARE提供的建圖、定位和導航功能,又能保留原先基于ROS開發的應用邏輯,一舉兩得。
今天,小嵐就來踐行上篇的承諾,帶大家體驗一下如何利用SLAMWARE ROS SDK進行業務開發。
我們先從機器人的移動開始說起。
一、鍵盤控制 (前后左右移動)
還記得ROS中最經典的turtlesim(http://wiki.ros.org/turtlesim/)嗎?案例中啟動turtle_teleop_key節點就可以通過鍵盤方向鍵控制小海龜移動了。
但是,用戶拿到我們基于SLAMWARE的機器人或者建圖雷達產品,一開始在RViz中顯示的只是一張地圖信息,想要用鍵盤控制機器人移動方向,發現并不奏效?
這時候,參閱SLAMWARE ROS SDK開發文檔可以發現, slamware_ros_sdk_server_node訂閱了【方向移動】的標準類型topic,也就是說,想要實現利用鍵盤控制“機器人”,我們只需編一個節點接收鍵盤信息,當收到鍵盤信息后往該topic發對應的指令消息即可。
相應的消息參數如下:
在利用sdk進行鍵盤控制的時候,開發的主要重點有以下幾個,小嵐已經幫大家羅列好了:
1、定義鍵盤按鈕
2、定義pub,制定消息topic及消息類型
3、初始化節點
這些都操作完成之后,當按下的按鍵在之前定義的案件keys中時,將對應的值賦給linearX,angularZ。
4、根據topic所需類型組裝發布消息
至此,利用鍵盤控制機器人的部署已經完成,完成這一步的小伙伴可以分別啟動slamware_ros_sdk_server_node與teleop_twist_keyboard節點試一下【前后左右】移動 。
下面,我們進一步深入了解導航定位這個問題。大家都知道,思嵐有一款可擴展的機器人管理與開發軟件 —— RoboStudio,里面集成了機器人運動及控制開發各項功能,可以對移動機器人發送指令,實現對機器人的可視化監控。
那,如何讓ROS實現Robostudio同樣的功能呢?
二、導航定位
1、導航定位
SLAMWARE ROS SDK的發布,使得所有基于SLAMWARE的機器人的定位和地圖信息都可以在RViz中顯示。有了地圖之后,我們可以點擊任意位置,機器人會自動規劃一條最佳路線移動到目的地。
2、虛擬墻/虛擬軌道
對于思嵐來說,除了自主定位導航技術之外,還有一大特點功能就是基于純軟件設置的虛擬墻/虛擬軌道,不需任何實物鋪設,靈活控制機器人活動范圍。這個在實際應用場景中有很大的意義。
下面,我們就開始上手實驗吧~
首先,先找到文檔中的【virtual_walls】這個topic,發布的消息類型是自定義類型,點擊可查看類型結構信息。
同樣的,小嵐給大家畫了一下重點:
(1)初始化節點、定義publisher與subscriber對象
(2)全局定義了一個Marker類型,lines用以存儲發布虛擬墻
(3)接收到slamware_ros_sdk_server_node節點發來的虛擬墻消息后,保存到lines中
(4)配置lines,如:類型、尺寸和顏色等
(5)將lines發布出去
部署完之后,我們分別啟動slamware_ros_sdk_server_node, view_slamware_ros_sdk_server_node和display_virtual_lines節點。
此時,在RViz中需要配置添加Marker信息,先找到在RViz中點擊左下角【Add】按鈕。
選擇添加【Marker】顯示對象。
添加完成之后,我們繼續在參考文檔中找到【add_ lines】這個topic,然后我們就可以自定義。點進去查看自定義類型的組成與描述:線段類型、添加位置、以及相關定義
啟動slamware_ros_sdk_server_node節點,連上機器人,然后在命令行中輸入:
rostopic pub /slamware_ros_sdk_server_node/add_line slamware_ros_sdk/AddLineRequest -1 -- '[0]' '[1, [0.0, 0.0], [1.0, 1.0]]'
此時,我們就可以在Rviz中看見虛擬墻了。
那要如何刪除呢?同理,我們找到clear_lines節點信息,在命令行輸入相應代碼即可:
rostopic pub /slamware_ros_sdk_server_node/clear_lines slamware_ros_sdk/ClearLinesRequest -1 '[0]'
虛擬軌道功能開發亦是如此。
……以上,僅為SLAMWARE ROS SDK中功能兩個簡單功能的演示。控制機器人運動狀態、轉向、旋轉角度、地圖同步、清空地圖等topic的靈活使用,將可以更好的對機器人進行監測與控制。
那么,你準備好去探索了嗎?
發布評論請先 登錄
相關推薦
【「具身智能機器人系統」閱讀體驗】2.具身智能機器人的基礎模塊
【「具身智能機器人系統」閱讀體驗】2.具身智能機器人大模型
《具身智能機器人系統》第1-6章閱讀心得之具身智能機器人系統背景知識與基礎模塊
ROSCon China 2024 | RDK第一本教材來了!地瓜機器人與古月居發布新書《ROS 2智能機器人開發實踐》
![ROSCon China 2024 | RDK第一本教材來了!地瓜<b class='flag-5'>機器人</b>與古月居發布新書《<b class='flag-5'>ROS</b> 2智能<b class='flag-5'>機器人</b><b class='flag-5'>開發</b>實踐》](https://file1.elecfans.com/web3/M00/01/CC/wKgZO2dYG-KAHW2XAAC8Z6fkJnk561.png)
ROSCon China 2024 | RDK第一本教材來了!地瓜機器人與古月居發布新書《ROS 2智能機器人開發實踐》
SLAM:機器人如何在未知地形環境中進行導航
精準定位,激光領航——激光跟蹤儀助力服務機器人性能提升
![精準<b class='flag-5'>定位</b>,激光領航——激光跟蹤儀助力服務<b class='flag-5'>機器人</b>性能提升](https://file.elecfans.com/web2/M00/1A/32/pYYBAGF5_TaAb9R9AAAQjV1DNDc980.jpg)
評論