1.选择ROS原因
- 开发工具包:完整的包管理和工程结构;庞大的基础库;多语言接口支持
- 计算调度模型:消息驱动的异步运行模型;抽象的P2P通信接口;自定义的消息格式
- 调试工具:可视化的调试工具;消息查看、存储、回放工具
2.ROS常用命令
rosrun package_name node_name //启动一个节点
rosnode list //查看激活的节点
rosnode info node_name //查看节点信息
rostopic type /topic //查看一个topic类型
rostopic pub /topic type args //给一个topic发送消息
rosrun tf tf_monitor //打印tf树中的所有参考系信息
rosrun tf tf_echo source_frame target_frame //查看指定参考系之间的变换关系
rosrun tf view_frames //创建一个tf树图的PDF
rqt //运行rqt
rosrun rqt_image_view rqt_image_view //查看实时图像
rosrun rqt_multiplot rqt_multiplot //将数据画出二维坐标系下的曲线
rosrun rqt_graph rqt_graph //图形化显示节点等信息
rosrun rqt_logger_level rqt_logger_level //改变nodes运行时候的信息显示级别(调试,警告,信息和错误)
rosparam set use_sim_time true //开启虚拟时钟
rosbag record --all //记录所有topic
rosbag record topic_1 topic_2 //记录 topic_1 topic_2
rosbag info bag_name.bag //显示bag信息
rosbag play bag_name.bag //回放
catkin clean --all
3.ROS的不足
- 大数据量传输性能瓶颈
- 单中心的网络存在单点危险
- 数据格式存在后向兼容
4.Apollo对ROS优化
- 通讯性能的优化
- 去中心化拓扑网络
- 数据兼容性扩展