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

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学习&#xff0c;对ROS2相关指令进行了总结&#xff0c;方便学习和回顾。 古月居ROS2博文链接&#xff1a;https://book.guyuehome.com/ 本文会持续进行更新&#xff0c;觉得有帮助的朋友可以点赞收藏。 1. ROS2安装命令 $ sudo apt update &am…...

IPTV智慧云桌面,后台服务器搭建笔记

环境CentOs7.9 &#xff0c;安装宝塔yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh 访问宝塔&#xff0c;修改服务器端口安全组端口 26029 注意&#xff01;&#xff01;&#xff01;&#xff01…...

徒手从零搭建一套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 …...

肝了半年,我整理出了这篇云计算学习路线(新手必备,从入门到精通)

大家好&#xff01;我是凯哥&#xff0c;今天给大家分享一下云计算学习路线图。这是我按照自己最开始学习云计算的时候的学习路线&#xff0c;并且结合自己从业多年所涉及的知识精心总结的云计算的思维导图。这是凯哥精心总结的&#xff0c;花费了不少精力哦&#xff0c;希望对…...

【Golang】手搓DES加密

代码非常长 有六百多行 参考一位博主的理论实现 通俗易懂&#xff0c;十分钟读懂DES 还有很多不足的地方 感觉只是个思路 S盒&#xff08;理论既定&#xff09; 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 中&#xff0c;sortBy 是一个排序算子&#xff0c;虽然它在某些场景下可能看起来是分区内排序&#xff0c;但实际上在需要全局排序时会触发 Shuffle。这里我们分析其底层逻辑&#xff0c;结合源码和原理来解释为什么会有 Shuffle 的发生。 1. 为什么 sortBy 会…...

机器视觉相机重要名词

机器视觉相机的重要名词包括&#xff1a; • 工业数字相机&#xff1a;又称工业相机&#xff0c;是机器视觉系统中的关键组件。 • 电荷偶合元件&#xff08;CCD&#xff09;&#xff1a;一种图像传感器&#xff0c;能将光学影像转换为数字信号。 • 互补金属氧化物半导体&…...

Django:从入门到精通

一、Django背景 Django是一个由Python编写的高级Web应用框架&#xff0c;以其简洁性、安全性和高效性而闻名。Django最初由Adrian Holovaty和Simon Willison于2003年开发&#xff0c;旨在简化Web应用的开发过程。作为一个开放源代码项目&#xff0c;Django迅速吸引了大量的开发…...

android viewpager2 嵌套 recyclerview 手势冲突

老规矩直接上代码&#xff0c; 不分析&#xff1a; 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是什么 定义&#xff1a; 作用&#xff1a; 默认值&#xff1a; 是否需要手动设置&#xff1a; 查看当前的 GOROOT&#xff1a; 2. GOPATH&#xff1a;工作区目录 定义&#xff1a; 作用&#xff1a…...

Apple Vision Pro开发001-开发配置

一、Vision Pro开发硬件和软件要求 硬件要求软件要求 1、Apple Silicon Mac(M系列芯片的Mac电脑) 2、Apple vision pro-真机调试 XCode15.2及以上&#xff0c;调试开发和打包发布Unity开发者账号&&苹果开发者账号 二 、开启无线调试 1、Apple Vision Pro和Mac连接同…...

android 动画原理分析

一 android 动画分为app内的view动画和系统动画 基本原理都是监听Choreographer的doframe回调 二 app端的实现是主要通过AnimationUtils来实现具体属性的变化通过invilate来驱动 wms来进行更新。这个流程是在app进程完成 这里不是我分析的重点 直接来看下系统动画里面的本地动…...

Elasticsearch 6.8 分析器

在 Elasticsearch 中&#xff0c;分析器&#xff08;Analyzer&#xff09;是文本分析过程中的一个关键组件&#xff0c;它负责将原始文本转换为一组词汇单元&#xff08;tokens&#xff09;。 分析器由三个主要部分组成&#xff1a;分词器&#xff08;Tokenizer&#xff09;、…...

实验室资源调度系统:基于Spring Boot的创新

2相关技术 2.1 MYSQL数据库 MySQL是一个真正的多用户、多线程SQL数据库服务器。 是基于SQL的客户/服务器模式的关系数据库管理系统&#xff0c;它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等&#xff0c;非常…...

实验三:构建园区网(静态路由)

目录 一、实验简介 二、实验目的 三、实验需求 四、实验拓扑 五、实验任务及要求 1、任务 1&#xff1a;完成网络部署 2、任务 2&#xff1a;设计全网 IP 地址 3、任务 3&#xff1a;实现全网各主机之间的互访 六、实验步骤 1、在 eNSP 中部署网络 2、配置各主机 IP …...

3. SQL优化

SQL性能优化 在日常开发中&#xff0c;MySQL性能优化是一项必不可少的技能。本文以具体案例为主线&#xff0c;结合实际问题&#xff0c;探讨如何优化插入、排序、分组、分页、计数和更新等操作&#xff0c;帮助你实现数据库性能的飞跃。 一、索引设计原则 索引是MySQL优化的…...

web——upload-labs——第十一关——黑名单验证,双写绕过

还是查看源码&#xff0c; $file_name str_ireplace($deny_ext,"", $file_name); 该语句的作用是&#xff1a;从 $file_name 中去除所有出现在 $deny_ext 数组中的元素&#xff0c;替换为空字符串&#xff08;即删除这些元素&#xff09;。str_ireplace() 在处理时…...

AWS CLI

一、AWS CLI介绍 1、简介 AWS CLI(Amazon Web Services Command Line Interface)是一个命令行工具,它允许用户通过命令行与 Amazon Web Services(AWS)的各种云服务进行交互和管理。使用 AWS CLI,用户可以直接在终端或命令行界面中执行命令来配置、管理和自动化AWS资源,…...

测试微信模版消息推送

进入“开发接口管理”--“公众平台测试账号”&#xff0c;无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息&#xff1a; 关注测试号&#xff1a;扫二维码关注测试号。 发送模版消息&#xff1a; import requests da…...

Chapter03-Authentication vulnerabilities

文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...

python打卡day49

知识点回顾&#xff1a; 通道注意力模块复习空间注意力模块CBAM的定义 作业&#xff1a;尝试对今天的模型检查参数数目&#xff0c;并用tensorboard查看训练过程 import torch import torch.nn as nn# 定义通道注意力 class ChannelAttention(nn.Module):def __init__(self,…...

三维GIS开发cesium智慧地铁教程(5)Cesium相机控制

一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点&#xff1a; 路径验证&#xff1a;确保相对路径.…...

AI Agent与Agentic AI:原理、应用、挑战与未来展望

文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例&#xff1a;使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例&#xff1a;使用OpenAI GPT-3进…...

Python:操作 Excel 折叠

💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...

Mybatis逆向工程,动态创建实体类、条件扩展类、Mapper接口、Mapper.xml映射文件

今天呢&#xff0c;博主的学习进度也是步入了Java Mybatis 框架&#xff0c;目前正在逐步杨帆旗航。 那么接下来就给大家出一期有关 Mybatis 逆向工程的教学&#xff0c;希望能对大家有所帮助&#xff0c;也特别欢迎大家指点不足之处&#xff0c;小生很乐意接受正确的建议&…...

macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用

文章目录 问题现象问题原因解决办法 问题现象 macOS启动台&#xff08;Launchpad&#xff09;多出来了&#xff1a;Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显&#xff0c;都是Google家的办公全家桶。这些应用并不是通过独立安装的…...

2021-03-15 iview一些问题

1.iview 在使用tree组件时&#xff0c;发现没有set类的方法&#xff0c;只有get&#xff0c;那么要改变tree值&#xff0c;只能遍历treeData&#xff0c;递归修改treeData的checked&#xff0c;发现无法更改&#xff0c;原因在于check模式下&#xff0c;子元素的勾选状态跟父节…...

华为云Flexus+DeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建

华为云FlexusDeepSeek征文&#xff5c;DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建 前言 如今大模型其性能出色&#xff0c;华为云 ModelArts Studio_MaaS大模型即服务平台华为云内置了大模型&#xff0c;能助力我们轻松驾驭 DeepSeek-V3/R1&#xff0c;本文中将分享如何…...