2024.10.15

【第一回】M2 Macbook ProからTurtlebot3 (Noetic)をなんとか動かせないだろうか

はじめに

こんにちは。グループ研究開発本部、AI研究開発室のY.Tです。
今日はM2 Macbook ProからTurtleBot3を動かすための環境構築の記録を残そうと思います。
まず、公式の情報を確認しますが、Turtlebot3はMacのサポートが無いようです。
詰んだ、、、?

Turtlebot3 Not Support Mac
Macの文字が見えない。Turtlebot3 e-Manual PC Setupより

諦めるのはまだ早い

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をダウンロードしてきてインストールします。

ubuntu download
ServerのISOイメージをダウンロード

Desktopのイメージは見つからないので、Severで入れます。GUIは後で有効化できるので問題ありません。

ダウンロードできたらUTMを起動して仮想環境の構築に移ります。
まずは仮想マシンの作成から仮想化を選択、

select virtualize
アーキテクチャが同じなので仮想化を選択

Linuxから起動ISOイメージに先ほどダウンロードしたイメージを選択して進みます。

ISO
ISOイメージから起動

その後は仮想マシンのサイズなど適当に決めて設定を保存します。
保存されたマシンをダブルクリックして起動するとこのような画面に。Install Ubuntu Serverを選択してインストール開始です。

install start
Install Ubuntu Server

日本語は無い。

no jp
English

わかったから、20.04を僕は入れたいんだ。

no update
Continue without updateing

US MacなのでそのままDone。キーボード配列が違う人はここで設定。

US最高
Select US

Network,Proxy,mirrorの設定はDoneでスキップ。
ストレージ設定もUse an entire diskを選択したままDoneでスキップ, disk partitionも設定せずに進む。

Continue
Continue

ここまで来ました。ユーザを設定しましょう。

Continue
Set user

次のOpen SSHのインストールは入れておくと便利です。必要なものをインストールしつつ次へ。
インストールは時間がかかります。

Continue
Set user

完了したら、閉じるボタンでウィンドウを閉じましょう。インストールディスクが挿入されている状態でありReboot Nowを選んでもうまくいきません。

Continue
Install Completed

停止したらインストールディスクを取り出して起動します。

Continue
ISOイメージを消去

起動、ログインが完了したら、次のコマンドでGUIをインストールしましょう。

sudo apt update
sudo apt -y install ubuntu-desktop

再起動するとログイン画面が見えるはずです。

Continue
ログイン画面

コピペがうまくいかないなどの問題があれば、仮想マシンの設定を確認しましょう。一度マシンを停止し、マシンを右クリック -> 「編集」を選ぶと、設定が確認できます。
クリップボードの共有が有効か、と、SPICE Agentが問題なくインストールされているかを確認しましょう。(SPICE Agentは上記の手順ならインストールされるはず)
一度再起動をすると、クリップボードの共有が効くようになったりします。

Continue
設定画面

完成

Continue
完成

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
Continue
Gazebo

本日はここまで

とりあえず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
  • Facebook
  • はてなブックマークに追加

グループ研究開発本部の最新情報をTwitterで配信中です。ぜひフォローください。

 
  • AI研究開発室
  • 大阪研究開発グループ

関連記事