从零学ROS
ROS常用命令
前言
ORBSLAM2代码还没完全看完,想着与ROS同步进行吧,反正后面也用的到。
先学习下ROS常用的一些指令。
一、ROS常用的一些指令
1.打印ros的环境变量
$echo $ROS_PACKAGE_PATH
环境变量个人的理解就是给一个具体的文件路径,这样就能快速查找到文件。百度的解释是:
在我的电脑上运行的结果如下:
因为我装了ORBSLAM2并且已经设置好了环境变量。感觉这里的$符号和camke里的有点类似,是表示取值的意思,如果直接输入echo ROS_PACKAGE_PATH
输出结果如下:
2.确定环境变量已经设置正确
export | grep ROS
相当于查找ROS文件并且进行输出。
3.设置环境变量
sudo gedit ./.bashrc
这个命令会打开.bashrc文件,在最底端输入配置路径就行。
这里面包含:source /opt/ros/kinetic/setup.bash
source ~/catkin_ws/devel/setup.bash
4.查看软件包与定位软件包
rospack list 或者 rospack find package-name
rospack list 会列出你所有的rospackage,rospack find pkg-name会输出你指定的rospackage
5.输出当前的rostopic列表
rostopic list
他会输出你当前运行的所有topic。以小乌龟例程为例
6.查看节点、终止节点
rosnode info node-name
rosnode kill node-name
打印小乌龟的节点信息
7.查看节点构成
rqt_graph
ros中rqt是一个图形化用户接口框架,可以依靠rqt运行GUI
对于单纯的小乌龟例程如下:
当然,这时候如果你加一个键盘控制
8.查看一个话题发布数据
rostopic echo [topic]
以小乌龟为例。当键盘控制小乌龟移动的时候就会。使用rostopic echo /turtle1/cmd_vel
就会显示发布数据的内容
9.查看topic类型、发布者、订阅者
rostopic info topic-name
以小乌龟为例,先rostopic list
查看有哪些topic
然后输入rostopic info /turtle1/cmd_vel
查看这个topic的信息
这边能够查看到的是这个topic的发布者与订阅者
10.查看topic的发布频率
rostopic hz topic-name //每秒发布的信息数量
rostopic bw topic-name //每秒发布信息所占的字节数
10.用命令行发布消息
rostopic pub -r rate-in-hz topic-name message-type message-content
rate-in-hz
表示以一定的频率发布,topic-name
表示的是发布的话题名称,message-type
表示的是发布的消息类型,message-contenet
表示的是发布的内容
例如
rostopic pub -r 1 /turtle1/cmd_vel geometry_msgs/Twist '[2,0,0]''[0,0,0]'
查看消息类型
rosmsg show message-type-name
11.查看参数列表
rosparam list
12.查询参数
rosparam get parameter_name
13.设置参数
rosparam set parameter_name parameter_value //(rosservice call/claer
后起作用)
14.创建或加载参数文件
rosparam dump/load filename namespace
15.在启动文件中设置参数
<param name="param_name" value="param_value"/>
16.从文件中读取参数
<rosparam command="load" file="$(find_pkg_name)/param-file"/>
17.ros服务,列出所有服务
rosservice list
18.查看某一个特定节点提供服务
rosnode info node_name
19.查看某服务的数据类型
rosservice info service-name
20用命令行调用服务
rosservice call service-name request-content
21查看服务类型详情
rossrv show service-data-type-name
22.录制文件包
rosbag record -O filename.bag topic-name
回放文件包
rosbag play filename.bag
检查文件包
rosbag info filemname.bag