ROS 1和ROS 2同步开发发行,目前最新ROS 1的版本号为M,而ROS 2的版本号为B,ROS 2 Bouncy正式发布。

目前,ROS packages for Ardent状态为maintained(186);for Bouncy状态为developed(63)。

请等待正式发布。已经正式发布,2018年7月3日。

参考链接:http://www.ros.org/news/2018/07/ros-2-bouncy-bolson-released.html

ROS 2 Bouncy Bolson支持Ubuntu 18.04, Ubuntu 16.04, Mac OS X 10.12, Windows 10。

----ROS 2 Bouncy Bolson发布!----机器翻译----

查看我们的安装说明和教程,并试一试!我们很高兴听到您的反馈和此版本将启用的应用程序!

要了解此版本中的内容,请务必阅读Bouncy发布页面。

我们希望在此版本中强调一些功能和改进:

  • 新的和改进的ROS 2发布。
  • 静态重新映射节点名称/主题以及通过命令行传递参数。
  • 用于处理生命周期状态和参数的新命令行工具。
  • 采用colcon作为推荐的构建工具。
  • 支持二进制文件中所有三个受支持的RMW实现。
  • 针对ROS 2原生rosbag实施的基础工作。
  • 多个RViz显示移植到ROS 2。
  • 安全性:除了RTI Connext之外,eProsima Fast-RTPS现在还提供访问控制支持。
  • 支持ROS 2构建服务器场上的第三方软件包提交和“开发工作” 。

Bouncy Bolson是第二个非beta版本的ROS 2,将支持错误修复和平台更新(特别是关于滚动依赖关系,如Windows和MacOS)一年,支持将于2019年6月结束。虽然我们的目标是将API保持为尽可能稳定,我们无法保证版本之间的100%API兼容性。检查功能页面和ROS 2路线图,以评估ROS 2是否已准备好用于您的应用程序,或者您是否可以从ROS 1切换到ROS 2,因为它将取决于您的用例的确切功能集和要求。

与往常一样,我们邀请您试用新软件,提供反馈,报告错误和建议功能(并提供代码!):https://github.com/ros2/ros2/wiki/Contact我们也邀请您发布你的ROS 2套餐在Bouncy!这是一个教程。

我们还想宣布下一个ROS 2版本的名称:Crystal Clemmys

友好的ROS 2团队

----

ROS 1和ROS 2同步学习推荐:

1. 在Ubuntu 16.04中使用ROS 1 Kinetic和ROS 2 Ardent;

2. 在Ubuntu 18.04中使用ROS 1 Melodic和ROS 2 Bouncy。

下面简单介绍一下通过Debian Packages安装ROS 2 Bouncy:

具体内容,推荐参考官网教程:https://github.com/ros2/ros2/wiki/Linux-Install-Debians

根多关于ROS 2的详细内容参考如下:

1:( https://github.com/ros2/ros2/wiki )

2:( https://github.com/fkromer/awesome-ros2 )

请注意:ROS 2 Bouncy对应Ubuntu Bionic(18.04 LTS);ROS 2 Ardent对应Ubuntu Xenial(16.04 LTS)。

1-设置安装源

主要分为如下两步:

1.1

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

----

1.2

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

----

图示如下:

----

2-安装ROS 2软件包

同样分为如下两步:

2.1

export ROS_DISTRO=bouncy

----

2.2

旧:

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

新:

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

----

3-环境设置

ROS 1.0和ROS 2.0并存问题。

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

在bash中写选择版本的Code即可,效果如下:

----

4-示例测试

4.1 talker-listener

T1:
ros2 run demo_nodes_cpp talker
T2:
ros2 run demo_nodes_py listener

4.2 help

4.3 Launch

# Copyright 2018 Open Source Robotics Foundation, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License."""Launch a lifecycle talker and a lifecycle listener."""import os
import sys
sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..'))  # noqa
sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..', '..', 'launch'))  # noqaimport launch
import launch.actions
import launch.eventsfrom launch_ros import get_default_launch_description
import launch_ros.actions
import launch_ros.events
import launch_ros.events.lifecycleimport lifecycle_msgs.msgdef main(argv=sys.argv[1:]):"""Main."""ld = launch.LaunchDescription()# Prepare the talker node.talker_node = launch_ros.actions.LifecycleNode(node_name='talker',package='lifecycle', node_executable='lifecycle_talker', output='screen')# When the talker reaches the 'inactive' state, make it take the 'activate' transition.register_event_handler_for_talker_reaches_inactive_state = launch.actions.RegisterEventHandler(launch_ros.event_handlers.OnStateTransition(target_lifecycle_node=talker_node, goal_state='inactive',entities=[launch.actions.LogInfo(msg="node 'talker' reached the 'inactive' state, 'activating'."),launch.actions.EmitEvent(event=launch_ros.events.lifecycle.ChangeState(lifecycle_node_matcher=launch.events.process.matches_action(talker_node),transition_id=lifecycle_msgs.msg.Transition.TRANSITION_ACTIVATE,)),],))# When the talker node reaches the 'active' state, log a message and start the listener node.register_event_handler_for_talker_reaches_active_state = launch.actions.RegisterEventHandler(launch_ros.event_handlers.OnStateTransition(target_lifecycle_node=talker_node, goal_state='active',entities=[launch.actions.LogInfo(msg="node 'talker' reached the 'active' state, launching 'listener'."),launch_ros.actions.LifecycleNode(node_name='listener',package='lifecycle', node_executable='lifecycle_listener', output='screen'),],))# Make the talker node take the 'configure' transition.emit_event_to_request_that_talker_does_configure_transition = launch.actions.EmitEvent(event=launch_ros.events.lifecycle.ChangeState(lifecycle_node_matcher=launch.events.process.matches_action(talker_node),transition_id=lifecycle_msgs.msg.Transition.TRANSITION_CONFIGURE,))# Add the actions to the launch description.# The order they are added reflects the order in which they will be executed.ld.add_action(register_event_handler_for_talker_reaches_inactive_state)ld.add_action(register_event_handler_for_talker_reaches_active_state)ld.add_action(talker_node)ld.add_action(emit_event_to_request_that_talker_does_configure_transition)print('Starting introspection of launch description...')print('')print(launch.LaunchIntrospector().format_launch_description(ld))print('')print('Starting launch of launch description...')print('')# ls = LaunchService(argv=argv, debug=True)ls = launch.LaunchService(argv=argv)ls.include_launch_description(get_default_launch_description(prefix_output_with_name=False))ls.include_launch_description(ld)return ls.run()if __name__ == '__main__':
main()

4.4 Run-time Compostion

4.5 image_tools

4.6 tf realtime 稍后补充

4.7 rviz2

4.8 ROS1和ROS2桥接

----

ROS 2 Bouncy使用教程稍后再做补充。

----英文原文----

ROS 2 Bouncy Bolson Released!

By Tully Foote on July 2, 2018 5:43 PM

We're happy to announce the ROS 2 release Bouncy Bolson!

Check out our installation instructions and tutorials and give it a try! We're excited to hear your feedback and the applications that this release will enable!

To get an idea of what's in this release, be sure to read the Bouncy release page.

A few features and improvements we would like to highlight in this release:

  • New and improved ROS 2 Launch.
  • Static remapping of node names/topics and passing of parameters via the command line.
  • New command line tools for working with lifecycle states and parameters.
  • Adoption of colcon as the recommended build tool.
  • Support for all three supported RMW implementations from binaries.
  • Foundational work toward a ROS 2-native rosbag implementation.
  • Multitude of RViz displays ported to ROS 2.
  • Security: Access Control support now available for eProsima Fast-RTPS in addition to RTI Connext.
  • Support for 3rd party package submission and "devel jobs" on the ROS 2 build farm.

Bouncy Bolson is the second non-beta ROS 2 release and will be supported with bug fixes and platform updates (particularly on rolling dependencies like Windows and MacOS) for one year with support ending in June 2019. While we do aim to keep the API as stable as possible, we can't guarantee 100% API compatibility between releases. Check the features page and ROS 2 roadmap to evaluate whether or not ROS 2 is ready to be used for your application or if you can switch from ROS 1 to ROS 2 as it will depend on the exact feature set and requirements of your use case.

As always, we invite you to try out the new software, give feedback, report bugs, and suggest features (and contribute code!): https://github.com/ros2/ros2/wiki/Contact We also invite you to release your ROS 2 packages in Bouncy! Here's a tutorial to do so.

We would also like to announce the name of the next ROS 2 release: Crystal Clemmys

Your friendly ROS 2 Team

P.S. There's still a few days left on the t-shirt campaign.

----

About ROS 2

  • Overview of ROS 2 concepts
  • DDS and ROS middleware implementations
  • ROS 2 Client Libraries
  • About ROS interfaces
  • About Quality of Service Settings

ROS 2 Tutorials

  • Installation from binary and source, all platforms
  • Using colcon to build a custom package
  • Introspection with command-line tools
  • Passing ROS arguments to nodes via the command-line
  • Launching/monitoring multiple nodes with Launch
  • Working with multiple RMW implementations
  • Composing multiple nodes in a single process
  • Defining custom interfaces (msg/srv)
  • New features in ROS 2 interfaces (msg srv)
  • Eclipse Oxygen with ROS 2 and rviz2 [community-contributed]
  • Building ROS 2 on Linux with Eclipse Oxygen [community-contributed]
  • Building Realtime rt_preempt kernel for ROS 2 [community-contributed]

Advanced

  • Implement a custom memory allocator

Docker

  • Run 2 nodes in a single docker container [community-contributed]
  • Run 2 nodes in two separate docker containers [community-contributed]

ROS 2 Demos

  • Use quality-of-service settings to handle lossy networks
  • Management of nodes with managed lifecycles
  • Efficient intra-process communication
  • Bridge communication between ROS 1 and ROS 2
  • Recording and playback of topic data with rosbag using the ROS 1 bridge
  • Turtlebot 2 demo using ROS 2
  • Using tf2 with ROS 2
  • Write real-time safe code that uses the ROS 2 APIs
  • Use the rclpy API to write ROS 2 programs in Python
  • Use the robot state publisher to publish joint states and TF
  • Use DDS-Security
  • Logging and logger configuration

ROS 2 Examples

  • Python and C++ minimal examples

----

ROS 2 Bouncy Bolson (codename 'bouncy'; June 2018)

Welcome to the latest release of ROS 2 software named Bouncy Bolson!

Supported Platforms

This version of ROS 2 is supported on four platforms (see REP 2000):

  • Ubuntu 18.04 (Bionic)

    • Debian packages for amd64 as well as arm64
  • Ubuntu 16.04 (Xenial)
    • no Debian packages but building from source is supported
  • Mac OS X 10.12 (Sierra)
  • Windows 10 with Visual Studio 2017

Binary packages as well as instructions for how to compile from source are provided (see install instructions as well as documentation).

Features

New features in this ROS 2 release

  • New launch system featuring a much more capable and flexible Python API.
  • Parameters can be passed as command line arguments to C++ executables.
  • Static remapping via command line arguments.
  • Various improvements to the Python client library.
  • Support for publishing and subscribing to serialized data.This is the foundation for the upcoming work towards a native rosbag implementation.
  • More command line tools, e.g. for working with parameters and lifecycle states.
  • Binary packages / fat archives support three RMW implementations by default (without the need to build from source):
    • eProsima's FastRTPS (default)
    • RTI's Connext
    • ADLINK's OpenSplice

For an overview of all features available, including those from earlier releases, please see the Features page.

Changes since the Ardent release

Changes since the Ardent Apalone release:

  • The Python package launch has been redesigned.The previous Python API has been moved into a submodule launch.legacy.You can update existing launch files to continue to use the legacy API if a transition to the new Python API is not desired.
  • The ROS topic names containing namespaces are mapped to DDS topics including their namespaces.DDS partitions are not being used anymore for this.
  • The recommended build tool is now colcon instead of ament_tools.This switch has no implications for the code in each ROS 2 package.The install instructions have been updated and the read-the-docs page describes how to map an existing ament_tools call to colcon.
  • The argument order of this rclcpp::Node::create_subscription() signature has been modified.

Known Issues

  • New-style launch files may hang on shutdown for some combinations of platform and RMW implementation.
  • Static remapping of namespaces not working correctly when addressed to a particular node.
  • Opensplice error messages may be printed when using ros2 param and ros2 lifecycle command-line tools.

----

在Ubuntu 18.04 LTS安装ROS 2 Bouncy版机器人操作系统相关推荐

  1. 在Ubuntu 18.04 LTS安装ROS Melodic版机器人操作系统(2019年10月更新MoveIt! 1.0 ROS 2.0 Dashing)

    ROS Melodic版本在2018年5月23日推出正式版,这是ROS第三款长期支持版本,前2版LTS分别为:indigo(14.04):kinetic(16.04).此版本有windows版已经推出 ...

  2. Ubuntu 18.04 LTS 安装教程

    Ubuntu 18.04 LTS 安装教程 前言 下载并安装系统 第一次启动时报错 更换镜像源 重装系统 搜索不到WIFI信号 报错:ucsi_acpi usbc000:00: PPM initial ...

  3. 在Ubuntu 18.04 LTS 入门 ROS Melodic 机器人 操作系统

    在Ubuntu 18.04 LTS入门ROS Melodic版机器人操作系统 在ROS Melodic中推荐使用catkin_tool: $ sudo apt-get install python-c ...

  4. Ubuntu 18.04 LTS安装配置驱动、CUDA9.1和Amber18 AmberTools18

    目录 1. 环境 2. 驱动安装 2.1 驱动下载:https://www.nvidia.com/download/driverResults.aspx/132541/ 2.2.删除原有NVIDIA驱 ...

  5. Ubuntu 18.04 LTS 安装JDK1.8-Linux-64

    Ubuntu 18.04安装JDK 1.登录系统 2.安装vmtools (1).点击虚拟机选项,让vmtools镜像导入到Ubuntu中 (2).点击是 (3).CTRL+ALT+T打开终端 (4) ...

  6. Ubuntu 18.04 LTS 安装wine 、exe程序安装和卸载

    Ubuntu 18.04 什么是wine? Wine(是"Wine Is Not an Emulator"的缩写)是一个兼容层,能够在几个POSIX兼容的操作系统上运行Window ...

  7. Ubuntu 18.04 LTS 安装64位 iNode 客户端

    2019/9/17 已经把外网的下载地址重新更新好了 = = 先贴图表结果 我一开始按照很多16.04版本的教程,虽然安装成功但是不能打开图形界面运行,另外参考这篇18.04版本的博客仍然无法解决分享 ...

  8. Ubuntu 18.04 LTS安装NVIDIA显卡驱动

    写在前面 换成Ubuntu系统后,系统默认安装的是X org提供的开源驱动nouveau,这个驱动可以胜任2D图形加速任务,但对3D图形处理就无能为力了.因此,在启动VMWare虚拟机的时候就经常报形 ...

  9. Ubuntu 18.04快捷安装ROS Melodic及rosdep update time out的问题解决

    1. ROS快捷安装 以下安装指令汇总针对Ubuntu18.04的ROS Melodic版本: 强烈建议复制以下指令到新建的xxx.sh文件中,保存后给xxx.sh权限,然后执行脚本一路输入y等候安装 ...

最新文章

  1. POJ-3662 Telephone Lines 二分+双端队列
  2. 微信小程序时间转换成时间戳、获取当前时间戳、获取当前时间、时间戳加减
  3. spring boot 源码_SpringBoot2.1.x源码环境搭建详解
  4. mysql 出现错误 Duplicate entry for key PRIMARY 解决办法
  5. 相机标定基础【1】- 在Visual Station 2019 上搭建OpenCV应用 (1)- 安装配置VS
  6. Flutter起步之安装
  7. mysql触发器不能alter
  8. linux下简单限制网卡速度
  9. 设计模式-责任链模式(17)
  10. 关于js中window.location.href、location.href、parent.location.href、top.location.href的用法...
  11. atitit.提高开发效率---mda 革命性的软件开发方法
  12. docker快速搭建http服务器
  13. oracle locked time,Oracle里面的用户无法登录 LOCKED(TIMED)解决方法
  14. 2014网络红人彭伟个人资料及照片
  15. 【MyEclipse】配置代码格式化模版
  16. OpenCV计算机视觉(二) —— 图像的算数运算与逻辑运算
  17. 典藏推荐:《乱世佳人》(《飘》)
  18. 1_linux简介基础
  19. python编写英文字典_python如何制作英文字典
  20. 描述性统计部分(一)----统计量

热门文章

  1. SOLIDWORKS文档无法正常打开怎么办?
  2. 如何实现从APP通过一键点击直接跳转至微信?
  3. C#版微信公众号支付
  4. AutoCad .Net二次开发求两曲线最小距离
  5. php 微信pic_url,PHP使用微信开发模式实现搜索已发送图文及匹配关键字回复的方法...
  6. 先科电视怎么看电视台
  7. 初始计算机软件教案,鼠标office2007,办公软件教案
  8. 怎么把加密的PDF上面的文字复制下来?
  9. 2020年【408真题】和参考答案解析!
  10. RHEL---http服务解读和搭建