ROS基本命令

文件系统

rospack

  • 返回软件包的所在路径
$ rospack find [package_name]

roscd

  • 直接切换目录到某个软件包或者软件包集当中
$ roscd roscpp
  • 也可以切换到一个软件包或软件包集的子目录中
$ roscd roscpp/cmake

注意,roscd只能切换到那些路径已经包含在ROS_PACKAGE_PATH环境变量中的软件包

$ roscd log
# 进入ros的日志文件所在目录,可能返回log文件不存在

rosls

  • 直接按软件包的名称执行ls命令
$ rosls roscpp_tutorials

ROS节点

roscore

  • roscore是你在运行所有ROS程序前首先要运行的命令。

rosnode

  • 显示当前正在运行的ROS节点信息
$ rosnode list  
# 列出当前正在活动的节点
$ rosnode info /rosout
# rosnode info 命令返回的是某个指定节点的信息

rosrun

  • 允许你用包名直接运行软件包内的节点(而不需要知道包的路径)
$ rosrun [package_name] [node_name]
  • 使用重映射参数来改变节点名称
$ rosrun turtlesim turtlesim_node __name:=my_turtle

ROS话题

rqt_graph

  • 用动态的图显示当前运行的节点和话题
$ rosrun rqt_graph rqt_graph

rostopic

  • 查看可用的rostopic的子命令
$ rostopic -h
  • 显示在某个话题上发布的数据
$ rostopic echo [topic]
  • 查看list子命令需要的参数
rostopic list -h
  • 列出所有发布和订阅的话题及其类型的详细信息
$ rostopic list -v

rostopic type

  • 查看发布在话题上的消息的类型
$ rostopic type [topic]
  • 查看消息的详细信息
$ rosmsg show [message type]

rostopic pub

  • 把数据发布到当前某个正在广播的话题上
$ rostopic pub [topic] [msg_type] [args]
  • 示例
$ rostopic pub -1 /turtle1/cmd_vel geometry_msgs/Twist -- '[2.0, 0.0, 0.0]' '[0.0, 0.0, 1.8]'
  • 分析
rostopic pub
# 这条命令将消息发布到指定的话题

-1 
# 这一选项会让rostopic只发布一条消息,然后退出

/turtle1/cmd_vel
# 这是要发布到的话题的名称

geometry_msgs/Twist
# 这是发布到话题时要使用的消息的类型

--
# 这一选项(两个破折号)用来告诉选项解析器,表明之后的参数都不是选项。如果参数前有破折号(-)比如负数,那么这是必需的

'[2.0, 0.0, 0.0]' '[0.0, 0.0, 1.8]' 
# 一个turtlesim/Velocity消息有两个浮点型元素:linear和angular。在本例中,'[2.0, 0.0, 0.0]'表示linear的值为x=2.0, y=0.0, z=0.0,而'[0.0, 0.0, 1.8]'是说angular的值为x=0.0, y=0.0, z=1.8

rqt_plot

  • 在滚动时间图上显示发布到某个话题上的数据
$ rosrun rqt_plot rqt_plot

ROS服务

rosservice

rosservice list         输出活跃服务的信息
rosservice call         用给定的参数调用服务
rosservice type         输出服务的类型
rosservice find         按服务的类型查找服务
rosservice uri          输出服务的ROSRPC uri
  • 输出活跃的服务的信息
$ rosservice list
  • 查看服务类型
$ rosservice type [service]
  • 用给定的参数调用服务
$ rosservice call [service] [args]

ROS参数

参数服务器

  • 节点使用参数服务器来存储参数以及在运行时检索参数
  • 最好用于静态数据,例如配置参数
  • 参数可以在启动文件或单独的YAML文件中定义
rosparam set            设置参数
rosparam get            获取参数
rosparam load           从文件中加载参数
rosparam dump           向文件中转储参数
rosparam delete         删除参数
rosparam list           列出参数名
  • 列出参数名
$ rosparam list
  • 设置参数
$ rosparam set [param_name] value
  • 获取参数
$ rosparam get [param_name]
  • 显示参数服务器上的所有内容
$ rosparam get /
  • 将参数写入文件
rosparam dump params.yaml
  • 从文件读取参数
rosparam load params.yaml

安装依赖

  • 直接安装一个特定的依赖
sudo apt-get install ros-noetic-pointcloud_to_laserscan
# noetic为ROS版本,poincloud_to_laserscan为依赖包名称
  • 为一个软件包安装所有依赖
rosdep <package_name>

PS:这个命令由于一些众所周知的原因,可能无法使用,这里有一个解决方法

  • 一键安装一个功能包所有的依赖
rosdep install --from-paths src --ignore-src -r -y
# 用于安装工作空间中 src 路径下所有package的依赖项(由pacakge.xml文件指定)
posted @ 2021-11-04 14:43  TNTksals  阅读(241)  评论(0编辑  收藏  举报