基於ROS的自主導航小車Plantbot--SLAM
可以看到,運行該結點需要提供激光雷達坐標系(laser)到機器人基礎坐標系(base_link) 的轉換,這是因為激光雷達感知周圍物體的距離信息是以自身為坐標中心的,而機器人的移動、定位是以機器人基礎坐標係為參考坐標系的,因此有必要添加機器人基礎坐標繫到激光雷達坐標系的轉換。如圖是我選用激光雷達的坐標系規定:
如果使用官方驅動,就必須按照規定的坐標系布置激光雷達、配置坐標系。激光雷達坐標繫到基礎坐標系之間的轉換由運動平台確定,通常是靜態的。在Plantbot中,激光雷達架設在在第三層中心, 而基礎坐標系中心為第一層中心 ,兩坐標系的轉換隻需沿z軸平移兩板的間距。靜態坐標系轉換可以使用static_transform_publisher命令來定周期發布,也可以採用更通用的方法,即利用建立的URDF(Unified Robot Description)模型,調用joint_state_publisher和robot_state_publisher來完成,後一種方法在機械臂中尤為常見。
激光雷達採用了自帶的驅動包,運行結點rplidarNode,發布/scan主題。需要注意的是默認情況下串口沒有寫的許可權,因此運行結點之前先要修改串口許可權,也可以寫相應的規則文件。
一切配置好後運行hector_mapping,可以看到RVIZ中繪製的周圍地圖,此時ROS的工作狀態如下所示:
繼續運行底層框架中的相關結點或對應的啟動文件,然後通過鍵盤或app控制機器人移動,直到繪完整個環境地圖。下圖是繪製的室內環境地圖:
補充資料:RPLidar For ROS Based SLAM
---------------------------------------------------------------------------------------------------------------------
目錄:
基於ROS的自主導航小車Plantbot--底層驅動
基於ROS的自主導航小車Plantbot--SLAM
基於ROS的自主導航小車Plantbot--自主導航
推薦閱讀:
※ROS機器人操作系統相關書籍、資料和學習路徑
※ROS 2正式版來了,到底有哪些新變化?
※【ROS十周年快樂!】Science Robotics封面文章:ROS助力全世界機器人!
※基於ROS的自主導航小車Plantbot--底層驅動
TAG:机器人操作平台ROS | 机器人 | 同时定位和地图构建SLAM |