ROS Navigation包的理解:
https://blog.csdn.net/qq91752728/article/details/79863677
1、costMap
整个代价地图中,我们都会给每一个格子分配一个值,取值为下列几个
255 代表 未知区域
254 代表 障碍物
253 代表 小车会和障碍物冲突
128 代表 小车可能会冲突也可能不会,根据朝向决定
0 – 128 代表 不冲突
2、机器人的里程计信息:
rosmsg show nav_msgs/Odometry
std_msgs/Header header
uint32 seq //消息序列序号
time stamp //时间戳
string frame_id //坐标系
string child_frame_id
geometry_msgs/PoseWithCovariance pose
geometry_msgs/Pose pose
geometry_msgs/Point position //XYZ位置信息
float64 x
float64 y
float64 z
geometry_msgs/Quaternion orientation //以四元素形式描述的姿态位置
float64 x
float64 y
float64 z
float64 w
float64[36] covariance //协方差矩阵,作里程计的位置估算,kf计算的时候会用到
geometry_msgs/TwistWithCovariance twist
geometry_msgs/Twist twist
geometry_msgs/Vector3 linear //线速度信息
float64 x
float64 y
float64 z
geometry_msgs/Vector3 angular //角速度信息
float64 x
float64 y
float64 z
float64[36] covariance
3、ROS系统里的坐标系方向:
4、move_base包:
全局路径规划(global planer)
——》使用Dijkstra方法和A*方法。
——》作用:实现全局最优路径规划
本地实时规划(local planer)
——》Trajectory Rollout和Dynamic Window Approaches方法
——》作用:实时避障