ROS2 Dashing源码编译和安装

安装前的准备

1
2
3
4
5

官方教程:
https://index.ros.org/doc/ros2/Installation/Dashing/Linux-Development-Setup/

环境信息:
UBUNTU18.04LTS

可选项:

  1. 安装系统备份和恢复工具timeshift,避免发生灾难性错误后无法恢复,使用方法:链接
  2. 修改DNS(有助于避免安装过程中频繁出现的网络超时,如果你可以科学上网更好),教程链接
  3. 修改apt源(提高其它工具的下载速度)教程链接

搭建编译环境

ROS2在规划之初就约定了各个依赖的版本,具体请到此链接查看:REP 2000
我们使用的环境为18.04,所以对应的各个依赖项的版本如下:

搭建步骤

1. 设置语言环境

1
2
3

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

ROS编译及运行需要将语言编码设置为UTF-8,中文系统可以不需要设置(未测试

2. 添加ROS 2 apt仓库

1
2
3
4
5
6

#首先使用如下所示的apt授权我们的GPG密钥:
sudo apt update && sudo apt install curl gnupg2 lsb-release
curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -

#然后将存储库添加到您的源列表中:
sudo sh -c 'echo "deb http://packages.ros.org/ros2/ubuntu `lsb_release -cs` main" > /etc/apt/sources.list.d/ros2-latest.list'

3. 安装开发工具和ROS工具

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34

sudo apt update && sudo apt install -y \
  build-essential \
  cmake \
  git \
  python3-colcon-common-extensions \
  python3-pip \
  python-rosdep \
  python3-vcstool \
  wget
# install some pip packages needed for testing
python3 -m pip install -U \
  argcomplete \
  flake8 \
  flake8-blind-except \
  flake8-builtins \
  flake8-class-newline \
  flake8-comprehensions \
  flake8-deprecated \
  flake8-docstrings \
  flake8-import-order \
  flake8-quotes \
  pytest-repeat \
  pytest-rerunfailures \
  pytest \
  pytest-cov \
  pytest-runner \
  setuptools
# install Fast-RTPS dependencies
sudo apt install --no-install-recommends -y \
  libasio-dev \
  libtinyxml2-dev
# install CycloneDDS dependencies
sudo apt install --no-install-recommends -y \
  libcunit1-dev

4. 获取ROS 2代码

创建一个工作区并克隆所有存储库:

1
2
3
4

mkdir -p ~/ros2_dashing/src
cd ~/ros2_dashing
wget https://raw.githubusercontent.com/ros2/ros2/dashing/ros2.repos
vcs import src < ros2.repos

注:此步骤可能因为网络原因失败,多试几次
vcs是一个版本管理工具,你可以理解为它为git、svn等做了统一的封装

5. 使用rosdep安装依赖

1
2
3

sudo rosdep init
rosdep update
rosdep install --from-paths src --ignore-src --rosdistro dashing -y --skip-keys "console_bridge fastcdr fastrtps libopensplice67 libopensplice69 rti-connext-dds-5.3.1 urdfdom_headers"

注:在执行最后一步时可能会失败,rosdep的本质相当于一个安装脚本(多个 sudo apt install),所以失败后重新执行几次,直到提示所有安装操作都成功即可。

6. 在工作区中构建代码

1
2

cd ~/ros2_dashing/
colcon build --symlink-install

这个指令是编译所有ROS packages,所以在执行过程中可能会出现错误,官方文档中给出的解决方案如下:

Note: if you are having trouble compiling all examples and this is preventing you from completing a successful build, you can use AMENT_IGNORE in the same manner as CATKIN_IGNORE to ignore the subtree or remove the folder from the workspace. Take for instance: you would like to avoid installing the large OpenCV library. Well then simply $ touch AMENT_IGNORE in the cam2image demo directory to leave it out of the build process.

翻译:
注意:如果在编译所有示例时遇到麻烦,并且这妨碍了您成功完成构建,则可以AMENT_IGNORE按照与CATKIN_IGNORE相同的方式使用,以忽略子树或从工作空间中删除文件夹。例如:您希望避免安装大型OpenCV库。那么,只需在demo目录中将其排除在构建过程之外即可。$ touch AMENT_IGNOREcam2image

我的解决方案:
重新单独构建失败的packages,指令如下:

colcon build --package-select [PKG_NAME]

有的失败的包可能并不需要,不必理会。

至此,所有编译安装完成。

环境设置

. ~/ros2_dashing/install/setup.bash

安装命令自动补全工具

sudo apt install python3-argcomplete

在一个终端中,获取安装文件的源代码,然后运行C ++ talker

. ~/ros2_dashing/install/local_setup.bash
ros2 run demo_nodes_cpp talker

在另一个终端源中,安装文件,然后运行Python listener

. ~/ros2_dashing/install/local_setup.bash
ros2 run demo_nodes_py listener

您应该看到talker这是Publishing消息的listener说法以及这些消息的说法。这可以验证C ++和Python API是否正常工作。

备用编译器¶

使用gcc以外的其他编译器来编译ROS 2很容易。如果分别为工作的C和C ++编译器设置环境变量CCCXX可执行文件,并重新触发CMake配置(通过使用--force-cmake-config或删除要受影响的软件包),则CMake将重新配置并使用其他编译器。

锵¶

要将CMake配置为检测和使用Clang:

sudo apt install clang
export CC=clang
export CXX=clang++
colcon build --cmake-force-configure

待办事项:使用ThreadSanitizer,MemorySanitizer

保持最新¶

请参阅维护ROS 2的源签出以定期刷新源安装。

故障排除¶

故障排除技术可以在这里找到。

卸载¶

  1. 如果您按照上面的指示使用colcon安装了工作区,则“卸载”可能只是打开一个新终端而不是获取工作区setup文件的问题。这样,您的环境将表现为系统上没有安装Dashing。

  2. 如果您还试图释放空间,则可以使用以下方法删除整个工作区目录:

    rm -rf ~/ros2_dashing

ROS2 Dashing源码编译和安装相关推荐

  1. ROS Dashing源码编译和安装

    ROS Dashing源码编译和安装 前置准备 安装前的准备 可选项: 搭建编译环境 搭建步骤 1. 设置语言环境 2. 添加ROS 2 apt仓库 3. 安装开发工具和ROS工具 4. 获取ROS ...

  2. ubuntu 环境下调试mysql源码_【转】Ubuntu 16.04下 Mysql 5.7.17源码编译与安装

    Ubuntu 16.04下 Mysql5.7.17源码编译与安装 系统环境 一. 系统安装条件 1.cmake MySQL使用cmake跨平台工具预编译源码,用于设置mysql的编译参数. sudo ...

  3. 源码编译构建安装内核kernel

    源码编译构建安装内核kernel 荣涛 2021年10月27日 文档修改日志 日期 修改内容 修改人 备注 2021年10月27日 创建 荣涛 2021年10月28日 添加可能的问题 荣涛 1. 引言 ...

  4. Atlas 2.2.0源码编译及安装步骤

    Atlas 2.2.0源码编译及安装步骤 一.源码编译 1. 下载源码 2. 前置环境安装 3. 修改版本号 4. 修改源码中 atlas与kafka版本兼容问题 5. 开始编译 6. 问题锦集 二. ...

  5. make无法执行——源码编译、安装

    在进行软件源码编译.安装时 ,出现make无法执行的情况下,是缺少基础开发包 执行命令即可: apt-get  install    build-essential

  6. Spark入门教程(二)Spark2.2源码编译及安装配置

    Spark2.2源码下载 点此进入官网下载地址: 下载Spark spark官网下载截图 //下载好后用传输工具传输到我们的linux上并解压缩 tar -zxvf spark-2.2.0.tgz 源 ...

  7. Hadoop-2.8.0集群搭建、hadoop源码编译和安装、host配置、ssh免密登录、hadoop配置文件中的参数配置参数总结、hadoop集群测试,安装过程中的常见错误

    25. 集群搭建 25.1 HADOOP集群搭建 25.1.1集群简介 HADOOP集群具体来说包含两个集群:HDFS集群和YARN集群,两者逻辑上分离,但物理上常在一起 HDFS集群: 负责海量数据 ...

  8. nginx 源码编译、安装

    nginx 源码编译安装 下载Nginx安装包,Nginx 官网下载,并解压 cd /usr/local/src wget http://nginx.org/download/nginx-1.21.5 ...

  9. 源码编译、安装libffi

    1. 下载源码编译安装 wget ftp://sourceware.org/pub/libffi/libffi-3.3.tar.gz cd libffi-3.3 ./configure --prefi ...

最新文章

  1. C# DataTable 转换成ListT
  2. io分析神器blktrace
  3. 优化缩短关中断的时间
  4. java 画图保存图片_将绘图保存到图像文件,而不是使用Matplotlib显示它
  5. std::get(std::tuple)
  6. 网络编程3之TCP/IP协议
  7. php接口调用实例源代码,小蚂蚁学习APP接口开发(7)—— APP接口实例——读取缓存方式开发APP接口的代码案例...
  8. 【STM32】DMA相关函数和类型
  9. Django的Field(字段)
  10. IntelliJ IDEA 中配置、使用 SVN
  11. linux必备工具,Linux装机必备工具
  12. easycode不推荐使用_为什么MySQL不推荐使用uuid或者雪花id作为主键?
  13. java邮箱找回密码_java实现邮箱找回密码 简单邮件
  14. plsql oracle client没有正确安装(plsql连接远程数据库)
  15. 对springboot整合mybatis -- 不一样的看法
  16. 小白系统初始化配置资源失败怎么办
  17. Idea2021激活码
  18. 城市内涝及桥洞隧道积水在线监测系统
  19. 男は失恋夜盗11台奔スポーツカーエンブレム腹いせ(写真)
  20. 数据挖掘与机器学习:机器学习 --- 决策树

热门文章

  1. 中兴历年笔试题自己收藏用03
  2. 漏洞修复:Web Server Misconfiguration: SSL Certificate Hostname Discrepancy
  3. 豆瓣电影api接口数据
  4. office word复制图片出错
  5. 关于卫星导航的坐标系简介
  6. MVC三层架构(超详细解析)
  7. 在VS平台下使用JAI_SDK库1———— 配置工程包含路径
  8. 马赛克拼接图片生成器done~
  9. Serif和Sans-serif字体的区别
  10. Android 颜色使用总结