ubunt18.04安装ROS2

news2024/11/23 2:37:20

本文无废话,实现了ubunt18.04 下ros2的安装,并且同时兼容ros和ros2
如果想完ros(1)的,请参考我的前一篇文章:ubunt18.04安装ROS避坑指南
参考:

https://blog.csdn.net/cau_weiyuhu/article/details/128666548
https://blog.csdn.net/ZhangRelay/article/details/114762734

得到一个重要信息ROS2的镜像这里有:

https://mirrors.tuna.tsinghua.edu.cn/ros2/ubuntu/

搞到这个,离成功就不远了;

重要步骤:

添加ros2 软件源

注意apt-key的网址

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

注意ros2的网址

 sudo sh -c 'echo "deb [arch=amd64] https://mirrors.tuna.tsinghua.edu.cn/ros2/ubuntu/  bionic main" > /etc/apt/sources.list.d/ros2-latest.list'

安装ros-eloquent和相关依赖

开始更新和安装

sudo apt update
sudo apt install ros-eloquent-desktop

注意:18.04下对应的ros版本是melodic,ros2是eloquent

安装python3库

sudo apt install -y libpython3-dev python3-pip
pip3 install -U argcomplete

这个安装了一半跳过了

sudo apt install ros-eloquent-rmw-connext-cpp

ROS和ros2

若ros2单独存在

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

ROS1和ROS2共存
在~.bashrc中添加如下代码,前提你得时ubunt18.04,且安装了两个版本

#source /opt/ros/melodic/setup.bash
#source /opt/ros/eloquent/setup.bash
 echo "ros melodic(1) or ros2 eloquent(2)?"
 read edition
 ps=$PS1
 if [ "$edition" -eq "1" ]; then
   source /opt/ros/melodic/setup.bash
   # echo "ros melodic(1) has been chosen!"
   PS1="(ros1-melodic:)$ps"
 else
   source /opt/ros/eloquent/setup.bash
   # echo "ros2 eloquent(2) has been chosen!"
   PS1="(ros2-eloquent)$ps"
 fi

ROS2依赖配置

fang@fang-inspiron-5580:/etc/apt/sources.list.d$ sudo rosdepc init
您已经成功安装rosdepc,下面提示的用法中,请将rosdep替换为rosdepc使用~
欢迎使用国内版rosdep之rosdepc,我是作者小鱼!
学习机器人,就关注《鱼香ROS》(公众号|B站|CSDN)!
小鱼rosdepc正式为您服务
Wrote /etc/ros/rosdep/sources.list.d/20-default.list
Recommended: please run

	rosdep update

---------------------------------------------------------------------------
小鱼提示:恭喜你完成初始化,快点使用

 rosdepc update

更新吧
---------------------------------------------------------------------------
小鱼科普:rosdep干什么用的?可以跳过吗?https://fishros.org.cn/forum/topic/2124
如果再使用过程中遇到任何问题,欢迎通过fishros.org.cn反馈,或者加入QQ交流群(139707339)
fang@fang-inspiron-5580:/etc/apt/sources.list.d$ rosdepc update
您已经成功安装rosdepc,下面提示的用法中,请将rosdep替换为rosdepc使用~
欢迎使用国内版rosdep之rosdepc,我是作者小鱼!
学习机器人,就关注《鱼香ROS》(公众号|B站|CSDN)!
小鱼rosdepc正式为您服务
reading in sources list data from /etc/ros/rosdep/sources.list.d
Hit https://mirrors.tuna.tsinghua.edu.cn/github-raw/ros/rosdistro/master/rosdep/osx-homebrew.yaml
Hit https://mirrors.tuna.tsinghua.edu.cn/github-raw/ros/rosdistro/master/rosdep/base.yaml
Hit https://mirrors.tuna.tsinghua.edu.cn/github-raw/ros/rosdistro/master/rosdep/python.yaml
Hit https://mirrors.tuna.tsinghua.edu.cn/github-raw/ros/rosdistro/master/rosdep/ruby.yaml
Query rosdistro index https://mirrors.tuna.tsinghua.edu.cn/rosdistro/index-v4.yaml
Skip end-of-life distro "ardent"
Skip end-of-life distro "bouncy"
Skip end-of-life distro "crystal"
Skip end-of-life distro "dashing"
Skip end-of-life distro "eloquent"
Skip end-of-life distro "foxy"
Skip end-of-life distro "galactic"
Skip end-of-life distro "groovy"
Add distro "humble"
Skip end-of-life distro "hydro"
Skip end-of-life distro "indigo"
Add distro "iron"
Skip end-of-life distro "jade"
Skip end-of-life distro "kinetic"
Skip end-of-life distro "lunar"
Skip end-of-life distro "melodic"
Add distro "noetic"
Add distro "rolling"
updated cache in /home/fang/.ros/rosdep/sources.cache
---------------------------------------------------------------------------
小鱼恭喜:rosdepc已为您完成更新!!
---------------------------------------------------------------------------
小鱼科普:rosdep干什么用的?可以跳过吗?https://fishros.org.cn/forum/topic/2124
如果再使用过程中遇到任何问题,欢迎通过fishros.org.cn反馈,或者加入QQ交流群(139707339)

安装colcon编译工具

sudo apt-get install python3-colcon-ros

运行经典小乌龟

fang@fang-inspiron-5580:~$ sudo apt install ros-eloquent-turtlesim
Reading package lists... Done
Building dependency tree       
Reading state information... Done
ros-eloquent-turtlesim is already the newest version (1.1.2-1bionic.20201207.164444).
ros-eloquent-turtlesim set to manually installed.
0 upgraded, 0 newly installed, 0 to remove and 3 not upgraded.


fang@fang-inspiron-5580:~$ ros2 pkg executables turtlesim
turtlesim draw_square
turtlesim mimic
turtlesim turtle_teleop_key
turtlesim turtlesim_node


fang@fang-inspiron-5580:~$ ros2 run turtlesim turtlesim_node
QFactoryLoader::QFactoryLoader() checking directory path "/usr/lib/x86_64-linux-gnu/qt5/plugins/platforms" ...
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libqeglfs.so"
Found metadata in lib /usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libqeglfs.so, metadata=
{
    "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
    "MetaData": {
        "Keys": [
            "eglfs"

在切出来另外一个终端,会让选择使用ros还是ros2

ros melodic(1) or ros2 eloquent(2)?
2
(ros2-eloquent)fang@fang-inspiron-5580:~$ 
(ros2-eloquent)fang@fang-inspiron-5580:~$ 
(ros2-eloquent)fang@fang-inspiron-5580:~$ 
(ros2-eloquent)fang@fang-inspiron-5580:~$ 
(ros2-eloquent)fang@fang-inspiron-5580:~$ ros2 run turtlesim turtle_teleop_key
Reading from keyboard
---------------------------
Use arrow keys to move the turtle.
Use G|B|V|C|D|E|R|T keys to rotate to absolute orientations. 'F' to cancel a rotation.
'Q' to quit.

这样就可以控制ROS2的小龟了
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1607993.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2024年【A特种设备相关管理(锅炉压力容器压力管道)】考试内容及A特种设备相关管理(锅炉压力容器压力管道)操作证考试

题库来源:安全生产模拟考试一点通公众号小程序 2024年A特种设备相关管理(锅炉压力容器压力管道)考试内容为正在备考A特种设备相关管理(锅炉压力容器压力管道)操作证的学员准备的理论考试专题,每个月更新的…

5.Godot节点和功能及Node节点属性分析

1. 节点和功能的关系 节点 Node ,用于实现一种功能,例如,Sprite 节点,用于图片的显示一个节点的功能取决于它挂载了哪些子节点,它包含了哪些功能的子节点,就包含了对应子节点表示的功能节点是可选的&#…

Dota2 参议院

题目链接 Dota2 参议院 题目描述 注意点 senate[i] 为 ‘R’ 或 ‘D’假设每一位参议员都足够聪明,会为自己的政党做出最好的策略 解答思路 对于任意一位参议员,如果其有权利,当他后面没有另一方参议员,其会投票,…

小红书笔记写作方法和技巧分享,纯干货!

很多小伙伴感叹小红书笔记流量就是一个玄学,有时精心撰写的笔记却没有人看,自己随便写的笔记却轻轻松松上热门。实际上你还是欠点火候,小红书笔记写作是有一套方法和技巧的,总归是有套路的,如果你不知道,请…

C++ 数据结构 linux 【第一天】

1.命名空间 在C/C中,变量、函数和类都是大量存在的,这些变量、函数和类的名称将都存在于全局作 用域中,可能会导致很多冲突。使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突或名字污染,namespace关键字…

【MIT6.824】lab3 Fault-tolerant Key/Value Service 实现笔记

引言 lab3A的实验要求如下: Your first task is to implement a solution that works when there are no dropped messages, and no failed servers. You’ll need to add RPC-sending code to the Clerk Put/Append/Get methods in client.go, and implement Pu…

✌粤嵌—2024/4/12—插入区间✌

代码实现: 解题思路:先将数组 newInterval 插入到数组 intervals 的末尾,再转换成合并区间 /*** Return an array of arrays of size *returnSize.* The sizes of the arrays are returned as *returnColumnSizes array.* Note: Both returne…

组合预测 | Matlab实现ICEEMDAN-SMA-SVM基于改进完备集合经验模态分解-黏菌优化算法-支持向量机的时间序列预测

组合预测 | Matlab实现ICEEMDAN-SMA-SVM基于改进完备集合经验模态分解-黏菌优化算法-支持向量机的时间序列预测 目录 组合预测 | Matlab实现ICEEMDAN-SMA-SVM基于改进完备集合经验模态分解-黏菌优化算法-支持向量机的时间序列预测预测效果基本介绍程序设计参考资料预测效果 基本…

两个查国内产业信息新闻数据的必备网站

产业经济信息网:产业经济信息网由报业协会主管主办,成立于1997年,是由报业行业报委员会发起,几十家权威行业媒体共同组建的、国内最大的行业信息发布网站之一。网站所拥有的“产经数据库”容纳了54家行业媒体的信息数据200多万条&…

Nextjs学习入门 - 创建第一个项目

1 通过npx创建一个nextjs项目 通过命令创建: npx create-next-applatest 得到如下项目结构图: my-app- src //源代码目录- app //引用目录- favicon.ico //网站图标- globals.css //全局css- layout.tsx //布局文件- page.tsx //页面 路径"…

C语言C/S架构PACS影像归档和通信系统源码 医院PACS系统源码

C语言C/S架构PACS影像归档和通信系统源码 医院PACS系统源码 医院影像科PACS系统,意为影像归档和通信系统。它是应用在医院影像科室的系统,主要的任务是把日常产生的各种医学影像(包括核磁、CT、超声、各种X光机、各种红外仪、显微…

YOLO-World——S(cvpr2024)

文章目录 Abstract成果 MethodPre-training Formulation: Region-Text PairsModel ArchitectureYOLO DetectorText EncoderText Contrastive HeadTraining with Online VocabularyInference with Offline Vocabulary Re-parameterizable Vision-Language PANText-guided CSPLay…

JavaSE 有这一篇就够(呕心狂敲41k字,只为博君一点赞!)

目录 一. 基础语法 1. 数据类型 2. 基本数据类型转换 3. 运算符 3. 循环语句 5. 定义方法 6. 数组 二. 面向对象 1. 类和对象 2. 构造方法 3. 方法的重载 4. this关键字 5. static关键字 6. 代码块 7. 访问权限修饰符 8. 面向对象的三大特征 封装 继承…

开关到模拟量全覆盖钡铼IOy系列模块集成热电阻、热电偶等传感器

钡铼IOy系列模块作为一种创新的工业自动化解决方案,以其灵活的自由拼接设计和丰富的接口类型,在工业级DI/DO/AI/AO集成方案中扮演着重要角色。其中,其在集成热电阻、热电偶等传感器方面的能力更是为工业控制系统带来了全新的可能性。 开关到…

BNB链融合

BNB Chain融合 BNB Chain目前有BNB智能链(BSC),BNB信标链 BNB信标链:用作质押和投票的治理层,采用BEP-2代币标准BNB智能链(BSC):用作EVM兼容层,提供DApp、DeFi服务、共识层、多链支持和其他Web3…

NVIDIA NCCL 源码学习(十四)- NVLink SHARP

背景 上节我们介绍了IB SHARP的工作原理,进一步的,英伟达在Hopper架构机器中引入了第三代NVSwitch,就像机间IB SHARP一样,机内可以通过NVSwitch执行NVLink SHARP,简称nvls,这节我们会介绍下NVLink SHARP如…

EasyExcel追加写入数据,分批查询多次写入场景下,注意使用方式【OOM警告】

使用.withTemplate(file) 将临时数据文件和真实数据文件合并的方式,在生产环境大批量数据下,完全不可取,有很高的内存溢出风险 伪代码 public static void writeAppend(String fileName) {String filePath "tempDir".concat(Fil…

linux_python源码安装及基础设置odoo安装

python源码安装及基础设置 1、资源下载2、源码安装3、 yum安装pip4、pip安装虚拟环境1、安装虚拟环境库2、配置环境变量3、创建自己的虚拟环境 5、安装升级pip的两种方式1、get-pip.py升级2、安装源码升级 6、odoo部署 1、资源下载 python3.13 python版本库 2、源码安装 yum…

5款开源、美观、强大的WPF UI组件库

前言 经常看到有小伙伴在DotNetGuide技术社区微信交流群里提问:WPF有什么好用或者好看的UI组件库?,今天大姚给大家分享5款开源、美观、强大、简单易用的WPF UI组件库。 WPF介绍 WPF 是一个强大的桌面应用程序框架,用于构建具有丰富用户界面…

C++-结构体-指针-地址-指针的指针-地址的地址

经验证&#xff0c;仿真结果与预期一致。 #include <QDebug> struct test_years {int year;};//定义结构体 int main() {//定义三个结构体&#xff0c;s01,s02,s03test_years s01,s02,s03;s01.year 1000;//给s01结构体中year赋值s02.year 2000;//给s02结构体中year赋值…