一、创建功能包
1.创建工作空间(我是直接桌面创建的)
2.初始化+编译工作空间
catkin_init_workspace
cd ..
catkin_make
生成了build devel文件
3.设置环境变量
source devel/setup.bash
//打开配好文件
sudo gedit ~/.bashrc
添加上面的 source devel/setup.bash,保存后退出!再刷新环境变量!
source ~/.bashrc
4.检查环境变量
5.创建功能包
catkin_create_pkg learning_communication std_msgs rospy roscpp
std_msgs 是ros默认的通讯机制;
6.编译功能包
catkin_make
二、话题编程
1.编写发布者和订阅者。
2.编写CMakelists.txt编译代码
在上一层文件夹下的CMakelists.txt中占添加。
退回到功能包根目录下,运行 catkin_make.
3.运行可执行文件
在devel的lib下会有生成两个可执行文件
下面运行两个程序,启动ros master
rosrun learning_communication talker
如上就是话题编程!
三,自定义话题编程
1.定义msg文件
2.在package.xml中添加功能包依赖
3.在CMakelists.txt在编译选项
3.1
3.2
3.3
catkin_make
如何查看自定义的消息类型?
rosmsg show Person
这个就说明我们消息定义是成功的。可以在其他的文件中像使用头文件那样去使用它!
四、服务通讯模型编程
如何自定义服务请求与应答。(实现简单的加法)
1.定义srv文件
2.package.xml(和上面一样,所以不用了)
3.修改CMakelists.txt
修改也是类似上面就不写了。
4.创建服务器+客户端代码
(代码都是直接抄的,就不贴图了)
5.配置以下CMakelist
6.编译程序
7.运行可执行程序
五,动作编程
1.自定义动作消息(也可以用ros)
1.1定义action 文件。
1.2添加功能包依赖
1.3CMakelists.txt添加编译选项
2.实现动作的服务器+客户端(类似上面的)
六、分布式通信
需要两台电脑(没有)
1.确保底层通信没问题(看视频操作,应该问题不大)
2.在从机中设置ROS_MASTER_URI,让从机中找到ROS MASTER
3.实现在从机上操作主机的ros的小海龟
七、ROS的关键组件
1.Launch文件
可以同时启动多个ros节点。可以自动启动ROS master
2.TF左边变换
3.QT工具箱
如rqt_console、rqt_graph、rqt_plot、
rqt_reconfigure
4.Rviz可视化平台
使用Kinetic 为例,打开rviz
roscore
rviz rviz
点击Add,添加点云等等使用....
还有一些插件机制。(可以自己做!二次开发!)
5.仿真Gazebo
带有物理属性的.机器人的重量啊等等..
不知道为啥,我没有找到gazebo_ros。
那么如何进行gazebo呢?下一张继续!