Gazebo安装教程——在 Ubuntu 上安装Gazebo的源代码

2023-05-16

安装工具

建议使用一些额外的工具来帮助编译源代码,尽管其他正确获取和构建源代码的方法也是可能的。

获取所有库的源代码的最简单方法是使用 vcstool。

要以正确的顺序编译所有不同的库和 ign-gazebo, 建议使用colcon。colcon 工具可在所有使用 pip(或 pip3,如果 pip 失败)的平台上使用。

某些工具需要 Python 3.5(或更高版本),这不是某些平台(如 Ubuntu Focal)上的默认选项。在无法轻松更改默认选项的情况下,Python virtualenv可能是一个有用的解决方案。

通用工具

安装本教程所需的工具:

sudo apt install python3-pip wget lsb-release gnupg curl

来自 pip 的 vcstool 和 colcon

PIP 适用于所有平台:

pip install vcstool || pip3 install vcstool
pip install -U colcon-common-extensions || pip3 install -U colcon-common-extensions

检查在使用 PIP 安装时没有打印错误。如果您的系统无法识别这些命令,并且您使用的是与 Debian 或 Ubuntu 软件包兼容的系统,请参阅以下说明以使用apt.

安装vcstoolcolcon使用 PIP 后,您可能需要将其可执行文件添加到您的$PATH. 检查这些软件包的安装位置:

pip show vcstool || pip3 show vcstool | grep Location

pip show colcon-common-extensions || pip3 show colcon-common-extensions | grep Location

如果您的安装路径以 为前缀$HOME/.local,则您可能需要将此目录中的可执行文件添加到您的目录中,以避免在使用时及以后$PATH出现“找不到命令”错误:vcstoolcolcon

export PATH=$PATH:$HOME/.local/bin/

来自 apt 的 vcstool 和 colcon

另一种方法是使用.debDebian 或 Ubuntu 上可用的软件包:

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -
sudo apt-get update
sudo apt-get install python3-vcstool python3-colcon-common-extensions

git

Ignition 库git用于版本控制,因此它必须在系统中可用vcstool才能正常工作。

sudo apt-get install git

获取来源

下面的说明使用一些 UNIX 命令来管理目录,但 Windows 上的等效替代方案应该提供相同的结果。

第一步是创建一个开发人员工作区,vcstool并且 colcon可以在其中工作:

mkdir -p ~/workspace/src
cd ~/workspace/src

所有点火花园的来源都在 yaml 文件中声明。将其下载到工作区:

wget https://raw.githubusercontent.com/ignition-tooling/gazebodistro/master/collection-garden.yaml

用于vcstool从其存储库中自动检索所有 Ignition 库源:

vcs import < collection-garden.yaml

src 子目录应该包含所有准备构建的源。

安装依赖项

在编译之前,有必要安装构成 Garden 集合的不同包的所有依赖项。每个平台都有不同的方法来安装软件依赖项。

添加packages.osrfoundation.org到 apt 来源列表:

sudo wget https://packages.osrfoundation.org/gazebo.gpg -O /usr/share/keyrings/pkgs-osrf-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/pkgs-osrf-archive-keyring.gpg] http://packages.osrfoundation.org/gazebo/ubuntu-stable $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/gazebo-stable.list > /dev/null
sudo apt-get update

下面的命令将在 Ubuntu Bionic 或 Focal 中安装所有依赖项:

sudo apt -y install \
  $(sort -u $(find . -iname 'packages-'`lsb_release -cs`'.apt' -o -iname 'packages.apt' | grep -v '/\.git/') | sed '/ignition\|sdf/d' | tr '\n' ' ')

安装编译器要求

Ignition 库需要 gcc 编译器版本 8 或更高版本。(Windows 需要 Visual Studio 2019)。

Ubuntu 仿生

Ubuntu Bionic 的默认编译器版本不够高,需要按照以下步骤进行升级。Ubuntu Focal 不需要这些。

gcc在 Ubuntu Bionic 上安装版本 8:

sudo apt-get install g++-8

gcc-8和设置g++-8为默认编译器。

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 800 --slave /usr/bin/g++ g++ /usr/bin/g++-8 --slave /usr/bin/gcov gcov /usr/bin/gcov-8

此时gcc ,g++两者都应该报告版本 8。使用以下命令对此进行测试。

gcc -v
g++ -v

构建点火库Building the Ignition Libraries

一旦编译器和所有源代码都准备就绪,就可以编译它们了。通过更改到工作区并列出由以下内容识别的包来启动该过程colcon

cd ~/workspace/
colcon graph

colcon graph应该列出带有 相互依赖关系图的 Ignition 库。如果是这种情况,那么您就可以构建整套库了:

colcon build --merge-install

为了加快构建过程,您还可以使用禁用测试

colcon build --cmake-args -DBUILD_TESTING=OFF --merge-install

构建一个包含所有依赖包的特定包:

colcon build --merge-install --packages-up-to PACKAGE_NAME

要构建单个包:

colcon build --packages-select PACKAGE_NAME

访问colcon 文档以查看更多colcon构建和测试选项。

如果没有错误,所有二进制文件都应该可以使用了。

使用工作区

每次使用新终端时都需要获取工作空间。

运行以下命令以在 bash 中获取工作空间:

. ~/workspace/install/setup.bash

或者在 zsh 中:

. ~/workspace/install/setup.zsh

这是源安装说明的结尾;返回入门 页面开始使用 Ignition!

 

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

Gazebo安装教程——在 Ubuntu 上安装Gazebo的源代码 的相关文章

  • NFC通信基本原理 主动和被动通信

    NFC通信基本原理 近场通信原理 对于天线产生的电磁场 xff0c 根据其特性的不同 xff0c 划分为三个不同的区域 xff1a 感应近场 辐射近场和辐射远场 它们主要通过与天线的距离来区分 感应近场区指最靠近天线的区域 在此区域内 xf
  • NFC协议概述

    NFC协议概述 NFC相关的标准化组织 ISO 国际标准化组织 xff08 International Organization for Standardization xff09 简称ISO xff0c 是世界上最大的非政府性标准化机构
  • 计算机网络

    计算机网络 计算机网络是利用通信线路和通信设备 xff0c 把地理上分散并且具有独立功能的多个计算机系统互相连接 xff0c 按照网络协议进行数据通信 xff0c 通过功能完善的网络软件实现资源共享的计算机系统集合 计算机网络的功能 计算机
  • html标签手册

    完整的HTML页面 x1f4d1 基础标签 x1f4d1 x1f4d1 x1f4d1 HTML lt DOCTYPE gt 声明 DOCTYPE声明必须是 HTML 文档的第一行 xff0c 位于 html标签之前 DOCTYPE 声明不是
  • BCD码的作用和实现

    内容部分摘抄于朱有朋老师 BCD码本质是对数字的一种编码 xff0c 用来解决这种问题 xff1a 由56得到0x56 或者反过来 也就是说我们希望十进制的56被编码成56 xff08 这里56不是十进制的56 xff0c 而是两个数字5和
  • window和虚拟机(Linux)通过串口通讯

    准备工具 虚拟串口驱动 虚拟机 xff08 我的是乌班图版本 xff09 串口调试助手 xff08 以上网上自己找来下载 xff09 利用虚拟机串口驱动添加2个虚拟串口 xff08 com1和com2 xff09 xff0c 然后打开串口调
  • 关于‘QByteArray::operator QNoImplicitBoolCast() const’ is private

    home hins Qt5 9 8 5 9 8 gcc 64 include QtCore qbytearray h 436 error QByteArray operator QNoImplicitBoolCast const is pr
  • Linux创建虚拟CAN

    创建 xff1a 加载vcan内核模块 sudo modprobe vcan创建虚拟CAN接口 sudo ip link add dev can0 type vcan xff08 can0就是你要创建的设备 xff09 将虚拟CAN接口处于
  • 解决ubuntu20.04 连接xshell显示ssh拒绝服务

    近两天在弄linux系统 xff0c 突然xshell就连接不上了 xff0c 连接的时候一直显示ssh拒绝访问 折腾几个小时总算解决了 xff0c 现对其进行记录 报错情况 xff1a 手动分界效果 首先看下本机IP和虚拟机设置的IP是否
  • C++文件的建立

    C 43 43 文件的建立 include include int main using namespace std ofstream ofs jar txt ios out ofs lt lt 小明 lt lt endl ofs lt l
  • DB2数据库的安装-for linux

    DB2的安装 1 安装DB2服务端 将db2v8 iso文件 FP6 tar 安装响应文件db2ese rsp 复制到 home install 目录下 root cd home install mkdir iso fp root moun
  • ROS学习笔记-Gazebo安装与闪退、卡顿问题解决

    1 安装 在安装完整版的ROS后 xff0c 就包括了Gazebo的安装了 xff0c 因此在终端输入下载指令时 xff0c 出现已存在的反馈信息 安装完整版ROS的指令是 xff1a sudo apt get install ros me
  • win10+vs2015+Intel RealSense D435i深度相机配置

    第一步 xff1a Intel RealSense D435i的SDK下载 链接 xff1a https pan baidu com s 1sIDlkbk8U9PFmJLhGJndxg 提取码 xff1a lppa 第二步 xff1a 测试
  • Vue中使用element-ui的el-dialog对话框,实现拖拽效果

    效果图 xff1a element ui的el dialog对话框 xff0c 没有拖拽移动的效果 xff0c 需要自定义指令来实现对话框拖拽 1 准备 xff1a 在准备一个vue组件 xff08 点击按钮弹出对话框 xff09 功能 x
  • 前端知识点(六):网页中有大量图片时加载很慢,如何优化?

    1 图片懒加载 在图片未可视区域加一个滚动条事件 xff0c 判断图片位置与浏览器顶端和页面的距离 xff0c 当图片到浏览器顶端的距离 xff0c 小于图片到页面的距离时 xff0c 优先加载 2 图片预加载 将当前展示图片的前一张和后一
  • 请求类型get,delete,post,put 的用法(传参)

    1 get delete传参 注意 xff1a xff08 1 xff09 传参格式 xff1a 96 URL key 61 value amp key2 61 value2 96 xff08 2 xff09 注意使用反引号 xff0c 而
  • 关于前端--RSA加密(对登录密码加密)

    安装 npm install jsencrypt 1 在utils文件中封装一个jsencrypt js文件 密匙对生成链接 xff1a http web chacuo net netrsakeypair import JSEncrypt
  • Vue+Uniapp实现直播功能(推流拉流)

    提示 xff1a 前言 目前有一个项目 需要做一个APP和一个PC端网页 xff0c 主要功能是类似直播 xff0c 经查阅资料 xff0c 可采用uniapp 43 vue 43 推流拉流的技术 xff0c 前端使用uniapp打开摄像头
  • web菜单--自定义样式

    1 文件src styles variables scss 定义变量 sidebar menuText var menuText bfcbd9 menuActiveText var menuActiveText 409EFF subMenu
  • vue3拖拽布局+动态组件+自适应布局

    1 拖拽布局插件 Vue Grid Layout 适用Vue js的栅格布局系统 可拖动和可调整大小栅格布局的Vue组件 https jbaysolutions github io vue grid layout zh 在package j

随机推荐

  • webrtc视频播放器(ZLMRTCClient.js)

    引言 在播放实时视频时 xff0c 视频播放器一般会有延迟 xff0c 此时 xff0c 就可以使用webrtc来拉流 xff0c 延迟在1s或者基本没有延迟 与zlm配套的rtc js客户端 国标 1 开源项目地址 ZLMRTCClien
  • python3字符串格式化

    python 3 字符串格式化 字符串格式化 Python的字符串格式化有两种方式 百分号方式 format方式 百分号的方式相对来说比较老 xff0c 而format方式则是比较先进的方式 xff0c 企图替换古老的方式 xff0c 目前
  • PDU 发送短信1

    使用PDU模式 xff0c 包含UDH头信息分割短信 xff0c 用户数据头UDH 61 00表示长短信拆分 贴一个转来的PDU学习笔记 xff0c 网上收藏的 关于PDU其实并不难 xff0c 至于PDU是什么 xff0c 不管它 xff
  • 在elementUI中格式化信息几种方式

    1 组件自带的格式化方法 2 全局注册过滤器 3 用el switch 这三列的数据需要格式化 lt el table border data 61 34 list 34 gt lt el table column label 61 34
  • 第八届蓝桥杯客观题答案

    解析 2 OC门又叫集电极开路门 5 地线也算信号线 6 RS232 不能调试下载吧 xff1f JATG 4线 xff08 不用VCC xff09 SWJ 5线 SPI 不是下载线 xff0c 通信用的 xff0c 而且也有五根 7 答案
  • Python学习笔记:Pyqt5鼠标键盘事件处理

    import sys from PyQt5 QtCore import from PyQt5 QtGui import from PyQt5 QtWidgets import class windows QMainWindow def in
  • c++成员函数后面加一个冒号:

    冒号后跟着的是赋值操作 xff0c 这种写法是c 43 43 的特性 比如 xff0c LRUcache int capacity cap capacity 相当于 LRUcache int capacity cap 61 capacity
  • python---布谷鸟搜索算法

    布谷鸟搜索算法 xff08 Cuckoo Search xff0c CS xff09 布谷鸟算法的启发当然来自于布谷鸟 xff0c 因为布谷鸟这种鸟很有意思 xff0c 生出来的孩子自己不养 xff0c 直接被扔到其他鸟的鸟巢中去了 xff
  • THRESH_OTSU mode: > ‘src_type == CV_8UC1 || src_type == CV_16UC1‘ > where > ‘src_type‘ is 6

    问题 xff1a python cv2 报错 xff1a 原因 OTSU算法是由日本学者OTSU于1979年提出的一种对图像进行二值化的高效算法 xff0c 是一种自适应的阈值确定的方法 xff0c 又称大津阈值分割法 xff0c 是最小二
  • 树莓派4B安装ubuntu mate崩溃(卡死)解决办法

    初次安装过程中 不要连WIFI xff01 xff01 xff01 不要接网线 xff01 xff01 xff01 我重装了不下15次所得来的惨痛教训 xff01 xff01 xff01
  • ubuntu20.04配置FrankMocap实现3D人体姿态估计

    一 初始环境配置 1 ubuntu20 04配置显卡驱动 以我的这篇文章为例子 xff0c 显卡RTX2060及以下的都可以使用我的方法快速完成配置 xff0c RTX2060以上的我尚未进行尝试 xff0c 请自行斟酌尝试 联想拯救者R7
  • 使用VNC远程控制树莓派的Ubuntu20.04(arm)

    一 将PC与树莓派连接到同一个局域网内 比如 xff1a 将树莓派和PC连接到同一个wifi中 xff0c 方法一 xff1a 如果是家用wife发射器 xff0c 则可以在浏览器中输入 xff1a http 192 168 0 1 来查询
  • vue笔记

    ES6相关补充 var 没有块级作用域 let 有块级作用域 ES5之前因为if和for都没有块级作用域的概念 xff0c 只能借助function的作用域来解决应用外面变量的问题 let有if和for的块级作用域 变量作用域 xff1a
  • python3字符串

    Python3 字符串 字符串是 Python 中最常用的数据类型 我们可以使用引号 或 来创建字符串 创建字符串很简单 xff0c 只要为变量分配一个值即可 例如 xff1a var1 61 Hello World var2 61 Run
  • html思维导图

    标题标签 标题标签 h1 h5 xff0c 字体从大到小 对应英文语义headline 使用注意 xff1a 标题里的文字要xian想水平居中或者垂直居中得用text align和line height来做 xff0c 内外边距不行 xff
  • 什么是MVVM?

    什么是MVVM MVVM是Model View ViewModel的缩写 MVVM是一种设计思想 View层是视图层 xff0c 也就是用户界面 前端主要由HTML和CSS来构建 xff1b Model层 是指数据模型 xff0c 泛指后端
  • Docker——Windows版本Docker安装

    目录 一 简介 1 1 Docker如何解决大型项目依赖关系复杂 xff0c 不同组件依赖的兼容性问题 xff1f 1 2 Docker如何解决开发 测试 生产环境有差异的问题 1 3 Docker 和 虚拟机的区别 1 4 Docker架
  • 细说C++中的 :: 和 : 的区别

    C 43 43 中的 1 类的作用域 作用域符号 的前面一般是类名称 xff0c 后面一般是该类的成员名称 xff0c C 43 43 为例避免不同的类有名称相同的成员而采用作用域的方式进行区分 假如 xff1a A B表示两个类 xff0
  • 扰动观测器(DOB)设计

    snf 机器人机械手可能会受到不同类型的干扰 例如未知的有效载荷 未建模的动力学和环境相互作用力 观察机器人操纵器中的这些未知干扰是许多机器人应用的基础 例如干扰抑制和无传感器力控制 机械手在进行正常操作时可能会受到不同类型的干扰 粗略地说
  • Gazebo安装教程——在 Ubuntu 上安装Gazebo的源代码

    安装工具 建议使用一些额外的工具来帮助编译源代码 xff0c 尽管其他正确获取和构建源代码的方法也是可能的 获取所有库的源代码的最简单方法是使用 vcstool 要以正确的顺序编译所有不同的库和 ign gazebo xff0c 建议使用c