ROS常用命令指南(长期更新)

ROS常用命令指南(长期更新)

记录一下最近调试ros相关代码时常用的命令;

查看ros消息类型:

rosmsg list | grep xxx    #xxx类似关键词一样的,比如pose

详细查看具体某一个消息:

rosmsg show xxx      #xxx是具体的消息类型名称,比如geometry_msgs/PoseStamped

带有数组以及时间戳的位姿消息:

nav_msgs::Path,它其实就可以看作是一个数组类型的geometry_msgs::posestamped;
不带有stamped的一般意思是不带有时间戳,而时间戳的赋值一般是ros::Time::now();

结合rostopic hz和rostopic echo的调试工具:

rosrun rqt_topic rqt_topic

发布一个节点:

需要定义消息类型,并且要一致,需要在launch文件里加上这个节点名称,否则就用rosrun单独启动这个节点;需要在CMakelists里面加上这个cpp文件;
一般在注册后面加上一行代码:

ros::Duration(3.0).sleep()   #延迟3秒

这样做的目的是延迟数据发布,因为一般第一条数据在发布时publisher还没有advertise,会有点慢;

订阅一个节点:

基本同上;

std::vector:

这是一个数组,可以用at()或[ ]来查看其中具体某一个元素,从0开始;
std::vector<std::vector<geometry_msgs::posestamped>>则是一个二维数组,最内部的数据类型是geometry_msgs::posestamped;查看的话可以通过[ ][ ]来查看;

ROS_INFO:

可以输出日志信息,是白色的,如果要其他颜色可以ROS_ERROR_STREAM等;
比如要输出浮点数,则ROS_INFO(“浮点数:%f”,xxx),xxx为具体变量名称;整型则是%d;字符串则是%s,并且字符串需要在xxx后面加上.c_str()转为C++风格的字符串;
如果要输出中文,需要在主函数前面加上locale(LC_ALL,"");

vscode批量注释或者取消:

如果是 // 注释,则是ctrl + /,取消也一样;如果是 /* … */ 注释,则是全部选中然后ctrl + shift + A,取消暂时不知道,个人推荐 // 注释,更好用;

2021.8.7更新:

查看日志信息是由哪个节点发布的:

rqt_console

查看话题列表:

rostopic list

查看具体话题订阅发布节点:

rostopic info xxx    #xxx为话题名称,可以通过rostopic list查看

查看具体话题消息发布情况(比如发布的数值):

rostopic echo xxx   #xxx为话题名称,可以通过rostopic list查看

查看计算图(也就是节点图):

rqt_graph

查看tf关系:

rosrun rqt_tf_tree rqt_tf_tree

2021.8.12更新:

查看功能包是否存在:

rospack find 包名    # 如果存在则返回安装路径

进入某个功能包:

roscd 包名

列出参数服务器中的具体参数名:

rosparam list

获得参数服务器中的某一个参数值:

rosparam get 参数名

参数服务器,一般适用于存在数据共享的一些应用场景。

唤醒某一个服务:

rosservice call Server "key":number    # "key":number实际上是一个键值对,具体根据自己的

2021.8.14更新:

查询某一个服务的具体定义:

rossrv show 包名/定义服务的消息文件名称

查看ros包的层级关系:

tree -L x    # x代表要看的层数,比如只看最顶上的三层就是3

服务端写好后的简单测试:

rosservice call /话题名 xxx   # xxx是根据自己定义的消息类型来的,也可以用tab键试试能否补全(一般可以)

2021.9.5更新:

不同包之间的服务通信:

服务类似于自定义消息类型,需要自己定义一个消息类型;比如需要在A和B两个包之间实现通信,则需要创建一个新的功能包C,C专门用于存放服务,这样做的好处是不会把代码和服务定义耦合在一起。

2021.12.7更新:

在线调参:

rosrun rqt_reconfigure rqt_configure

2021.12.31更新:

ROS卸载二进制包:

sudo apt-get purge ros-melodic-**
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值