ROS1云课→21可视化工具rviz中的A*
本篇所指的轨迹跟踪不是下面这一类:
机器人感知-视觉部分(Robotic Perception-Vision Section)_zhangrelay的博客-CSDN博客_机器人视觉感知
更像是如下这一类:
有地图,有静态规划好的轨迹:
ROS中机器人如何沿着上述虚线进行运动?
那么,需要思考机器人运动轨迹和A*规划出的路径是否重合?
- 考虑机器人运动学和动力学模型(机器人自身特性)
- 是否有动态障碍物需要躲避(环境动态特性)
- 然后才能更好的理解ROS导航功能包设计思路和所提供的各类功能
粉色为规划轨迹,黄色是机器人实际坐标绘制。
可以理解为参考全局路径之后,机器人依据实际特性的局部轨迹。
机器人的真实轨迹就是局部运动轨迹的总和。
上图展示了导航功能包集的组织方式。在图中,能够看到白色、灰色和虚线三种框。白框表示其中的这些功能包集已经在ROS中集成了,并且它们提供的多种节点能够为机器人实现自主导航 。如何创建上图中灰色框表示的内容。这些部分取决于所使用的机器人平台。换句话说就是,这些部分的代码并不是通用的,需要根据所使用的机器人编写一定的代码实现ROS和导航功能包集的数据接口。
为了能够理解导航功能包集,应该把它看做一套使用机器人传感器和里程计功能的算法,以便使用标准的消息来控制机器人,毫无难度地移动机器人到期望的位置(不会产生碰撞或者卡在某个位置,再或者丢失控制信号)。
可以认为这个功能包集能够为任何机器人所用。几乎可以说是这样的,但是有时也需要调整一些配置文件并且调用功能包集编写一些节点。
在使用导航功能包集之前,机器人需要满足一些条件:
- 导航功能包集只能够处理双轮差动(非完整系统)驱动和全向轮(完整系统)驱动的机器人。机器人的形状必须是方形或者矩形。当然,双足机器人也可以使用它做一些事情,如机器人定位等,但不能横向移动机器人。
- 需要机器人能发布关于所有关节和传感器位置关系的信息。
- 机器人必须能发送线速度和角速度消息。
- 机器人必须有一个平面激光雷达来完成地图构建和定位。或者,能生成一些相当于激光雷达或者声呐的数据,如果它们安装在机器人的其他地方,也可以将它们的值映射到地面上。