ROS学习(一)ROS常用命令行工具

目录

一、常用命令

1.rostopic :显示系统中所有与话题相关消息的指令

2.rosservice:显示系统中所有与服务相关消息的指令

3.rosnode:显示系统中所有与节点相关消息的指令

4.rosmsg:显示系统中所有与消息相关消息的指令

5.rosparam::显示系统中所有与参数相关消息的指令

6.rqt_graph:用图形表示当前活动中的节点与在ROS网络上传输的消息之间的相关性的工具

二、工作空间

1)创建名为catkin_ws的工作空间

2)初始化工作空间

3)编译工作空间

4)设置环境变量

5)检查环境变量

 三、创建功能包

1.在catkin_ws工作空间下创建xxx_pkg功能包

2.编译

 3.设置环境变量

四、话题记录与复现

1.话题记录

2.话题复现


一、常用命令

1.rostopic :显示系统中所有与话题相关消息的指令

rostopic list #打印出当前所有话题的列表
rostopic pub 话题名 话题消息类型 话题消息内容  #向话题发布内容  输入话题名后可以使用Tab补齐
rostopic pub -r  频率 话题名 话题消息类型 话题消息内容 #-r:信号发布 频率:一分钟发布的次数

2.rosservice:显示系统中所有与服务相关消息的指令

rosservice list #打印出当前所有服务的列表
rosservice call 服务名 服务内容 #调用服务
/spawn #产生海龟的服务
/clear #刷新服务

3.rosnode:显示系统中所有与节点相关消息的指令

rosnode list #列出系统中所有节点
rosnode info /xxx  #查看xxx节点信息

4.rosmsg:显示系统中所有与消息相关消息的指令

rosmsg show xxx  #显示xxx的数据结构

5.rosparam::显示系统中所有与参数相关消息的指令

rosparam list  #列出当前多有参数
rosparam get xxx  #显示某个参数值
rosparam set xxx  #设置某个参数值
rosparam dump xxx.xxx  #保存参数到文件
rosparam load xxx.xxx  #从文件读取参数
rosparam delete xxx  #删除参数

6.rqt_graph:用图形表示当前活动中的节点与在ROS网络上传输的消息之间的相关性的工具


二、工作空间

工作空间(workspace)是一个存放工程开发相关文件的文件夹

  1. src:代码空间
  2. build:编译空间  
  3. devel:开发空间
  4. install:安装空间

1)创建名为catkin_ws的工作空间

mkdir -p ~/catkin_ws/src

2)初始化工作空间

cd ~/catkin_ws/src
catkin_init_workspace

注:catkin_init_workspace:将这个文件夹初始化为ros当中的一个工作空间,在src文件下生成了一个CMakeList.txt文件,它是告诉系统这是ros的一个工作空间

3)编译工作空间

cd ~/catkin_ws
catkin_make

 注:1.所有的cmake命令去完成编译的操作都是要在工作空间的根目录下也就是catkin_ws这样的根目录下操作的

2.catkin_make:在src文件下生成了bulid文件夹和devel文件夹

4)设置环境变量

source devel/setup.bash

 注:这个命令是告诉系统我们功能包是放在catkin_ws这个工作空间下的,但是这个命令只能在当前终端下生效,如果重新打开一个终端,这个环境变量的设置就是没有任何效果的,需要重新执行这个命令

注:如果嫌麻烦可以:

  1. 在主目录下
  2. ctrl+h显示隐藏文件
  3. 找到".bashrc"文件,打开
  4. 在文件最后位置加上“source /home/xxx/catkin_ws/devel/setup.bash”
  5. 此处路径要全,xxx表示用户名

5)检查环境变量

echo $ROS_PACKAGE_PATH

 三、创建功能包

1.在catkin_ws工作空间下创建xxx_pkg功能包

cd ~/catkin_ws/src
catkin_create_pkg xxx_pkg std_msgs rospy roscpp

 注:std_msgs、rospy和roscpp是依赖包

std_msgs :标准ROS消息包---包括表示原始数据类型的通用消息类型和其他基本消息结构

rospy :是Python版本的ROS客户端库,提供了Python程序需要的接口

roscpp:ROS的C++库,是目前最广泛应用的ROS客户端库,执行效率高

2.编译

cd ~/catkin_ws
catkin_make

 3.设置环境变量

设置环境变量,使功能包可以被找到。

source ~/catkin_ws/devel/setup.bash

注:

  1. 同一个工作空间下,不允许存在同名的功能包
  2. 不同工作空间下,允许存在同名的功能包 

由于source ~/catkin_ws/devel/setup.bash只能使当前终端有效,下次使用还需再次设置,过于麻烦。一次性设置,使他长期有效

vi ~/.bashrc

在打开的配置文件最后面加上:source ~/catkin_ws/devel/setup.bash,按一下ESC键,输入:wq保存退出

source ~/.bashrc

让刚才的配置在当前终端中生效,这样再打开一个终端刚才的设置也是有效的


四、话题记录与复现

1.话题记录

rosbag record -a -O 压缩包名称

 -a :记录所有

-O:保存成压缩包

默认保存在主目录下

2.话题复现

rosbag play 压缩包名称.bag

  • 7
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
ROS的shell脚本是用来执各种ROS指令的脚本。在脚本的开头,需要以#!/bin/bash开始,这是指定脚本的解释器为bash。可以使用echo命令来打印文字,比如可以使用echo 'Initialization Start!'来输出一段初始化开始的提示信息。脚本中可以编写在终端中执的各种ROS指令,比如roslaunch、rosrun、python、rostopic等等。可以使用gnome-terminal命令来打开一个新的终端,并在其中执指定的命令。例如,可以使用下面的格式来启动一个带有gazebo和rviz的launch文件: gnome-terminal --tab --title="launch gazebo rviz" --command="bash -c 'source catkin_ws/devel/setup.bash; roslaunch gazebo_robot test.launch; $SHELL'" 在这个例子中,--command=后面的内容就是要执命令。其中,source命令用来加载ROS环境变量,然后使用roslaunch命令来启动gazebo_robot包中的test.launch文件。 类似地,可以使用rostopic命令来发布话题消息,例如: gnome-terminal --tab --title="init_second_joint" --command="bash -c 'rostopic pub -1 /mm/second_joint_position_controller/command std_msgs/Float64 \"data: -0.34906584444444444\"; $SHELL'" 在这个例子中,--command=后面的内容是一个用来发布话题消息的命令,向/mm/second_joint_position_controller/command话题发布一个std_msgs/Float64类型的消息。 总的来说,ros的shell脚本可以使用gnome-terminal命令来打开新的终端,并在其中执各种ros指令,无论是使用roslaunch、rosrun、python还是rostopic等等。使用--command=后面的格式来指定要执命令,并可以通过source命令加载ROS环境变量。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

dtge

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

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

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

打赏作者

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

抵扣说明:

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

余额充值