使用ros构建自主导航和避障系统。使用ros自带的导航功能包集,包括:使用tf发送变换,发布里程计信息,发布来自激光的传感器信息,基本的导航功能包集的配置。
使用rospy监听和发布toplic。代码参考python监听和python发布。
Writing a Simple Publisher and Subscriber (Python)
发送MoveBaseActionGoal开启导航功能,实现可参考python goal发布。
使用tf发布结点之间的坐标关系。代码参考python tf发布。
rosrun tf tf_echo base_link base_laser
## 输出结果
At time 1524295791.073
- Translation: [1.000, 0.000, 0.000]
- Rotation: in Quaternion [0.000, 0.000, 0.000, 1.000]
in RPY (radian) [0.000, -0.000, 0.000]
in RPY (degree) [0.000, -0.000, 0.000]
rosrun tf view_frames
rosrun tf tf_monitor base_link base_laser
RESULTS: for base_link to base_laser
Chain is: base_link -> base_laser
Net delay avg = 0.0292724: max = 0.0998455
Frames:
Frame: base_laser published by unknown_publisher Average Delay: 0.00025763 Max Delay: 0.000334684
All Broadcasters:
Node: unknown_publisher 11.4265 Hz, Average Delay: 0.00025763 Max Delay: 0.000334684
tf Debugging tools tf调试工具,类似echo,view等等。
Writing a tf broadcaster (Python) 使用python发布frame变化。
Writing a tf listener (Python) 使用python监听frame变化。
ROS初级十四 tf 配置 介绍了为什么要使用tf,以及base_link和laser_link之间的关系。
rqt_reconfigure ros rqt reconfigure在线修改ros相关参数。
navigation ros中关于导航部分。
ROS导航仿真 使用rbx1进行导航仿真,对于理解整个pipeline有很大帮助。
ROS中级二 利用Rviz实时观测模拟SLAM过程 gmapping实现。
ROS中级一 配置并使用ROS导航功能包集 对整个导航实物实现流程做了解释。