ROS turtlesim小乌龟的使用与分析

准备

在之前的文章中完成了ROS的安装并且启用了小乌龟。链接如下:

https://blog.csdn.net/sf9898/article/details/105290198

这次同样先启用小乌龟,先roscore启用ros master,之后再开一个terminal输入rosrun turtlesim turtlesim_node启用小乌龟,再开一个terminal输入rosrun turtlesim turtle_teleop_key启用键盘控制。

格式
rosrun 功能包 节点
roscore
rosrun turtlesim turtlesim_node
rosrun turtlesim turtle_teleop_key

效果如图

ROS turtlesim小乌龟的使用与分析_第1张图片

分析

关于roscore

通过上面的代码,可以启用turtlesim里面的两个节点。首先先看下roscore 的terminal,之前仅是启用ros master但是没有去分析terminal里面的信息的含义。打印的信息基本上是版本信息。其中有比较重要的信息,如图,有个http,由于ROS是分布式的,因此ros master可能存在于任一主机中,因此需要标记下。ROS分布式的优点就是可以使得不同的功能模块在不同的主机上面运行,可以节省计算资源,提高效率等。

在这里插入图片描述

关于计算图和节点

用rqt_graph查看一下计算图,可以看到有两个节点。图中两种输入方式皆可。

ROS turtlesim小乌龟的使用与分析_第2张图片
找一个terminal输入以下信息(此时已经把计算图关掉了)

rosnode list
rostopic list

ROS turtlesim小乌龟的使用与分析_第3张图片
跟之前的计算图对比,可以注意到两个椭圆内的是节点,箭头上的是topic名称。
重新打开计算图,如果在rqt_graph里面把debug的√取消,那么效果如下,可以发现多出了点奇怪的东西。
此时上图terminal打印出的/rosout就出现了。其实这几个多出来的也不需要关注。/rosout是必然存在的一个节点,从名字可以看出这节点关乎输出,是一个管理日志信息的节点,每个节点都可以通过/rosout的话题将信息传到/rosout节点。

ROS turtlesim小乌龟的使用与分析_第4张图片

另一个gui的节点是因为rqt_graph的存在,打开一个新的terminal验证,输入rosnode list,结果如下

ROS turtlesim小乌龟的使用与分析_第5张图片
可以用以下命令查看节点信息

rosnode info 节点名

ROS turtlesim小乌龟的使用与分析_第6张图片

关于turtlesim

再看乌龟,这个turtlesim 对应的文件是在哪?里面的节点有哪些?之前安装完ROS的时候说过它的位置。点:计算机-opt-ros。

ROS turtlesim小乌龟的使用与分析_第7张图片
进去之后可以看到很多文件夹和脚本,注意到有setup.bash,之前安装和配置的时候有用到。

ROS turtlesim小乌龟的使用与分析_第8张图片

其中后面三个文件夹是最重要的,include类似于C语言里面的include,里面存的头文件,lib存一些包,里面有节点(可执行文件)和Python文件等,比如这里的turtlesim,运行节点就可以启用相应的功能包里面的功能。

ROS turtlesim小乌龟的使用与分析_第9张图片
ROS turtlesim小乌龟的使用与分析_第10张图片
这里就可以看到有之前调用的turtlesim_node 和 turtle_teleop_key,同理,可以验证下其他的节点,比如draw_square。(另一个不了解,有兴趣的可以研究)

rosrun turtlesim draw_square

ROS turtlesim小乌龟的使用与分析_第11张图片

share里面可以看到很多的功能包,打开一看是有cmake 的配置文件和msg,srv的定义等等

ROS turtlesim小乌龟的使用与分析_第12张图片

打开images文件夹,可以看到好多的小乌龟logo,这就解释了为什么每次调用乌龟节点出现的乌龟长得不一定一样了。

ROS turtlesim小乌龟的使用与分析_第13张图片

关于turtle控制信息

通过以下命令实现监听,打印出的信息是乌龟的运动信息,键盘控制时会有相应的数值变化

rostopic echo /turtle1/cmd_vel

ROS turtlesim小乌龟的使用与分析_第14张图片

其他

发布话题、新增turtle的操作可以参考

https://www.cnblogs.com/chendeqiang/p/10190821.html

小海龟的坐标变换和RVIZ可视化可以参考

https://blog.csdn.net/sf9898/article/details/105350138

你可能感兴趣的:(Linux,and,ROS,linux,slam,自动驾驶)