Mini Pupper2(ミニぷぱ2)をROS2対応する方法
Mini Pupper2(ミニぷぱ2) をROS2で動かす
メーカーから実機提供いただいた四脚ロボット「Mini Pupper2」。一通り動作確認したので、いよいよROSで動かします(概略と初期の動作確認は以下記事参照ください)。
ROS2のセットアップは、以下に記載があるのですが、ちょっとハマったので、ハマったところを中心に記載していきます。
なお、セットアップにはMini Pupper2の他、Linux PCが必要です。ここのハードルが一番高いかもしれませんね。
以下記事で、比較的安全にWindows PCでLinuxを使う方法を記載しているので、よかったら参考にしてみてください。
以下3つのステップに分けて説明していきます。
- Linux PCのROS2セットアップ
- Mini Pupper2のROS2セットアップ
- Linux PCからのロボット操作
Linux PCでROS2セットアップ
ここは公式ガイドの通りで比較的すんなりいけました。
ただ、自分の環境では、以下のcolcon build
でつまづきました。
$ colcon build --symlink-install
エラーをもとに、以下のライブラリインストールしてからビルドしたら通りました。
$ pip3 install catkin_pkg
$ pip3 install empy==3.3.4
$ pip3 install lark
ROSあるあるですね。スマートな方法とか設定あると思いますが、忘れました…
Mini Pupper2のROS2セットアップ
ガイドを参考にROS2のイメージをSDカードに書き込みます。
ガイドではbalenaEtcherを使って書き込んでいましたが、私はRaspberry Pi Imager
で書き込みをしました。以下記事参考にしてください。
書き込み設定。
SDを書き込んだ後は、そもそもどういうハード設定でセットアップするかという前提が分からなくて少し戸惑いました。結局以下のようにMini Pupper2と直接モニタとUSBキーボードを繋げば良さそうということが分かりました。
最初は、Raspberry Pi4でセットアップしてから、SDを差し替えると良いかなと思ってましたが、SDイメージがMini Pupper2のハードウェア前提でイメージが作られているようで、起動しませんでした(途中で止まってしまう)。
ログイン名とパスワードは以下です(注意深くガイド読むと分かります)。
- login: ubuntu
- password: mangdang
また、日本語キーボードだとキーマップが変で正しく記号が打てないので、以下コマンドでキーボードを設定します。
$ sudo dpkg-reconfigure keyboard-configuration
あとは、だいたいガイドの通りでいけます。ネットワークの設定だけ完了したら、以下のようにIPアドレスが画面に表示されます。
こうなったらLinux PCからsshでMini Pupper2にリモートアクセスできるので、モニタやキーボードを外してOKです。
Linux PCからのロボット操作
これで、Linux PCからMini Pupper2にログインしたり、ROS2で操作できるようになるはずです。
Mini Pupper2のROS2ノードの起動コマンドは以下です。
$ . ~/ros2_ws/install/setup.bash
$ ros2 launch mini_pupper_bringup bringup.launch.py
これを実行しないと、以下コマンドを実行しても、何もノードが表示されません(ガイドの順番では、ノードの起動が後に書いてありますが、先に実行する必要があります)。
$ ros2 node list
あとはガイドに従ってキーボードでテレオペすれば、ロボットを操作できると思います。
動かしている様子です。
まとめ
Mini Pupper2とLinux PCのROSセットアップからROSでの操作までを実施しました。ROS久しぶりに触りましたが(ROS 2はほぼ経験無し)、やはり結構ハードモードですね。この記事で少しでもMini Pupper2をROSで動かせる人が増えたら良いなと思います。
Mini Pupper2がROSで動くようになったら、あとはROSの流儀で他のパッケージを組み合わせたり、自分でROSパッケージ作ってみると色々なことができるかと思います。
書籍は以下とかが参考になるのではないかと思います。
ROS2とPythonで作って学ぶAIロボット入門 改訂第2版
参考リンク
Discussion
こんにちは
四足歩行ロボットにLLMを適用してみたいと思っていたので、私も予約しました!