ROS 2 Foxy Fitzroy遇见Ubuntu 20.04
时间:2022-07-22
本文章向大家介绍ROS 2 Foxy Fitzroy遇见Ubuntu 20.04,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
新版ROS2即将发布,现在可以选择测试版,使用并无必要,正式版发布至少3-6个月各种基础功能包才能跟上。旧版ROS1发布进度明显慢于ROS2,推荐使用melodic或kinetic,如果您之前没有接触过ROS,请不要再学习ROS1了,毕竟相关技术和代码规范与ROS2差异巨大。重心应该在机器人相关应用和算法研究,不要过分依赖工具。
目前一共有440个包,远远少于dashing的800+。
安装参考如下链接:
教程将全面适配dashing和foxy。
安装测试版ros2使用源:
- deb http://packages.ros.org/ros2-testing/ubuntu focal main
安装正式版ros2使用源:
- deb http://packages.ros.org/ros2/ubuntu focal main
教程请优先参考第一手官方文档,更新很快:
- source /opt/ros/foxy/setup.bash
使用新立得安装工具包适合初学者,方便快捷。
ROS2 镜像使用帮助
新建 /etc/apt/sources.list.d/ros2-latest.list
,内容为:
Debian/Ubuntu版本: Ubuntu 20.04 LTS
deb https://mirrors.tuna.tsinghua.edu.cn/ros2/ubuntu/ focal main
然后再输入如下命令,信任 ROS 的 GPG Key,并更新索引:
sudo apt install curl gnupg2
curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -
sudo apt update
- cmake
- setuptools
Foxy Fitzroy (May 2020 - May 2023)
----------------------------------
Targeted platforms:
+--------------+-----------------------+-------------------------+----------------------+--------------------+---------------+
| Architecture | Ubuntu Focal (20.04) | MacOS Mojave (10.14) | Windows 10 (VS2019) | Debian Buster (10) | OpenEmbedded /|
| | | | | | webOS OSE |
+==============+=======================+=========================+======================+====================+===============+
| amd64 | Tier 1 [d][a][s] | Tier 1 [a][s] | Tier 1 [a][s] | Tier 3 [s] | |
+--------------+-----------------------+-------------------------+----------------------+--------------------+---------------+
| arm64 | Tier 1 [d][a][s] | | | Tier 3 [s] | Tier 3 [s] |
+--------------+-----------------------+-------------------------+----------------------+--------------------+---------------+
| arm32 | Tier 2 [d][a][s] | | | Tier 3 [s] | Tier 3 [s] |
+--------------+-----------------------+-------------------------+----------------------+--------------------+---------------+
The following indicators show what delivery mechanisms are available for each platform.
" [d] " Debian packages will be provided for this platform for packages submitted to the rosdistro.
" [a] " Binary releases are provided as a single archive per platform containing all packages in the Eloquent ROS 2 repos file [6]_.
" [s] " Compilation from source.
Middleware Implementation Support:
+--------------------------+---------------------+---------------+-----------------------------+--------------------------------------+
| Middleware Library | Middleware Provider | Support Level | Platforms | Architectures |
+==========================+=====================+===============+=============================+======================================+
| rmw_fastrtps_cpp | eProsima Fast-RTPS | Tier 1 | All Platforms | All Architectures |
+--------------------------+---------------------+---------------+-----------------------------+--------------------------------------+
| rmw_connext_cpp | RTI Connext | Tier 1 | All Platforms except Debian | All Architectures except arm64/arm32 |
| | | | and OpenEmbedded | |
+--------------------------+---------------------+---------------+-----------------------------+--------------------------------------+
| rmw_cyclonedds_cpp | Eclipse Cyclone DDS | Tier 1 | All Platforms | All Architectures |
+--------------------------+---------------------+---------------+-----------------------------+--------------------------------------+
| rmw_fastrtps_dynamic_cpp | eProsima Fast-RTPS | Tier 2 | All Platforms | All Architectures |
+--------------------------+---------------------+---------------+-----------------------------+--------------------------------------+
Middleware implementation support is dependent upon the platform support tier.
For example a Tier 1 middleware implementation on a Tier 2 platform can only receive Tier 2 support.
Minimum language requirements:
- C++14
- Python 3.7
+-------------+-------------------------------------------------+--------------------------------------+
| | Required Support | Recommended Support |
+-------------+----------------+---------------+----------------+----------------+---------------------+
| Package | Ubuntu Focal | MacOS** | Windows 10** | Debian Buster | OpenEmbedded** |
+=============+================+===============+================+================+=====================+
| CMake | 3.16.3 | 3.14.4 | 3.14.4 | 3.13.4 | 3.16.1 / 3.12.2**** |
+-------------+----------------+---------------+----------------+----------------+---------------------+
| EmPY | 3.3.2 |
+-------------+----------------+---------------+----------------+----------------+---------------------+
| Gazebo | 11.0.0* | 11.0.0 | N/A | 11.0.0* | N/A |
+-------------+----------------+---------------+----------------+----------------+---------------------+
| Ignition | Citadel* | N/A | Citadel* | N/A |
+-------------+----------------+---------------+----------------+----------------+---------------------+
| Ogre | 1.10* | N/A |
+-------------+----------------+---------------+----------------+----------------+---------------------+
| OpenCV | 4.2.0 | 4.2.0 | 3.4.6* | 3.2.0 | 4.1.0 / 3.2.0**** |
+-------------+----------------+---------------+----------------+----------------+---------------------+
| OpenSSL | 1.1.1d | 1.1.1f | 1.1.1f | 1.1.1d | 1.1.1d / 1.1.1b**** |
+-------------+----------------+---------------+----------------+----------------+---------------------+
| Poco | 1.9.2 | 1.9.0 | 1.8.0* | 1.9.0 | 1.9.4 |
+-------------+----------------+---------------+----------------+----------------+---------------------+
| Python | 3.8.0 | 3.8.2 | 3.8.0 | 3.7.3 | 3.8.2 / 3.7.5**** |
+-------------+----------------+---------------+----------------+----------------+---------------------+
| Qt | 5.12.5 | 5.12.3 | 5.10.0 | 5.11.3 | 5.14.1 / 5.12.5**** |
+-------------+----------------+---------------+----------------+----------------+---------------------+
| | **Linux only** |
+-------------+----------------+---------------+----------------+----------------+---------------------+
| PCL | 1.10.0 | N/A | N/A | 1.9.1 | 1.10.0 |
+-------------+----------------+---------------+----------------+----------------+---------------------+
| **RMW DDS Milddleware Providers** |
+-------------+----------------+---------------+----------------+----------------+---------------------+
| Connext DDS | 5.3.1 | N/A |
+-------------+----------------+---------------+----------------+----------------+---------------------+
| Cyclone DDS | 0.5.1 (Eusebius) |
+-------------+----------------+---------------+----------------+----------------+---------------------+
| Fast-RTPS | 1.10.0 |
+-------------+----------------+---------------+----------------+----------------+---------------------+
" * " means that this is not the upstream version (available on the official Operating System repositories) but a package distributed by OSRF or the community (package built and distributed on custom repositories).
" ** " Rolling distributions will see multiple version changes of these dependencies during their lifetime.
The versions shown for OpenEmbedded are those provided by the 3.1 Dunfell release series; the versions provided by the other supported release series are listed here: https://github.com/ros/meta-ros/wiki/Package-Version-Differences .
Note that the OpenEmbedded releases series for which a ROS distro has support will change during its support time frame, as per the OpenEmbedded support policy shown here: https://github.com/ros/meta-ros/wiki/Policies#openembedded-release-series-support .
However, it will always be supported by least one stable OpenEmbedded release series.
" **** " webOS OSE provides this different version.
This document only captures the version at the first release of a ROS distribution and will not be updated as the dependencies move forward.
These versions are thus a low watermark.
Package manager use for dependencies:
- Ubuntu, Debian: apt
- MacOS: Homebrew, pip
- Windows: Chocolatey, pip
- OpenEmbedded: opkg
Build System Support:
- ament_cmake
- cmake
- setuptools
- 关于字符串匹配查找的总结(43天)
- 一条sql语句导致的数据库宕机问题及分析(42天)
- 外部表的导入导出问题 (41天)
- 当我们和计算机交互时,它看到的是什么?
- 一条sql语句“导致”的数据库宕机问题及分析 (38天)
- rman数据备份恢复学习笔记(49天)
- 虚拟专用数据库VPD应用 (48天)
- 关于创建视图的问题(48天)
- 性能调优之redo切换频率(47天)
- 关于oracle中session跟踪的总结(56天)
- oracle中关于小数中0的格式化(55天)
- 关于trigger过滤最大值的问题(54天)
- oracle共享服务器配置汇总(53天)
- 关于drop user的cascade选项解惑(52天)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 轻松应对并发问题,简易的火车票售票系统,第一步 —业务分析
- 【Spark Operator】核数设置Cores/Cores Limit/Cores Request,你搞清楚没有?
- 【Ceph RGW】radosgw_usage_exporter监控用户使用量
- 【Goland】#{key}=#{value},字符串被格式化了?
- Variable变量
- 案例:OGG目标端进程ABENDED处理
- Elasticsearch深分页以及排序查询问题
- 聊聊dubbo-go的HystrixFilter
- 如何将Java工程导出成可以执行的jar
- 利用JSP内置的Application对象实现的网站引用计数
- JSP导入XML不成功的一个原因
- 生产环境日志清理脚本
- fastadmin插件开发之插件目录
- EasySwoole之定时任务面板
- Gradle构建springBoot项目