**簡介**
move_base包采用action機制,使移動底座到達給定的目標點。move_base這個節點連接全局規劃器和局部
規劃器,以便能夠完成全局導航任務。它能夠支持任何繼承自nav_core::BaseGlobalPlanner接口的
全局規劃器和任何繼承自nav_core::BaseLocalPlanner接口的局部規劃器。move_base維護兩個代價地圖
一個屬于全局規劃器,另一個屬于局部規劃器
**Action注冊的topic**
move_base/goal(move_base_msgs/MoveBaseActionGoal) #move_base所搜尋的目標
move_base/cancel(actionlib_msgs/GoalID) #請求取消目標點
**Action發布的topic**
move_base/feedback(move_base_msgs/MoveBaseActionFeedback) #反饋包括底座當前相對于世界坐標系的位置
move_base/status(actionlib_msgs/GoalStatusArray) #提供發送給move_base action的目標的狀態信息
move_base/result(move_base_msgs/MoveBaseActionResult) #對move_base action來說,result為空
**節點注冊的topic**
move_base_simple/goal(geometry_msgs/PoseStamped) #為不需要跟蹤目標執行狀態的情況提供非action接口
**節點發布的topic**
cmd_vel(geometry_msgs/Twist) #速度指令流,用以移動底座
**Services**
~make_plan(nav_msgs/GetPlan) #允許用戶在指定位姿后獲取規劃出的路徑,而不必真正沿著路徑運動
~clear_unknown_space(std_srvs/Empty) #允許用戶直接清除機器人周圍的未知區域,適合costmap停止了很長時間,在一個新的地方重新啟動的時候使用
~clear_costmaps(std_srvs/Empty) #允許用戶告訴move_base清除costmaps中的障礙物,可能導致撞上物體
**相關參數**
~base_global_planner(string, default:"navfn/NavfnROS") #指定用于move_base的全局規劃器插件名稱
~base_local_planner(string, default:"base_local_planner/TrajectoryPlannerROS") #指定用于move_base的局部規劃器名稱
~recovery_behaviors(list, default:[{name:conservative_reset, type:clear_costmap_recovery/ClearCostmapRecovery},{name:rotate_recovery,type:rotate_recovery/RotateRecovery},{name:aggressive_reset,type:clear_costmap_recovery/ClearCostmapRecovery}]) #用于move_base修復的插件列表,當move_base找不到可行的路徑規劃方案時,move_base將按照這些順序執行操作。每個操作執行完后,move_base會在此嘗試生成路徑規劃方案,如果成功,則繼續正常操作;否則,啟動下一個修復操作。
~controller_frequency(double, default:20.0) #控制循環的執行頻率,也可認為是速度發布指令的頻率
~planner_patience(double, default:5.0) #規劃器在空間清除操作前,能夠進行路徑規劃的時間
~conservative_reset_dist(double, default:3.0) #當在地圖中清理出空間時,距離機器人幾米遠的障礙會從代價地圖中清除
~recovery_behavior_enabled(bool, default:true) #是否啟用move_base修復機制
~clearing_rotation_allowed(bool, default:true) #在清除空間操作時,是否允許底座原地旋轉
~shutdown_costmaps(bool, default:false) #當move_base不活動時,是否關閉costmaps
~oscillaiton_timeout(double, default:0.0) #執行修復機制前,允許振蕩的時長
~oscillation_distance(double, default:0.5) #來回運動在多大距離以上不會被認為是振蕩
~planner_frequency(double, default:0.0) #全局規劃操作的執行頻率。如果設置為0.0,則全局規劃器僅在接收到新的目標點或者局部規劃器報告路徑堵塞時才會重新執行規劃操作
~max_planning_retries(int32, default:-1) #在執行修復操作前,允許規劃器重新規劃路徑的次數,-1.0表示無限多次重新嘗試
- 前言
- 第一章 ROS簡介
- 機器人時代的到來
- ROS發展歷程
- 什么是ROS
- 安裝ROS
- 安裝ROS-Academy-for-Beginners教學包
- 二進制與源碼包
- 安裝RoboWare Studio
- 單元測試一
- 第二章 ROS文件系統
- Catkin編譯系統
- Catkin工作空間
- Package軟件包
- CMakeLists.txt
- package.xml
- Metapacakge軟件元包
- 其他常見文件類型
- 單元測試二
- 第三章 ROS通信架構(一)
- Node & Master
- Launch文件
- Topic
- Msg
- 常見msg類型
- 單元測試三
- 第四章 ROS通信架構(二)
- Service
- Srv
- Parameter server
- Action
- 常見srv類型
- 常見action類型
- 單元測試四
- 第五章 常用工具
- Gazebo
- RViz
- Rqt
- Rosbag
- Rosbridge
- moveit!
- 單元測試五
- 第六章 roscpp
- Client Library與roscpp
- 節點初始、關閉與NodeHandle
- Topic in roscpp
- Service in roscpp
- Param in roscpp
- 時鐘
- 日志與異常
- 第七章 rospy
- Rospy與主要接口
- Topic in rospy
- Service in rospy
- Param與Time
- 第八章 TF與URDF
- 認識TF
- TF消息
- tf in c++
- tf in python
- 統一機器人描述格式
- 附錄:TF數學基礎
- 三維空間剛體運動---旋轉矩陣
- 三維空間剛體運動---歐拉角
- 三維空間剛體運動---四元數
- 第九章 SLAM
- 地圖
- Gmapping
- Karto
- Hector
- 第十章 Navigation
- Navigation Stack
- move_base
- costmap
- Map_server & Amcl
- 附錄:Navigation工具包說明
- amcl
- local_base_planner
- carrot_planner
- clear_costmap_recovery
- costmap_2d
- dwa_local_planner
- fake_localization
- global_planner
- map_server
- move_base_msg
- move_base
- move_slow_and_clear
- navfn
- nav_core
- robot_pose_ekf
- rotate_recovery