ROS常用命令行(一)

ROS常用命令工具包括rostopic (Topics)、rosservice (Services)、rosnode (Nodes)、rosparam (Parameters)、rosmsg (Messages)、rossrv (Services)和roswtf (General debugging)。

Nodes:节点,一个节点即为一个可执行文件,它可以通过ROS与其它节点进行通信。
Messages:消息,消息是一种ROS数据类型,用于订阅或发布到一个话题。
Topics:话题,节点可以发布消息到话题,也可以订阅话题以接收消息。
Master:节点管理器,ROS名称服务 (比如帮助节点找到彼此)。
rosout: ROS中相当于stdout/stderr。
roscore: 主机+ rosout + 参数服务器 (参数服务器会在后面介绍)。

查找工具
rospack允许您获取有关软件包的信息。
Example:
$ rospack find roscpp
would return:
/opt/ros/kinetic/share/roscpp

更改当前路径
roscd是rosbash套件的一部分,且只能切换到包含在 ROS_PACKAGE_PATH 环境变量中的软件包,要查看 ROS_PACKAGE_PATH 中包含的路径可以输入:echo $ROS_PACKAGE_PATH
Example:
$ roscd roscpp
$ pwd
would return:
/ opt / ros / kinetic / base / install / share
子目录
$ roscd roscpp/cmake
$ pwd
would return:
/ opt / ros / kinetic / base / install/share/roscpp/cmake

ROS存储日志
记录之前运行的ROS程序
$ roscd log

查看
rosls是rosbash套件的一部分。按名称使用ls。
Example:
$ rosls roscpp_tutorials

创建一个catkin程序包
创建一个包含src文件夹的文件夹
catkin_create_pkg 程序包名 std_msgs rospy roscpp
ROS的package命名习惯是不出现大写字母.后面的内容表示你这个ROS package的依赖项.

查询依赖包
直接依赖
$ rospack depends1 beginner_tutorials
间接依赖
$ rospack depends beginner_tutorials

启动ros
$ roscore
如果 roscore 不能初始化并提示缺少权限,这可能是因为~/.ros文件夹
归属于root用户(只有root用户才能访问),修改该文件夹的用户归属关系:
$ sudo chown -R ~/.ros

rosnode
显示当前运行的ROS节点信息。
$ rosnode list 指令列出活跃的节点
#rosout节点用于收集和记录节点调试输出信息,所以它总是在运行的。
$ rosnode info /rosout 命令返回的是关于一个特定节点的信息。
$ rosnode ping /rosout 测试到节点的连接
$rosnode machine 显示当前设备名
$rosnode kill /my_turtle 杀死一个正在运行的节点
$rosnode cleanup 清除无法到达的节点的注册信息
删除连接信息未被确认的虚拟节点的注册信息。当节点由于意外事件而异常终止时,该命令将从节点目录中删除连接中断的节点。这个命令很少使用,但是它非常有用,因为用户不需要重新运行roscore。

rosrun
rosrun 允许你使用包名直接运行一个包内的节点(而不需要知道这个包的路径)。
$ rosrun turtlesim turtlesim_node __name:=my_turtle
使用Remapping Argument修改了节点名
_name可修改节点名 _param可以修改节点参数

$ rosrun turtlesim turtlesim_node
$ rosrun turtlesim turtle_teleop_key
$ roslaunch input_js_control input_js_control.launch

rostopic
$rostopic bw /joy 显示话题使用的带宽
$rostopic echo /joy 将消息打印到屏幕
$rostopic hz /joy 显示话题发布速率
$rostopic list 打印动态话题列表 配合-v使用
$rostopic pub 发送数据到话题
$rostopic type /joy 打印话题种类 | rosmsg show 可查看消息类型的基本数据类型

rostopic pub example
$rostopic pub -1 /turtle1/cmd_vel geometry_msgs/Twist – ‘[2.0, 0.0, 0.0]’ ‘[0.0, 0.0, 1.8]’
-1 :(单个破折号)这个参数选项使rostopic发布一条消息后马上退出。
/turtle1/command_velocity :这是消息所发布到的话题名称。
turtlesim/Velocity :这是所发布消息的类型。
– :(双破折号)这会告诉命令选项解析器接下来的参数部分都不是命令选项。这在参数里面包含有破折号-(比如负号)时是必须要添加的。
2.0 1.8 : 正如之前提到的,在一个turtlesim/Velocity消息里面包含有两个浮点型元素:linear和angular。在本例中,2.0是linear的值,1.8是angular的值。
$ rostopic pub /turtle1/cmd_vel geometry_msgs/Twist -r 1 – ‘[2.0, 0.0, 0.0]’ ‘[0.0, 0.0, 1.8]’

rosservice
rosservice可以很轻松的使用 ROS 客户端/服务器框架提供的服务。
$rosservice list 输出可用服务的信息
$rosservice call 调用带参数的服务
$rosservice info /turtle1/set_pen 查看/turtle1/set_pen服务的节点名称、URI、类型和参数
$rosservice type /turtle1/set_pen 输出服务类型 | rossrv show
$rosservice find turtlesim/SetPen 依据服务类型寻找服务
$rosservice uri /turtle1/set_pen 检查服务的ROSRPC URI
rosservice uri 输出服务的ROSRPC uri

rossparam
rosparam使得我们能够存储并操作ROS 参数服务器(Parameter Server)上的数据。

rosparam load 从文件读取参数
rosparam dump 向文件中写入参数
rosparam delete 删除参数
$rosparam list 列出参数名
$rosparam get 获取参数
$rosparam set 设置参数

$ rosparam dump [file_name]
$ rosparam load [file_name] [namespace]

你可能感兴趣的:(ROS)