【ROS】1.1 ROS基本命令介绍
原视频
ROS基本命令
右键新标签页查看大图!
have to do
Command
| Command | Result | 中文解释 | 图示 |
|---|---|---|---|
| roscore | Open the core of the ROS. | 启动ROS Master。 | ![]() |
| sudo apt install python3-ros+ | Install the ros+ command. | 下载需要用到的命令,如rosservice(如果你的python版本不是python3,用python-ros+就行) | ![]() |
Error
| Error | Whose | Solution |
|---|---|---|
![]() |
roscore | gedit ~/.bashrcexport ROS_MASTER_URI=http://localhost:11311 export ROS_HOSTNAME=localhost export ROS_IP='hostname -I' source ~/.bashrc |
| “正在等待缓存锁:无法获得锁……” | apt install | use 'sudo -i' and install with root |
| 若之后的指令运行不了,检查是否有右侧所示包,有关ros系统的安装问题参考Ubuntu 20.04安装Ros Noetic及Ubuntu 18.04安装ROS Melodic(两版本详细填坑) | rosrun turtlesim等等 | sudo apt-get install ros-noetic-rospy、sudo apt install ros-noetic-roslaunch、sudo apt install ros-noetic-rosbash、sudo apt install ros-noetic-turtlesim、sudo apt-get install ros-noetic -teleop-twist-keyboard(注意我的版本是ubuntu20.04,因此对应ros-noetic系统) |
need to run
rosrun: ros-run
| Command | Result | 中文解释 | 图示 |
|---|---|---|---|
| rosrun turtlesim | Show you all the turtlesim commands. | 列出所有可用的turtlesim命令。 | ![]() |
| rosrun turtlesim turtlesim-node | Create and run a turtle node. | 启动小海龟结点、小海龟仿真器。 | ![]() |
| rosrun turtlesim turtle_teleop_key | Create and run a control node to control turtle with keyboard. | 启动小海龟控制结点。 | ![]() |
Error
| Error | Whose | Solution |
|---|---|---|
![]() |
rosrun turtlesim | 打完指令之后,不要回车,tab两次就能出结果。 |
how to know
rqt_
| Command | Result | 中文解释 | 图示 |
|---|---|---|---|
| rqt_graph | Show a graph contained nodes, topics and so on. | 利用基于qt的可视化工具显示系统当前的结点和话题信息。 | ![]() |
| rqt_plot | rqt_plot /turtle1/pose/x:y: A plot show just-in-time turtle1's pose. | 基于qt的用于显示某信息的坐标工具。 | ![]() |
ros+
| Command | Add | Result | 图示 |
|---|---|---|---|
| rosnode | list,info,ping,machine,kill,cleanup | rosnode list: Show the names of all the nodes. rosnode info ABC: Show the information of the node named ABC, such as Publications, Subscriptions, Services and some Low-level communication information. |
/rosout is a default active node. |
| rostopic | bw,delay,echo,find,hz,info,list,pub,type | rostopic list: Show the names of all the topics. rostopic pub ABC content[tab,tab]: Publish the content of ABC. Tab twice will make the content show. rostopic hz: 用来检测消息标题的发布频率。 |
![]() |
| rosmsg | show,info,list,md5,package,packages | rosmsg show [tab,tab]: Show message description. Tab twice will make the message description show. | ![]() |
| rosservice | list,call,args,find,info,type,uri | rosservice list: Show the names of all the services. rosservice call ABC content[tab,tab]: Open a service named ABC, whose content can be shown by tab twice. |
![]() /spwan是产卵的意思。 |
| rosbag | record,play | rosbag record: Start recording messages. rosbag play ABC: Play the messages of the bag named ABC. |
![]() |
附录
ROS可以通过在shell环境中输入命令来进行文件系统的使用、源代码编辑、构建、调试和功能包管理等。为了正确使用ROS,除了基本的Linux命令之外,还需要熟悉ROS专用命令。为了熟练掌握ROS的各种命令,我们对每个命令的功能进行了简单的描述,并给出了例子。在介绍每条命令时,考虑到使用的频率和重要性,标了星级评分。虽然很难从一开始就很熟练地使用所有的命令,但是随着使用的次数增多,读者会发现越来越方便快捷地使用各个ROS命令。


ROS功能包命令
roscd:移动功能包
roscd [功能包名称]
这是一个移动到保存有功能包的目录的命令。该命令的基本用法是在roscd命令之后将功能包名称写入参数。在以下示例中,turtlesim功能包位于安装ROS的目录中,但是,如果将创建的功能包名称(例如,在上一章中创建的your_pkg)作为参数,则会移至您指定的功能包的目录。这是在使用基于命令行的ROS时常用的命令。
$ roscd turtlesim
/ opt / ros / kinetic / share / turtlesim
$ roscd your_pkg
~/ catkin_ws / src / your_pkg
rosls: ROS文件列表
rosls [功能包名称]
该命令查看指定的ROS功能包的文件列表。您可以使用roscd命令移动到功能包,然后使用正常的ls命令执行相同的功能,但有时需要立即查看。实际中并不经常使用。
$ rosls turtlesim
cmake images msg srv package.xml
ROS执行命令
ROS执行命令管理ROS节点的运行。最重要的是,roscore被用作节点之间的名称服务器。执行命令是rosrun和roslaunch。rosrun运行一个节点,当运行多个节点或设置各种选项时使用roslaunch。rosclean是删除节点执行时记录的日志的命令。
roscore: 运行roscore
roscore [选项]
roscore命令会运行主节点,主节点管理节点之间的消息通信中的连接信息。主节点是使用ROS时必须首先被运行的必要元素。ROS 主节点由roscore运行命令来驱动,并作为XMLRPC服务器运行。主节点接收多种信息的注册,如节点的名称、话题和服务名称、消息类型、URI地址和端口号,并在收到节点的请求时将此信息通知给其他节点。此外,会运行rosout ,这个命令用于记录ROS中使用的ROS标准输出日志,例DEBUG、INFO、WARN、
ERROR和FATAL。它还运行一个管理参数的参数服务器。当执行roscore时,将用户设置的ROS_MASTER_URI作为主URI,并且驱动主节点,用户可以在~/.bashrc文件中设置。ROS_MASTER_URI。
rosrun:运行ROS节点
rosrun [功能包名称] [节点名称]
rosrun是执行指定的功能包中的一个节点的命令。以下例子运行turtlesim功能包的turtlesim_node节点。请注意,屏幕上出现的乌龟图标是随机选择并运行的。你也可以敲击[Tab] 观察turtlesim下的其他程序功能。
$ rosrun turtlesim turtlesim_node
roslaunch:运行多个ROS节点
roslaunch [功能包名称] [ launch 文件名]
roslaunch是运行指定功能包中的一个或多个节点或设置执行选项的命令。使用launch文件启动的方式对于运行多个节点非常有用,这是ROS中常用的执行方法。实例见实验六。
rosclean:检查及删除ROS日志
rosclean [选项]
该命令检查或删除ROS日志文件。在运行roscore时,对所有节点的记录都会写入日志文件,随着时间的推移,需要定期使用rosclean命令删除这些记录。以下是检查日志使用情况的示例。
$ rosclean check
320K ROS node logs
→ 意味着 ROS 日志一共占 320KB
当运行roscore时,如果显示以下警告信息,则意味着日志文件超过1GB,如果用户觉得会让系统不堪重负,请使用rosclean命令将其删除。
WARNING : disk usage in log directory [/ xxx /. ros / log ] is over 1GB .
以下是删除ROS日志存储库(笔者是/home/rt/.ros/log)的所有日志的示例。如果要删除它,请按y按钮将其删除。
$ rosclean purge
Purging ROS node logs .
PLEASE BE CAREFUL TO VERIFY THE COMMAND BELOW !
Okay to perform :
rm -rf /home/pyo/.ros/log
( y / n )?
ROS信息命令
ROS信息命令用于识别话题、服务、节点和参数等信息。尤其是rostopic、rosservice、
rosnode和rosparam经常被使用,并且rosbag是ROS的主要特征之一,它具有记录数据和回放功能,务必要掌握。
运行节点
我们将使用下面的命令,利用ROS提供的turtlesim来了解相关的节点、话题和服务。在使用ROS信息命令进行测试之前,需要做好以下准备工作。为确保顺利进行,关闭所有以前运行的终端。然后打开一个新的终端并运行以下命令。
$ roscore
为了运行turtlesim功能包中的turtlesim_node节点,打开一个新的终端并运行以下命令。这将从turtlesim功能包运行turtlesim_node。用户会在一个蓝色的屏幕上看到乌龟。
$ rosrun turtlesim turtlesim_node
运行turtlesim功能包中的turtle_teleop_key节点,打开一个新的终端并运行以下命令。这将在turtlesim功能包中运行turtle_teleop_key。一旦执行,可以在该终端窗口上,用键盘上的方向键控制乌龟。请自己尝试。当您按下方向键时,屏幕上的乌龟会移动,这是一个简单的仿真,但这是将驱动机器人所需的移动速度(m/s)和旋转速度(rad/s)用消息传送的。
$ rosrun turtlesim turtle_teleop_key
rosnode:ROS节点
rosnode list:列出正在运行中的所有节点
这是列出连接到roscore的所有节点的命令。如果已经运行了roscore和之前准备好的节点(turtlesim_node,turtle_teleop_key),则可以看到终端中列出了用于在roscore进行日志记录的rosout,以及teleop_turtle和turtlesim节点。
$ rosnode list
/rosout
/teleop_turtle
/turtlesim
rosnode info [节点名称]:检查指定节点的信息
使用rosnode info命令可以查看指定节点的信息。基本上,用户可以检查发布者、订阅者和服务等。此外,还可以检查关于节点运行URI和话题输入/输出的信息。由于会显示大量信息,因此省略了内容,所以请务必亲自运行。
$ rosnode info / turtlesim
------------------------------------------------
Node [/ turtlesim ] Publications :
* / turtle1 / color _ sensor [ turtlesim / Color ]
rosnode kill [节点名称]:终止指定节点的运行
这是一个终止正在运行的节点的命令。您可以在运行节点的终端窗口中使用[Ctrl+c]直接终止节点,但也可以指定要结束的的节点,如下所示。
$ rosnode kill /turtlesim
killing /turtlesim
killed
如果使用该命令终止了节点,则会在运行该节点的终端窗口上显示如下警告消息,并关闭该节点。
[ WARN ] [ 1499668430 . 215002371 ]: Shutdown request received .
[ WARN ] [ 1499668430 . 215031074 ]: Reason given for shutdown : [ user request ]
rostopic: ROS话题
在运行ROS话题示例之前,请先关闭所有节点。通过在不同的终端窗口中分别运行以下命令来运行turtlesim_node和turtle_teleop_key。
$ roscore
$ rosrun turtlesim turtlesim_node
$ rosrun turtlesim turtle_teleop_key
rostopic list:显示当前正在发送和接收的所有话题的列表。
$ rostopic list
/ rosout
/ rosout_agg
/ turtle1/cmd_vel
/ turtle1/color_sensor
/ turtle1/pose
rostopic echo [话题名称]:实时显示指定话题的消息内容
以下示例实时显示组成/turtle1/pose话题的x、y、theta、linear_velocity和angular_velocity的数据。
$ rostopic echo /turtle1/pose
x:5.35244464874
y:5.544444561
theta:0.0
linear_velocity:0.0
angular_velocity:0.0
rostopic info [话题名称]:显示指定话题的信息
在以下示例中,用户可以看到/turtle1/pose话题使用turtlesim/Pose消息类型,发布到/turtlesim节点,并且没有实际订阅的话题。
$ rostopic info /turtle1/pose
Type:turtlesim/Pose
Publishers:*/turtlesim(http://192.168.1.100:42443/)
Subscribers:None
rostopic pub [话题名称] [消息类型] [参数]:使用指定的话题名称发布消息
以下是使用/turtle1/cmd_vel话题名称发布类型为geometry_msgs/Twist的消息的示例
$ rostopic pub -1 /turtle1/cmd_vel geometry_msgs/Twist -- ‘[2.0, 0.0 ,0.0 ]’ ‘[0.0 ,0.0 ,1.8 ]’
publishing and latching message for 3 . 0 seconds
每个选项的描述如下:


ROS catkin命令
ROS的catkin命令用于使用catkin 构建系统来构建功能包。
catkin_create_pkg:自动生成功能包
catkin _ create _ pkg [功能包名称] [依赖性功能包 1 ] [依赖性功能包 2 ] ...
catkin_create_pkg是创建一个包含CMakeLists.txt和package.xml文件的空功能包的命令。以下例子显示了使用catkin_create_pkg命令创建一个依赖于roscpp和std_msgs的my_package功能包。
$ catkin_create_pkg my_package roscpp std_msgs
catkin_make:基于catkin 构建系统的构建
catkin_make [选项]
catkin_make是构建用户创建的功能包或构建下载的功能包的命令。以下示例是构建~/catkin_ws/src目录中所有功能包的示例。
$ cd ~/catkin_ws
$ catkin_make
如果要只构建一部分功能包,而不是全部功能包,请使用“--pkg [包名]”选项来运行,如下所示:
$ catkin_make -- pkg my_package
【ROS】1.1 ROS基本命令介绍的更多相关文章
- SLAM+语音机器人DIY系列:(二)ROS入门——2.ROS系统整体架构
摘要 ROS机器人操作系统在机器人应用领域很流行,依托代码开源和模块间协作等特性,给机器人开发者带来了很大的方便.我们的机器人“miiboo”中的大部分程序也采用ROS进行开发,所以本文就重点对ROS ...
- ROS Learning-009 beginner_Tutorials ROS服务 和 ROS参数
ROS Indigo beginner_Tutorials-08 ROS服务 和 ROS参数 我使用的虚拟机软件:VMware Workstation 11 使用的Ubuntu系统:Ubuntu 14 ...
- ROS Learning-008 beginner_Tutorials ROS话题
ROS Indigo beginner_Tutorials-07 ROS话题 我使用的虚拟机软件:VMware Workstation 11 使用的Ubuntu系统:Ubuntu 14.04.4 LT ...
- ROS Learning-012 beginner_Tutorials (编程) 创建自定义的ROS消息和ROS服务
ROS Indigo beginner_Tutorials-11 创建自定义的ROS消息和ROS服务 我使用的虚拟机软件:VMware Workstation 11 使用的Ubuntu系统:Ubunt ...
- ROS Learning-007 beginner_Tutorials ROS节点
ROS Indigo beginner_Tutorials-06 ROS节点 我使用的虚拟机软件:VMware Workstation 11 使用的Ubuntu系统:Ubuntu 14.04.4 LT ...
- ros::spin() 和 ros::spinOnce() 区别及详解
版权声明:本文为博主原创文章,转载请标明出处: http://www.cnblogs.com/liu-fa/p/5925381.html 博主提示:本文基于ROS Kinetic Kame,如有更(g ...
- 《The Linux Command Line》 读书笔记01 基本命令介绍
<The Linux Command Line> 读书笔记01 基本命令介绍 1. What is the Shell? The Shell is a program that takes ...
- SLAM+语音机器人DIY系列:(二)ROS入门——1.ROS是什么
摘要 ROS机器人操作系统在机器人应用领域很流行,依托代码开源和模块间协作等特性,给机器人开发者带来了很大的方便.我们的机器人“miiboo”中的大部分程序也采用ROS进行开发,所以本文就重点对ROS ...
- (十)创建ROS消息和ROS服务
ROS总教程(中文版) 110.创建ROS消息和ROS服务
- ROS教程4 ROS自定义srv类型及使用
创建srv文件 在上一节单独为自定义的消息和服务的包 test_msgs 里面 创建 srv文件夹 进入创建 testsrv.srv 文件 ,内容为: (srv文件和msg文件类似,唯一不同的是它包含 ...
随机推荐
- 移动硬盘插入win10检测到却不显示盘符解决方法
1.开始菜单中的设置-----设备. 2.选择"蓝牙和其他设备" 3.在其他设备栏中就能看到检测到的移动硬盘,点击删除设备后重新插入移动硬盘即可在此电脑上显示盘符.
- 浅谈Tox之一
本文分享自天翼云开发者社区<浅谈Tox之一>,作者:Moonriver What is tox? tox是通用的virtualenv管理和测试命令行工具,可用于: 使用不同的Python版 ...
- ABC393D题解
大概评级:黄. 签到题. 显然,我们需要找到所有的 \(1\) 的位置,然后看其它的 \(1\) 靠拢过来需要几次操作,然后对于每个位置的答案取个最小值就好了. 直接暴力肯定是不行的,考虑优化计算其它 ...
- Halcon2DMeasure常用算子
1.create_metrology_model() create_metrology_model( : : : MetrologyHandle) 函数说明: 创建测量几何图形所需的数据结构/模型 ...
- linux系统升级/更新OpenSSL版本操作流程记录
问题描述:有时OpenSSL版本过老升级,或者需要更新OpenSSL版本 1.登录linux系统后输入openssl version 查看现在使用的版本 我的输入后版本信息为:OpenSSL 1.1. ...
- PHP中处理html相关函数集锦
1.html_entity_decode() 函数把 HTML 实体转换为字符. Html_entity_decode() 是 htmlentities() 的反函数. 例子: <?Php $s ...
- 基于PHPstream扩展手动实现一个redis客户端
描述 redis是一个经典的key-value缓存数据库,采用C/S架构.当我们安装成功以后,你就知道它有个服务端,启动后默认监听6379端口,然后提供一个客户端工具redis-cli. 我们可以使用 ...
- Django实战项目-学习任务系统-兑换物品管理
接着上期代码框架,开发第5个功能,兑换物品管理,再增加一个学习兑换物品表,主要用来维护兑换物品,所需积分,物品状态等信息,还有一个积分流水表,完成任务奖励积分,兑换物品消耗积分. 要想激励一个人的学习 ...
- 如何打造你自己的 AI 软件工程师(像 Devin 那样)
扩展 DeepSeek 的强化学习蓝图路线到AI的其他方面 Nikhil Anand 图片由GPT-4o生成 "AI 软件工程师"这个概念,其实已经不再遥远了.已经有一些技术在逐步 ...
- [源码系列:手写spring] IOC第六节:资源和资源加载器
主要内容 本节新增 Resource接口 定义对资源的抽象和访问,并且添加三个Resource接口的简单实现类. FileSystemResource 文件系统资源的实现类 ClassPathReso ...



gedit ~/.bashrc





/rosout is a default active node.


/spwan是产卵的意思。