

近藤 丰
近藤 豊 (こんどう ゆたか、 @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的概述。
对于不了解或使用过ROS1的人,本节将介绍ROS1所具有的功能。如果使用过ROS1,则可以跳过它。
设置ROS2开发环境。将继续使用Ubuntu 18.04,这是ROS最容易设置的操作系统,但是ROS2与Windows 10和macOS兼容。请参阅附录以在其他操作系统上进行安装。
首先,比较ROS1和ROS2以了解为什么需要ROS2。之后,将介绍ROS2的改进的消息通信功能。它还介绍了支持消息通信的DDS(数据分发服务)技术,ROS2命令行界面和构建工具。
在ROS2中引入新功能和改进功能。如果能够理解和使用这些概念,那么可以说已经掌握了ROS2吗?
尽管ROS2已经使用了两年多,但并非所有ROS1软件包都已迁移到ROS2。这里介绍了当前正在迁移的软件包中最重要的软件包。
经验丰富的ROS1软件包开发人员在学习了ROS2的基本功能,应用功能和现有软件包之后,将希望使其ROS1软件包与ROS2兼容。在本章中,将通过迁移工作学习实用的ROS2编程,以使iRobot的Roomba ROS1驱动程序与ROS2兼容。
本书使用C++ 14作为源代码示例的编程语言。维护最广泛的官方ROS2客户端库是客户端库的C ++版本〜rclcpp〜。在本章中,除了其他编程语言之外,本章还介绍了脚本语言Python3客户端库〜rclpy〜,并说明其编程方法。
最后,总结一下对本书的热爱。致谢读完本书的读者以及帮助编写本书的朋友伙伴。
本节介绍了Ubuntu 18.04以外的OS的安装过程,以及本文未涵盖的示例代码的许可条款。此外,将为高级用户介绍ROS2编程技术,其内容将比第3章和第4章介绍的内容更多。
其他更多详细资料参考文前书籍介绍中的两个链接。