In our previous blog, we learned about the overall framework of ROS positioning in navigation, and this article focuses on one of the most important move_base packages.
As you can see in the overall framework diagram, Move_base provides the configuration, operation, and interface of Ros Navigation, which consists of two main parts:
(1) Global Path Planning (Planner): Planning the overall path according to the given target location;
(2) Local real-time planning (planner): Avoid route planning according to nearby obstructions.
One, data structure
The MOVEBASEACTIONGOAL data structure is defined in Ros to store the target location data of the navigation, the most important of which is the position coordinates (position) and the direction (orientation).
Rosmsg show Movebaseactiongoal
[move_base_msgs/movebaseactiongoal]:
std_msgs/header Header
uint32 seq Time
stamp
string frame_id
actionlib_msgs/goalid goal_id time
stamp
string ID
move_base_ Msgs/movebasegoal goal
geometry_msgs/posestamped target_pose
std_msgs/header Header
uint32 seq Time
stamp
string frame_id
geometry_msgs/pose Pose
geometry_msgs/point position float64
x
float64 y
float64 z
geometry_msgs/quaternion orientation
float64 x
float64 y
float64 Z
float64 W
Second, the configuration file
Move_base need to configure some parameters before use: Operating cost, robot radius, distance to the target location, robot movement speed, these parameters are in the Rbx1_nav package in the following configuration files:
Base_local_planner_params.yaml
Costmap_common_params.yaml
Global_costmap_params.yaml
Local_costmap_params.yaml