ros2官方文档(基于humble版本)学习笔记

这篇具有很好参考价值的文章主要介绍了ros2官方文档(基于humble版本)学习笔记。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

由于市面上专门讲ROS 2开发的书籍不多,近期看完了《ROS机器人开发实践》其中大部分内容还是基于ROS 1写的,涉及topic,service,action等一些重要的概念,常用组件,建模与仿真,应用(机器视觉,机器语音,SLAM,机械臂),最后一章写了ROS 2的安装,话题通信和服务通信的示例。总觉得不是太系统,于是决定按着ROS官方文档学习ROS 2,把学习过程中的要点记录下来。

一、安装ROS 2

​官方提供了部分操作系统平台的ROS 2的二进制安装包,分别为Ubuntu Linux、RHEL、Windows,不同ROS 2的版本对应的Linux版本也略有不同。
截至目前有两个ROS 2的版本还没有到项目终止日期(EOL end-of-life),一个是最新的发布版本为Iron Irwini,发布时间是2023年5月23日,EOL date是2024年11月,另一个是Humble Hawksbill,发布时间是2022年5月23日,EOL date是到2027年5月,比较后我选择了Humble这个版本来学习。
ros2官方文档(基于humble版本)学习笔记,ROS2,学习,笔记
为了方便,我选择了直接安装二进制安装包,首先在虚拟机上安装了Ubuntu 22.04(Jammy),ros2官方文档(基于humble版本)学习笔记,ROS2,学习,笔记
然后按照官方文档一步一步安装即可。
命令整理如下:

​
#--------准备工作--------
#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_ONLY:ROS2通信默认不会只限制本地的。这个环境变量就是用来限制这个的。这意味着你的ROS2系统和他的话题(topic),服务(service),动作(action)对本地网络中的其他计算机不可见。在特定场合设置该项是有帮助的,比如在教室里,多个机器人可能会发布相同的话题,从而导致奇怪的行为。

使用turtlesim,ros2和rqt

turtlesim是一个用来学习ROS 2轻量模拟器。ros2工具可以被用户用于管理,内查并与一个ROS系统交互。它是安装ROS 2的一部分。rqt是ROS 2的一个图形用户接口(GUI)工具。

安装 turtlesim
sudo apt update
sudo apt install ros-humble-turtlesim

查询一个包的可执行程序(这个个人感觉还是很有用的)

ros2 pkg executables turtlesim
启动 turtlesim

执行如下命令会出现一个模拟窗口,窗口正中有一个随机形状的乌龟。

ros2 run turtlesim turtlesim_node
使用 turtlesim

重新打开一个终端,设置环境,执行如下命令后,可以通过键盘上的箭头按键控制乌龟的移动,并留下移动的轨迹。
使用list命令可以查看节点,话题,服务,动作信息,具体如下:

ros2 node list
ros2 topic list
ros2 service list
ros2 action list
安装 rqt
sudo apt update
sudo apt install ~nros-humble-rqt*

在终端键入rqt,启动rqt程序。

使用 rqt

首次启动时,界面内容是空白的,只需要选择Plugins > Services > Service Caller,如果点击Plugins没有看到Services,你应该关闭rqt并在终端输入rqt --force-discover
1.选中/spawn服务(该服务用于产生另一只的乌龟),修改name参数给这个乌龟重命名,修改x,y的值给这个乌龟设置新的位置,然后点击Call按钮,完成修改。
2.选中/set_pen服务,修改r,g,b的值设置乌龟轨迹的颜色。

重映射

由于新创建的控制终端(turtle_teleop_key)还是只能控制第一只乌龟,为了让控制终端可以控制新产生的乌龟,使用如下命令重定向cmd_vel话题。

ros2 run turtlesim turtle_teleop_key --ros-args --remap turtle1/cmd_vel:=turtle2/cmd_vel

这个终端就可以控制新产生的乌龟了,再启动一个turtle_teleop_key的终端又可以控制第一只乌龟了。

关闭turtlesim

可以在turtlesim_node终端输入Ctrl + C并且在turtle_teleop_key终端输入q文章来源地址https://www.toymoban.com/news/detail-678863.html

到了这里,关于ros2官方文档(基于humble版本)学习笔记的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 木叶飞舞之【机器人ROS2】篇章_第一节、ROS2 humble及cartorgrapher安装

    假如长期使用ros2,建议是ubuntu系统或者双系统下安装操作,不要在虚拟机中进行。 ubuntu系统能用最新的大系统就用最新的,比如22.04。等明年24.04出来可以用24.04 ros版本选择humble版本,比较稳定,各公司用的多一点。 2.1、一键安装 利用鱼香ROS的安装指令一键安装即可 (1)

    2024年02月10日
    浏览(47)
  • (Ubuntu22.04 Jammy)安装ROS2 Humble

    提示:以下内容是已经安装了ubuntu22.04 下进行安装ros2 请确保区域设置支持UTF-8,我们使用以下设置进行测试。 需要将ROS2 apt存储库添加到您的系统中,首先确保Ubuntu Universe存储库已启用。 接着添加带有apt的ROS 2 GPG密钥 然后将存储库添加到源列表中 设置存储库后,更新您的a

    2024年02月01日
    浏览(51)
  • 树莓派4B+Ubuntu22.04 Server安装ROS2 Humble

    通过本章学习,了解ROS2相关版本,能够熟练掌握ROS2安装相关操作,最终让 Talker-listener 实例跑起来。 参考网站: ROS2官网:https://www.ros.org/ ROS2 Humble版本:https://docs.ros.org/en/humble/Installation.html 注意:如果对ROS已经有一定的了解,可以忽略此章节。 更多更具体的ROS介绍请查看

    2024年02月11日
    浏览(61)
  • TurtleBot3在ROS2 humble中的仿真解析之仿真、遥控与智控

    在TurtleBot3的机器人建模完成后,接下来就需要进行仿真。机器人建模之后,机器人的部件、关节的物理参数就确定了,但是还不能使用安装在其上的各种传感器来感知世界。所谓仿真就是要模仿真实环境中对象/机器人的行为,其主要目的,就是要让机器人通过摄像头、激光

    2024年02月11日
    浏览(44)
  • win10安装ROS2(foxy+humble/在线安装+离线安装)超详细保姆级教程

            之前已经在ubuntu22.04上安装上了ROS2-Humble,后期开发想要跨平台,ubuntu上发布话题,在windows上订阅话题,所以实验在windows上安装ROS2。         因为ubuntu上安装的是Humble版本,所以在win10上首选安装也是Humble版,实验过程中是先通过在线方式安装了foxy版本,后面通过

    2024年01月19日
    浏览(94)
  • 关于Ubuntu22.04,ros2-humble环境下,使用gazebo遇到的问题。

    遇到的问题: 打开gazebo时出现error:process has died的报错,虽然仍然可以打开gazebo,但是gazebo显示的并不是launch文件调用的world文件与urdf文件内容,可能显示前次使用gazebo时的内容,或者出现机器人模型乱转的情况。 问题原因: 前次使用gazebo后,没有完全关闭gazebo,尤其是

    2024年02月15日
    浏览(47)
  • 虚拟机 + Ubuntu22.04 + ros2 (humble) colcon build turtlebot3_node失败的解决方案

    在虚拟机Ubuntu22.04中安装了ROS2(humble),下载turtlebot3。在 colcon build --symlink-install 编译的过程中turtlebot3_Fake_node一直失败,无法正常运行,影响后面的仿真测试。 查阅相关资料后发现问题主要出在 缺少ROS2 相关依赖Ubuntu 版本匹配 。 (1)首先通过 lsb_release-a 查看系统版本 查到

    2024年02月09日
    浏览(43)
  • ROS2学习笔记三:话题Topic

    目录 前言 1 话题简介 2 常用指令 3 RCLCPP实现实现话题 3.1 创建工作空间 3.2 代码编写 3.2.1 发布端编写 3.2.2 发布端编写 ROS2中的一个重要概念是话题(Topic)。话题是一种通过发布者和订阅者之间进行异步通信的机制。发布者(Publisher)将消息发布到特定的话题上,而订阅者(

    2024年01月20日
    浏览(44)
  • Spring AOP官方文档学习笔记(二)之基于注解的Spring AOP

    1.@Aspect注解 (1) @Aspect注解用于声明一个切面类,我们可在该类中来自定义切面,早在Spring之前,AspectJ框架中就已经存在了这么一个注解,而Spring为了提供统一的注解风格,因此采用了和AspectJ框架相同的注解方式,这便是@Aspect注解的由来,换句话说,在Spring想做AOP框架之前,

    2023年04月17日
    浏览(47)
  • Spring AOP官方文档学习笔记(三)之基于xml的Spring AOP

    1.声明schema,导入命名空间 (1)如果我们想要使用基于xml的spring aop,那么,第一步,我们需要在xml配置文件中声明spring aop schema,导入命名空间,如下这是一个标准的模板 (2)在xml配置文件中,所有的切面以及通知等都必须放置于aop:config标签内 2.声明一个切面 3.声明一个切

    2024年02月02日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包