【ROS2实践】Vmware17下安装ubuntu22.04和ros2-humble

news2024/11/18 1:36:38

  一、简介

        ROS2-foxy已经不再维护,ROS2-humble成为主角,因而该转变一下开发场景了。如何安装?官方文档没有错,然而,照着做却无法进行。实超中遇到的需要变通的地方,官网是不给你提供解决的,本文给出详细解答。

        官网地址:https://docs.ros.org/en/humble/Installation/Ubuntu-Install-Debians.html

二、环境问题

2.1 关于版本

版本安装建议
ubuntu22.04  --jimmy

安装建议:安装时后必须选择中文,否则后边需要手动安装。

ROS2  --humble采用debian pakage模式安装;千万不要采用源码编译安装,因为你根本编译不出正确结果。

2.2 虚拟机屏幕扩大

        在虚拟机安装完成后,第一个事情就是扩大屏幕。否则无法干活!

        1)给root用户追加密码

    sudo passwd root 

        2)安装open-vm-tools

    sudo apt update
    su root
    apt install open-vm-tools
    apt install open-vm-tools-desktop

2.3 安装阿里云国内数据源

三、正式安装开始

3.1 安装语言系统locale

        需要首先统一语言,避免乱码发生。

        确保您有一个支持 UTF-8 的语言环境。如果您处于最小环境(例如 docker 容器)中,则语言环境可能是像 POSIX 这样的最小环境。我们使用以下设置进行测试。您使用的是不同的 UTF -8 支持的语言环境。

locale  # check for UTF-8

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

locale  # verify settings

在计算中, locale (语言环境)是一组参数,用于定义用户的语言、地区以及用户希望在其用户界面中看到的任何特殊变体偏好。通常,语言环境标识符至少包含语言代码和国家/地区代码语言环境是国际化的一个重要方面。

2.2 设置专业数据源

        关于ubuntu下软件安装的仓库,参考地址:Repositories/Ubuntu - Community Help Wiki

        注意:数据源有两种:

  • 专 数据源
  • 常规数据源。

        专业数据源针对专业的一整套软件体系,比如:Docker有一套数据源,ROS2有一套数据源;而常规数据源是通过apt update && apt insatll完成安装的软件,这是常规软件的安装。

        这里,您需要将 ROS 2 apt 存储库添加到您的系统。首先确保已启用 Ubuntu Universe 存储库。安装时,两种数据源将混合使用。

Ubuntu Universe:有数以千计的 Ubuntu 程序可以满足 Ubuntu 用户的需求。其中许多程序存储在通常称为存储库的软件档案中。该软件经过全面测试,专门为每个版本的 Ubuntu 构建。

 安装add-apt-repository仓库数据源:

sudo apt install software-properties-common
sudo add-apt-repository universe

#sudo apt install software-properties-common
#sudo add-apt-repository universe

打开/etc/apt/sources.list文件,会发现多出以下内容:

 2.3 设置GPG密钥

        注意,GPG密钥是软件代码保护密钥,许多软件在下载前必须设置,因为对方(ROS开发者)已经设定了保密,所以你在下载前也需要设定密钥,否则无法解码。

sudo apt update && sudo apt install curl
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg

         这里用的是http访问,因此,需要安装curl软件。

         这里如果出现了拒绝连接,如何继续呢?按我下面更改后操作就可以通过了。

sudo curl -sSL https://ghproxy.com/https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg

       要想知道为什么?参考文章:ROS知识:安装rosdep中出现time out的问题 

 2.4 添加仓库

        此步将仓库的路径添加到本地数据源。

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

         注意:这里源没有在/etc/apt/sources.list,而是在 /etc/apt/sources.list.d/ros2.list这是ros2专门的数据源。

2.5 安装ROS2的程序包

        更新数据源,将ros2.list添加到路径上:

    sudo apt update
    sudo apt upgrade

        此步需要一点时间,请耐心等候。

        1)实质性安装,桌面安装(推荐):ROS、RViz、演示、教程。

    sudo apt install ros-humble-desktop

        2)实质性安装,ROS-Base Install (Bare Bones):通信库、消息包、命令行工具。没有 GUI 工具。 (如果上面安装后,自动有了ros-foxy-ros-base,此步忽略)

    sudo apt install ros-humble-ros-base

        3)实质性安装,开发工具:编译器和其他构建ROS包的工具 

    sudo apt install ros-dev-tools

         到此ros2系统安装完成(时间2小时)。 

四、安装gazabo库

        官方文档没有提出gazebo安装,然而要想有仿真功能,gazebo是必须安装的。

        而gazebo作为独立软件能够独立安装,注意,这里不要独立安装(对于ROS2没用),而是安装gazebo的parkage包,这样,ros2才能调用。

        安装gazebo:假设您已经安装了一些humble debian 软件包,请按如下方式安装 gazebo_ros_pkgs:

sudo apt install ros-humble-gazebo-ros-pkgs

五、测试

        安装过后,需要测试是否正确安装。

# Replace ".bash" with your shell if you're not using bash
# Possible values are: setup.bash, setup.sh, setup.zsh
source /opt/ros/humble/setup.bash

        此步必须有,这是为ros2进程提供环境路径,这里是系统自带的路径,如果客户编程,需要将客户自己的setup,bash也source出去。进入测试代码:

source /opt/ros/foxy/setup.bash
ros2 run demo_nodes_cpp talker

        出现下面提示,表明安装顺利通过。 

六、关于卸载

        如果您需要卸载 ROS 2 或从二进制文件安装后切换到基于源的安装,请运行以下命令:

    sudo apt remove ~nros-humble-* && sudo apt autoremove

        您可能还想删除存储仓库、数据源:

    sudo rm /etc/apt/sources.list.d/ros2.list
    sudo apt update
    sudo apt autoremove
    # Consider upgrading for packages previously shadowed.
    sudo apt upgrade

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

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

相关文章

宽刈幅干涉高度计SWOT(Surface Water and Ocean Topography)卫星进展(待完善)

以下信息搬运自SWOT官方网站等部分文献资料,如有侵权请联系:sunmingzhismz163.com 排版、参考文献、部分章节待完善 概况 2022年12月16日地表水与海洋地形卫星SWOT (Surface Water and Ocean Topography)在加利福尼亚州范登堡航天基地由SpaceX猎鹰9号(Sp…

mysql面试题(最全)

1. 数据库三大范式是什么? 什么是范式? 范式是数据库设计时遵循的一种规范,不同的规范要求遵循不同的范式。 最常用的三大范式 第一范式(1NF):属性不可分割,即每个属性都是不可分割的原子项。(实体的属性即表中的列)…

ESXi主机CVE-2021-21972漏洞复现安全处置建议

一、漏洞简介 vSphere 是 VMware 推出的虚拟化平台套件,包含 ESXi、vCenter Server 等一系列的软件。其中 vCenter Server 为 ESXi 的控制中心,可从单一控制点统一管理数据中心的所有 vSphere 主机和虚拟机。 vSphere Client(HTML5&#xf…

【博客624】MAC地址表、ARP表、路由表(RIB表)、转发表(FIB表)

MAC地址表、ARP表、路由表(RIB表/FIB表) MAC地址表 MAC地址表是交换机等网络设备记录MAC地址和端口的映射关系,代表了交换机从哪个端口学习到了某个MAC地址,交换机把这个信息记录下来,后续交换机需要转发数据的时候就可以根据报文的目的MAC地…

SpringBoot社区版专业版带你配置热部署

💟💟前言 ​ 友友们大家好,我是你们的小王同学😗😗 今天给大家打来的是 SpringBoot社区版专业版带你配置热部署 希望能给大家带来有用的知识 觉得小王写的不错的话麻烦动动小手 点赞👍 收藏⭐ 评论&#x1…

C++类基础(十七)

类的继承——补充知识 ● public 与 private 继承(C Public, Protected and Private Inheritance) 改变了类所继承的成员的访问权限 //公有继承 struct Base { public:int x; private:int y; protected:int z; }; struct Derive : public Base //公有继承…

【数据结构与算法】时间复杂度与空间复杂度

目录 一.前言 二.时间复杂度 1.概念 二.大O的渐进表示法 概念: 总结: 三.常见时间复杂度计算举例 例1 例2 例3 例4 例5.计算冒泡排序的时间复杂度 例6.二分算法的时间复杂度 例7.阶乘递归Fac的时间复杂度 例8.斐波那契递归的时间复杂度 …

【MyBatis】| MyBatis的注解式开发

目录 一:MyBatis的注解式开发 1. Insert注解 2. Delete注解 3. Update注解 4. Select注解 5. Results注解 一:MyBatis的注解式开发 MyBatis中也提供了注解式开发⽅式,采⽤注解可以减少Sql映射⽂件的配置。 当然,使⽤注…

推荐几款好用的数据库管理工具

本文主要介绍几款常用的数据库管理软件(客户端),包括开源/免费的、商用收费的,其中有一些是专用于 MySQL 数据库的,例如 MySQL Workbench、phpMyAdmin,有一些是支持多种 SQL、NoSQL 数据库的,例…

Kubernetes集群维护—备份恢复与升级

Etcd数据库备份与恢复 需要先安装etcd备份工具yum install etcd -y按不同安装方式执行不同备份与恢复kubeadm部署方式: 备份:ETCDCTL_API3 etcdctl snapshot save snap.db --endpointshttps://127.0.0.1:2379 --cacert/etc/kubernetes/pki/etcd/ca.cr…

知其然更要知其所以然,聊聊SQLite软件架构

SQLite是一个非常受欢迎的数据库,在数据库排行榜中已经进入前十的行列。这主要是因为该数据库非常小巧,而且可以支持Linux、Windows、iOS和Andriod的主流的操作系统。 SQLite非常简单,是一个进程内的动态库数据库。其最大的特点是可以支持不同…

spring的了解以及项目构建

spring理念: 使现有的技术更容易使用,其本身是一个大杂烩,整合了现有的技术框架。 ssh: struct2 spring hibernate ssm :springmvc spring mybatis 优点: spring 是一个免费的开源框架(容器…

特征归一化(Normalization)和Batch Normalization的理解

一、理解BN必备的前置知识(BN, LN等一系列Normalization方法的动机) Feature Scaling(特征归一化/Normalization):通俗易懂理解特征归一化对梯度下降算法的重要性 总结一下得出的结论: (以下举的例子是针对…

创建基于Vue2.0开发项目的两种方式

前天开始接触基于Vue2.0的前端项目,实际操作中肯定会遇到一些问题,慢慢摸索和总结。   其实,作为开发一般企事业单位应用的小项目,前端的懂一点HTMLCSSJavaScroptJQueryJson(或者Xml),后端懂一…

PGLBox全面解决图训练速度、成本、稳定性、复杂算法四大问题!

图神经网络(Graph Neural Network,GNN)是近年来出现的一种利用深度学习直接对图结构数据进行学习的方法,通过在图中的节点和边上制定聚合的策略,GNN能够学习到图结构数据中节点以及边内在规律和更加深层次的语义特征。…

Dubbo学习笔记2

Dubbo学习笔记(二) Dubbo常用配置 覆盖策略 规则: 1、精确优先(方法级优先,接口次之,全局配置再次之) 2、消费者设置优先(如果级别一样,则消费方优先,提供…

网络安全-信息收集- 谷歌浏览器插件收集信息,谷歌hacking搜索语法-带你玩不一样的搜索引擎

网络安全-信息收集- 谷歌浏览器插件收集信息,谷歌hacking搜索语法-带你玩不一样的搜索引擎 前言 一,我也是初学者记录的笔记 二,可能有错误的地方,请谨慎 三,欢迎各路大神指教 四,任何文章仅作为学习使用 …

图解LeetCode——剑指 Offer 28. 对称的二叉树

一、题目 请实现一个函数,用来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像一样,那么它是对称的。 二、示例 2.1> 示例 1: 【输入】root [1,2,2,3,4,4,3] 【输出】true 2.2> 示例 2: 【输入】root [1,2,2,nul…

quartz使用及原理解析

quartz简介 ​ Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,完全由Java开发,可以用来执行定时任务,类似于java.util.Timer。但是相较于Timer, Quartz增加了很多功能: 持久性作业 - 就是保持调度…

瑞典军事研究:从认知心理学的视角探讨军事创新进程

来源:Military Innovation as the Result of Mental Models of Technology 《摘要》 政治紧张局势的加剧和技术发展的进步促使Scandinavian 国家(斯堪的纳维亚半岛,欧洲最大的半岛,有挪威、瑞典两国以及芬兰北端的一小部分。&am…