トップ » BOOK » Unityではじめる ROS・人工知能 ロボットプログラミング実践入門

Unityではじめる ROS・人工知能 ロボットプログラミング実践入門

著者:布留川 英一

定価 4,950円(本体4,500円+税10%)
発行・発売 株式会社 ボーンデジタル
ISBN 978-4-86246-530-6
総ページ数 464ページ
サイズ B5変形、オールカラー
発売日 2022年6月上旬

本書の詳細

「はじめに」「本書の構成」「目次」を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」の活用法を学ぶことができます。

ダウンロードデータは、ZIP形式で圧縮されています。WinZip(Windows)やStuffit(Macintosh)等のアプリケーションで解凍してご使用ください(ファイルサイズ:8KB)。

ダウンロード

■P.193の手順2に以下の文章を追加
ROS2の場合は、ファイル名に合わせて3行目の「RosMessageTypes.MyCustomTopic.MyMessageMsg;」を「RosMessageTypes.MyCustomTopicMsg.MyMessageMsg;」に変更します。

■P.194の手順3に以下の文章を追加
ROS2の場合は、ファイル名に合わせて3行目の「RosMessageTypes.MyCustomTopic.MyMessageMsg;」を「RosMessageTypes.MyCustomTopicMsg.MyMessageMsg;」に変更します。

■P.199の手順2に以下の文章を追加
ROS2の場合は、ファイル名に合わせて3行目の「RosMessageTypes.MyService」を「RosMessageTypes.MyServiceSrv」に変更します。

■P.200の手順3に以下の文章を追加
ROS2の場合は、ファイル名に合わせて3行目の「RosMessageTypes.MyService」を「RosMessageTypes.MyServiceSrv」に変更します。

■P.174の手順1
誤:「~/colcon_ws/src/my_parameter/launch/my_parameter.launch」を作成し、

正:「~/colcon_ws/src/my_parameter/launch/my_parameter_launch.py」を作成し、

■P.176の手順1
誤:「~/colcon_ws/src/my_parameter/launch/my_parameter.arg.launch」を作成し、

正:「~/colcon_ws/src/my_parameter/launch/my_parameter_arg_launch.py」を作成し、

■P.145の下から6行目
誤:「helloフォルダ」が生成され、

正:「my_custom_topic_msg」フォルダが生成され、

■P.149の1行目
誤:「~/colcon_ws/src/my_topic/my_custom_topic/my_publisher_node.py」

正:「~/colcon_ws/src/my_custom_topic/my_custom_topic/my_piblisher_node.py」

■P.150の4行目
誤:「~/colcon_ws/src/my_topic/my_custom_topic/my_subscriber_node.py」

正:「~/colcon_ws/src/my_custom_topic/my_custom_topic/my_subscriber_node.py」

■P.152の下から3行目
誤:「~/colcon_ws/src/my_service_srv/srv/MyService」を生成し、

正:「~/colcon_ws/src/my_service_srv/srv/MyService.srv」を生成し、

■P.338の手順3
誤:「mycobot_style_arm」を選択して、

正:「my_robot_arm」を選択して、

■P.339の図8-3-17の左側の画面
正しくは、この画面になります(図8-3-17の左側の画面)。

■P.117の手順3のファイル名のパス
誤:my_service

正:my_action

■P.108の手順1のファイル名のパス
誤:my_servce

正:my_service

■P.109の手順2のファイル名のパス
誤:my_servce

正:my_service

■P.054のコマンド
誤:$ rosversion -d
galactic

正:$ echo $ROS_DISTRO
galactic

■P.102の下から2行目
誤:~/catkin_ws/src/hello/msg/MyMessage.msg

正:~/catkin_ws/src/my_custom_topic/msg/MyMessage.msg

■P.087、P.130、P.180、P.181のWindows用のマウントコマンド
「:cached」オプションを削除して、実行してください。

■P.320の最終行のコマンド
誤:$ catkin build my_move_group rospy

正:$ catkin_create_pkg my_move_group rospy

■P.344の上から5行目に以下の原稿とリストを追加
そして、ゴール状態を移動できる位置に変更します。

・pose_planner.py(24行目あたり)
—-
pose_goal.position = Vector3(0.6, 0.2, 0.6)
q = tf.transformations.quaternion_from_euler(pi, 0, 0)
—-

—-
pose_goal.position = Vector3(0.7, 0.0, 0.7)
q = tf.transformations.quaternion_from_euler(0, 0, 0)
—-

目次

第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スクリプトの実行