ROS学习|在Jetson Nano上学习ROS的记录(版本Ubuntu18.04,课程来源赵虚左老师的《ROS理论与实践》)第五章 常用命令
系列文章目录 【ROS学习|在Jetson Nano上学习ROS的记录(版本Ubuntu18.04,课程来源赵虚左老师的《ROS理论与实践》)第五章 常用命令】第一章 ROS空间创建、helloworld的实现、开启多个节点
第二章 话题通信
第三章 服务通信
第四章 参数服务器
第五章 常用指令
第六章 通信机制实操
文章目录
- 系列文章目录
- 前言
- 一、常用指令介绍
- 二、具体介绍
-
- 1.rosnode
- 2.rostopic
- 3.rosservice
- 4.rosmsg(发布订阅模型)
- 5.rossrv(服务类型)
- 6.rosparam(参数服务器)
- 总结
前言 现在大二,之前大一有幸参加了2021的国赛,很壮烈的拿了个江苏赛区的二等奖。但发现无人机这个题,真的是往堆钱上走了。不上ROS不行,现在来记录一下一个纯小白学习ROS的过程和遇到的问题。防止学弟、学妹们再走我走过的弯路。板子用的是学长给的Jetson Nano(4GB),版本是Ubuntu18.04(已配置好基础ROS所需配置)。
一、常用指令介绍 机器人系统中启动的节点少则几个,多则十几个、几十个,不同的节点名称各异,通信时使用话题、服务、消息、参数等等都各不相同,一个显而易见的问题是: 当需要自定义节点和其他某个已经存在的节点通信时,如何获取对方的话题、以及消息载体的格式呢?
在 ROS 同提供了一些实用的命令行工具,可以用于获取不同节点的各类信息,常用的命令如下:
rosnode
: 操作节点rostopic
: 操作话题rosservice
: 操作服务rosmsg
: 操作msg消息rossrv
: 操作srv消息rosparam
: 操作参数
rosnode ping /节点名
测试到节点的连接状态rosnode list
列出活动节点rosnode info /节点名
打印节点信息rosnode machine
列出指定设备上节点rosnode kill /节点名
杀死某个节点rosnode cleanup
清除不可连接的僵尸节点
rostopic bw
显示主题使用的带宽rostopic delay
显示带有 header 的主题延迟rostopic echo
打印消息到屏幕,记得进入工作空间并刷新环境变量rostopic find
根据类型查找主题rostopic hz
显示主题的发布频率rostopic info
显示主题相关信息rostopic list
显示所有活动状态下的主题
#直接调用即可,控制台将打印当前运行状态下的主题名称
#rostopic list -v
: 获取话题详情(比如列出:发布者和订阅者个数…)- rostopic pub 将数据发布到主题
#rostopic pub 话题名tab补齐tab补齐
(记得先刷新环境变量source ./devel/setup.bash
)
#rostopic pub -r 10 话题名tab补齐tab补齐
以1s/10次的频率发 rostopic type
打印主题类型
调用部分服务时,如果对相关工作空间没有配置 path,需要进入工作空间调用
source ./devel/setup.bash
rosservice args
打印服务参数rosservice call+服务
使用提供的参数调用服务rosservice find
按照服务类型查找服务rosservice info
打印有关服务的信息rosservice list
列出所有活动的服务rosservice type
打印服务类型rosservice uri
打印服务的 ROSRPC uri
rosmsg show
显示消息描述
#rosmsg show turtlesim/Pose
rosmsg info
显示消息信息rosmsg list
列出所有消息
#rosmsg list | grep -i person(消息名称)
可以看到指定消息rosmsg md5
显示 md5 加密后的消息rosmsg package
显示某个功能包下的所有消息rosmsg packages
列出包含消息的功能包
rossrv show
显示服务消息详情rossrv info
显示服务消息相关信息rossrv list
列出所有服务信息
#rosmsg list | grep -i addInts(消息名称)
可以看到指定消息rossrv md5
显示 md5 加密后的服务消息rossrv package
显示某个包下所有服务消息rossrv packages
显示包含服务消息的所有包
rosparam set
设置参数
rosparam set name huluwa
//再次调用 rosparam list 结果
/name
/rosdistro
/roslaunch/uris/host_helloros_virtual_machine__42911
/rosversion
/run_id
rosparam get
获取参数
rosparam get name
//结果
huluwa
rosparam load
从外部文件加载参数rosparam dump
将参数写出到外部文件rosparam delete
删除参数rosparam list
列出所有参数
//默认结果
/rosdistro
/roslaunch/uris/host_helloros_virtual_machine__42911
/rosversion
/run_id
总结 以上就是今天要讲的内容,本文仅仅简单记录了ROS的常用命令,如果有问题请在博客下留言或者咨询邮箱:layraliu@foxmail.com。
推荐阅读
- python|使用Python(OCR)收集体温打卡截图,并自动发消息提醒没交的人。
- 大数据|一文看懂数据清洗(缺失值、异常值和重复值的处理)
- Python|Python / Pytorch / Tensorflow / Keras / Matlab / 相关库 积累——持更
- 算法|【机器学习基础】数学推导+纯Python实现机器学习算法26(随机森林)
- 人工智能|创新实践”项目介绍9(《Taekwondo Automatic Scoring System》)
- Python|【python】通过数据库进行fastapi swaggerUI的下拉选项配置
- 编程语言|2020 年编程语言盘点展望(Java 老兵不死,Kotlin 蓄势待发)
- MicroPython|Micropython——九轴传感器(MPU6050)的使用及算法(一)
- Python 函数进阶-迭代器