ROS使用方法摘要(基本命令)

版权声明:本文为博主原创文章,转载请标明出处: http://www.cnblogs.com/liu-fa/p/5761448.html

该博文适合已经具备一定的ROS编程基础的人,快速查看ROS相关指令。

本文持续更新中,望关注收藏,一起改进...

创建 ROS 工作空间

启动 ROS
$ roscore
创建工作环境
$ mkdir -p ~/catkin_ws/src
$ cd ~/catkin_ws/src
$ catkin_init_workspace
编译 ROS 程序
$ cd ~/catkin_ws
$ catkin_make
添加程序包到全局路径
$ echo "source catkin_ws/devel/setup.bash" >> ~/.bashrc
$ source ~/.bashrc

Package 相关操作

创建 Package 并编译
$ cd ~/catkin_ws/src
$ catkin_create_pkg <package_name> [depend1] [depend2] [depend3]
$ cd ~/catkin_ws
$ catkin_make
查找 Package
$ rospack find [package name]
查看 Package 依赖
$ rospack depends <package_name>
$ rospack depends1 <package_name>

Node 相关操作

在使用其他ROS节点前,首先执行$roscore

查看所有正在运行的 Node
$ rosnode list
查看某节点信息
$ rosnode info [node_name]
运行 Node
$ rosrun [package_name] [node_name] [__name:=new_name]

Topic 相关操作

查看 rostopic 所有操作
$ rostopic -h
查看所有 Topic 列表
$ rostopic list
图形化显示 topic
$ rosrun rqt_graph rqt_graph
$ rosrun rqt_plot rqt_plot
查看某个 Topic 信息
$ rostopic echo [topic]
查看 Topic 消息格式
$ rostopic type [topic]
$ rosmsg show [msg_type]
向topic发布消息
$ rostopic pub [-1] <topic> <msg_type> [-r 1] -- [args] [args]

Service 相关操作

查看所以service操作
$ rosservice -h
查看 service 列表
$ rosservice list
调用 service
$ rosservice call [service] [args]
查看 service 格式并显示数据
$ rosservice type [service] | rossrv show
设置service parameter
$ rosparam set [parame_name] [args] + rosservice call clear
获得parameter
$ rosparam get [parame_name]
加载parameter
$ rosparam load [file_name] [namespace]
删除parameter
$ rosparam delete

Bag 相关操作

录制所有topic变化
$ rosbag record -a
记录某些topic
$ rosbag record -O subset <topic1> <topic2>
查看bag信息
$ rosbag info <bagfile_name>
回放
$ rosbag play (-r 2) <bagfile_name>

 

 ROS文件系统

查找包:

$ rospack find [package_name]

进入包目录:

$ roscd [locationname[/subdir]]

查看包目录内容:

$ rosls [locationname[/subdir]]

ROS参数

可以通过rosparam来存储和处理ROS参数服务器(Parameter Server)上的数据。

rosparam set            set parameter
rosparam get            get parameter
rosparam load           load parameters from file
rosparam dump           dump parameters to file
rosparam delete         delete parameter
rosparam list           list parameter names

例如:

$ rosparam list

该命令返回:

/background_b
/background_g
/background_r
/rosdistro
/roslaunch/uris/host_57aea0986fef__34309
/rosversion
/run_id

即当前使用到的参数,可以通过

rosparam set [param_name]
rosparam get [param_name]

对参数进行修改和查看。修改参数的例子如下:

$ rosparam set /background_r 150
$ rosservice call /clear

可看到turtlesim的背景变了。查看参数的例子如下:

$ rosparam get /background_g
$ 86

另外:

$ rosparam get /

可以获取参数列表中所有参数的值:

background_b: 255
background_g: 86
background_r: 150
roslaunch:
  uris: {'aqy:51932': 'http://aqy:51932/'}
run_id: e07ea71e-98df-11de-8875-001b21201aa8

可以通过

rosparam dump [file_name] [namespace]
rosparam load [file_name] [namespace]

将上述参数写入文件或者从文件导出,例如我们通过下面的方式将所有的参数写入params.yaml 文件:

$ rosparam dump params.yaml

可以将参数从这些文件中导出:

$ rosparam load params.yaml copy
$ rosparam get /copy/background_b
$ 255

roslaunch

roslaunch用于启动多个ros节点,启动的细节通过launch文件在定义。

$ roslaunch [package] [filename.launch]

典型的launch文件如下:

<launch>

  <group ns="turtlesim1">
    <node pkg="turtlesim" name="sim" type="turtlesim_node"/>
  </group>

  <group ns="turtlesim2">
    <node pkg="turtlesim" name="sim" type="turtlesim_node"/>
  </group>

  <node pkg="turtlesim" name="mimic" type="mimic">
    <remap from="input" to="turtlesim1/turtle1"/>
    <remap from="output" to="turtlesim2/turtle1"/>
  </node>

</launch>

其中,ns表示group的命名空间,可以使我们启动两个相同的节点,但是不会发生冲突。



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值