当前位置: 首页 > news >正文

2.ROS2笔记-ROS2命令行操作

ROS2笔记-ROS2命令行操作

学习资料参考ROS2入门21讲图文教程.

启动方式

回到命令行来,一系列的命令都是通过字符的方式输入的,怎么输入呢,并不是使用写字本,而是使用专门的软件,叫做Terminal,终端

启动终端的方式有很多种:

  • 在应用列表中打开
  • 快捷键Ctrl+Alt+T打开
  • 鼠标右键选择打开终端

常用命令操作

我们先来体验一下Linux的常用命令,找找感觉。

cd

  • 语法:cd <目录路径>
  • 功能:改变工作目录。若没有指定“目录路径”,则回到用户的主目录

pwd

  • 语法:pwd
  • 功能:此命令显示出当前工作目录的绝对路径

mkdir

  • 语法:mkdir [选项] <目录名称>
  • 功能:创建一个目录/文件夹

ls

  • 语法:ls [选项] [目录名称…]
  • 功能:列出目录/文件夹中的文件列表

rm

  • 语法:rm [选项] <文件名称或目录名称…>
  • 功能:该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除。对于链接文件,只是删除了链接,原有文件均保持不变

sudo

  • 语法:sudo [选项] [指令]
  • 功能:以系统管理员权限来执行指令

ROS2中的命令行

ROS2命令行的操作机制与Linux相同,不过所有操作都集成在一个ros2的总命令中,后边第一个参数表示不同的操作目的,比如node表示对节点的操作,topic表示对话题的操作,具体操作干什么,还可以在后边继续跟一系列参数内容。
在这里插入图片描述

运行节点程序

想要运行ROS2中某个节点,我们可以使用ros2 run命令进行操作,例如我们要运行海龟仿真节点和键盘控制节点:

$ ros2 run turtlesim turtlesim_node
$ ros2 run turtlesim turtle_teleop_key

查看节点信息

当前运行的ROS系统中都有哪些节点呢?可以这样来查看:

$ ros2 node list

如果对某一个节点感兴趣,加上一个info子命令,就可以知道它的详细信息啦:

$ ros2 node info /turtlesim 

在这里插入图片描述

查看话题信息

当前系统中都有话题呢,使用如下命令即可查看:

ros2 topic echo /turtle1/pose 

发布话题消息

想要控制海龟动起来,我们还可以直接通过命令行发布话题指令:

$ ros2 topic pub --rate 1 /turtle1/cmd_vel geometry_msgs/msg/Twist "{linear: {x: 2.0, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 1.8}}"

在这里插入图片描述

发送服务请求

一只海龟太孤单,仿真器还提供改了一个服务——产生海龟,我们试一试服务调用,再来一只海龟:

$ ros2 service call /spawn turtlesim/srv/Spawn "{x: 2, y: 2, theta: 0.2, name: ''}"

直接通过命令行发布话题指令, 让第二个乌龟也运动起来

$ ros2 topic pub --rate 1 /turtle1/cmd_vel geometry_msgs/msg/Twist "{linear: {x: 2.0, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 1.8}}"

在这里插入图片描述

发送动作目标

想要让海龟完成一个具体动作,比如转到指定角度,仿真器中提供的这个action可以帮上忙,通过命令行这样发送动作目标:

$ ros2 action send_goal /turtle1/rotate_absolute turtlesim/action/RotateAbsolute "theta: 1.57"

在这里插入图片描述

录制控制命令

系统运行中的数据有很多,如果想要把某段数据录制下来,回到实验室再复现这段数据如何?ROS2中的rosbag功能还是很好用的,轻松实现数据的录制与播放:

$ ros2 bag record /turtle1/cmd_vel
$ ros2 bag play rosbag2_2022_04_11-17_35_40/rosbag2_2022_04_11-17_35_40_0.db3

放:

$ ros2 bag record /turtle1/cmd_vel
$ ros2 bag play rosbag2_2022_04_11-17_35_40/rosbag2_2022_04_11-17_35_40_0.db3

以上就是ROS2中我们常用的命令啦,每一个命令的子命令还有很多,大家可以自己尝试看看。

相关文章:

  • 【Proteus】:入门学习
  • SpringBoot启动流程简析
  • 如何在网站上安装 WordPress
  • java毕业设计社区健康管理系统源码+lw文档+mybatis+系统+mysql数据库+调试
  • 17、Java——汽车租赁系统
  • SpringSecurity系列 - 15 SpringSecurity 记住我 RememberMe
  • 2022出海东南亚:越南电商市场现状及网红营销特点
  • 测试用例设计专栏
  • Intel汇编-间接寻址
  • 测试工程师面试不会做的2门功课,你是不是也是呢?
  • 365天深度学习训练营-第5周:运动鞋品牌识别
  • Centos 7 Kubernetes-1.23 Kubesphere v3.3 Docker Harbor Git 安装过程
  • transformer系列应用于CV论文理解
  • Spring Cloud Alibaba 学习笔记
  • 1038:苹果和虫子
  • 【407天】跃迁之路——程序员高效学习方法论探索系列(实验阶段164-2018.03.19)...
  • 8年软件测试工程师感悟——写给还在迷茫中的朋友
  • CSS 提示工具(Tooltip)
  • EOS是什么
  • JavaScript DOM 10 - 滚动
  • JavaScript的使用你知道几种?(上)
  • JavaScript服务器推送技术之 WebSocket
  • JavaScript类型识别
  • learning koa2.x
  • LeetCode算法系列_0891_子序列宽度之和
  • SpiderData 2019年2月23日 DApp数据排行榜
  • SQLServer之创建显式事务
  • Swoft 源码剖析 - 代码自动更新机制
  • Vultr 教程目录
  • 不发不行!Netty集成文字图片聊天室外加TCP/IP软硬件通信
  • 你不可错过的前端面试题(一)
  • 小程序button引导用户授权
  • Nginx实现动静分离
  • PostgreSQL之连接数修改
  • Prometheus VS InfluxDB
  • ​Kaggle X光肺炎检测比赛第二名方案解析 | CVPR 2020 Workshop
  • ​Python 3 新特性:类型注解
  • ​queue --- 一个同步的队列类​
  • # Swust 12th acm 邀请赛# [ K ] 三角形判定 [题解]
  • #ifdef 的技巧用法
  • #我与Java虚拟机的故事#连载14:挑战高薪面试必看
  • (1)安装hadoop之虚拟机准备(配置IP与主机名)
  • (175)FPGA门控时钟技术
  • (JS基础)String 类型
  • (附源码)spring boot公选课在线选课系统 毕业设计 142011
  • (论文阅读11/100)Fast R-CNN
  • (七)c52学习之旅-中断
  • (三)终结任务
  • (一)VirtualBox安装增强功能
  • (转)从零实现3D图像引擎:(8)参数化直线与3D平面函数库
  • .NET CORE Aws S3 使用
  • .NET Core MongoDB数据仓储和工作单元模式封装
  • .NET MVC第五章、模型绑定获取表单数据
  • .NET 反射 Reflect
  • .netcore 6.0/7.0项目迁移至.netcore 8.0 注意事项