ROS2新书推荐-从ROS2入门下一代机器人操作系统编程

本书全面介绍下一代机器人操作系统ROS2,覆盖从基础知识到高级应用,包括开发环境搭建、核心功能解析、新特性介绍及实际案例分析,适合初学者及ROS1用户进阶。

书籍介绍:

ROS2ではじめよう 次世代ロボットプログラミング


封面


作者

近藤 丰

近藤 豊 (こんどう ゆたか、 @youtalk )

株式会社Preferred Networks エンジニア。ROS Japan Users Group を主宰。奈良先端科学技術大学院大学 情報科学研究科 博士後期課程 修了 博士 (工学)。


概述

下一代机器人操作系统ROS2是用于机器人应用程序开发的中间件。ROS2与ROS1不直接兼容,因为基于ROS1的经验已经在很大程度上重新实现了ROS2。就安全性而言,ROS1不适合商用机器人开发,因为通信内容未加密并且没有身份验证功能。从安全性、可维护性、许可和商业支持等多个角度对ROS2进行了重构完善,并且从开发开始就对其进行了重新设计,目的是将ROS2集成到产品中。

本书是ROS2的简介和入门,它将成为未来机器人应用程序开发的事实上的标准。它涵盖了从基本操作到连接方法以利用ROS1资源和程序包开发方法的所有内容。本书中的示例代码是C++,但它也使用其他编程语言实现客户端库(如Python)。ROS1仅在Ubuntu上可用(改,ROS1Melodic适用于Linux、Windows和MacOS),但是ROS2将在Windows和macOS上可用,并且预计用户数量会增加。还说明了主要OS开发环境的设置。这本书不仅对那些想开始机器人开发的人有用,而且对ROS1用户也很有用。

本书的纲要

引言

这是ROS的概述。

  • 什么是ROS
  • 为什么使用ROS2
  • 为什么写这本书
  • 本书的结构
  • 本书的读者
  • 必备知识
  • 在线资源

第1章 ROS1之旅

对于不了解或使用过ROS1的人,本节将介绍ROS1所具有的功能。如果使用过ROS1,则可以跳过它。

  • 1-1 ROS的历史
  • 1-2 ROS1开发环境设置
  • 1-3 世界您好!
  • 1-4 传感器
  • 1-5 Gazebo模拟
  • 1-6 导航Navigation
  • 1-7 操作MoveIt!
  • 1-8 没有ROS1的世界

第2章 ROS2开发环境设置

设置ROS2开发环境。将继续使用Ubuntu 18.04,这是ROS最容易设置的操作系统,但是ROS2与Windows 10和macOS兼容。请参阅附录以在其他操作系统上进行安装。

  • 2-1 安装Ubuntu 18.04
  • 2-2 禁用ROS1设置
  • 2-3 安装ROS2
  • 2-4 示例代码设置

第三章 ROS2的基本功能

首先,比较ROS1和ROS2以了解为什么需要ROS2。之后,将介绍ROS2的改进的消息通信功能。它还介绍了支持消息通信的DDS(数据分发服务)技术,ROS2命令行界面和构建工具。

  • 3-1 ROS1和ROS2的区别
  • 3-2 内部架构与ROS1的比较
  • 3-3 数据分发服务(DDS)
  • 3-4 ROS2前端工具ros2
  • 3-5 ROS1/2发行版编译工具colcon
  • 3-6 主题
  • 3-7 服务
  • 3-8 参数

第4章 ROS2应用功能

在ROS2中引入新功能和改进功能。如果能够理解和使用这些概念,那么可以说已经掌握了ROS2吗?

  • 4-1 启动系统launch
  • 4-2 行动action
  • 4-3 生命周期
  • 4-4 服务质量(QoS)
  • 4-5 DDS供应商实施更改
  • 4-6 安全
  • 4-7 与ROS1节点的互连
  • 4-8 实时控制

第5章 ROS2的工具/软件包

尽管ROS2已经使用了两年多,但并非所有ROS1软件包都已迁移到ROS2。这里介绍了当前正在迁移的软件包中最重要的软件包。

  • 5-1 ROS2的进展
  • 5-2 rosbag2主题记录/播放工具
  • 5-3 rviz2可视化工具
  • 5-4 RealSense驱动程序ros2_intel_realsense
  • 5-5 导航包navigation2
  • 5-6 运动计划软件包moveit2
  • 5-7 Gazebo模拟协作

第6章 将Roomba的ROS1驱动程序迁移到ROS2

经验丰富的ROS1软件包开发人员在学习了ROS2的基本功能,应用功能和现有软件包之后,将希望使其ROS1软件包与ROS2兼容。在本章中,将通过迁移工作学习实用的ROS2编程,以使iRobot的Roomba ROS1驱动程序与ROS2兼容。

  • 6-1 Roomba和ROS的历史
  • 6-2 获取串行通讯电缆
  • 6-3 Roomba /创建ROS1驱动程序create_autonomy
  • 6-4 my_ROS2_create_autonomy
  • 6-5 更新package.xml
  • 6-6 更新消息,服务和操作定义
  • 6-7 更改编译系统
  • 6-8 更新源代码
  • 6-9 小结

第7章 Python客户端库rclpy

本书使用C++ 14作为源代码示例的编程语言。维护最广泛的官方ROS2客户端库是客户端库的C ++版本〜rclcpp〜。在本章中,除了其他编程语言之外,本章还介绍了脚本语言Python3客户端库〜rclpy〜,并说明其编程方法。

  • 7-1 ROS2客户端库
  • 7-2 软件包配置
  • 7-3 主题示例
  • 7-4 服务示例
  • 7-5 行动示例

结论

最后,总结一下对本书的热爱。致谢读完本书的读者以及帮助编写本书的朋友伙伴。

  • ROS2技术指导委员会
  • 问卷调查
  • 出版
  • 致谢

附录

本节介绍了Ubuntu 18.04以外的OS的安装过程,以及本文未涵盖的示例代码的许可条款。此外,将为高级用户介绍ROS2编程技术,其内容将比第3章和第4章介绍的内容更多。

  • A-1面向组件的ROS2节点编程
  • Windows 10上的A-2开发环境设置
  • 在macOS Mojave上设置A-3开发环境
  • A-4示例代码的许可条款

其他更多详细资料参考文前书籍介绍中的两个链接。


 

ROS2编程基础课程文档 ROS 2机器人操作系统2)是用于机器人应用的开源开发套件。ROS 2之目的是为各行各业的开发人员提供标准的软件平台,从研究和原型设计再到部署和生产。 ROS 2建立在ROS 1的成功基础之上,ROS 1目前已在世界各地的无数机器人应用中得到应用。 特色 缩短上市时间 ROS 2提供了开发应用程序所需的机器人工具,库和功能,可以将时间花在对业务非常重要的工作上。因为它 是开源的,所以可以灵活地决定在何处以及如何使用ROS 2,以及根据实际的需求自由定制,使用ROS 2 可以大幅度提升产品和算法研发速度! 专为生产而设计 凭借在建立ROS 1作为机器人研发的事实上的全球标准方面的十年经验,ROS 2从一开始就被建立在工业级 基础上并可用于生产,包括高可靠性和安全关键系统。 ROS 2的设计选择、开发实践和项目管理基于行业利 益相关者的要求。 多平台支持 ROS 2在Linux,Windows和macOS上得到支持和测试,允许无缝开发和部署机器人自动化,后端管理和 用户界面。分层支持模型允许端口到新平台,例如实时和嵌入式操作系统,以便在获得兴趣和投资时引入和推 广。 丰富的应用领域 与之前的ROS 1一样,ROS 2可用于各种机器人应用,从室内到室外、从家庭到汽车、水下到太空、从消费 到工业。 没有供应商锁定 ROS 2建立在一个抽象层上,使机器人库和应用程序与通信技术隔离开来。抽象底层是通信代码的多种实现, 包括开源和专有解决方案。在抽象顶层,核心库和用户应用程序是可移植的。 建立在开放标准之上 ROS 2中的默认通信方法使用IDL、DDS和DDS-I RTPS等行业标准,这些标准已广泛应用于从工厂到航空 航天的各种工业应用中。 开源许可证 ROS 2代码在Apache 2.0许可下获得许可,在3条款(或“新”)BSD许可下使用移植的ROS 1代码。这两个 许可证允许允许使用软件,而不会影响用户的知识产权。 全球社区 超过10年的ROS项目通过发展一个由数十万开发人员和用户组成的全球社区,为机器人技术创建了一个庞大 的生态系统,他们为这些软件做出贡献并进行了改进。 ROS 2由该社区开发并为该社区开发,他们将成为未 来的管理者。 行业支持 正如ROS 2技术指导委员会成员所证明的那样,对ROS 2的行业支持很强。除了开发顶级产品外,来自世界 各地的大大小小公司都在投入资源为ROS 2做出开源贡献。 与ROS1的互操作性 ROS 2包括到ROS 1的桥接器,处理两个系统之间的双向通信。如果有一个现有的ROS 1应用程序, 可 以通过桥接器开始尝试使用ROS 2,并根据要求和可用资源逐步移植应用程序。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zhangrelay

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值