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
效果如图
分析
关于roscore
通过上面的代码,可以启用turtlesim里面的两个节点。首先先看下roscore 的terminal,之前仅是启用ros master但是没有去分析terminal里面的信息的含义。打印的信息基本上是版本信息。其中有比较重要的信息,如图,有个http,由于ROS是分布式的,因此ros master可能存在于任一主机中,因此需要标记下。ROS分布式的优点就是可以使得不同的功能模块在不同的主机上面运行,可以节省计算资源,提高效率等。
关于计算图和节点
用rqt_graph查看一下计算图,可以看到有两个节点。图中两种输入方式皆可。
找一个terminal输入以下信息(此时已经把计算图关掉了)
rosnode list
rostopic list
跟之前的计算图对比,可以注意到两个椭圆内的是节点,箭头上的是topic名称。
重新打开计算图,如果在rqt_graph里面把debug的√取消,那么效果如下,可以发现多出了点奇怪的东西。
此时上图terminal打印出的/rosout就出现了。其实这几个多出来的也不需要关注。/rosout是必然存在的一个节点,从名字可以看出这节点关乎输出,是一个管理日志信息的节点,每个节点都可以通过/rosout的话题将信息传到/rosout节点。
另一个gui的节点是因为rqt_graph的存在,打开一个新的terminal验证,输入rosnode list,结果如下
可以用以下命令查看节点信息
rosnode info 节点名
关于turtlesim
再看乌龟,这个turtlesim 对应的文件是在哪?里面的节点有哪些?之前安装完ROS的时候说过它的位置。点:计算机-opt-ros。
进去之后可以看到很多文件夹和脚本,注意到有setup.bash,之前安装和配置的时候有用到。
其中后面三个文件夹是最重要的,include类似于C语言里面的include,里面存的头文件,lib存一些包,里面有节点(可执行文件)和Python文件等,比如这里的turtlesim,运行节点就可以启用相应的功能包里面的功能。
这里就可以看到有之前调用的turtlesim_node 和 turtle_teleop_key,同理,可以验证下其他的节点,比如draw_square。(另一个不了解,有兴趣的可以研究)
rosrun turtlesim draw_square
share里面可以看到很多的功能包,打开一看是有cmake 的配置文件和msg,srv的定义等等
打开images文件夹,可以看到好多的小乌龟logo,这就解释了为什么每次调用乌龟节点出现的乌龟长得不一定一样了。
关于turtle控制信息
通过以下命令实现监听,打印出的信息是乌龟的运动信息,键盘控制时会有相应的数值变化
rostopic echo /turtle1/cmd_vel
其他
发布话题、新增turtle的操作可以参考
https://www.cnblogs.com/chendeqiang/p/10190821.html
小海龟的坐标变换和RVIZ可视化可以参考
https://blog.csdn.net/sf9898/article/details/105350138
ROS turtlesim小乌龟的使用与分析相关推荐
- ROS入门 小乌龟跟随示例
一.不使用TF转换的方法 #include <ros/ros.h> #include <geometry_msgs/Twist.h> #include<math.h> ...
- ROS修改小乌龟程序背景颜色
我们在之前的编程中可以发现,小乌龟程序的背景颜色是蓝色,可能大家看的比较眼乏了,那我们接下来可以编程修改小乌龟程序的背景颜色. 首先,我们输入rosparam list,可以看到三个关于小乌龟程序背景 ...
- Udacity机器人软件工程师课程笔记(八)-ROS Turtlesim 包的相关命令
Turtlesim 包的相关命令 这个部分包含五个子主题,分别是 列出所有活动节点 列出所有主题 获取有关主题的信息 显示消息信息 实时回应消息 1.列出所有的活动节点 为了获取所用的活动且向ROS ...
- 借助CatGPT让turtlesim小乌龟画曲线
注意这里是CatGPT,不等同OpenAI的ChatGPT,但是用起来十分方便,效果也还行. 详细说明ROS机器人turtlesim绘制曲线需要注意哪些 ROS机器人turtlesim绘制曲线需要注意 ...
- 阅读笔记(ROS书籍⑤)《ROS机器人开发:实用案例分析》卡罗尔·费尔柴尔德 托马斯·L.哈曼
这本书是在微信读书上发现的,它在语言描述上比较容易让人理解,同时也有与无人机相关的案例,这是我比较关注的. 以下摘自我的微信读书笔记. ◆ 1.6.1 ROS节点 >> 一般而言,节点就是 ...
- 系统架构图怎么画_基于ROS的移动机器人上层系统架构分析
看过网上不少博客,介绍ROS系统架构的,基本上都是在介绍ROS自身系统架构,很少有介绍特定机器人的系统架构的.个人觉得,入门一个系统,首先需要从整体开始把握,而不必在意细节,整体把握好了,细节自然水到 ...
- ROS底盘控制节点 源码分析
先在机器人端通过launch文件启动底盘控制. @robot:~$ roslaunch base_control base_control.launch ... logging to /home/jy ...
- ros中的velocity smoother详细分析
smoother : 是一个速度平滑控制器,用来防止robot navigation的速度/转速过快,加速度/快减速过大 smoother针对navigation或者其他一些例子,robot有一个命令 ...
- ROS知识:分析和改写小乌龟代码【01】
ROS之游戏手柄控制乌龟和机器人_u014587147的专栏-CSDN博客 本篇对小乌龟的项目进行分析,看看一个普通的ROS项目到底如何构建,才能算完整合法工程:学完后,期望可以开发我们自己的项目. ...
最新文章
- 机器学习入门(05)— 使用 NumPy 实现 3 层简单神经网络
- 在中间层 .NET 应用程序中通过授权管理器使用基于角色的安全
- SVN中各种符号箭头含义
- java程序设计颜志军_JSP 自定义标签之一 简单实例
- matplotlib与seaborn的一些使用
- 使用Python+md5删除本地重复(同一张不重名)的照片
- 超越 Windows 时代!微软 Build 大会都透露了啥?
- 【Oracle】ORA-55610: Invalid DDL statement on history-tracked table
- Excel word PDF导入导出 Easy POI
- 微信支付java后台
- GNS3 添加思科交换机
- 报 刊 集 锦(转载)
- YUI 3 Cookbook 中文版
- 论文解读:Prediction of Protein–Protein Interaction Sites Using Convolutional Neural Network
- 【协议森林】基于DPDK的原生态协议栈DPDK-ANS
- C语言 写一个函数求两个数的较大值
- 车牌识别,车辆检测,车牌检测和识别,与车相关的点点滴滴
- Android Studio 设置打开layout.xml文件的默认视图
- adc0809c语言编程,单片机C语言程序设计之ADC0809数模转换与显示
- 随机森林(RandomForest,RF)网格搜索法调参