首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ROS 2 ardent apalone安装和使用说明

ROS 2 ardent apalone安装和使用说明

作者头像
zhangrelay
发布2019-01-23 14:39:30
1.5K0
发布2019-01-23 14:39:30
举报

ROS 2 Ardent Apalone是机器人操作系统(2代)第一个正式版。

目前ROS 2和ROS 1 具体资料分别在如下两个网址:

 I . ROS 1(代表indigo/kinetic):http://wiki.ros.org/

I I. ROS 2(代表ardent):https://github.com/ros2/ros2/wiki

III. ROS 1和ROS 2的一些资料:http://blog.csdn.net/zhangrelay/article/details/78418393

ROS十周年刚过,即发布了第一个ROS 2的正式版ardent apalone。

下面依据官网简单介绍一下ROS 2的安装,ROS 2 ardent提供了软件源和源代码编译两种安装使用方式,这和ROS 1是几乎完全一致的。

1. Linux安装(debians)

设置软件源,如下:

$ sudo apt update && sudo apt install curl $ curl http://repo.ros2.org/repos.key | sudo apt-key add -

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  1679  100  1679    0     0   2887      0 --:--:-- --:--:-- --:--:--  2889
OK

$ sudo sh -c 'echo "deb [arch=amd64,arm64] http://repo.ros2.org/ubuntu/main xenial main" > /etc/apt/sources.list.d/ros2-latest.list'

2. 安装ROS 2软件包:

ROS 2的软件包命令如ROS 1,格式为ros-ardent-xxx,例如rviz,如下可以看到:

$ sudo apt-get install ros-ardent-rviz ros-ardent-rviz2                 ros-ardent-rviz-ogre-vendor ros-ardent-rviz-assimp-vendor    ros-ardent-rviz-rendering ros-ardent-rviz-common           ros-ardent-rviz-rendering-tests ros-ardent-rviz-default-plugins  ros-ardent-rviz-yaml-cpp-vendor 使用下面命令安装ROS 2 ardent全部包,注意,ros-ardent-ros1-bridge和ros-ardent-turtlebot2-*需要ROS 1的支持(需安装ROS Kinetic,需要请点击链接:http://blog.csdn.net/zhangrelay/article/details/51364622):

$ sudo apt install `apt list ros-ardent-* 2> /dev/null | grep "/" | awk -F/ '{print $1}' | grep -v -e ros-ardent-ros1-bridge -e ros-ardent-turtlebot2- | tr "\n" " "`

保持足够耐心等待安装结束,ROS 2已有的软件包如下:

Display all 183 possibilities? (y or n)
ros-ardent-actionlib-msgs                          ros-ardent-ament-uncrustify                        ros-ardent-lifecycle-msgs                          ros-ardent-rosidl-typesupport-interface
ros-ardent-amcl                                    ros-ardent-astra-camera                            ros-ardent-logging-demo                            ros-ardent-rosidl-typesupport-introspection-c
ros-ardent-ament-clang-format                      ros-ardent-builtin-interfaces                      ros-ardent-map-server                              ros-ardent-rosidl-typesupport-introspection-cpp
ros-ardent-ament-cmake                             ros-ardent-cartographer                            ros-ardent-nav-msgs                                ros-ardent-rosidl-typesupport-opensplice-c
ros-ardent-ament-cmake-auto                        ros-ardent-cartographer-ros                        ros-ardent-opensplice-cmake-module                 ros-ardent-rosidl-typesupport-opensplice-cpp
ros-ardent-ament-cmake-clang-format                ros-ardent-cartographer-ros-msgs                   ros-ardent-orocos-kdl                              ros-ardent-ros-workspace
ros-ardent-ament-cmake-copyright                   ros-ardent-class-loader                            ros-ardent-osrf-pycommon                           ros-ardent-rttest
ros-ardent-ament-cmake-core                        ros-ardent-common-interfaces                       ros-ardent-pcl-conversions                         ros-ardent-rviz2
ros-ardent-ament-cmake-cppcheck                    ros-ardent-composition                             ros-ardent-pendulum-control                        ros-ardent-rviz-assimp-vendor
ros-ardent-ament-cmake-cpplint                     ros-ardent-console-bridge                          ros-ardent-pendulum-msgs                           ros-ardent-rviz-common
ros-ardent-ament-cmake-export-definitions          ros-ardent-demo-nodes-cpp                          ros-ardent-pluginlib                               ros-ardent-rviz-default-plugins
ros-ardent-ament-cmake-export-dependencies         ros-ardent-demo-nodes-cpp-native                   ros-ardent-poco-vendor                             ros-ardent-rviz-ogre-vendor
ros-ardent-ament-cmake-export-include-directories  ros-ardent-demo-nodes-py                           ros-ardent-python-cmake-module                     ros-ardent-rviz-rendering
ros-ardent-ament-cmake-export-interfaces           ros-ardent-depthimage-to-laserscan                 ros-ardent-rcl                                     ros-ardent-rviz-rendering-tests
ros-ardent-ament-cmake-export-libraries            ros-ardent-depthimage-to-pointcloud2               ros-ardent-rclcpp                                  ros-ardent-rviz-yaml-cpp-vendor
ros-ardent-ament-cmake-export-link-flags           ros-ardent-diagnostic-msgs                         ros-ardent-rclcpp-lifecycle                        ros-ardent-sensor-msgs
ros-ardent-ament-cmake-flake8                      ros-ardent-dummy-map-server                        ros-ardent-rcl-interfaces                          ros-ardent-shape-msgs
ros-ardent-ament-cmake-gmock                       ros-ardent-dummy-robot-bringup                     ros-ardent-rcl-lifecycle                           ros-ardent-sros2
ros-ardent-ament-cmake-gtest                       ros-ardent-dummy-sensors                           ros-ardent-rclpy                                   ros-ardent-std-msgs
ros-ardent-ament-cmake-include-directories         ros-ardent-example-interfaces                      ros-ardent-rcutils                                 ros-ardent-std-srvs
ros-ardent-ament-cmake-libraries                   ros-ardent-examples-rclcpp-minimal-client          ros-ardent-resource-retriever                      ros-ardent-stereo-msgs
ros-ardent-ament-cmake-lint-cmake                  ros-ardent-examples-rclcpp-minimal-composition     ros-ardent-rmw                                     ros-ardent-teleop-twist-joy
ros-ardent-ament-cmake-nose                        ros-ardent-examples-rclcpp-minimal-publisher       ros-ardent-rmw-fastrtps-cpp                        ros-ardent-teleop-twist-keyboard
ros-ardent-ament-cmake-pep257                      ros-ardent-examples-rclcpp-minimal-service         ros-ardent-rmw-implementation                      ros-ardent-test-msgs
ros-ardent-ament-cmake-pep8                        ros-ardent-examples-rclcpp-minimal-subscriber      ros-ardent-rmw-implementation-cmake                ros-ardent-tf2
ros-ardent-ament-cmake-pyflakes                    ros-ardent-examples-rclcpp-minimal-timer           ros-ardent-rmw-opensplice-cpp                      ros-ardent-tf2-eigen
ros-ardent-ament-cmake-pytest                      ros-ardent-examples-rclpy-executors                ros-ardent-robot-state-publisher                   ros-ardent-tf2-geometry-msgs
ros-ardent-ament-cmake-python                      ros-ardent-examples-rclpy-minimal-client           ros-ardent-ros1-bridge                             ros-ardent-tf2-msgs
ros-ardent-ament-cmake-ros                         ros-ardent-examples-rclpy-minimal-publisher        ros-ardent-ros2cli                                 ros-ardent-tf2-ros
ros-ardent-ament-cmake-target-dependencies         ros-ardent-examples-rclpy-minimal-service          ros-ardent-ros2msg                                 ros-ardent-tinyxml2-vendor
ros-ardent-ament-cmake-test                        ros-ardent-examples-rclpy-minimal-subscriber       ros-ardent-ros2node                                ros-ardent-tinyxml-vendor
ros-ardent-ament-cmake-uncrustify                  ros-ardent-fastcdr                                 ros-ardent-ros2pkg                                 ros-ardent-tlsf
ros-ardent-ament-copyright                         ros-ardent-fastrtps                                ros-ardent-ros2run                                 ros-ardent-tlsf-cpp
ros-ardent-ament-cppcheck                          ros-ardent-fastrtps-cmake-module                   ros-ardent-ros2service                             ros-ardent-topic-monitor
ros-ardent-ament-cpplint                           ros-ardent-geometry-msgs                           ros-ardent-ros2srv                                 ros-ardent-trajectory-msgs
ros-ardent-ament-flake8                            ros-ardent-gmock-vendor                            ros-ardent-ros2topic                               ros-ardent-turtlebot2-amcl
ros-ardent-ament-index-cpp                         ros-ardent-gtest-vendor                            ros-ardent-rosidl-cmake                            ros-ardent-turtlebot2-cartographer
ros-ardent-ament-index-python                      ros-ardent-image-geometry                          ros-ardent-rosidl-default-generators               ros-ardent-turtlebot2-drivers
ros-ardent-ament-lint-auto                         ros-ardent-image-tools                             ros-ardent-rosidl-default-runtime                  ros-ardent-turtlebot2-follower
ros-ardent-ament-lint-cmake                        ros-ardent-intra-process-demo                      ros-ardent-rosidl-generator-c                      ros-ardent-turtlebot2-teleop
ros-ardent-ament-lint-common                       ros-ardent-joy                                     ros-ardent-rosidl-generator-cpp                    ros-ardent-uncrustify
ros-ardent-ament-package                           ros-ardent-kdl-parser                              ros-ardent-rosidl-generator-dds-idl                ros-ardent-urdf
ros-ardent-ament-pep257                            ros-ardent-launch                                  ros-ardent-rosidl-generator-py                     ros-ardent-urdfdom
ros-ardent-ament-pep8                              ros-ardent-launch-testing                          ros-ardent-rosidl-parser                           ros-ardent-urdfdom-headers
ros-ardent-ament-pyflakes                          ros-ardent-libcurl-vendor                          ros-ardent-rosidl-typesupport-c                    ros-ardent-visualization-msgs
ros-ardent-ament-tools                             ros-ardent-lifecycle                               ros-ardent-rosidl-typesupport-cpp                  

3. 环境设置

这个也和ROS 1是保持一致的,如下:

$ source /opt/ros/ardent/setup.bash

如果有Python包argcomplete(版本0.8.5或更高),可以导入如下文件获取命令行工具:

$ source /opt/ros/ardent/share/ros2cli/environment/ros2-argcomplete.bash

4. 选择RMW实现

默认情况下,RMW使用FastRPTS,通过设置环境变量RMW_IMPLEMENTATION=rmw_opensplice_cpp,可以切换为OpenSplice。

5. 使用ROS 1功能包的附加包

在ROS 2和ROS 1都安装配置完成的系统,可以通过ros1_bridge同时使用,如果使用Docker可以避免环境之间的切换等配置,安装如下包:

$ sudo apt install ros-ardent-ros1-bridge ros-ardent-turtlebot2-*

如果之前安装过ROS 2 b3版本,在配置时会出现一些警告,最佳解决方法是卸载beta版本。

$ source /opt/ros/ardent/setup.bash
Warning: OSPL_URI was already set to [[file:///opt/ros/r2b3/share/opensplice_cmake_module/config/ros_ospl.xml]]. This will not override it to the default [[file:///opt/ros/ardent/share/opensplice_cmake_module/config/ros_ospl.xml]]. Please make sure this is the config that you want.

$ sudo apt-get remove ros-r2b3-*

6. 测试

使用消息收发进行测试,如下,如正常则安装完成,进入教程进行学习:

源码安装请参考官网,推荐优先阅读官网。

----

----

ROS1与ROS2的区别?http://design.ros2.org/articles/changes.html

ROS 1和ROS 2之间的区别

本文概述了ROS 2与ROS 1相比所做的更改。

原作者:德克托马斯

前言

尽可能简短地描述每一个变化,但是给熟悉ROS 1的读者提供足够的上下文和理由。如果有更多的外部信息可用(例如其他文章),应该将其链接到。

某些描述的功能尚不可用,并标有⏳。

平台和依赖关系

平台

ROS 1仅在Ubuntu上进行CI测试。社区在其他Linux版本以及OS X上积极支持。

ROS 2目前在Ubuntu Xenial,OS X El Capitan以及Windows 10上进行了CI测试和支持(请参阅ci.ros2.org)。

语言

C ++标准

ROS 1的核心是针对C ++ 03,并没有在其API中使用C ++ 11功能。ROS 2广泛使用C ++ 11,并使用C ++ 14的某些部分。在未来,ROS 2可能会开始使用C ++ 17,只要它在所有主要平台上受支持。

Python

ROS 1是针对Python 2. ROS 2至少需要Python版本3.5。

重用现有的中间件

ROS 1使用自定义序列化格式,自定义传输协议以及自定义中央发现机制。ROS 2有一个抽象的中间件接口,通过它提供序列化,传输和发现。目前这个接口的所有实现都是基于DDS标准的。这使得ROS 2能够提供各种服务质量的策略,从而改善通过不同网络的通信。

建立系统

有关构建系统的更多信息,请参见柔夷花序Catkin文章。

支持CMake旁边的其他构建系统

每个ROS包都是一个CMake项目。在ROS 2中,可以轻松地支持其他构建系统。现在构建工具支持CMake旁边的纯Python包。

Python包

在ROS 1中,使用Python代码的软件包只能使用setup.py文件中可用功能的一小部分,因为setup.py文件是由CMake内的自定义逻辑处理的。在ROS 2中,一个Python包可以使用setup.py文件中的任何东西,例如入口点,因为它们被调用python3 setup.py install

环境设置

在ROS 1中,构建工具会生成脚本,这些脚本必须来源以便在能够使用构建的ROS软件包之前设置环境。这种方法只有在使用ROS特定的构建工具构建ROS包时才有效。

在ROS 2中,环境设置分为特定于包的脚本和特定于工作空间的脚本。每个软件包都提供了必要的脚本,使其在构建后可用。构建工具只调用特定于工作空间的脚本,然后调用特定于包的脚本。

没有非隔离的构建

在ROS 1中,可以在单个CMake上下文中构建多个包。虽然这加快了构建步骤,但是每个包都需要确保正确定义了交叉包目标依赖关系。另外所有的软件包共享相同的命名空间,导致目标名称冲突等。

在ROS 2中,只支持隔离的构建,即每个包都是独立构建的。安装空间可以是隔离的或合并的。

没有开发空间

在ROS 1中,可以在不安装包的情况下构建包。从开发空间与源空间结合起来,系统已经可以使用。但是每个软件包都必须积极支持开发空间,例如环境钩子和CMake代码。

在ROS 2中,必须先安装一个软件包,然后才能使用它。

ROS 1中的开发空间的一个原因是使开发人员能够更改文件,例如Python代码或启动文件,并直接使用修改后的代码,而无需重新编译软件包。在ROS 2中保留了这个好处,可以选择性地用符号链接替换安装步骤中的复制操作。

支持catkin_simple用例

在ROS 1中,包catkin_simple旨在使编写ROS包的CMake代码变得更容易。在许多情况下,它不能实现这个目标,这通常是由于像开发空间这样的支持功能所必需的设计的限制。

在ROS 2中,CMake API进行了重组,以支持这个用例。

对没有清单的软件包的最小支持

在ROS 1中,构建系统只考虑具有清单文件的包。在ROS 2中,可以在没有清单文件的文件夹中检测具有支持的构建系统的包。如果软件包遵循惯例,甚至有可能检测到一些缺失的元信息(如依赖关系)。

消息,服务

有关更多信息,请参阅ROS接口定义文章。

C ++中的分隔名称空间

在ROS 1中,.msg和.srv文件可以具有相同的名称,但生成的代码会发生冲突。请求和响应部分的服务也是如此。

在ROS 2中,生成的代码使用单独的名称空间来保证它是无冲突的。

Python中的同名

为消息和服务生成的Python代码当前在ROS 1和ROS 2中使用相同的模块和类名称。因此,它们不能在单个应用程序中导入。如果需要,这个决定可能会被重新审视。

消息定义中的可选默认值

在ROS 2中,消息中的原始值现在可以具有默认值,在消息构建时设置。非原始字段(即字符串数组,嵌套消息)的默认值不可能(⏳)。

数组和字符串的可选上限

为了计算消息在内存中的最大大小,这是必要的,这允许用动态大小预分配消息。这对性能和实时用例很有用。

统一持续时间和时间类型

在ROS 1中,持续时间和时间类型是在客户端库中定义的。数据结构的成员名称在C ++(sec,nsec)和Python(secs,nsecs)中是不同的。

在ROS 2中,这些类型被定义为消息,因此在不同的语言中是一致的。

从标题消息中删除序列字段

该领域已被弃用了很长一段时间,并没有在ROS 1中一贯设置。

客户端库

跨语言

主题命名空间(⏳)

目前ROS 2不支持主题名称中的命名空间。这主要是由于DDS主题名称中有效字符的限制。一个设计文档描述了如何在未来应该加入。

通知

在ROS 1中,关于ROS图的所有信息都必须从主站查询。在ROS 2中,更改将发布,例如,如果参数已更改,则会发出通知。

具有生命周期的组件

在ROS 1中,每个节点通常都有自己的主要功能。在ROS 2中,建议从具有生命周期的组件中继承子类。

生命周期可以被像roslaunch这样的工具用来以确定性的方式启动一个由许多组件组成的系统(⏳)。

有关更多信息,请参阅节点生命周期文章。

参数和动态重新配置

在ROS 1中,全局参数和节点特定的动态重新配置参数是两个单独的概念。在ROS 2中,正在使用统一的方法。它类似于动态重新配置,名为“全局参数服务器”(⏳)的节点将接受无条件设置值的请求。在ROS 1中,所有这些信息都需要被调查,因为ROS 2的变化将被公布以通知其他实体。

欲了解更多信息,请参阅参数设计文章。

行动(⏳)

ROS 2目前没有行动的概念。它将在未来作为可抢占服务器和反馈发布者的组合加入。

线程模型

在ROS 1中,开发人员只能选择单线程执行或多线程执行。在ROS 2中,更多的粒度执行模型可以在C ++中使用(例如跨越多个节点),并且自定义执行器可以轻松实现。对于Python来说,执行模型还没有实现。

ROS图表

在ROS 1中,节点和主题只能在启动时重新映射。在ROS 2中,对重映射的支持尚未实现(⏳)。目标是启用重新映射以及别名,不仅在启动时间,而且在运行时。

在ROS 1中,节点名称是唯一的,当启动具有相同名称的新节点时,通过关闭现有节点来强制实施。在ROS 2中,节点名称的唯一性还没有被强制执行。

C和C ++

支持实时

ROS 1不支持编写实时代码,而是依赖于Orocos等外部框架。在ROS 2中,当使用合适的RTOS和仔细编写的用户代码时,可以编写实时节点。

C ++

节点与Nodelet

在ROS 1中,节点和节点的API是不同的,并且需要开发者在编程时决定节点到进程的映射。在ROS 2中,建议将每个组件编译成一个共享库,然后可以在单独的进程中加载​​它,或与其他组件(如ROS 1 nodelets)共享相同的进程。这使得可以在部署时选择流程布局。

每个进程允许多个节点

在ROS 1中,不可能在一个进程中创建多个节点。这是由于API本身,也是由于内部的实施决定。在ROS 2中,可以在一个进程中创建多个节点。

工具

roslaunch(⏳)

在ROS 1中,roslaunch文件是用XML定义的,功能非常有限。在ROS 2中,启动文件是用Python编写的,可以使用更复杂的逻辑,如条件等。当前状态只提供最小的功能来运行使用多个进程的测试。

资源查找

在ROS 1中,通过基于ROS_PACKAGE_PATH搜索文件系统来查找各种资源(包,消息,插件等)。当ROS_PACKAGE_PATH中的树很大时,这可能导致性能较差,并且缓存产生不一致的状态。

在ROS 2中,资源可以在编译时在索引处注册,然后在运行时被有效查询。有关更多信息,请参阅资源索引的文档。

打包

ABI版本控制(⏳)

由于它假定ABI不兼容,ROS 1重建所有下游软件包。为了避免这种大的开销,ROS 2包应该能够声明它的ABI,以尽可能避免重建下游包。

Windows二进制包(⏳)

ROS 1只能从Windows上的源代码(也只适用于几个ROS软件包,不受支持)构建。ROS 2将提供基于Chocolatey的二进制包。

附件(相关资料):

-ROS 2-

ROS 2

机器人操作系统(ROS)是一套软件库和工具,可帮助您构建机器人应用程序。从驱动程序到最先进的算法,以及功能强大的开发人员工具,ROS都可以为您的下一个机器人项目提供所需的内容。这都是开源的。

在这里,您将找到关于如何安装和使用ROS 2的软件的文档,ROS 2正在大力开发之中。请参阅下面有关ROS 2的更多信息。

如果您正在寻找有关ROS 1的信息(即,ROS已经存在10多年,现在可能会用到),请查看ROS网站文档wiki

在继续阅读之前,请阅读功能页面以了解当前ROS 2版本的内容。

安装

请参阅安装页面

教程和功能

ROS 2正在大力发展。您可以检查出的教程页面看到一系列的什么系统可以在当前状态下做的,如果它适合你的工程实例今天取决于具体的要求。有关当前功能的详细信息,请参阅功能

计划

ROS 2目前计划每六个月发布一个新版本(这是ROS 1的两倍),以便社区成员有机会提供有关不断发展的系统的早期反馈。有关即将推出的ROS 2功能的详细信息,请参阅路线图

约定

有关如何为ROS 2开发做出贡献的详细信息,请参阅贡献页面开发人员指南

报告或提出问题

查看联系页面

关于ROS 2

自2007年启动ROS以来,机器人和ROS社区发生了很大变化。ROS 2项目的目标是适应这些变化,充分利用ROS 1的优点,改进不是什么。有一个关于ROS 2的动机完整的文章在这里

在哪里可以找到更多信息

design.ros2.org上有关于ROS 2设计的各种文章,例如:为什么要使用ROS 2.0?DDS上的ROS,以及ROS 1和ROS 2之间的变化

ROS 2的代码是开源的,分解成各种版本库。您可以在ros2 github组织中找到大多数存储库的代码。

docs.ros2.org包含有关ROS 2内部设计和组织的最新详细信息。

awesome-ros2是ROS 2软件包和资源的“备忘单”风格快速参考,它将获得(希望)在精选列表的列表中列出,以帮助GitHub用户了解ROS 2。

以下是关于ROS 2的ROSCon讲座,并提供了有关ROS 2和各种演示工作的信息:

标题

类型

链接

ROS 2推动机器人发展未来的愿景

ROSCon 2017演示文稿

幻灯片 / 视频

ROS 2更新 - alpha发布摘要,架构概述

ROSCon 2016演示文稿

幻灯片 / 视频

评估ROS2通信层的弹性

ROSCon 2016演示文稿

幻灯片 / 视频

ROS 2的状态 - 演示和背后的技术

ROSCon 2015演示文稿

幻灯片 / 视频

ROS 2在“小型”嵌入式系统上

ROSCon 2015演示文稿

幻灯片 / 视频

ROS和ROS 2.0中的实时控制

ROSCon 2015演示文稿

幻灯片 / 视频

你为什么要使用ROS 2

ROSCon 2014演示文稿

幻灯片 / 视频

下一代ROS:建立在DDS上

ROSCon 2014演示文稿

幻灯片 / 视频

-ROS 1-

ROS (Robot Operating System, 机器人操作系统) 提供一系列程序库和工具以帮助软件开发者创建机器人应用软件。它提供了硬件抽象、设备驱动、函数库、可视化工具、消息传递和软件包管理等诸多功能。ROS遵循BSD开源许可协议。

ROS:

  • 安装
    • 在你的机器上安装ROS。

    入门

    • 学习ROS的相关概念、客户端函数库以及技术梗概等。

    教程

    • ROS手把手教程,提供每一步详细操作命令。

    贡献

    • 如何加入ROS社区,比如分享你的代码。

    支持

    • 遇到问题可以从这里寻求支持和帮助。

软件:

机器人/硬件:

出版物、课程以及活动:

  • 论文
    • 带开源代码的ROS相关论文。

    书籍

    • 出版书籍,包括文档、教程和开源代码等。

    课程

    • 使用或教授ROS的课程。

    活动

    • 历史活动和相关资料。

ROS中国:

世界各地wiki镜像站点。

----

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017年12月12日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • ROS 2 Ardent Apalone是机器人操作系统(2代)第一个正式版。
    • 1. Linux安装(debians)
      • 2. 安装ROS 2软件包:
        • 3. 环境设置
          • 4. 选择RMW实现
            • 5. 使用ROS 1功能包的附加包
              • 6. 测试
              • ROS 1和ROS 2之间的区别
                • 前言
                  • 平台和依赖关系
                    • 平台
                    • 语言
                    • 重用现有的中间件
                  • 建立系统
                    • 支持CMake旁边的其他构建系统
                    • Python包
                    • 环境设置
                    • 没有非隔离的构建
                    • 没有开发空间
                    • 支持catkin_simple用例
                    • 对没有清单的软件包的最小支持
                  • 消息,服务
                    • C ++中的分隔名称空间
                    • Python中的同名
                    • 消息定义中的可选默认值
                    • 数组和字符串的可选上限
                    • 统一持续时间和时间类型
                    • 从标题消息中删除序列字段
                  • 客户端库
                    • 跨语言
                    • C和C ++
                    • C ++
                  • 工具
                    • roslaunch(⏳)
                  • 资源查找
                    • 打包
                      • ABI版本控制(⏳)
                      • Windows二进制包(⏳)
                  • ROS 2
                    • 安装
                      • 教程和功能
                        • 计划
                          • 约定
                            • 报告或提出问题
                            • 关于ROS 2
                              • 在哪里可以找到更多信息
                              相关产品与服务
                              消息队列 TDMQ
                              消息队列 TDMQ (Tencent Distributed Message Queue)是腾讯基于 Apache Pulsar 自研的一个云原生消息中间件系列,其中包含兼容Pulsar、RabbitMQ、RocketMQ 等协议的消息队列子产品,得益于其底层计算与存储分离的架构,TDMQ 具备良好的弹性伸缩以及故障恢复能力。
                              领券
                              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档