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

VM Ubuntu22.04 ROS2 从头安装

目录

  • 前言
  • 安装步骤
    • 1 设置编码
    • 2 添加ROS2软件源(从哪去下载ros2相关软件)
      • 报错
        • 解决方法
    • 3 安装
      • 报错
        • 解决方法1
        • 解决方法2
      • 报错
    • 4 设置环境变量
    • 5 Ros2 测试
      • Hello World 发送和监听
      • 小海龟键盘控制
    • 成功 Hello World 发送和监听界面
    • 成功控制小海龟界面

前言

本人也是初学者,此文章配合B站视频使用,视频链接:【古月·ROS2入门21讲 | 带你认识一个全新的机器人操作系统】,为了方便自己做笔记和大家复制命令,写下此文。
官方安装文档: Ubuntu 安装 ROS2 指南

安装步骤

1 设置编码

#查看编码
locale 
# 更新软件源
sudo apt update && sudo apt install locales
# 设置编码格式
sudo locale-gen en_US en_US.UTF-8
sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
# 生效编码格式
export LANG=en_US.UTF-8

2 添加ROS2软件源(从哪去下载ros2相关软件)

# 下载软件源和密钥的指令
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 
# 配置ros2软件源,把ros2软件源添加入系统列表
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

报错

第二步可能会报错 CurL: Failed to connect to raw.githubusercontent.com port 443 after 48 MS: Connection refused 或者 curl: (56) OpenSSL SSL_read: Connection reset by peer, errno 104

解决方法

原因是ip地址的问题,需要进行重新映射,参考文章:完美解决 Failed to connect to raw.githubusercontent.com port 443 …

3 安装

# 扫描软件源地址
sudo apt update
# 更新软件包
sudo apt upgrade 
# 桌面软件安装,上位机可视化软件等
sudo apt install ros-humble-desktop

报错

第三步报错 E: Unable to locate package ros-humble-desktop

解决方法1

需要参考官方文档执行下方的两行命令,重新进行第2步添加ROS2软件源的所有步骤

sudo apt install software-properties-common
sudo add-apt-repository universe
解决方法2

把下面的镜像源手动加入 sources.list,重启再试试

# 用 gedit 打开 sources.list 文件
sudo gedit /etc/apt/sources.list
# 重启虚拟机
reboot

复制下方的镜像源

deb https://mirrors.ustc.edu.cn/ubuntu/ jammy main restricted universe multiverse
# deb-src https://mirrors.ustc,edu.cn/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
# deb-src https://mirrors.ustc.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
# deb-src https://mirrors.ustc.edu.cn/ubuntu/ jammy-back

报错

ros-humble-desktop安装最后输出如下,有个包启动失败,但是貌似没啥影响

..
Setting up ros-humble-ros-core (0.10.0-1jammy.20240728.225838) ...
Setting up ros-humble-ros-base (0.10.0-1jammy.20240730.154319) ...
Setting up ros-humble-desktop (0.10.0-1jammy.20240730.174502) ...
Processing triggers for libc-bin (2.35-0ubuntu3.8) ...
W: Tried to start delayed item http://cn.archive.ubuntu.com/ubuntu jammy/universe amd64 python3-toml all 0.10.2-1, but failed

4 设置环境变量

# 只在当前终端生效,对新开的终端无效
source /opt/ros/humble/setup.bash
# 对多终端生效,重启不会失效
echo"source /opt/ros/humble/setup.bash">> ~/.bashrc

5 Ros2 测试

Hello World 发送和监听

# 发送命令(终端1)
ros2 run demo_nodes_cpp talker
# 监听命令(终端2)
ros2 run demo_nodes_cpp listener

小海龟键盘控制

# 开启界面命令(终端1)
ros2 run turtlesim  turtlesim_node
# 控制窗口命令(终端2)
ros2 run turtlesim  turtle_teleop_key

成功 Hello World 发送和监听界面

在这里插入图片描述

成功控制小海龟界面

在这里插入图片描述


http://www.mrgr.cn/news/2574.html

相关文章:

  • Spinbox 控件是 Tkinter 库中一个相对较新的控件
  • 昇腾 - AscendCL C++应用开发 目标检测中的非极大值抑制NMS和计算候选边界框之间的交并比IOU
  • 基于方面的情感分析研究综述——论文阅读笔记
  • 氟化工特氟龙精馏装置:PFA氟化氢反应装置的应用
  • 【docker】关于挂载
  • JNI编程四:java跟JNI字符串传递
  • 【C++】string讲解
  • 【GH】【EXCEL】P4: Chart
  • Flink 1.14.*版本kafkaSource源码
  • 文心快码 Baidu Comate 前端工程师观点分享:以文心快码 Baidu Comate为例,智能代码助手需要什么(一)
  • Nginx负载均衡调度状态
  • 多线程编程中的常见问题及解决方案
  • ES6笔记总结(Xmind格式):第一天
  • OpenCV几何图像变换(3)计算透视变换矩阵函数getPerspectiveTransform()的使用
  • 西安旅游系统--论文pf
  • ElasticSearch 相关面试题
  • linux:进程空间的回收,exec族
  • 【大模拟】逻辑回环类
  • VirtualBox上的Oracle Linux虚拟机安装Docker全流程
  • Prompt——与AI连接的桥梁