LoginSignup
7
5

More than 1 year has passed since last update.

ロボット向けヘテロシミュレータ箱庭(ROS2/マイコン制御を統合)

Last updated at Posted at 2022-07-23

概要

ロボット向けのシミュレーション環境として,ROSに特化したものとマイコンに特化したものがあります.
本記事では,ROS2/マイコン制御のシミュレーションを1つのシミュレーション環境で同時に行えるヘテロシミュレータを紹介します.

TOPPERS/箱庭プロジェクトでは,ROS2向けのシミュレータとマイコン制御シミュレータを一般公開しており,これらを統合したシミュレータを製作しました.

image.png

ROS2シミュレータの例

マイコン制御シミュレータの例

前提とする環境

基本的には,以下の動作環境に準じます.

ただし,現時点では,Windows11/wsl2 環境で動作確認しています.

手順

ヘテロ環境の構築手順は以下のステップで行います.

  1. 箱庭 マイコン制御シミュレーション環境を構築
  2. 箱庭 ROS シミュレーション環境を構築
  3. 箱庭コンフィギュレータでロボットをカスタマイズ
  4. ヘテロシミュレーション環境をインストール
  5. ヘテロシミュレーションを実行

箱庭 マイコン制御シミュレーション環境を構築

まずは,以下の手順に従って,マイコン制御でのシミュレーションを実行してください.

ヘテロシミュレータでは,マイコン制御シミュレーション(dockerでのAthrill実行)のみを使用します.
※本環境で提供しているUnityアプリは利用しません.

箱庭 ROS シミュレーション環境を構築

次に,以下の手順に従って,ROS2制御でのシミュレーションを実行してください.

箱庭コンフィギュレータでロボットをカスタマイズ

hakoniwa-ros2simの箱庭コンフィギュレータを起動してください.

こんな感じで,TB3が1個あるはずです.

image.png

ここに,EV3ロボットを追加しましょう.

ProjectビューのAssets/Resources/Hakoniwa/Robotsを選択すると,EV3RoboModelが見えます.
image.png

TB3の場合と同じ要領で,EV3RoboModelをドラッグ&ドロップしましょう.
HierarchyビューのConfigurator/Hakoniwa/Robot配下に配置します.

image.png

次に,InspectorビューのEV3 Micon Config を開いてください.

image.png

Udp_proxy に Athrill が見えます.Ipaddr を docker のIPアドレスを設定してください.

docker の IPアドレスの確認方法は以下の通りです.

root@DESKTOP-7UPRUP4:~/workspace/hakoniwa-ros2sim/ros2/workspace# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.31.175.6  netmask 255.255.240.0  broadcast 172.31.175.255
         :

こんな感じで,IPアドレス設定しましょう.

image.png

設定後,箱庭のコンフィグ情報を以下の要領で生成してください.

image.png

ヘテロシミュレーション環境をインストール

hakoniwa-ros2simのdocker端末上で,以下の要領でインストールを行ってください.

cd /root/workspace/hakoniwa-ros2sim/ros2/workspace
bash hako-install.bash opt all
bash build.bash

ヘテロシミュレーションを実行

Unityエディタに戻り,シーンを Toppers_Course に変更しましょう.

image.png

hakoniwa-ros2sim の docker 端末で,ROS2のシミュレーション準備をします.

# bash launch.bash
IP_ADDR is 172.31.175.6 (eth0)

Unityエディタのシミュレーション開始ボタンを押下します.
TB3とEV3の2つのロボットが見えますね!

image.png

次に,箱庭マイコン制御シミュレータの方で,箱庭プロキシを起動します.

bash run-proxy.bash base_practice_1

起動成功すると,開始ボタンが有効になります.

image.png

最後に,hakoniwa-ros2sim 側で,TB3のロボット制御プログラムを起動します.

# bash run.bash tb3 TB3RoboModel
START: TB3RoboModel

さー,準備完了です.開始ボタンを押しましょう.

デモ

EV3 とTB3 が動きだしまた.
ロボットの動きだけだとわからないかもしれませんが,EV3の方(マイコン側)はUDP通信でマイコンシミュレータAthrillで制御しています.TB3の方(ROS2側)はROSトピックで制御しています.

お知らせ:箱庭もくもく会

TOPPERS箱庭WGでは,もくもく会を不定期に開催しています.
本記事の内容を実際に試してみたい方や試してみたけど詰まっている方は,ぜひご参加ください.画面共有しながら参加者同士でサポートしたり,一緒に新しい機能を実装したりと”もくもく”しましょう.

7
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
5