ROS2指令总结(跟随古月居教程学习)
博主跟随古月居博客进行ROS2学习,对ROS2相关指令进行了总结,方便学习和回顾。
古月居ROS2博文链接:https://book.guyuehome.com/
本文会持续进行更新,觉得有帮助的朋友可以点赞收藏。
1. ROS2安装命令
$ sudo apt update && sudo apt install locales # 软件源更新和安装
$ sudo locale-gen en_US en_US.UTF-8 # 将ubuntu系统语言环境改为英文的UTF-8,防止出现中文乱码
$ sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 # 更新Linux系统的本地化设置,特别是语言环境(locale)设置
$ export LANG=en_US.UTF-8 # 使当前所使用的编码格式生效
$ sudo apt update && sudo apt install curl gnupg lsb-release # 添加ROS2软件源
$ sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg # 设置下载软件源的密钥
$ echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(source /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null # 将软件源添加到系统对应的列表中
$ sudo apt update # 扫描ROS2对应的软件源位置
$ sudo apt upgrade # ubuntu软件更新
$ sudo apt install ros-humble-desktop # 安装ROS-humble桌面版
$ source /opt/ros/humble/setup.bash # ROS2安装位置在终端中生效
$ echo " source /opt/ros/humble/setup.bash" >> ~/.bashrc # ROS2在所有终端中生效,到此步ROS2就安装完成了
$ ros2 run demo_nodes_cpp talker # 开启一个终端,打开talker节点
$ ros2 run demo_nodes_py listener # 开启另一个终端,打开listener节点,测试通信系统是否有问题
2. ROS2基本命令
$ ros2:弹出ROS2的相关指令
$ ros2 run turtlesim turtlesim_node:海龟仿真节点
$ ros2 run turtlesim turtle_teleop_key:海龟控制节点
$ ros2 node:弹出node相关指令
$ ros2 node list:查看当前ROS2系统下的节点
$ ros2 node info /turtlesim :查看某个节点的具体信息
$ ros2 topic:弹出话题相关指令
$ ros2 topic list:查看当前系统下的话题
$ ros2 topic echo /turtle1/pose :echo查看某个话题下的消息数据
$ 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 action send_goal /turtle1/rotate_absolute turtlesim/action/RotateAbsolute "theta: 3":发布具体的动作目标
$ ros2 bag record /turtle1/cmd_vel:录制动作指令
$ ros2 bag play :复现动作指令
$ ros2 run usb_cam usb_cam_node_exe # 相机驱动节点
$ export ROS_DOMAIN_ID=<your_domain_id> # ROS2网络分组指令
3. ROS2开发环境配置指令
$ sudo apt install git:Git下载
$ git clone https://gitee.com/guyuehome/ros2_21_tutorials.git:cloneROS2源码
$ sudo dpkg -i code_1.95.1-1730355339_amd64.deb :vscode安装(dpkg安装.deb文件)
4. ROS2工作空间命令
$ mkdir -p ~/dev_ws/src # 新建文件夹
$ cd ~/dev_ws/src # 进入src文件夹
$ git clone https://gitee.com/guyuehome/ros2_21_tutorials.git # 获取ros2代码包
$ sudo apt install -y python3-pip # 下载pip
$ sudo pip3 install rosdepc # 下载rosdepc工具
$ sudo rosdepc init # rosdepc初始化
$ rosdepc update # rosdepc更新
$ cd .. # 返回dev_ws目录
$ rosdepc install -i --from-path src --rosdistro humble -y # 安装代码包依赖
$ sudo apt install python3-colcon-ros # 下载colcon编译工具
$ cd ~/dev_ws/ # 进入dev_ws目录
$ colcon build # 编译工作空间
$ source install/local_setup.sh # 仅在当前终端生效
$ echo " source ~/dev_ws/install/local_setup.sh" >> ~/.bashrc # 所有终端均生效
5. ROS2功能包命令
$ ros2 pkg create --build-type <build-type> <package_name> # 创建一个功能包
$ ros2 pkg create --build-type ament_cmake learning_pkg_c # 创建C++版本的功能包
ros2 pkg create --build-type ament_python learning_pkg_python # 创建python版本功能包
$ colcon build # 编译工作空间所有功能包
$ source install/local_setup.bash # 仅在当前终端生效
$ echo " source ~/dev_ws/install/local_setup.sh" >> ~/.bashrc # 所有终端均生效注:install中的文件才是实际运行的文件,所以在src中修改代码后,必须通过编译和配置环境变量,才能正常运行修改后的代码。
6. ROS2节点命令
$ ros2 node # 查看节点相关指令
$ ros2 node list # 查看节点列表
$ ros2 node info <node_name> # 查看节点信息
$ ros2 run learning_node node_helloworld # 运行hello world节点

7. ROS2话题命令
$ ros2 ropic # 查看话题相关指令
$ ros2 topic list # 查看话题列表
$ ros2 topic info <topic_name> # 查看话题信息
$ ros2 topic hz <topic_name> # 查看话题发布频率
$ ros2 topic bw <topic_name> # 查看话题传输带宽
$ ros2 topic echo <topic_name> # 查看话题数据
$ ros2 topic pub <topic_name> <msg_type> <msg_data> # 发布话题消息
$ ros2 service find <type_name> # 查看某一个特殊类型的所有话题

8. ROS2服务命令
$ ros2 service # 查看服务相关指令
$ ros2 service list # 查看服务列表
$ ros2 service type <service_name> # 查看服务数据类型
$ ros2 service call <service_name> <service_type> <service_data> # 发送服务请求
$ ros2 service find <type_name> # 查看某一个特殊类型的所有服务

9. ROS2动作命令
$ ros2 action # 查看话题相关指令
$ ros2 action list # 查看服务列表
$ ros2 action info <action_name> # 查看服务数据类型
$ ros2 action send_goal <action_name> <action_type> <action_data> # 发送服务请求

10. ROS2参数命令
$ ros2 param # 查看参数相关指令
$ ros2 param list # 查看参数列表
$ ros2 param get <node_name> <parameter_name> # 查看某个参数的数据类型和值
$ ros2 param set <node_name> <parameter_name> <value> # 设置对应参数的值
$ ros2 param dump <node_name> # 查看节点中的所有参数的值
$ ros2 param load <node_name> <parameter_file> # 加载参数文件
$ ros2 param delete <node_name> <parameter_name> # 删除节点的某个参数
$ ros2 param describe <node_name> <parameter_name> # 查看某个参数的描述性(具体)信息

相关文章:
ROS2指令总结(跟随古月居教程学习)
博主跟随古月居博客进行ROS2学习,对ROS2相关指令进行了总结,方便学习和回顾。 古月居ROS2博文链接:https://book.guyuehome.com/ 本文会持续进行更新,觉得有帮助的朋友可以点赞收藏。 1. ROS2安装命令 $ sudo apt update &am…...
IPTV智慧云桌面,后台服务器搭建笔记
环境CentOs7.9 ,安装宝塔yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh 访问宝塔,修改服务器端口安全组端口 26029 注意!!!!…...
徒手从零搭建一套ELK日志平台
徒手从零搭建一套ELK日志平台 日志分析的概述日志分析的作用主要收集工具集中式日志系统主要特点采集日志分类ELK概述初级版ELK终极版ELK高级版ELKELK收集日志的两种形式 搭建ELK平台Logstash工作原理Logstash核心概念环境准备安装部署docker添加镜像加速器安装部署Elasticsear…...
udp_socket
文章目录 UDP服务器封装系统调用socketbind系统调用bzero结构体清0sin_family端口号ip地址inet_addrrecvfromsendto 新指令 netstat -naup (-nlup)包装器 的两种类型重命名方式包装器使用统一可调用类型 关键字 typedef 类型重命名系统调用popen UDP服务器封装 系统调用socket …...
肝了半年,我整理出了这篇云计算学习路线(新手必备,从入门到精通)
大家好!我是凯哥,今天给大家分享一下云计算学习路线图。这是我按照自己最开始学习云计算的时候的学习路线,并且结合自己从业多年所涉及的知识精心总结的云计算的思维导图。这是凯哥精心总结的,花费了不少精力哦,希望对…...
【Golang】手搓DES加密
代码非常长 有六百多行 参考一位博主的理论实现 通俗易懂,十分钟读懂DES 还有很多不足的地方 感觉只是个思路 S盒(理论既定) package src// 定义S - 盒的置换表 var SBoxes [8][4][16]int{{{14, 4, 13, 1, 2, 15, 11, 8, 3, 10, 6, 12, …...
YouQu使用手册【元素定位】
元素定位 文章目录 前言一、气泡识别二、不依赖OpenCV的图像识别方案三、动态图像识别四、背景五、sniff(嗅探器)使用六、元素操作七、框架封装八、背景【OCR识别】九、实现原理十、使用说明十一、RPC服务端部署十二、负载均衡十三、链式调用十四、背景【相对坐标定位】十五、…...
Spark RDD sortBy算子什么情况会触发shuffle
在 Spark 的 RDD 中,sortBy 是一个排序算子,虽然它在某些场景下可能看起来是分区内排序,但实际上在需要全局排序时会触发 Shuffle。这里我们分析其底层逻辑,结合源码和原理来解释为什么会有 Shuffle 的发生。 1. 为什么 sortBy 会…...
机器视觉相机重要名词
机器视觉相机的重要名词包括: • 工业数字相机:又称工业相机,是机器视觉系统中的关键组件。 • 电荷偶合元件(CCD):一种图像传感器,能将光学影像转换为数字信号。 • 互补金属氧化物半导体&…...
Django:从入门到精通
一、Django背景 Django是一个由Python编写的高级Web应用框架,以其简洁性、安全性和高效性而闻名。Django最初由Adrian Holovaty和Simon Willison于2003年开发,旨在简化Web应用的开发过程。作为一个开放源代码项目,Django迅速吸引了大量的开发…...
android viewpager2 嵌套 recyclerview 手势冲突
老规矩直接上代码, 不分析: import android.content.Context import android.util.AttributeSet import android.view.MotionEvent import android.view.View import android.view.ViewConfiguration import android.view.ViewGroup import android.widg…...
依赖管理(go mod)
目录 各版本依赖管理的时间分布 一、GOPATH 1. GOROOT是什么 定义: 作用: 默认值: 是否需要手动设置: 查看当前的 GOROOT: 2. GOPATH:工作区目录 定义: 作用:…...
Apple Vision Pro开发001-开发配置
一、Vision Pro开发硬件和软件要求 硬件要求软件要求 1、Apple Silicon Mac(M系列芯片的Mac电脑) 2、Apple vision pro-真机调试 XCode15.2及以上,调试开发和打包发布Unity开发者账号&&苹果开发者账号 二 、开启无线调试 1、Apple Vision Pro和Mac连接同…...
android 动画原理分析
一 android 动画分为app内的view动画和系统动画 基本原理都是监听Choreographer的doframe回调 二 app端的实现是主要通过AnimationUtils来实现具体属性的变化通过invilate来驱动 wms来进行更新。这个流程是在app进程完成 这里不是我分析的重点 直接来看下系统动画里面的本地动…...
Elasticsearch 6.8 分析器
在 Elasticsearch 中,分析器(Analyzer)是文本分析过程中的一个关键组件,它负责将原始文本转换为一组词汇单元(tokens)。 分析器由三个主要部分组成:分词器(Tokenizer)、…...
实验室资源调度系统:基于Spring Boot的创新
2相关技术 2.1 MYSQL数据库 MySQL是一个真正的多用户、多线程SQL数据库服务器。 是基于SQL的客户/服务器模式的关系数据库管理系统,它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等,非常…...
实验三:构建园区网(静态路由)
目录 一、实验简介 二、实验目的 三、实验需求 四、实验拓扑 五、实验任务及要求 1、任务 1:完成网络部署 2、任务 2:设计全网 IP 地址 3、任务 3:实现全网各主机之间的互访 六、实验步骤 1、在 eNSP 中部署网络 2、配置各主机 IP …...
3. SQL优化
SQL性能优化 在日常开发中,MySQL性能优化是一项必不可少的技能。本文以具体案例为主线,结合实际问题,探讨如何优化插入、排序、分组、分页、计数和更新等操作,帮助你实现数据库性能的飞跃。 一、索引设计原则 索引是MySQL优化的…...
web——upload-labs——第十一关——黑名单验证,双写绕过
还是查看源码, $file_name str_ireplace($deny_ext,"", $file_name); 该语句的作用是:从 $file_name 中去除所有出现在 $deny_ext 数组中的元素,替换为空字符串(即删除这些元素)。str_ireplace() 在处理时…...
AWS CLI
一、AWS CLI介绍 1、简介 AWS CLI(Amazon Web Services Command Line Interface)是一个命令行工具,它允许用户通过命令行与 Amazon Web Services(AWS)的各种云服务进行交互和管理。使用 AWS CLI,用户可以直接在终端或命令行界面中执行命令来配置、管理和自动化AWS资源,…...
使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式
一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明:假设每台服务器已…...
[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?
🧠 智能合约中的数据是如何在区块链中保持一致的? 为什么所有区块链节点都能得出相同结果?合约调用这么复杂,状态真能保持一致吗?本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里…...
简易版抽奖活动的设计技术方案
1.前言 本技术方案旨在设计一套完整且可靠的抽奖活动逻辑,确保抽奖活动能够公平、公正、公开地进行,同时满足高并发访问、数据安全存储与高效处理等需求,为用户提供流畅的抽奖体验,助力业务顺利开展。本方案将涵盖抽奖活动的整体架构设计、核心流程逻辑、关键功能实现以及…...
QT: `long long` 类型转换为 `QString` 2025.6.5
在 Qt 中,将 long long 类型转换为 QString 可以通过以下两种常用方法实现: 方法 1:使用 QString::number() 直接调用 QString 的静态方法 number(),将数值转换为字符串: long long value 1234567890123456789LL; …...
Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决
Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决 问题背景 在一个基于 Spring Cloud Gateway WebFlux 构建的微服务项目中,新增了一个本地验证码接口 /code,使用函数式路由(RouterFunction)和 Hutool 的 Circle…...
iOS性能调优实战:借助克魔(KeyMob)与常用工具深度洞察App瓶颈
在日常iOS开发过程中,性能问题往往是最令人头疼的一类Bug。尤其是在App上线前的压测阶段或是处理用户反馈的高发期,开发者往往需要面对卡顿、崩溃、能耗异常、日志混乱等一系列问题。这些问题表面上看似偶发,但背后往往隐藏着系统资源调度不当…...
CVE-2020-17519源码分析与漏洞复现(Flink 任意文件读取)
漏洞概览 漏洞名称:Apache Flink REST API 任意文件读取漏洞CVE编号:CVE-2020-17519CVSS评分:7.5影响版本:Apache Flink 1.11.0、1.11.1、1.11.2修复版本:≥ 1.11.3 或 ≥ 1.12.0漏洞类型:路径遍历&#x…...
在鸿蒙HarmonyOS 5中使用DevEco Studio实现企业微信功能
1. 开发环境准备 安装DevEco Studio 3.1: 从华为开发者官网下载最新版DevEco Studio安装HarmonyOS 5.0 SDK 项目配置: // module.json5 {"module": {"requestPermissions": [{"name": "ohos.permis…...
Web后端基础(基础知识)
BS架构:Browser/Server,浏览器/服务器架构模式。客户端只需要浏览器,应用程序的逻辑和数据都存储在服务端。 优点:维护方便缺点:体验一般 CS架构:Client/Server,客户端/服务器架构模式。需要单独…...
Vue 模板语句的数据来源
🧩 Vue 模板语句的数据来源:全方位解析 Vue 模板(<template> 部分)中的表达式、指令绑定(如 v-bind, v-on)和插值({{ }})都在一个特定的作用域内求值。这个作用域由当前 组件…...
