「はじめに」「本書の構成」「目次」などをPDFで公開中!
これからの社会基盤を支える「ロボット技術者」を目指そう!
世界中の多くの分野で活用されているオープンソースのロボット開発プラットフォーム「ROS」(Robot Operating System)には、アプリケーションやドキュメント、さまざまなノウハウといった膨大な資産が蓄積されています。本書では、これらを用いてROSの基礎をステップ・バイ・ステップで学ぶことができます。
また、リアルタイム3D開発プラットフォームである「Unity」とROSを連携させることで、ロボット制御をより効率よくシミュレートし、さらには人工知能(AI)による自律制御にも活用できます。本書では「ROS」と「Unity」を用いて、ロボット制御を行うためのノウハウを盛り込みました。
なお、本書ではリアルロボットの制御についても取り上げていますが、多くのサンプルは実際のロボットを購入しなくても、無償で公開されているシミュレータを使っての動作確認が可能です。
本書の特徴
ROSに蓄積された資産やリソースを使って、ロボット制御の基礎を学ぶことができます。
「Unity Robotics Hub」でROSとUnityを繋いで、ロボットアプリケーション開発をより効率よく行えるようになります。
移動ロボット、ロボットアームのモデルを使って、シミュレータでの制御の詳細をマスターできます。
キューブ型ロボット「toio」とアーム型ロボット「myCobot」の2つのリアルロボットを、シミュレータおよび実機で操作することができます。
人工知能(AI)でロボットを自律動作させるための「Unity ML-Agents」の活用法を学ぶことができます。
第1章 ROSとUnity
1-1 ROSの概要
1-2 Unity Robotics Hubの概要
1-3 Unity ML-Agentsの概要
第2章 はじめてのROSアプリケーション
2-1 ROSの開発環境の準備
2-2 はじめてのROSアプリケーションの実行
2-3 ROSのデータ通信の仕組み
2-4 ROS1のデータ通信の確認
2-5 ROS2のデータ通信の確認
第3章 ROS1のデータ通信
3-1 ROS1のパッケージの作成
3-2 ROS1のトピックによる通信
3-3 ROS1の独自型のトピックによる通信
3-4 ROS1のサービスによる通信
3-5 ROS1のアクションによる通信
3-6 ROS1のパラメータの利用
3-7 ROS1のlaunchファイルの利用
第4章 ROS2のデータ通信
4-1 ROS2のパッケージの作成
4-2 ROS2のトピックによる通信
4-3 ROS2の独自型のトピックによる通信
4-4 ROS2のサービスによる通信
4-5 ROS2のアクションによる通信
4-6 ROS2のパラメータの利用
4-7 ROS2のlaunchファイルの利用
第5章 ROS-Unity間のデータ通信
5-1 ROS-Unity間のトピックによる通信
5-2 ROS-Unity間の独自型のトピックによる通信
5-3 ROS-Unity間のサービスによる通信
第6章 URDFによるロボットモデルの作成
6-1 URDFによる移動ロボットモデルの作成
6-2 URDFへの衝突属性と慣性属性の追加
6-3 URDFによるロボットアームモデルの作成
6-4 Xacroによるロボットモデルの作成
6-5 UnityへのURDFデータの読み込み
6-6 UnityのJointコンポーネント
6-7 UnityのArticulationBodyコンポーネント
第7章 移動ロボットの操作
7-1 移動ロボットの操作の流れ
7-2 ROSメッセージの可視化
7-3 地図の作成
7-4 地図によるナビゲーション
第8章 ロボットアームの操作
8-1 rvizによるMoveItの操作
8-2 PythonによるMoveItの操作
8-3 MoveIt Setup Assistantの利用
8-4 UnityによるMoveItの操作
第9章 リアルロボットの操作
9-1 toioの開発環境の準備
9-2 Unityによるtoioの操作
9-3 ROSによるtoioの操作
9-4 myCobotの開発環境の準備
9-5 PythonによるmyCobotの操作
9-6 UnityによるmyCobotの操作
9-7 myCobotのURDFモデルの作成
第10章 人工知能によるロボットの操作
10-1 Unity ML-Agentsの開発環境の準備
10-2 Unity ML-Agentsの学習環境の作成
10-3 学習と推論
10-4 人工知能によるtoioの操作
10-5 ロボットサッカーの強化学習
付録 ローカルマシンのPython環境の構築
A-1 ローカルマシンのPython環境の準備
A-2 Pythonの仮想環境の作成
A-3 Pythonスクリプトの実行