红和蓝的企业网站设计,wordpress选不了中文,wordpress换身 变身,珠宝出售网站模板ros2官方文档#xff08;基于humble版本#xff09;学习笔记#xff08;一#xff09; 一、安装ROS2二、按教程学习1.CLI 工具配置环境 由于市面上专门讲ROS2开发的书籍不多#xff0c;近期看完了《ROS机器人开发实践》其中大部分内容还是基于ROS1写的#xff0c;涉及top… ros2官方文档基于humble版本学习笔记一 一、安装ROS2二、按教程学习1.CLI 工具配置环境 由于市面上专门讲ROS2开发的书籍不多近期看完了《ROS机器人开发实践》其中大部分内容还是基于ROS1写的涉及topicserviceaction等一些重要的概念常用组件建模与仿真应用机器视觉机器语音SLAM机械臂最后一章写了ROS2的安装话题通信和服务通信的示例。总觉得不是太系统于是决定按着ros官方文档学习ROS2把学习过程中的要点记录下来。 一、安装ROS2
官方提供了部分操作系统平台的ROS2的二进制安装包分别为Ubuntu Linux、RHEL、Windows不同ROS2的版本对应的Linux版本也略有不同。 截至目前有两个ROS2的版本还没有到项目终止日期EOL end-of-life)一个是最新的发布版本为Iron Irwini发布时间是2023年5月23日EOL date是2024年11月另一个是Humble Hawksbill发布时间是2022年5月23日EOL date是到2027年5月比较后我选择了Humble这个版本来学习。 为了方便我选择了直接安装二进制安装包首先在虚拟机上安装了Ubuntu 22.04Jammy, 然后按照官方文档一步一步安装即可。 命令整理如下
#--------准备工作--------
#1.确保有universe源
sudo apt install software-properties-common
sudo add-apt-repository universe
#2.获取ROS 2 GPG key以便在接下来的apt命令中使用
sudo apt update sudo apt install curl -y
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
#3.将ROS仓库加入sources list列表
echo deb [arch$(dpkg --print-architecture) signed-by/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(. /etc/os-release echo $UBUNTU_CODENAME) main | sudo tee /etc/apt/sources.list.d/ros2.list /dev/null#--------安装ROS包--------
#1.更新源
sudo apt update
sudo apt upgrade
#2.安装桌面版包含了ROS-Base
sudo apt install ros-humble-desktop
#3.安装开发包
sudo apt install ros-dev-tools#--------设置环境这一步很重要后面使用到ROS的地方都需要执行此命令所以一般可以直接写到.bashrc中--------
source /opt/ros/humble/setup.bash这里值得注意的是获取ROS 2 GPG key的地方可能由于某些原因不能获取到就需要科学上网了这个不再赘述其实我还真是折腾了一阵子。
二、按教程学习
1.CLI 工具
配置环境
首先还是上一步中最后提到的设置环境可以通过如下命令查看环境变量
printenv | grep -i ROS此外还要设置以下两个环境变量 ROS_DOMAIN_ID可以为一个ROS节点组设置唯一的一个编号在DDS中使不同逻辑网络共享一个物理网络的主要机制被称为域ID相同域ID的ROS2节点可以互相友好的发现和发送消息而不同域ID的节点之间则不行。所有的ROS2节点默认域ID为0。为了避免在同一网络上运行ROS 2的不同计算机组之间的干扰应为每个组设置不同的域ID。简单来说域ID被DDS用来计算将用于发现和通信的UDP端口只需要将域ID设置为[0,101]之间的数字即可深究的话可以参考这里。 ROS_LOCALHOST_ONLYROS2通信默认不会只限制本地的。这个环境变量就是用来限制这个的。这意味着你的ROS2系统和他的话题(topic)服务(service)动作(action)对本地网络中的其他计算机不可见。在特定场合设置该项是有帮助的比如在教室里多个机器人可能会发布相同的话题从而导致奇怪的行为。