改訂新版 ROS2ではじめよう 次世代ロボットプログラミング
概要
Robot Operating System (ROS) の次世代バージョンであるROS 2はロボットアプリケーション開発のためのミドルウェアです。本書は2019年に出版した「ROS2ではじめよう 次世代ロボットプログラミング」の改訂新版であり、ROS 2の普及を受けて、基本から実践までを網羅的にアップデートした完全版です。
初版からの主な変更点:
- ROS 1の章をすべて削除し、ROS 2に完全特化
- 実機を使った実践的な内容を大幅追加(Intel RealSense、Preferred Robotics カチャカ、ROBOTIS OpenMANIPULATOR-X)
- ROS 2エコシステム章を新設(Gazebo、Open-RMF、Robot Web Tools、mROS 2、Autoware、NVIDIA Isaac ROS)
- Ubuntu 24.04 LTS対応
- 最新のROS 2ツールに対応(rosbag2、rviz2、Nav2、MoveIt 2、ros2_control)
本書は今後のロボットアプリケーション開発のデファクトスタンダードとなるROS 2の入門書から実践書までをカバーします。基本操作から、高度な機能、実機を使った開発方法までを網羅します。本書のサンプルコードはC++とPython両方で提供され、実践的なロボット開発を学ぶことができます。
サンプルコード
本書のサンプルコードは以下のGitHubレポジトリで管理されています。Apache License 2.0の下、ご自由にお使いください。
https://github.com/youtalk/get-started-ros2
サンプルコードの動作確認は、以下のROSディストリビューションで行なっております。
- ROS 2 Jazzy Jalisco
- ROS 2 Iron Irwini
- ROS 2 Humble Hawksbill
プロフィール
執筆者
近藤 豊 (こんどう ゆたか、 @youtalk )
株式会社ティアフォー エンジニア。ROS Japan Users Group を主宰。奈良先端科学技術大学院大学 情報科学研究科 博士後期課程 修了 博士 (工学)。
編集協力者
- 岸 俊道さん
- 片岡 大哉さん
出版社
書籍情報
- 出版日: 2024年9月19日
- ページ数: 240ページ
- 価格: 3,300円(税込)
- ISBN: 978-4-297-14395-4
- 判型: A5判
書籍購入先
ハッシュタグ
Twitter、Facebookなど、SNSに本書に関する投稿をする際に、ハッシュタグ #ROS2ではじめよう を付けていただけると著者が反応できるかもしれません。 感想、疑問、応援、そのほか内容は何でも結構です。
本書の構成
改訂新版まえがき
初版から5年が経過し、ROS 2の普及を受けて改訂新版を執筆した経緯と本書に込めた思いを綴っています。
まえがき
ROSの概要を紹介します。
- ROSとは何か
- ROS2はなぜできたか
- なぜ本書を書いたか
- 本書の構成
- 本書の読者
- 前提知識
- オンラインリソース
1章 ROSの歴史
ROS 1からROS 2への進化の歴史を解説します。
- 1-1 ROSの誕生
- 1-2 OSRFからOSRAへ
- 1-3 ROS 2の誕生
- 1-4 ROS 1とROS 2の違い
- 1-5 内部アーキテクチャの変更
- 1-6 Data Distribution Service (DDS)
- 1-7 代替プロトコル:Zenoh
- 1-8 ROS 1からROS 2への移行状況
2章 開発環境のセットアップ
ROS 2の開発環境をセットアップします。Ubuntu 24.04 LTSを中心に解説しますが、その他のOSについても付録で扱います。
- 2-1 Ubuntu 24.04のインストール
- 2-2 ROS 2のインストール
- 2-3 サンプルコードのセットアップ
3章 ROS 2の基本機能
ROS 2が備える基本的なメッセージ通信機能を一通り紹介します。また、そのメッセージ通信を支える技術であるDDS、ROS 2のコマンドラインインタフェースやビルドツールについても紹介します。
- 3-1 本章の学習目標
- 3-2 ROS 2フロントエンドツールros2
- 3-3 ROS 1/2パッケージビルドツールcolcon
- 3-4 トピック
- 3-5 サービス
- 3-6 アクション
- 3-7 パラメータ
4章 ROS 2の応用機能
ROS 2で新たに機能追加、改善された高度な機能を紹介します。これらの概念を理解し使いこなせるようになれば、ROS 2を習得したといっても良いでしょう。
- 4-1 本章の学習目標
- 4-2 コンポーネント指向ROS 2ノードプログラミング
- 4-3 Launchシステム
- 4-4 ライフサイクル
- 4-5 Quality of Service (QoS)
- 4-6 rmw実装の変更
- 4-7 セキュリティ
5章 Pythonクライアントライブラリrclpy
本書ではソースコード例のプログラミング言語にC++を主に用いていますが、スクリプト言語Pythonのクライアントライブラリ rclpy についても解説します。
- 5-1 ROS 2のクライアントライブラリ
- 5-2 パッケージ構成
- 5-3 トピック実装
- 5-4 サービス実装
- 5-5 アクション実装
6章 ROS 2に対応したツール/パッケージ
ROS 2は正式リリースから数年が経過し、主要なROS 1パッケージのROS 2への移行が完了しました。現在利用可能な重要なパッケージを選んで紹介します。
- 6-1 ROS 2への移行完了
- 6-2 トピック記録・再生ツールrosbag2
- 6-3 可視化ツールrviz2
- 6-4 ナビゲーションパッケージNav2
- 6-5 動作計画パッケージMoveIt 2
- 6-6 ロボット制御パッケージros2_control
7章 ROS 2エコシステム
ROS 2を取り巻くエコシステムが大きく発展しています。シミュレータ、フリートマネジメント、組込み実装、自動運転ソフトウェアなど、実践的なツールやソフトウェアを紹介します。
- 7-1 広がるエコシステム
- 7-2 Gazeboロボットシミュレータ
- 7-3 Open-RMFフリートマネジメントソフトウェア
- 7-4 Robot Web Tools
- 7-5 mROS 2組込み実装
- 7-6 Autoware自動運転ソフトウェア
- 7-7 NVIDIA Isaac ROS GPU高速化
8章 実践ROS 2ロボットプログラミング
実際のセンサやロボットを使った実践的なROS 2プログラミングを学びます。Intel RealSenseカメラ、Preferred Roboticsのカチャカ、ROBOTISのOpenMANIPULATOR-Xを使った開発例を紹介します。
- 8-1 センサ・ロボットROS 2プログラミング
- 8-2 Intel RealSense D455
- 8-3 Preferred Robotics カチャカ Nav2ナビゲーション
- 8-4 ROBOTIS OpenMANIPULATOR-X MoveIt
おわりに
本書に込めた熱い気持ちを最後にまとめました。本書を手にとって最後まで読み進んでいただいた読者の皆様と、本書を執筆するにあたってご協力いただいた様々な方々への感謝の言葉も綴っています。
- ROS 2 Technical Steering Committee
- 本を書くということ
- 謝辞
付録
本文で扱わなかったWSL 2やDockerでの開発環境セットアップ手順や、サンプルコードのライセンス条項を記載します。
- A-1 WSL 2での開発環境セットアップ
- A-2 Dockerでの開発環境セットアップ
- A-3 サンプルコードのライセンス条項
読者のみなさんに発見していただいた誤植は、
https://github.com/youtalk/get-started-ros2/issues
にご報告ください。増刷時に修正させていただきます。
正誤表
準備中