ROS学习(2)

一、创建功能包

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呢?下一张继续!

发布了233 篇原创文章 · 获赞 5 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_43384504/article/details/104313555