2024.10.15
【第一回】M2 Macbook ProからTurtlebot3 (Noetic)をなんとか動かせないだろうか
はじめに
こんにちは。グループ研究開発本部、AI研究開発室のY.Tです。
今日はM2 Macbook ProからTurtleBot3を動かすための環境構築の記録を残そうと思います。
まず、公式の情報を確認しますが、Turtlebot3はMacのサポートが無いようです。
詰んだ、、、?
諦めるのはまだ早い
Turtlebot3はLaptop PCからWiFi接続して通信で動かすようで、それはLinuxの仮想環境上でプロセスを走らせればいいだけなのでは?
ただし、アプリケーションの都合上でGUIが必要そうです。
PC Setupの手順の通りにUbuntu 20.04 LTSの環境を用意するため、UTM上で動かせるようにインストールしましょう。その後にROSの初期インストールと動作テストを行います。
Ubuntu 20.04 LTS desktopインストール
Ubuntu 22.04であればUTMギャラリーにあるのですぐインストールできましたが、20.04はありません。
Ubuntu 20.04.5 LTS (Focal Fossa)より、Server install image 64-bot ARM(ARMv8/AArch64) server install imageをダウンロードしてきてインストールします。
Desktopのイメージは見つからないので、Severで入れます。GUIは後で有効化できるので問題ありません。
ダウンロードできたらUTMを起動して仮想環境の構築に移ります。
まずは仮想マシンの作成から仮想化を選択、
Linuxから起動ISOイメージに先ほどダウンロードしたイメージを選択して進みます。
その後は仮想マシンのサイズなど適当に決めて設定を保存します。
保存されたマシンをダブルクリックして起動するとこのような画面に。Install Ubuntu Serverを選択してインストール開始です。
日本語は無い。
わかったから、20.04を僕は入れたいんだ。
US MacなのでそのままDone。キーボード配列が違う人はここで設定。
Network,Proxy,mirrorの設定はDoneでスキップ。
ストレージ設定もUse an entire diskを選択したままDoneでスキップ, disk partitionも設定せずに進む。
ここまで来ました。ユーザを設定しましょう。
次のOpen SSHのインストールは入れておくと便利です。必要なものをインストールしつつ次へ。
インストールは時間がかかります。
完了したら、閉じるボタンでウィンドウを閉じましょう。インストールディスクが挿入されている状態でありReboot Nowを選んでもうまくいきません。
停止したらインストールディスクを取り出して起動します。
起動、ログインが完了したら、次のコマンドでGUIをインストールしましょう。
sudo apt update sudo apt -y install ubuntu-desktop
再起動するとログイン画面が見えるはずです。
コピペがうまくいかないなどの問題があれば、仮想マシンの設定を確認しましょう。一度マシンを停止し、マシンを右クリック -> 「編集」を選ぶと、設定が確認できます。
クリップボードの共有が有効か、と、SPICE Agentが問題なくインストールされているかを確認しましょう。(SPICE Agentは上記の手順ならインストールされるはず)
一度再起動をすると、クリップボードの共有が効くようになったりします。
完成
ROSを入れてとりあえず動かす
後は公式ページを見ながらaptでinstallしていきます。
まずはTurtlebot3 e-Manual PC Setupの1.1.4まで。
実際叩いたコマンドは以下の通り。(そのまま)
sudo apt update sudo apt upgrade wget https://raw.githubusercontent.com/ROBOTIS-GIT/robotis_tools/master/install_ros_noetic.sh chmod 755 ./install_ros_noetic.sh bash ./install_ros_noetic.sh sudo apt-get install ros-noetic-joy ros-noetic-teleop-twist-joy \ ros-noetic-teleop-twist-keyboard ros-noetic-laser-proc \ ros-noetic-rgbd-launch ros-noetic-rosserial-arduino \ ros-noetic-rosserial-python ros-noetic-rosserial-client \ ros-noetic-rosserial-msgs ros-noetic-amcl ros-noetic-map-server \ ros-noetic-move-base ros-noetic-urdf ros-noetic-xacro \ ros-noetic-compressed-image-transport ros-noetic-rqt* ros-noetic-rviz \ ros-noetic-gmapping ros-noetic-navigation ros-noetic-interactive-markers sudo apt install ros-noetic-dynamixel-sdk sudo apt install ros-noetic-turtlebot3-msgs sudo apt install ros-noetic-turtlebot3
試しにシミュレーションを動かしましょう。
このページFake Node Simulationの通りに設定していきます。
cd ~/catkin_ws/src/ git clone -b noetic-devel https://github.com/ROBOTIS-GIT/turtlebot3_simulations.git cd ~/catkin_ws && catkin_make source ~/catkin_ws/devel/setup.bash
環境変数に機体の形状を設定してからmasterを実行します。三段重ねのような形のアセンブルならburger, 他によくあるのは一段のwaffle_piです。
rvizの画面が立ち上がるはず。
export TURTLEBOT3_MODEL=burger roslaunch turtlebot3_fake turtlebot3_fake.launch
別のターミナルでキーボードプロセスが起動します。PCゲーのようにw,a,s,d,xで操作。
export TURTLEBOT3_MODEL=burger roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch
ようやくなんか動いた
チュートリアルがようやく動作した様子を動画でご覧ください。
Gazeboも動いている様子
rviz同様にmasterを動かし、別ターミナルのキーボードで操作する。
roslaunch turtlebot3_gazebo turtlebot3_world.launchc
本日はここまで
とりあえずGUIが動くところまでセットアップする手順でした。次回以降は実機を動かしていきたいと思います。
しかし、ここまでMacで用意しておいてですが、通常の用途で実行しうる程度の複雑なシミュレーションの計算に仮想環境は耐えるのだろうか、、、
結局GPUなどが必要になり、Macは無かったことにするかもしれません。
参考
【Linux】UTMを用いてM1 MacBookにUbuntuの仮想化環境を構築する
TurtleBot3 e-Manua
ROS2: Turtlebot3のGazeboシミュレーションをHumble/Noeticで動かす
ROS.org UserGuide
ROS MelodicでTurtlebot3をGazeboで動かしてついでにSLAMする
宣伝
グループ研究開発本部 AI研究開発室では、データサイエンティスト/機械学習エンジニアを募集しています。ビッグデータの解析業務などAI研究開発室にご興味を持って頂ける方がいらっしゃいましたら、ぜひ 募集職種一覧 からご応募をお願いします。皆さんのご応募をお待ちしています。
グループ研究開発本部の最新情報をTwitterで配信中です。ぜひフォローください。
Follow @GMO_RD