1. 查看ros环境变量(ros中的工具只能用在环境变量中的软件包)
$ echo $ROS_PACKAGE_PATH
ROS_PACKAGE_PATH应该包含保存有ROS软件包的路径,且每个路径用冒号(:)分隔开来。
可以人为添加其他路径,用冒号隔开。
2. 环境变量设置文件
$sudo gedit ./.bashrc
包含: source /opt/ros/kinetic/setup.bash
source ~/catkin_ws/devel/setup.bash
3. 确认环境变量已经设置正确
$export | grep ROS
4. 安装树,图形化显示目录的结构
$sudo apt install tree (使用时在查看结构路径下$tree)
5. source刷新工作空间环境
$source ~/workspace_name/devel/setup.bash
6. 启动ROS系统,同时会启动Master,ros out,parameter server
$roscore
7. 创建一个包
$catkin_create_pkg package_name [dep1] [dep2] [dep3]
依赖项通常是std_msgs,roscpp,rospy等(依照需要自选)
8. Rosdep
1) 自动安装某个包所需的依赖(dep=depend)
$rosdep install package_name
2)检查package的依赖是否满足
$rosdep check package_name or $rosdep keys
3)更新本地的rosdep数据库
$rosdep update
9. Rospack 获取功能包的信息
1) 查找某个包的地址
$rospack find package_name
2) 列出本地所有package
$rospack list
3) 显示package的依赖包
$rospack depends package_name
4) 显示rospack的用法
$rospack help
10. Roscd
1) 跳转到某个package路径下
$roscd package_name
2) 切换到ROS保存日记文件的目录下,如果没有执行任何ROS程序,系统会报错说该目录不存在
$roscd log
11. Rosls 列举某个包下文件的信息
$rosls package_name
12. Rosed 编辑包中的文件
$rosed package_name file_name
13. Rosrun 启动一个节点
$rosrun package_name node_name
在启动的时候更改节点,主题或者参数的名称
$rosrun package_name package_node_name:=new_name
更改参数与上类似,只需在参数名称前添加一个下划线。
14. Rosnode 节点操作命令工具
1) 测试节点之间的连通性 2) 返回指定节点的信息
$rosnode ping node_name $rosnode info node_name
3) 列出当前活动的节点 4) 结束当前运行的节点进程
$rosnode list $rosnode kill node_name
15. Rostopic 主题操作命令工具 , $rostopic -h 查看子命令
1) 列出当前运行的所有主题
$rostopic list
2) 显示topic的属性(publisher&subscriber)
$rostopic info /topic_name
3) 显示某个topic的内容
$rostopic echo /topic_name
4) 向某个topic发布数据
$rostopic pub /topic_name
5) 显示主题的发布频率
$rostopic hz /topic_name(每秒发布的消息数量)
$rostopic bw /topic_name(带宽,每秒发布信息所占的字节量)
6) 输出topic中发布的消息类型(主题类型)
$rostopic type /topic_name
7) 按照消息类型找topic
$rostopic find message_type
16. Rqt工具
1) Rqt_graph 查看节点构成的计算图
$rosrun rqt_graph rqt_graph
2) Rqt_plot 实时显示一个发布到某个话题上的数据变化图形
$rosrun rqt_plot rqt_plot
3) Rqt_console 属于ROS日志框架(logging framework)的一部分,用来显示节点输出信息
$rosrun rqt_console rqt_console
4) Rqt_logger_level 允许修改节点运行时输出信息的日志等级(logger levels)(包括error,warn,info和debug)
$rosrun rqt_logger_level rqt_logger_level
17. Rosservice 连接到ROS的client/service框架
1) 输出可用服务的信息
$rosservice list
2) 输出服务类型
$roservice type service_name
3) 调用带参数的服务
$rosservice call service_name args
4) 依据服务类型寻找服务
$rosservice find service_type
5) 查看服务的服务类型(服务的信息)
$rosservice info service_name
6) 查看特定服务的节点
$rosservice node service_name
7) 打印出服务的ROSRPC uri
$rosservice uri
18. Rosparam 区别于topic和srvice通信的通信方式,是节点存 储参数的地方,维护着一个数据字典,字典里存储着各种参数和配置。
1) 列出参数名称
$rosparam list
2) 删除参数
$rosparam delete
3) 设置参数,要分别设置key和value
$rosparam set param_key param_value
4) 获取参数
$rosparam get param_key
$rosparam get / 可以显示参数服务器上的所有内容
5) 保存参数到文件
$rosparam dump file_name
6) 从文件加载参数,也可重载到一个新的命名空间namespace
$rosparam load file_name namespace
7) Param操作需要调用rosservice call clear才能生效
19. Roslaunch 启动定义在launch文件中的多个节点
使用格式:
$roslaunch package_name file_name.launch
20. Roscd 可以通过包名直接编辑包中的一个文件而不用打印包 的整个路径.
1) 使用格式:
$roscd package_name file_name
2) 利用
$roscd package_name
21. Rosmsg
1) 列出所有的msg
$rosmsg list
2) 显示某个msg的内容
$rosmsg show message_name
22. Rossrv
1) 列出所有的服务
$rossrv list
2) 显示出服务的描述
$rossrv show service_name
3) 列出包中的服务
$rossrv package
4) 列出包含服务的包
$rossrv packages
23. Rosbag 录制与回放数据;需要创建一个文件来存储数据;只有消息已经被发布了才可以被录制。
1) 记录某些topic到bag文件
$rosbag record topic_name
2) 记录所有节点发布的所有消息到bag文件
$rosbag record -a
3) 录制数据子集(录制某些特别指定的话题,而不是全部)
$rosbag record -O bagfile_name topic_name1
参数-0通知rosbag record将数据记录保存到名为bagfile_name.bag的文件中,同时后面的topic参数告诉rosbag record只能 录制这指定的话题。
4) 查看bag文件(需要在存储该.bag文件的目录的路径下)
$rosbag info bagfile_name
5) 回放bag文件
$rosbag play bagfile_name
默认模式下,rosbag play会在每条消息发布后等待一小段时间(0.2s)后才真正开始发布bag文件中的内容。这一小段时间可以通知订阅该message的订阅者消息数据马上到来。如果rosbag play在发布消息之后立即发布,订阅器可能会接收不到几条最先发布的消息。等待时间可以通过-d选项来指定。-s参数选项可以让rosbag play命令等待一段时间跳过bag文件初始部分后再真正开始回放。-r选项允许通过设定一个参数来该改变消息发布速率。例如rosbag play -r 2 bagfile_name #两倍速执行