武理惠海ros培训周记(二)

文章介绍了ROS中的常用命令,如创建包、安装和删除功能包,以及与节点、话题和服务交互的工具。通过示例展示了如何使用roslaunch运行turtlesim及创建发布器和订阅器,其中订阅器接收并打印乌龟位姿信息。
摘要由CSDN通过智能技术生成

参考赵虚左老师的课程整理:

http://www.autolabor.com.cn/book/ROSTutorials/

1、ROS相关命令总结

1.1增

catkin_create_pkg 自定义包名 依赖包 #创建新的ROS功能包

sudo apt install xxx #安装 ROS功能包

1.2删

sudo apt purge xxx #删除某个功能包

1.3改

rosed 包名 文件名 #修改功能包文件

1.4查

rospack list #列出所有功能包

rospack find 包名 #查找某个功能包是否存在,如果存在返回安装路径

roscd 包名 #进入某个功能包

rosls 包名 #列出某个包下的文件

apt search xxx #搜索某个功能包

1.5 执行

  • roscore:启动ROS的核心服务,必须在运行其他ROS命令之前先运行该命令
  • rosrun:在ROS包中执行指定的节点程序,例如:rosrun package_name node_name。
  • roslaunch:使用XML文件启动一个或多个ROS节点,该命令可以启动多个节点,并设置节点的参数和命名空间,例如:roslaunch package_name launch_file.launch。
  • rosnode:用于与ROS节点进行交互的命令行工具,可以使用该命令查看正在运行的节点列表、获取节点信息等,例如:rosnode list、rosnode info node_name。
rosnode ping    #测试到节点的连接状态
rosnode list    #列出活动节点
rosnode info    #打印节点信息
rosnode machine    #列出指定设备上节点
rosnode kill    #杀死某个节点
rosnode cleanup    #清除不可连接的节点
  • rostopic:用于与ROS话题进行交互的命令行工具,可以使用该命令查看正在发布的话题、发布消息到话题、订阅话题等,例如:rostopic list、rostopic echo topic_name、rostopic pub topic_name message_type args。
rostopic bw     #显示主题使用的带宽
rostopic delay  #显示带有 header 的主题延迟
rostopic echo   #打印消息到屏幕
rostopic find   #根据类型查找主题
rostopic hz     #显示主题的发布频率
rostopic info   #显示主题相关信息
rostopic list   #显示所有活动状态下的主题
rostopic pub    #将数据发布到主题
rostopic type   #打印主题类型
  • rosmsg:用于显示有关 ROS消息类型的 信息的命令行。
rosmsg show    显示消息描述
rosmsg info    显示消息信息
rosmsg list    列出所有消息
rosmsg md5    显示 md5 加密后的消息
rosmsg package    显示某个功能包下的所有消息
rosmsg packages    列出包含消息的功能包
  • rosservice:用于与ROS服务进行交互的命令行工具,可以使用该命令列出可用的服务、调用服务等,例如:rosservice list、rosservice call service_name args。
rosservice args 打印服务参数
rosservice call    使用提供的参数调用服务
rosservice find    按照服务类型查找服务
rosservice info    打印有关服务的信息
rosservice list    列出所有活动的服务
rosservice type    打印服务类型
rosservice uri    打印服务的 ROSRPC uri
  • rosparam:包含rosparam命令行工具,用于使用YAML编码文件在参数服务器上获取和设置ROS参数。
rosparam set    设置参数
rosparam get    获取参数
rosparam load    从外部文件加载参数
rosparam dump    将参数写出到外部文件
rosparam delete    删除参数
rosparam list    列出所有参数
  • rosbag:用于记录和回放ROS消息的工具,可以使用该命令将ROS消息保存到一个称为"bag"的文件中,并在以后的时间回放这些消息,例如:rosbag record -a、rosbag play bag_file.bag。
  • rqt_graph:用于显示当前ROS系统中节点和话题之间关系的图形化工具。
  • rqt_console:用于显示ROS节点的日志消息的图形化工具。
  • rviz:ROS中的三维可视化工具,可以用于显示传感器数据、机器人模型、路径规划等。

2、作业

要求: 创建工作空间并在其中完成以下内容:自定义一个MSG消息→基于该消息编写一个发布器和订阅器,并将订阅的消息打印在屏幕上。

首先编写launch文件,打包运行小乌龟,launch文件代码如下:

<launch>

<node pkg="turtlesim" type="turtlesim_node" name="turtle1" output="screen" />

<node pkg="turtlesim" type="turtle_teleop_key" name="key" output="screen" />

</launch>

再编写订阅器,代码如下:

#include "ros/ros.h"
#include "turtlesim/Pose.h"

void doPose(const turtlesim::Pose::ConstPtr& p){
    ROS_INFO("乌龟位姿信息:x=%.2f,y=%.2f,theta=%.2f,lv=%.2f,av=%.2f",
        p->x,p->y,p->theta,p->linear_velocity,p->angular_velocity
    );
}

int main(int argc, char *argv[])
{
    setlocale(LC_ALL,"");
    // 2.初始化 ROS 节点
    ros::init(argc,argv,"sub_pose");
    // 3.创建 ROS 句柄
    ros::NodeHandle nh;
    // 4.创建订阅者对象
    ros::Subscriber sub = nh.subscribe<turtlesim::Pose>("/turtle1/pose",1000,doPose);
    // 5.回调函数处理订阅的数据
    // 6.spin
    ros::spin();
    return 0;
}

效果如下:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

S_HHHHHH

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值