创建 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 相关操作
查看所有正在运行的 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>
rosparam
rosparam能让我们在ROS参数服务器(Parameter Server)上存储和操作数据。参数服务器能够存储整形(integer)、浮点(float)、布尔(boolean)、字典(dictionaries)和列表(list)等数据类型。rosparam使用YAML标记语言的语法。一般而言,YAML的表述很自然:1是整形,1.0是浮点型,true是布尔型,[1,2,3]是整形组成的列表,[a:b,c:d]是字典。rosparam有很多命令可以用来操作参数,如下所示:
rosparam set 设置参数
rosparam get 获取参数
rosparam load 从文件中加载参数
rosparam dump 向文件中转储参数
rosparam delete 删除参数
rosparam list 列出参数名
rosparam list
kandi@ubuntu:~$ rosparam list
/rosdistro
/roslaunch/uris/host_ubuntu__46587
/rosversion
/run_id
/turtlesim/background_b
/turtlesim/background_g
/turtlesim/background_r
kandi@ubuntu:~$
可以看出turtlesim节点在参数服务器上有3个参数用于设定背景颜色
让我们使用rosparam set来试着改变一个参数值。
rosparam set和rosparam get
用法:
rosparam set [param_name]
rosparam get [param_name]
现在我们修改背景颜色的蓝色和红色通道值:
kandi@ubuntu:~$ rosparam get /turtlesim/background_b
255
kandi@ubuntu:~$ rosparam get /turtlesim/background_r
69
kandi@ubuntu:~$ rosparam set /turtlesim/background_b 60
kandi@ubuntu:~$ rosparam get /turtlesim/background_b
60
kandi@ubuntu:~$ rosparam set /turtlesim/background_r 150
kandi@ubuntu:~$ rosservice call /clear
然后我们来查看参数服务器上其他参数的值,获取背景的绿色通知的值:
kandi@ubuntu:~$ rosparam get /turtlesim/background_g
86
业可以用rosparam get /来显示参数服务器上的多有内容:
rosparam dump和rosparam load
用法:
rosparam dump [file_name] [namespace]
rosparam load [file_name] [namespace]
在这里,我们将所有的参数写入params.yaml文件:
$ rosparam dump params.yaml
甚至可以将yaml文件重载入新的命名空间,例如copy_turtle:
kandi@ubuntu:~$ rosparam load params.yaml copy_turtle
kandi@ubuntu:~$ rosparam get /copy_turtle/turtlesim/background_b
60