新版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
教程请优先参考第一手官方文档,更新很快:
使用新立得安装工具包适合初学者,方便快捷。
新建 /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