ROS入门篇—Apple的学习笔记

1.引言

休息了段时间后看了2本书《c++标准模板库编程实战》和《Effective Modern C++》,目的是巩固c++11/14的基础。

但是对于我来说,学习的最佳方法还是找项目练手。所以这周六制作了ubunut16.06的UFEI U盘启动,重装后直接上ROS的slam项目。开始新一轮的折腾。

2.ROS入门

当然先要学下ROS基本知识,目前理解他的通信方式很灵活,就是c++的观察者模式。通过订阅和发布消息来实现对象通信。ROS主要包括节点,话题,消息,服务,通过看入门教程基本理解也使用了这些内容。我用的是kinetic

ROS官方教程(中文版):http://wiki.ros.org/cn/ROS/Tutorials

3.RVIZ可视化

我的目的是学习slam,ros中有很多包,其中包括opencv及slam相关。但是对象间互相发送消息,那么点云图在哪里显示呢?这时候RIVZ就非学不可了。是三维可视化工具,强调把已有的数据可视化显示。当然之后还要学习很多其它有用的包。

RVIZ官方教程:http://wiki.ros.org/rviz/Tutorials

我的实验效果

4.备忘点

4.1无法识别ros本地包,则先要把本地编译环境添加到shell脚本中

source devel/setup.bash

用source的话shell不会创建副本,等于顺序执行。


4.2 查看消息及消息参数

运行命令rosmsg packagepcl_msgs可以列出msg文件夹下定义的消息

运行命令rosmsg showpcl_msgs/Vertices查看具体消息参数


4.3.创建新的package及编译的基本步骤

mkdir

-p ~/catkin_ws/src //-p说明若文件夹已经存在则不用再创建

cd

catkin_ws/src

catkin_create_pkg

pcl_tutorials pcl_conversions pcl_ros pcl_msgs sensor_msgs

rospackprofile  //加入到package中

roscd

pcl_tutorials

mkdir

src //然后添加cpp及在src同级目录修改CMake文件

cd

~/catkin_ws/

catkin_make


4.4.pcl&

rviz ref code

https://blog.csdn.net/hanshuning/article/details/52314108

http://www.voidcn.com/article/p-mecwguji-bt.html

参考2个blog自己做了一个pcl随机点云发送到rviz显示,直接用rosrun不行,后来通过自建脚本运行成功。如下

5.小结

了解了ROS基本的运行机制。网上查了下bag数据集回放,可以模拟各种传感器输入,然后通过ROS包中集成的算法库(也可以自己修改)应用后,再通过RVIZ进行地图构建的可视化。


6.疑问

之前做实验的数据集直接已文件的形式读取,输入到code中。ROS应该也可以的把,为什么用bag数据集回放,而不是推荐直接使用文件形式的数据集读入呢?

答:我猜测,ROS可能消息接口都定义好了,然后模块化程度也高,所以都不用我们自己写code了,直接集成包通信即可。通过bag回放也方便进行ROS消息层面的调试。而不是直接源码调试。结论就是bag回放方法适合入门用户。^V^

你可能感兴趣的:(ROS入门篇—Apple的学习笔记)