版权声明:本文为博主原创文章,转载请标明出处: 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的命名空间,可以使我们启动两个相同的节点,但是不会发生冲突。