ubuntu18.04命令安装ros2

2023-11-20

ROS2官方文档
本教程为apt-get命令安装方式,官网教程有点问题,借鉴一下大佬的安装方式

1 安装ROS2

1.1 安装秘钥相关指令

  • 命令
sudo apt update && sudo apt install curl gnupg2 lsb-release
  • 成功
Reading package lists... Done
Building dependency tree       
Reading state information... Done
lsb-release is already the newest version (9.20170808ubuntu1).
curl is already the newest version (7.58.0-2ubuntu3.16).
The following NEW packages will be installed:
  gnupg2
0 upgraded, 1 newly installed, 0 to remove and 6 not upgraded.
Need to get 5,292 B of archives.
After this operation, 52.2 kB of additional disk space will be used.
Do you want to continue? [Y/n] Y
Get:1 http://mirrors.aliyun.com/ubuntu bionic-updates/universe amd64 gnupg2 all 2.2.4-1ubuntu1.4 [5,292 B]
Fetched 5,292 B in 0s (37.9 kB/s)  
Selecting previously unselected package gnupg2.
(Reading database ... 269610 files and directories currently installed.)
Preparing to unpack .../gnupg2_2.2.4-1ubuntu1.4_all.deb ...
Unpacking gnupg2 (2.2.4-1ubuntu1.4) ...
Setting up gnupg2 (2.2.4-1ubuntu1.4) ...
Processing triggers for man-db (2.8.3-2ubuntu0.1) ...

1.2 授权秘钥

  • 命令
curl http://repo.ros2.org/repos.key | sudo apt-key add -
  • 成功
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  1678  100  1678    0     0   2829      0 --:--:-- --:--:-- --:--:--  2824
OK

1.3 添加ROS2软件源

  • 命令
sudo sh -c 'echo "deb [arch=amd64,arm64] http://packages.ros.org/ros2/ubuntu `lsb_release -cs` main" > /etc/apt/sources.list.d/ros2-latest.list'
sudo apt-get update
  • 成功
Hit:1 http://mirrors.aliyun.com/ubuntu bionic InRelease
Hit:2 http://mirrors.aliyun.com/ubuntu bionic-security InRelease                             
Hit:3 http://mirrors.aliyun.com/ubuntu bionic-updates InRelease                              
Hit:4 http://mirrors.aliyun.com/ubuntu bionic-proposed InRelease                             
Get:5 http://packages.ros.org/ros2/ubuntu bionic InRelease [4,680 B]                         
Hit:6 http://mirrors.aliyun.com/ubuntu bionic-backports InRelease                            
Hit:7 https://download.docker.com/linux/ubuntu bionic InRelease                              
Get:8 http://packages.ros.org/ros2/ubuntu bionic/main amd64 Packages [686 kB]                
Ign:9 http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu bionic InRelease                        
Hit:10 http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu bionic Release
Get:12 http://packages.ros.org/ros2/ubuntu bionic/main arm64 Packages [658 kB]
Fetched 1,349 kB in 5s (288 kB/s)  
Reading package lists... Done

1.4 安装

  • 命令
sudo apt install ros-dashing-desktop
  • 补充:
    本次安装直接安装了大礼包,ROS提供了两种默认搭配,如下:
#桌面版 : 包含ROS, RViz, demos, tutorials [推荐]
sudo apt install ros-dashing-desktop

#基础版:(包含通讯库、消息包、命令行工具,没有GUI工具)
sudo apt install ros-dashing-ros-base
  • 成功
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  cppcheck libxaw7-dev libxpm-dev pydocstyle pyflakes pyflakes3 python-funcsigs python-mock
  python-pbr python-pyflakes python3-attr python3-bs4 python3-catkin-pkg-modules
.
.
.
Setting up ros-dashing-desktop (0.7.4-1bionic.20210521.235100) ...
Processing triggers for man-db (2.8.3-2ubuntu0.1) ...
Processing triggers for libc-bin (2.27-3ubuntu1.4) ...

ROS2到这里就安装完了,安装目录为/opt/ros/dashing

2 设置环境(可选但是推荐)

  • 说明:不想设置的话,就每次启动终端手动运行一下source /opt/ros/dashing/setup.bash

2.1 未安装ROS1 / 默认使用ROS2

  • 命令
echo "source /opt/ros/dashing/setup.bash" >> ~/.bashrc
source ~/.bashrc

2.2 装了ROS1,每次启动终端都手动选择版本

  • 把下面的脚本添加到~/.bashrc,然后执行source ~/.bashrc
#source /opt/ros/melodic/setup.bash
#source /opt/ros/dashing/setup.bash
# ROS 1.0 melodic or ROS 2.0 Dashing
echo ROS 1.0 or ROS 2.0? 1=Melodic 2=Dashing 
read ROS
if (($ROS==1));then
source /opt/ros/melodic/setup.bash
echo "Melodic"
elif (($ROS==2));then
source /opt/ros/dashing/setup.bash
echo "Dashing"
fi

3 命令行自动补全键入(可选但是推荐)

  • 说明:ROS2按Tab键不会自动补全命令,如果希望有自动补全功能,需要安装一下
  • 命令
sudo apt install python3-argcomplete
source /opt/ros/dashing/setup.sh
  • 成功
$ sudo apt install python3-argcomplete
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following NEW packages will be installed:
  python3-argcomplete
0 upgraded, 1 newly installed, 0 to remove and 6 not upgraded.
Need to get 26.9 kB of archives.
After this operation, 122 kB of additional disk space will be used.
Get:1 http://mirrors.aliyun.com/ubuntu bionic/universe amd64 python3-argcomplete all 1.8.1-1ubuntu1 [26.9 kB]
Fetched 26.9 kB in 0s (70.1 kB/s)              
Selecting previously unselected package python3-argcomplete.
(Reading database ... 287952 files and directories currently installed.)
Preparing to unpack .../python3-argcomplete_1.8.1-1ubuntu1_all.deb ...
Unpacking python3-argcomplete (1.8.1-1ubuntu1) ...
Setting up python3-argcomplete (1.8.1-1ubuntu1) ...
Processing triggers for man-db (2.8.3-2ubuntu0.1) ...

4 运行demo

跟ROS1一样,ROS2也提供了demo。

  • 运行listener
ros2 run demo_nodes_cpp listener
  • 另起终端,运行talker
ros2 run demo_nodes_cpp talker
  • 补充:
    错误1:ros2: command not found
    执行一下 2 设置环境变量
  • 成功
    listener终端:
$ ros2 run demo_nodes_cpp listener
[INFO] [listener]: I heard: [Hello World: 1]
[INFO] [listener]: I heard: [Hello World: 2]
[INFO] [listener]: I heard: [Hello World: 3]
[INFO] [listener]: I heard: [Hello World: 4]
[INFO] [listener]: I heard: [Hello World: 5]

talker终端:

$ ros2 run demo_nodes_cpp talker
[INFO] [talker]: Publishing: 'Hello World: 1'
[INFO] [talker]: Publishing: 'Hello World: 2'
[INFO] [talker]: Publishing: 'Hello World: 3'
[INFO] [talker]: Publishing: 'Hello World: 4'
[INFO] [talker]: Publishing: 'Hello World: 5'

5 安装ROS1 bridge(可选)

  • 说明:ROS1 bridge提供了一个网桥,可以在 ROS 1 和 ROS 2 之间交换消息, 详情见官网
  • 命令
sudo apt-get install ros-dashing-ros1-bridge
  • demo:使用ROS1的方式运行talker,然后使用ROS2的方式运行listener

1 新开终端,启动roscore

source /opt/ros/melodic/setup.sh
roscore

2 新开终端,启动ROS1的talker

source /opt/ros/melodic/setup.sh
rosrun rospy_tutorials talker

3 新开终端,启动ROS2的listener

source /opt/ros/dashing/setup.sh
ros2 run demo_nodes_cpp listener

4 新开终端,启动ROS1 bridge

source /opt/ros/melodic/setup.sh
source /opt/ros/dashing/setup.sh
#设置默认地址,这一句可以不要
export ROS_MASTER_URI=http://localhost:11311
ros2 run ros1_bridge dynamic_bridge

6 附加RMW实现(可选)

  • 说明:
    1 ROS2相比ROS1,引入了DDS,DDS是一个国际标准,使用发布/订阅机制进行消息通讯
    2 ROS2使用的默认中间件(RMW – ROS 2 middleware)是Cyclone DDS,RMW可以更换,DDS和RM官网文档
    3 如果安装了多个RMW,可以通过设置环境变量来选择不同的RMW,如:RMW_IMPLEMENTATION=rmw_connext_cpp
  • 命令
sudo apt install ros-dashing-rmw-opensplice-cpp # for OpenSplice
sudo apt install ros-dashing-rmw-connext-cpp # for RTI Connext (requires license agreement)

7 安装colcon编译工具(推荐)

  • 说明:ROS的编译工具经历了catkin、ament、colcon三个阶段,ROS2使用colcon,如果需要编译还是装一下
  • 命令
sudo apt install python3-colcon-common-extensions

8 编译小乌龟demo

  • 创建ROS2工作空间
mkdir -p ~/dev_ws/src
cd ~/dev_ws/src
  • 克隆小乌龟源码
//克隆到刚刚创建的src目录下
git clone https://github.com/ros/ros_tutorials.git -b dashing-devel
  • 检查依赖项,如果所有的依赖项都正确,则控制台显示如下
$ rosdep install -i --from-path src --rosdistro dashing -y
#All required rosdeps installed successfully
  • 编译
$ colcon build
Starting >>> turtlesim
[Processing: turtlesim]                               
Finished <<< turtlesim [30.7s]                         

Summary: 1 package finished [30.8s]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ubuntu18.04命令安装ros2 的相关文章

随机推荐

  • 正弦函数的频谱图(FFT)

    从理论上讲 正弦函数的傅里叶变换是冲击函数 它的幅值为原正弦信号幅值的1 2倍 即 若x t Acos t 则其频谱幅值最大值为A 2 如左图 但是 我们用matlab求出来的频谱图却不是左边这样的 而是右图 原因是 1 理论中的正弦信号是
  • 分布式时序相似查询初探

    时序数据 即随时间变化的数据 在人们的日常生活中无处不在 过去的近十年来 随着电子监控和智能穿戴等设备的普及 更是产生了海量的时序数据 例如 经过多年的发展 火力发电行业的数字化程度已经达到了很高的水平 以一台60万千瓦的中型火电机组为例
  • c#复习题(简答题:基础+面向对象)

    1 简答题 填写程序 要求如下 输入三角形三条边 先判断是否可以构成三角形 如果可以 则求三角形的周长和面积 否则报错 提示 输入的三个数构成三角形三边的条件 每条边长均大于0 并且任意两边之和大于第三边 代码编写 static void
  • 从zookeeper官方文档系统学习zookeeper

    从zookeeper官方文档系统学习zookeeper 1 zookeeper 2 zookeeper 文档 3 zookeeper 单机版 3 1 配置 3 2 启动 3 3 验证 4 zookeeper 集群版 4 1 配置 4 2 启
  • centos7 Jumpserver堡垒机部署以及使用详情

    一 跳板机 堡垒机的概念 1 跳板机 跳板机就是一台服务器 运维人员在使用管理服务器的时候 必须先连接上跳板机 然后才能去操控内网中的服务器 才能登录到目标设备上进行维护和操作 跳板机的缺点 仅仅实现服务器登录安全 但是没有实现对于运维人员
  • ChatGPT-Sorry, you have been blocked 解决办法

    使用无痕模式登录 已谷歌浏览器举例 右上点打开性的无痕模式 再访问地址 如下 可以继续登录了
  • Hadoop生态概述及常见报错

    Hadoop Hadoop是一个开源框架来存储和处理大型数据在分布式环境中 它包含两个模块 一个是MapReduce 另外一个是Hadoop分布式文件系统 HDFS MapReduce 它是一种并行编程模型在大型集群普通硬件可用于处理大型结
  • 亲测有效win10系统QQ音乐无法安装

    本人使用win10专业版时 因为一些原因 多次下载qq音乐都无法进入安装界面 找了很多原因都无法解决 最后在网上找到好像是因为火绒的原因 于是关闭火绒 再次尝试安装 遂成功 实在不行可以卸载火绒安全后重启电脑 再从官网重新下载QQ音乐安装包
  • 数据预处理-独热编码(One-Hot)

    1 部分特征如人的性别有男女 国家有中国 美国 法国等 并不是连续的 而是离散的 无序的 通常我们需要对其进行特征数字化 2 假如某个样本 某个人 他的特征是这样的 男 中国 乒乓球 我们可以用 0 0 4 来表示 但是这样的特征处理并不能
  • BeautifulSoup基本用法总结

    BeautifulSoup是Python的一个库 最主要的功能就是从网页爬取我们需要的数据 BeautifulSoup将html解析为对象进行处理 全部页面转变为字典或者数组 相对于正则表达式的方式 可以大大简化处理过程 0x01 安装 建
  • Leetcode 106. 从中序与后序遍历序列构造二叉树

    文章目录 题目 代码 9 18 首刷自解 题目 Leetcode 106 从中序与后序遍历序列构造二叉树 代码 9 18 首刷自解 class Solution public unordered map
  • UE4文字显示乱码“字字字字字字字字”的解决办法

    键盘win R 搜索fonts 2 滑到最底下右键复制 宋体常规简体字 3 复制到ue4项目的字体文件夹中 如下 注意在外部文件处复制 4 回到项目界面 此时右下角会有个弹窗提示是否确认导入 点击导入 然后会弹一个 字体样式导入选项 弹框
  • openGauss学习笔记-63 openGauss 数据库管理-资源池化架构

    文章目录 openGauss学习笔记 63 openGauss 数据库管理 资源池化架构 openGauss学习笔记 63 openGauss 数据库管理 资源池化架构 本文档主要介绍资源池化架构下的一些最佳实践和使用注意事项 用于支撑对相
  • go Cobra命令行工具入门

    简介 Github https github com spf13 cobra Star 26 5K Cobra是一个用Go语言实现的命令行工具 并且现在正在被很多项目使用 例如 Kubernetes Hugo和Github CLI等 通过使
  • Failed to set locale, defaulting to C.UTF-8解决方法

    CentOS 8Linux系统提示 Failed to set locale defaulting to C UTF 8 这是由于没有配置正确的语言环境导致的 Linux百科 使用root账户登录你的CentOS操作系统 然后执行两条命令
  • 现阶段计算机网络技术专业人才培养的发展对策

    确立具有高职特色的人才培养目标 在市场经济的条件下 人才培养首先要适应市场需求 以市场行业的需求为导 向制定人才培养目标 学校人才培养是否能满足社会需求 可以通过学生在对口行 业及相关领域的就业情况来衡量 高职教育培养高技能应用型人才 与研
  • Objective-C中的封装、继承、多态、分类

    封装 封装最好理解了 封装是面向对象的特征之一 是对象和类概念的主要特性 封装 也就是把客观事物封装成抽象的类 并且类可以把自己的数据和方法只让可信的类或者对象操作 对不可信的进行信息隐藏 继承 面向对象编程 OOP 语言的一个主要功能就是
  • 测试工具73款

    我们将本文的软件测试工具分为4类 1 Web应用测试工具 2 网站安全测试工具 3 跨浏览器测试工具 4 移动应用测试工具 注 工具排名没有任何意义 1 Web应用测试工具 我们列出了一些在Web应用程序上执行性能 负载和压力测试的关键工具
  • 开源项目MiniWord .NET Word 操作由Word模板和数据简单、快速生成文件

    MiniWord NET Word 介绍 MiniWord NET Word模板引擎 藉由Word模板和数据简单 快速生成文件 image Getting Started 安装 nuget link https www nuget org
  • ubuntu18.04命令安装ros2

    ROS2官方文档 本教程为apt get命令安装方式 官网教程有点问题 借鉴一下大佬的安装方式 文章目录 1 安装ROS2 1 1 安装秘钥相关指令 1 2 授权秘钥 1 3 添加ROS2软件源 1 4 安装 2 设置环境 可选但是推荐 2