ROS常用指令整理
1. 系统环境变量
1.1. 打印ros环境变量
$ echo $ROS_PACKAGE_PATH
1.2. 确认环境变量已经设置正确
export | grep ROS
1.3. 环境变量设置文件
sudo gedit ./.bashrc
包含:
source /opt/ros/indigo/setup.bash
source ~/catkin_ws/devel/setup.bash
2. 多机通讯环境设置
2.1. 主机端:
-
使用编辑器打开/etc/hosts文件(操作/etc/hosts文件需要管理员权限)
sudo vim /etc/hosts
-
在文件中增加下面这一行(192.168.31.202为移动机器人的IP地址),
192.168.31.202 master_ip
-
打开.bashrc文件
vim .bashrc
-
在文件末尾增加下面三行,修改完成后保存退出(如果之前有设置过相关环境变量,则删除原先设置的):
export ROS_IP=hostname -I | awk '{print $1}'
export ROS_HOSTNAME=hostname -I | awk '{print $1}'
export ROS_MASTER_URI=http://master_ip:11311
-
设置完成后保存,关闭当前打开的终端重新打开或者在当前打开的每个终端中重新加载一下.bashrc
source ~/.bashrc
2.2. 从机端:
export ROS_IP=hostname -I | awk '{print $1}'
export ROS_HOSTNAME=hostname -I | awk '{print $1}'
export ROS_MASTER_URI=http://hostname -I | awk '{print $1}':11311
到这里多机通讯就设置好了,验证是否正确设置的方法很简单,在移动机器人端启动roscore,然后在PC端输出话题列表
rostopic list
3. rospack
-
查看软件包列表
rospack list
-
定位软件包
rospack find package-name
-
查看ROS包
rospack profile
4. rosnode
-
查看节点、终止节点
rosnode info node-name
rosnode kill node-name
-
查看节点构成的计算图
rqt_graph
5. rostopic
-
输出当前运行的topic列表:
rostopic list
-
查看在一个话题上发布的数据
rostopic echo [topic]
(用–分割两个相邻的消息) -
查看topic的类型、发布者、订阅者
rostopic info topic-name
-
测量发布频率
rostopic hz topic-name
(每秒发布的消息数量)rostopic bw topic-name
(每秒发布信息所占的字节量) -
用命令行发布消息
rostopic pub -r rate-in-hz topic-name message-type message-content
rostopic pub -r 1 /turtle1/cmd_vel geometry_msgs/Twist '[2,0,0]''[0,0,0]'
6. rosmsg
-
查看消息类型
rosmsg show message-type-name
7. rosparam
-
查看参数列表
rosparam list
-
查询参数
rosparam get parameter_name
-
设置参数
rosparam set parameter_name parameter_value
(rosservice call/clear之后起作用) -
创建和加载参数文件
rosparam dump/load filename namespace
-
在启动文件中设置参数
<param name="param-name" value="param-value" />
(可在node标签中设置私有化参数) -
从文件中读取参数
<rosparam command="load" file="$(find package-name)/param-file" />
8. rosservice
-
列出所有服务
rosservice list
-
查看某一特定节点提供的服务
rosnode info node-name
-
查找提供特定服务的节点
rosservice node service-name
-
查看服务的数据类型
rosservice info service-name
-
查看服务类型的详情
rossrv show service-data-type-name
(–之前是请求项,之后是响应项) -
从命令行调用服务
rosservice call service-name request-content
9. rosbag
-
录制包文件
rosbag record -O filename.bag topic-names
-
回放包文件
rosbag play filename.bag
-
检查文件包
rosbag info filename.bag
10. rqt
-
用于显示和重放ROS bag文件的工具
rqt_bag
-
用于可视化ROS依赖关系图的工具
rqt_dep
-
使用image_transport显示图像的工具,
rqt_image_view
是image_view的rqt
版本rqt_image_view
-
画出发布在topic上的数据变化图
rqt_plot
-
日志输出工具
rqt_console
-
通过节点、节点管理器、话题、服务组成的计算图-点对点的网络形式,图形化查看相应关系
rqt_graph
-
用于配置ROS节点的记录器级别的工具
rqt_logger_level
-
提供交互式shell的Python GUI插件
rqt_shell
-
参数动态配置工具
rqt_reconfigure
更多官方参考Wiki:
rqt_common_plugins:rqt_action | rqt_bag | rqt_bag_plugins | rqt_console | rqt_dep | rqt_graph | rqt_image_view | rqt_launch | rqt_logger_level | rqt_msg | rqt_plot | rqt_publisher | rqt_py_common | rqt_py_console | rqt_reconfigure | rqt_service_caller | rqt_shell | rqt_srv | rqt_top | rqt_topic | rqt_web
参考:官方rqt wiki
运行rqt工具后可以在菜单里启动一些插件:
插件 | 功能描述 |
---|---|
topics monitor | 可以监视当前的某一个话题的传输数据,占用带宽,话题频率等等,相当于我们原来的rostopic echo msg_name |
message publisher | 可以自定义名称发布一个话题,并且指定话题发布的消息类型,发布数据,以及发布频率 |
message type brower | 可以查看当前所有已经定义的消息类型,包括自己定义的msg,基本相当于 |
robot steering | 可以发布一个话题cmd_vel,发布Twist话题消息,可以可视化的修改速度,转角变量,用于测试一些控制指令十分方便 |
bag | 可以用于录制一个bag文件包,可以任意选择指定录制哪些话题。也可以打开一个bag文件包,里面可以很方便的控制bag包play的播放或者暂停,同时可以指定播放前一帧和下一帧 |
node_graph(rqt_graph) | 查看当前节点运行的所有节点 |
process monitor | 查看当前的所有节点,以及节点的PID,占用CPU,占用内存 |
launch | 可以方便的在可视化界面下选择package和launch文件, 可以方便的运行和停止launch一个节点 |
image view | 可以很方便的查看ROS话题中传递的图片消息,这一点方便于我们观察机器人当前看到的图像 |
plot | 可以将某一个话题的数据(全部数据或部分数据)进行绘图显示,这样可以更加直观看到话题消息的变化,方便于我们调试 |
tf tree | 可以显示当前的tf树的结构 |
rviz | 在rqt里面也集成了rviz工具,我们可以很方便的从这里打开rviz工具 |