首页 > 其他分享 >ROS2二十一讲学习——ROS2命令行操作

ROS2二十一讲学习——ROS2命令行操作

时间:2024-10-08 19:18:35浏览次数:3  
标签:二十一 语法 ROS2 命令行 操作 目录 ros2

Linux中的命令行

命令行界面(Command-line interface,缩写:CLI):

  • 通常认为,命令行界面(CLI)没有图形用户界面(GUI)那么方便用户操作。因为,命令行界面的软件通常需要用户记忆操作的命令,但是,由于其本身的特点,命令行界面要较图形用户界面节约计算机系统的资源。在熟记命令的前提下,使用命令行界面往往要较使用图形用户界面的操作速度要快。所以,在现在的图形用户界面的操作系统中,通常都保留着可选的命令行界面。
  • 虽然现在许多电脑系统都提供了图形化的操作方式,但是却都没有因而停止提供文字模式的命令行操作方式,相反的,许多系统反而更加强这部分的功能,例如Windows就不只加强了操作命令的功能和数量,也一直在改善Shell Programming的方式。而之所以要加强、改善,自然是因为不够好;操作系统的图形化操作方式对单一客户端电脑的操作,已经相当方便,但如果是一群客户端电脑,或者是24小时运作的服务器电脑及路由器、交换器等电信设备,图形化操作方式有时会力有未逮,所以需要不断增强命令行接口的脚本语言和宏语言来提供丰富的控制与自动化的系统管理能力,例如Linux系统的Bash或是Windows系统的Windows PowerShell。

启动方式

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

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

常用命令操作

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

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

      注意:" .. "  —————— 上一级目录
      		" ~ "  —————— 当前用户所在目录
    

在这里插入图片描述

  1. mkdir

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

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

在这里插入图片描述
5. gedit

  • 语法:gedit <文件名称>
  • 功能:打开gedit编辑器编辑文件,若没有此文件则会新建

在这里插入图片描述

  1. mv
  • 语法:mv [选项] <源文件或目录> <目地文件或目录>
  • 功能:为文件或目录改名或将文件由一个目录移入另一个目录中
  1. cp
  • 语法:cp [选项] <源文件名称或目录名称> <目的文件名称或目录名称>
  • 功能:把一个文件或目录拷贝到另一文件或目录中,或者把多个源文件复制到目标目录中
    在这里插入图片描述
  1. rm
  • 语法:rm [选项] <文件名称或目录名称…>
  • 功能:该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除。对于链接文件,只是删除了链接,原有文件均保持不变
    在这里插入图片描述
  1. sudo
  • 语法:sudo [选项] [指令]
  • 功能:以系统管理员权限来执行指令
    在这里插入图片描述

ROS2中的命令行

ROS2命令行的操作机制与Linux相同,不过所有操作都集成在一个ros2的总命令中,后边第一个参数表示不同的操作目的,比如node表示对节点的操作,topic表示对话题的操作,具体操作干什么,还可以在后边继续跟一系列参数内容。
在这里插入图片描述
接下来我们以小海龟仿真为例,一起感受下ROS2命令行的主要功能,也对ROS2中的核心概念有一个大致了解。

运行节点程序

想要运行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 list

还想看到某一个话题中的消息数据,加上echo子命令试一试:

$ 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: ''}"

在这里插入图片描述

发送动作目标

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

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

在这里插入图片描述

录制控制命令

系统运行中的数据有很多,如果想要把某段数据录制下来,回到实验室再复现这段数据如何?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中我们常用的命令。

标签:二十一,语法,ROS2,命令行,操作,目录,ros2
From: https://blog.csdn.net/overwizard/article/details/142753960

相关文章

  • 国庆期间不停歇—学习ROS2第四天
    1.现在终端中创建文件其次在该文件目录下打开,最后在VS中创建两个文件夹,最后一个是src在终端中创建pkg,  ros2pkgcreatedemo_python_topic--build-typeament_python--dependenciesrclpyexample_interfaces--licenseApache-2.0ros2中创建功能包包的名字demo_py......
  • Linux 学习笔记(二):深入理解用户管理、运行级别与命令行操作
    Linux学习笔记(二):深入理解用户管理、运行级别与命令行操作前置学习内容:Linux学习(一)1.用户管理1.1用户密码管理创建用户密码使用passwd命令可以为指定用户设置密码:sudopasswd`userName`密码找回当忘记密码时,可以采取以下步骤找回:在登录界面按e键进入编......
  • cmd发邮件:Windows命令行发送邮件的教程!
    cmd发邮件怎么通过命令行实现?如何使用CMD发送邮件?通过cmd发邮件,你可以在不打开任何邮件客户端的情况下,直接从命令行发送邮件。AokSend将详细介绍如何使用cmd发邮件功能,让你轻松掌握这一实用技能。cmd发邮件:基本原理cmd发邮件的基本原理是通过调用Windows系统中的邮件发送工......
  • 博弈论——颤抖手纳什均衡(二十一)
    在博弈论中,纳什均衡(NashEquilibrium)是博弈各方的一种策略组合,在这个组合下,每个参与者的策略都是对其他参与者策略的最优反应。换句话说,在纳什均衡下,任何一方都没有动机单方面改变自己的策略,因为那样做不会带来更高的收益。然而,纳什均衡的稳定性问题引发了大量的研究。特别是当我......
  • 结对项目——实现一个自动生成小学四则运算题目的命令行程序
    这个作业属于哪个课程https://edu.cnblogs.com/campus/gdgy/CSGrade22-34/这个作业要求在哪里结对项目-作业-计科22级34班-班级博客-博客园(cnblogs.com)这个作业的目标结对项目——实现一个自动生成小学四则运算题目的命令行程序成员1陈奕奕32220045......
  • 结对项目:自动生成小学四则运算题目的命令行程序
    这个作业属于哪个课程计科22级12班这个作业要求在哪里https://edu.cnblogs.com/campus/gdgy/CSGrade22-12/homework/13221姓名学号曾繁曦3122004841吴健民3122004667PSP表格一、流程图二、模块设计1.模块划分Main模块(Main.java)功能描述:程序的入......
  • 实现一个自动生成小学四则运算题目的命令行程序
    这个作业属于哪个课程计科22级12班这个作业要求在哪里结对项目这个作业的目标实现一个自动生成小学四则运算题目的命令行程序。一:詹洛熙3122004800GitHub链接(https://github.com/Zhannoi/-/tree/main)二:PSP表格PSP2.1PersonalSoftwarePr......
  • 实现一个自动生成小学四则运算题目的命令行程序
    这个作业属于哪个课程https://edu.cnblogs.com/campus/gdgy/CSGrade22-34这个作业要求在哪里https://edu.cnblogs.com/campus/gdgy/CSGrade22-34/homework/13230这个作业的目标通过实现一个自动生成小学四则运算题目的命令行程序提高软件开发能力姓名李佳聪......
  • 基于python的四则运算自动生成的命令行程序
    这个作业属于哪个课程https://edu.cnblogs.com/campus/gdgy/CSGrade22-34这个作业要求在哪里https://edu.cnblogs.com/campus/gdgy/CSGrade22-34/homework/13230这个作业的目标基于python的四则运算自动生成的命令行程序团队成员姚彬彬3122006324一.Githu......
  • Pulsar 入门实战(4)--命令行使用
    本文主要介绍Pulsar的命令行使用,相关的环境及软件信息如下:CentOS7.9.2009、Pulsar3.3.0、Java17.0.10。1、环境配置在 conf/client.conf中配置Pulsar相关地址:webServiceUrl=http://10.49.196.30:8080,10.49.196.31:8080,10.49.196.32:8080brokerServiceUrl=pulsar:/......