これからの社会基盤を支える「ロボット技術者」を目指そう!
「ドローン」「自動運転」「警備巡回」「配膳サポート」など、ロボットが活躍する分野は、ますます広がることが予想されます。本書は、今後の社会基盤を支える「ロボット技術者」を目指した方に向けて、基礎からロボット制御を学べる1冊です。
ロボット技術は、世界中で使われているオープンソースのプラットフォーム「ROS」がベースとなっており、ロボット利用に関わるさまざまなライブラリやツールが蓄積されています。本書では、ROSの概要から開発環境の構築、そして実際にROSを動かしながらロボット制御の仕組みを解説しています。
また、シミュレータ環境を使うことで、実際のロボットを使わなくても、PC内でロボットの動作を確認できます。いまロボット業界で注目されているのが、ゲームだけでなく車や建築設計などでの使われているリアルタイム3Dプラットフォーム「Unity」をロボットのシミュレータとして利用することです。
Unityを使うメリットとして、人工知能(AI)技術を利用したロボットの自律制御を簡単に行えるようになります。本書では、ROSとUnityを組み合わせた活用法や、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スクリプトの実行