ROS1与ROS2的安装教程

2023-11-07

        

目录

一、准备工作

1.ros1对应ubuntu版本:

2.ros2对应ubuntu版本:

3.Ubuntu的安装

二、ROS1的安装

1.官方安装ROS的说明:http://wiki.ros.org/Installation/Ubuntu?distro=melodic

2.ros melodic的安装步骤:

       (1)安装ros源

       (2)设置key

         (3)  更新

       (4)安装

       (5)ROSdep初始化

       (6)环境配置

       (7)安装完成,尝试运行

       (8)运行小海龟程序

二、ROS2的安装

1.ROS Foxy的安装

      (1)设置语言环境

      (2)添加ros2的密钥

      (3)将ros2的源码库添加到系统的源列表里

      (4)更新list 

      (5)安装ros2的本体

      (6)安装argcomplete

      (7)配置环境变量

      (8)安装完成,尝试运行

      (9)运行小海龟程序

     (10)安装额外的功能包


        刚刚结束了为期一周的ROS的暑期培训,本来安装ROS应该是一件非常困难的事情,不过在各位群友的碰壁和讨论下,总结出了不少经验,本人在安装ros时还比较顺利,故写一篇教程来记录一下自己的安装教程,希望对各位有所帮助。

一、准备工作

1.ros1对应ubuntu版本:

2.ros2对应ubuntu版本:

ROS Foxy                     Ubuntu20.04

ROS Dashing                Ubuntu18.04

ROS Crystal                Ubuntu16.04

这里选择较为稳定,生命周期较长,且功能比较完备的ROS Melodic和ROS2 Foxy进行讲解

Ubuntu20.04下载地址:https://ubuntu.com/download/desktop/thank-you?version=20.04.2.0&architecture=amd64

Ubuntu18.04下载地址:https://releases.ubuntu.com/18.04.5/ubuntu-18.04.5-desktop-amd64.iso

3.Ubuntu的安装

        下载镜像之后,可以选择三种方式,虚拟机,双系统,u盘启动。

        这里建议没有装双系统经验的读者不要轻易尝试双系统,因为可能会对原本的win系统造成不可逆转的错误;如果电脑性能较为优异推荐使用Vmare虚拟机进行自动安装,所有选项都填默认,加载镜像后联网等待其自动安装完成即可;最优方案是使用u盘进行开机启动盘的操作因为这样一方面即使由于误操作导致系统损坏与不至于导致电脑本身的系统出现不必要的错误,另一方面也能充分调用电脑性能,方便后期调用gazebo仿真软件等较为吃性能的软件。

二、ROS1的安装

        相比于ros2,ros1的安装过程较为复杂尤其是最后一步的ros更新,由于网络问题,大部分人在刚接触ros时都不知道该如何解决这种错误,本文将给出解答。

1.官方安装ROS的说明:http://wiki.ros.org/Installation/Ubuntu?distro=melodic

2.ros melodic的安装步骤:

        (1)安装ros源

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'

        (2)设置key

sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

注:若没有这一步,则执行sudo apt-get update时会弹出一堆错误,这是个GPG错误,表示下列签名无法验证,我们需要获取系统中的这个公钥,从信息中获取密钥号。

在错误的末尾会弹出公钥,若上面的密钥失效,则自行进行替换即可。

          (3)  更新

sudo apt-get update

       (4)安装

sudo apt-get install ros-melodic-desktop-full
#这是安装ros本体
sudo apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential
#这是安装一些比较常用的功能包

        这里直接安装桌面的完全版,并且含有ROS, rqt, rviz, robot-generic libraries, 2D/3D simulators, navigation and 2D/3D perception 和 rosinstall,这些常用的ros工具,当然,在github上下载的功能包进行catkin_make编译的时候如果报错没有什么库,可以根据提示进行安装即可进行编译。

       (5)ROSdep初始化

按照官方的教程,直接执行以下代码就可以

sudo rosdep init
rosdep update

但是由于网络原因,大部分小伙伴在执行sudo rosdep init时都会报错无法访问链接,因为rosdepc使用的是国内的源,rosdep初始化失败是因为其使用的是github,国内无法访问。

这里只要更换为小鱼dalao制作的国内镜像rosdepc,即可解决该问题。

sudo apt-get install python3-pip 
#安装pip3
sudo pip install rosdepc
#安装rosdepc
sudo rosdepc init
#rosdep初始化
rosdepc update
#更新ros源

该depc的库由小鱼dalao负责,这里也欢迎各位读者关注他的微信公众号:鱼香ROS

       (6)环境配置

echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc

       (7)安装完成,尝试运行

        在终端执行:roscore

        若出现以下信息则表示安装成功

... logging to /home/pi/.ros/log/96bf3f3c-fca3-11eb-ad36-000c29aa8d4a/roslaunch-ubuntu-2076.log
Checking log directory for disk usage. This may take a while.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.

started roslaunch server http://ubuntu:43097/
ros_comm version 1.14.11


SUMMARY
========

PARAMETERS
 * /rosdistro: melodic
 * /rosversion: 1.14.11

NODES

auto-starting new master
process[master]: started with pid [2087]
ROS_MASTER_URI=http://ubuntu:11311/

setting /run_id to 96bf3f3c-fca3-11eb-ad36-000c29aa8d4a
process[rosout-1]: started with pid [2098]
started core service [/rosout]

      (8)运行小海龟程序

        打开两个终端,分别输入以下指令

rosrun turtlesim turtlesim_node
rosrun turtlesim turtle_teleop_key

就可以打开小海龟的运行界面

在运行rosrun turtlesim turtle_teleop_key的终端上用上下左右键就可以控制小海龟的移动了,如图

需要注意的是,在github上下载的功能包编译之后如果执行roslaunch无法启动,则需要在项目的文件夹中执行一次

source devel/setup.bash

即可使用roslaunch来启动相应的功能包。

 至此,ROS melodic的安装过程就结束了。

二、ROS2的安装

1.ROS Foxy的安装

      (1)设置语言环境

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
#该步为将ubuntu系统的默认字符编码换位utf-8格式

        (2)添加ros2的密钥

sudo apt update && sudo apt install curl gnupg2 lsb-release
curl http://repo.ros2.org/repos.key | sudo apt-key add -

       (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'

      (4)更新list 

sudo apt update

      (5)安装ros2的本体

sudo apt install ros-foxy-desktop

      (6)安装argcomplete

sudo apt install python3-argcomplete

      (7)配置环境变量

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

     (8)安装完成,尝试运行

这里以ros2基于dds通讯的典型例子talker和listener为例,二者基于discover机制相互发现后建立topic并传输message

首先执行

ros2 run demo_nodes_cpp talker

执行效果如下

再执行

ros2 run demo_nodes_cpp listener

 如图所示,基于discover机制,两个Node已经连接起来了

       (9)运行小海龟程序

同样的我们也可以在ros2中运行小海龟的程序

 在两个终端中分别执行

ros2 run turtlesim turtlesim_node
ros2 run turtlesim turtle_teleop_key

         (10)安装额外的功能包

sudo apt update
sudo apt install ros-foxy-rmw-opensplice-cpp
sudo apt install ros-foxy-rmw-connext-cpp

        至此,ros1和ros2就都已经安装,并可以使用了。

        新人第一次写教程还望各位多多指教。

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

ROS1与ROS2的安装教程 的相关文章

随机推荐

  • Android无埋点数据收集SDK关键技术解析

    前言 本文基于网易乐得无埋点数据收集SDK 无埋点数据收集SDK用于向大数据平台提供全量 完整 准确的客户端数据 Android端无埋点数据收集SDK实现中涉及到比较关键的技术点有 用字节码插桩的方式实现Android端的AOP Hook
  • 自学python记录001-使用PyCharm创建项目

    启动PyCharm后如下所示 点击新建项目 选择项目存放路径 可以勾选创建main py文件 点击创建 创建完成后可以看到main py里面有一些提示的代码 比如说Shift F10可以运行项目 Ctrl F8可以直接添加断点 双击Shif
  • 强烈推荐的机器学习,深度学习课程以及python库

    本文知乎链接 强烈推荐的机器学习 深度学习课程以及python库 本着两条原则发一波车 1 不建议报辅导班 不是因为我们不应该为学习知识付费 而是因为有更好的资源 而这些资源恰好免费 报辅导班学习浪费钱倒是次要的 主要是时间有限 所以我们要
  • 程序分析技术理解(一)

    1 基本块 Basic Block 和流图 flow graph 将一段程序划分为基本块 Basic Block BB 每个基本块满足以下条件 a 控制流只能从基本块的第一个指令进入 b 除了基本块的最后一条指令 控制流在离开基本块前不会停
  • 移动端代码质量管理与安全检测评估

    在前面的文章中已经详细介绍过Jenkins Sonarqube的安装 配置及使用 对于Web端的代码质量管理通常相对容易 Jenkins配套Sonarqube很方便就能搞定 但是对于移动端来说 尤其iOS 集成和使用的复杂性会大幅提高 目前
  • PostgreSQL系列1:PostgreSQL 10.23 离线安装

    1 安装前准备 1 1创建用户 useradd postgres passwd postgres 1 2创建数据目录和日志目录 mkdir p data db pg data mkdir p data db pg logs chown R
  • 字符串分割(split),将字符串按照指定字符进行分割。split(String regex)和split(String regex, int limit)

    一 split String regex 字符串分割 将字符串按照指定字符进行分割 返回的是一个字符串数组 public String split String regex return split regex 0 原理 参数名称是rege
  • 【狂神说Java】HTML快速入门

    目录 1 初识HTML 2 网页基本信息 3 网页基本标签 4 图像标签 5 超链接标签应用 6 行内元素和块元素 7 列表标签 8 表格标签 9 媒体元素 10 页面结构分析 11 iframe内联框架 12 初始表单post和get提交
  • 两台linux文件拷贝

    scp就是secure copy 是用来进行远程文件拷贝的 数据传输使用ssh1 并且和ssh1使用相同的认证方式 提供相同的安全保证 与rcp不同的是 scp会要求你输入密码如果需要的话 最简单的应用如下 scp 本地用户名 IP地址 文
  • angular的ElementRef和Renderer2

    Angular ElementRef 简介 angular angular 2018 09 22 Angular 的口号是 一套框架 多种平台 同时适用手机与桌面 One framework Mobile desktop 即 Angular
  • opencv3.3.0在线读取网络图片图像资源

    说明 上一篇博客中描写了imread 的用法 请参见 http blog csdn net m0 37606112 article details 78524234 这一篇来描述cv2 videoCapture 的用法 照例打开opencv
  • vue插槽的基本使用

    1 什么是插槽 插槽 Slot 是 vue 为组件的封装者提供的能力 允许开发者在封装组件时 把不确定的 希望由用户指定的部分定义为插槽 2 体验插槽的基础用法 在封装组件时 可以通过元素定义插槽 从而为用户预留内容占位符 示例代码如下 如
  • 深度学习 - 模型的优化和过拟合问题

    优化函数 学习速率与反向传播算法 学习速率 learning rate 梯度就是表明损失函数相对参数的变化率 对梯度进行缩放的参数被称为学习速率 learning rate 学习速率是一种超参数或对模型的一种手工可配置的设置 需要为它指定正
  • 《Graph Neural Networks Foundations,Frontiers and Applications》第一部分第二章第2.3.1.1节翻译和解读

    书名 Graph Neural Networks Foundations Frontiers and Applications 图神经网络的基础 前沿和应用 出版社 Springer Berlin Heidelberg 作者 Lingfei
  • Python 函数的定义

    视频版教程 Python3零基础7天入门实战视频教程 函数 函数是执行特定任务的一段代码 程序通过将一段代码定义成函数 并为该函数指定一个函数名 这样即可在需要的时候多次调用这段代码 比如我们前面学到的range 函数 就是系统内置的函数
  • Appium自动化框架从0到1之 基类的封装

    这里只封装了4个基类 其他的大家可以自己丰富 直接上代码 baseView py coding utf 8 auth carl DJ time 2020 7 9 class BaseView object 封装一些基类 def init s
  • wazuh安装,单机部署3.13

    Wazuh涉及两个主要组件的安装 Wazuh服务器和Elastic Stack 此外 Wazuh agent需要部署到受监视的主机上 Wazuh server 运行Wazuh管理器和API 它从已部署的代理收集和分析数据 Elastic S
  • Java多线程基础

    原文链接 https blog csdn net weixin 43704599 article details 107379994 1 线程简介 1 1 多任务 现实中太多这样同时做多件事情的例子了 看起来是多个任务都在做 其实本质上我们
  • 一个SQLiteReadOnlyDatabaseException的问题

    最近测试同事上报了随机的一个crash问题 看日志是SQLiteReadOnlyDatabaseException的问题 发生在update数据库的时候 我自己写的ContentProvider代码就是在程序目录下放置数据 所以不是网上常见
  • ROS1与ROS2的安装教程

    目录 一 准备工作 1 ros1对应ubuntu版本 2 ros2对应ubuntu版本 3 Ubuntu的安装 二 ROS1的安装 1 官方安装ROS的说明 http wiki ros org Installation Ubuntu dis