SlideShare a Scribd company logo
1
2021.10.19
Unity道場 ロボティクス
秋のLT祭り 2021
がある生活
UnityとROS接続編
株丹 亮
Kabutan Ryo
株丹 亮
Kabutan Ryo
九州工業大学 西田研究室
- 2017
産業用ロボットのためのパスプランニングアルゴリズムの研究に従事。
株式会社 安川電機
2017 – 現在
株式会社 エイアイキューブ 出向中
個人で
ROS (Robot Operating System) Japan Users Groupでたまに発表しています。
主にMoveItというロボットアーム向けライブラリの解説など。
産業用ロボットのためのプランニング技術、最適化、異常検知などの知能化技術の開発に従事。
2
今日はこの続編
上記資料のURL: https://www.slideshare.net/RyoKabutan
今日のLTの内容
• ロボット開発ではシミュレータが必須。
• ROSを使ったロボット開発をする場合、Gazeboと呼ばれるシミュレータを
使う場合が多い。
• しかしGazebo 11が最終バージョン(2025年まで)。Ignitionという新しい
シミュレータに移行することになっているが、まだまだ発展途上。
日本での活用事例はあまり聞いたことがない。
3
• そこでUnityが活用できないか。myCobotを題材に説明。
NVIDIAとOpen Roboticsが連携 「Ignition Gazebo」「NVIDIA Isaac Sim」
の相互運用を目指し、ROSコミュニティのAI開発を強化
https://robotstart.info/2021/09/28/nvidia-open-robotics.html
まだ何かありそう!これから楽しみ!!
“
ROS (MoveIt)を使ったら何ができる?
• ロボットアームの経路を自動で作ることができる。
• センサで障害物を検知しながら、複雑な障害物回避動作が生成できる。
(自動ピッキングシステム等のアプリが比較的簡単に作成できる。)
4
3次元距離センサ
MoveItの画面
障害物
myCobot
Bad!
前ページのデモからわかること
5
Good!
myCobotの登場により自宅でも簡単にシステムが構築できるようになった。
• それでもロボットアーム8万円、3次元センサ3万円、合計11万円。
購入するには少し勇気が必要。
Unityを使って実物のmyCobotがなくても、
MoveItで遊べるような環境を作ることが今回の目標。
• 開発途中のソフトをそのまま実機で実験するのは、少し怖い。
思わぬ動きをして机や周りの物にぶつけてヒヤヒヤ。煙は出したくない。
完成 実際に動作させた結果を紹介
実際にやってみたこと
6
STEP
3
MoveItの障害物情報をUnity上にも反映させる
MoveItのplanning_sceneをUnityにpublishする。
Unity公式ツール「ROS-TCP Connector」使用。
STEP
2
ros_control経由でUnity上のmyCobotを動かす
Unity用のインターフェースを作る。
Unity公式ツール「ROS-TCP Connector」使用。
STEP
1
ロボットモデルをUnity上に登場させる
URDFで定義したmyCobotをUnityにインポートする。
Unity公式ツール「URDF Importer」使用。
ロボットモデルをUnity上に登場させる
• ROSで使用されるロボット定義ファイル(URDF)を使って3D Objectを追加。
• URDF Importerが問題なく使用できた。
7
Good!
インポートするだけで、
各リンクごとにAirticulation Body
を自動で定義してくれる。
ros_control経由でUnity上のmyCobotを動かす
ros_control? : ROSの制御用フレームワーク。簡単に言うと…
この枠組でドライバを実装しておけば、どのロボットアームでも同じ司令で動作可能。
つまり実機用のドライバ、シミュレータ用のドライバと2つ用意しておけば、
それ以外の実装はそのまま共通で使うことができる
8
① インターフェースを継承する
実機 myCobotの場合
myCobotはシリアル通信で制御可能。
API公開もされているので、
これを活用すれば良い。
どのようにros_control対応のドライバを書けばよいか。
まず実機の例を示す。
② ロボット制御のための実装をする
実機 myCobot用のクラス作成。
左のコメントアウト部分に
シリアル通信の命令を実装する。
• readは現在の関節角度を取る命令。
• writeは任意の関節角度に動かす命令。
ここがUnityになればよい!
ros_control経由でUnity上のmyCobotを動かす
9
① インターフェースを継承する
UnityのmyCobotの場合
ROSのTopicに乗せてUnityとROS間の
通信を行う。
②ロボット制御のための実装をする(ROS側)
UnityのmyCobot用の固有のクラス作成
左のコメントアウト部分にPub/Sub通信を
行う実装を書く。
• readはUnity側の現在関節角度を
Subscribeする実装を書く。
• writeは目標の関節角度をPublishする
実装を書く。
③ロボット制御のための実装をする(Unity側)
Unity公式ツールのROS-TCP Connectorを
使う。
• 目標の関節角度を受け取り
ArticulationBodyに角度を反映するノード
• 現在の関節角度をPublishするノード
を実装する。
完成!
実際の動きを確認
現在位置
取得
ArticulationBody
に司令位置を反映
位置
司令
ros_control
ArticulationBody
から現在位置を取得
②、③の接続イメージ
MoveItの障害物情報をUnityの世界にも反映させる
MoveItでは障害物情報がplanning_sceneというTopicで管理されている。
10
障害物をMoveIt上から追加したあと、「Publish」ボタンを
押下すると右の情報がPublishされる。
これをUnity側でSubscribeすればUnity世界にも、
障害物を出現させることができるはず!!
primitives:
- type: 1
dimensions:
- 0.2
- 0.2
- 0.2
primitive_poses:
- position:
x: 0.18
y: 0.21
z: 0.11
orientation:
x: -0.04242791
y: 0.166670639
z: 0.246320621
w: 0.953806542
MoveItの障害物情報をUnity上にも反映させる
• Unity側でplanning_sceneをSubscribeするscriptを作成。
• Subscribeした情報をもとにGameObject(基本モデル、Primitive)を追加する。
11
Good!
ROSとUnityで座標系が異なることが悩みのタネだったが、簡単に変換できるので
実装がかなり楽だった。
実際に動作させた結果を紹介
12
まとめ
ROSと連携できるシミュレータとしてUnityを活用した事例を紹介。
今後の課題
• Unity上でのセンサを用意する。例えば仮想的なRealsenseをUnity上で作成し、
MoveItの障害物情報としたい。
• ros_controlでUnityとの通信がROSのPub/Sub経由で行われているので、
余計な通信が発生している。できれば変更したい。
もし良いアプローチがありましたらコメントお願いします。
13
ご静聴ありがとうございました。
質問があれば、お気軽にどうぞ!!
14

More Related Content

PPTX
現実世界コンピューティング RealSense とロボットと HoloLens (2019/04/24 Intel RealSense Japan Mee...
PDF
【Unity道場 建築スペシャル2】BIMの“I”の使い方
PDF
建設シミュレータOCSの開発 / OCS・VTC on Unity におけるROS対応機能について
PDF
myCobotがある生活
PDF
Moveitを使ったアプリケーションの紹介
PDF
MoveItの新機能、 pilz industrial motion を試してみた
PDF
ROSのロボットモデルでバーチャルロボット受肉する
PPTX
roslaunch test + industrial_ci
現実世界コンピューティング RealSense とロボットと HoloLens (2019/04/24 Intel RealSense Japan Mee...
【Unity道場 建築スペシャル2】BIMの“I”の使い方
建設シミュレータOCSの開発 / OCS・VTC on Unity におけるROS対応機能について
myCobotがある生活
Moveitを使ったアプリケーションの紹介
MoveItの新機能、 pilz industrial motion を試してみた
ROSのロボットモデルでバーチャルロボット受肉する
roslaunch test + industrial_ci

What's hot (20)

PDF
Techman ros package
PDF
choreonoid_ros_control を実装した話
PDF
やってみようAWS IoT (ROS Japan UG #44 LT大会)
PDF
ARとUnity-Robotics-Hubの連携
PDF
ROS JAPAN Users Group Meetup 04
PPTX
ROSを用いた歩行ロボットの脚の開発
PDF
ROS体験コース
PPTX
第4回瀬戸内ROS勉強会LT資料
PDF
仮想のPremaidAIを、既存のロボット用ボードで動かしてみた話
PDF
ロボット管理プラットフォーム「 RoboticBase 」の紹介
PDF
ロボット・ソフトウェア開発環境ROSとは何か? (in Japanese)
PDF
ROSConJP2019とWMD2019の出張報告!
PDF
20211006 ROSJP LT大会 中国のROS企業やコミュニティ
PDF
ROS JAPAN Users Group Meetup 03
PDF
Unityでロボットの教師データは作れる!
PDF
WRS トンネルチャレンジ 現地からリポートしてみる
PDF
i-Cart miniを対象としたつくばチャレンジ用ソフトウェアパッケージの開発
PDF
第1回ROS勉強会発表資料 ROS+Gazeboではじめるロボットシミュレーション
PDF
瀬戸内ROS勉強会の紹介~地方でROSを勉強するコツ~
Techman ros package
choreonoid_ros_control を実装した話
やってみようAWS IoT (ROS Japan UG #44 LT大会)
ARとUnity-Robotics-Hubの連携
ROS JAPAN Users Group Meetup 04
ROSを用いた歩行ロボットの脚の開発
ROS体験コース
第4回瀬戸内ROS勉強会LT資料
仮想のPremaidAIを、既存のロボット用ボードで動かしてみた話
ロボット管理プラットフォーム「 RoboticBase 」の紹介
ロボット・ソフトウェア開発環境ROSとは何か? (in Japanese)
ROSConJP2019とWMD2019の出張報告!
20211006 ROSJP LT大会 中国のROS企業やコミュニティ
ROS JAPAN Users Group Meetup 03
Unityでロボットの教師データは作れる!
WRS トンネルチャレンジ 現地からリポートしてみる
i-Cart miniを対象としたつくばチャレンジ用ソフトウェアパッケージの開発
第1回ROS勉強会発表資料 ROS+Gazeboではじめるロボットシミュレーション
瀬戸内ROS勉強会の紹介~地方でROSを勉強するコツ~
Ad

Similar to Unity道場 ロボティクス 秋のLT祭り 2021 (20)

PDF
ROSによる今後のロボティクスのあり方
PDF
箱庭祭#3 発表資料 公開用(複数のソフトウェアプラットフォームを連携させる技術について)
PDF
ロボットサービス開発の現場から
PDF
MLP-Mixer: An all-MLP Architecture for Vision
PDF
2020年10月29日 プロフェッショナルAI×Roboticsエンジニアへのロードマップ
PPTX
ディープラーニングとROSで作る自動運転ロボット
PDF
第7回WBAシンポジウム:松嶋達也〜自己紹介と論点の提示〜スケーラブルなロボット学習システムに向けて
PDF
マルチデバイスに対応するためのAuto layout
PDF
Robomec2014 rtm講習会第1部(その1)
PDF
130522 00
PPTX
OSS Market Momentum In Japan
PDF
デブサミ2017【17-E-5】エンタープライズにおけるDevOpsの実態!Cloud Native Application Platformの選択
PDF
株式会社アイ・ロボティクス サービス概要資料 2111
PDF
東大大学院 戦略ソフトウェア特論2021「ロボットで世界を計算可能にする」海野裕也
PPTX
社会のコードを、書き換えよう~エンジニア起点のNew Normalな働き方~
PPT
#2祖父と孫をつなぐ
PDF
2022国際ロボット展に見る産業用ロボットの最新技術動向
PPT
ネットワーク分散型フレームワークConView
PDF
第97回 Machine Learning 15minutes! Graniteをファインチューニング するInstructLabのご紹介
ROSによる今後のロボティクスのあり方
箱庭祭#3 発表資料 公開用(複数のソフトウェアプラットフォームを連携させる技術について)
ロボットサービス開発の現場から
MLP-Mixer: An all-MLP Architecture for Vision
2020年10月29日 プロフェッショナルAI×Roboticsエンジニアへのロードマップ
ディープラーニングとROSで作る自動運転ロボット
第7回WBAシンポジウム:松嶋達也〜自己紹介と論点の提示〜スケーラブルなロボット学習システムに向けて
マルチデバイスに対応するためのAuto layout
Robomec2014 rtm講習会第1部(その1)
130522 00
OSS Market Momentum In Japan
デブサミ2017【17-E-5】エンタープライズにおけるDevOpsの実態!Cloud Native Application Platformの選択
株式会社アイ・ロボティクス サービス概要資料 2111
東大大学院 戦略ソフトウェア特論2021「ロボットで世界を計算可能にする」海野裕也
社会のコードを、書き換えよう~エンジニア起点のNew Normalな働き方~
#2祖父と孫をつなぐ
2022国際ロボット展に見る産業用ロボットの最新技術動向
ネットワーク分散型フレームワークConView
第97回 Machine Learning 15minutes! Graniteをファインチューニング するInstructLabのご紹介
Ad

Unity道場 ロボティクス 秋のLT祭り 2021