【Unitree Go2】Mid360でSLAMを実行する

【Unitree Go2】Mid360でSLAMを実行する

初めに


本記事では、オプションのMid360版を用いたSLAMの方法を案内します。 今回はFAST-LIOというものを使っていきます。  

環境


環境は、次のようなものを想定しています。
  • 機種: Go2 R&D+(Edu+)(AIR/PROではないもの)
  • 付属LiDAR:Mid-360
※FAST-LIOはかなり重いので、Orin NXで行うことを前提とします。  

1.mid360のip設定


【Unitree Go2】Mid360を動かしてみる の1の項を見て、接続設定をします。 本記事では、下記のような設定として進めますが、IPアドレスが異なる場合は適宜置き換えて読み進めてくだされば問題ありません。
  • Mid360 IP:192.168.123.20
  • Docking Staion IP:192.168.123.18
 

2.FAST-LIOの導入


本記事では、FAST-LIOというSLAMアルゴリズムを用いた方法を解説します。 これは(おそらく)foxyに対応していませんので、dockerを用いたhumble環境をセットアップしていきます。

2-1. ネット接続

2-2. livox_ros_driver2とFAST-LIOのダウンロード

livox_ros_driver2とFAST-LIO(とdocker file)がまとめられたgitリポジトリ(https://github.com/Taeyoung96/FAST_LIO_ROS2)があったので、これを使います。ただ、これはAMD系対応のものなので、弊社でARMで使えるように修正しました。(https://github.com/TechShare-inc/FAST_LIO_ROS2) これをDocking Stationの適当な場所にダウンロードします。
  1. $ git clone https://github.com/TechShare-inc/FAST_LIO_ROS2 --recursive

2-3. dockerイメージの作成

まず、nvidia-docker2のインストールします。
  1. $ sudo apt-get update $ sudo apt-get install -y nvidia-docker2 $ sudo systemctl restart docker
その後、dockerイメージを作成します。
  1. $ cd /path/to/FAST_LIO_ROS2/docker $ docker build -t fast-lio-ros2:latest .
※かなり時間がかかります

2-4. dockerコンテナの作成

コンテナを作成する際に、実行している様子の表示をNoMachine上で行えるようにするために、この時点でNoMachineから接続しGUI上のterminalからコンテナの作成を行います。 参考:【Unitree Go2】NoMachineでDocking StationのGUIを使う
  1. $ cd /path/to/FAST_LIO_ROS2/docker $ ./container_run.sh fast-lio-ros2 fast-lio-ros2:latest
これでdockerコンテナが作成されました。

2-5. コンパイル

コンパイルの前に、Mid360のipアドレスを修正します。 LiDAR IPと受け取り側のIPを設定します。 次にコンパイルします。
  1. # cd ~/ros2_ws/src/livox_ros_driver2 # ./build.sh humble
これで、livox_ros_driver2とFAST-LIOの両方がコンパイルされました。  

3.実行



3-1. livox_ros_driver2の実行

下記のように行うことで、MID360の点群取得をdocker/humble環境で行えます。
  1. $ docker exec -it fast-lio-ros2 bash # . install/setup.bash # ros2 launch livox_ros_driver2 rviz_MID360_launch.py

3-2. FAST-LIOの実行

上記のlivox_ros_driver2を実行させた状態で、新しいterminalを開きFAST-LIOを実行します。
  1. $ docker exec -it fast-lio-ros2 bash # . install/setup.bash # ros2 launch fast_lio mapping_mid360.launch.py
すると、マップが生成されます。 ……が、少し歩かせているとマップが吹き飛んでいきます。
これはMid360を斜めに取り付けていることと、Mid360の内臓のIMUの性能が低いことによります。 次の記事では、これを修正し、ちゃんと崩れないFAST-LIOを使っていきます。 次の記事: 【Unitree Go2】Mid360 on Go2でFAST-LIOを使う
 

おわりに

本記事ではMid360版を用いたSLAMの方法を見てきました。 この記事が少しでも役に立てたのなら幸いです。

    • Related Articles

    • 【Unitree Go2】Mid360 on Go2でFAST-LIOを使う

      初めに 本記事では、【Unitree Go2】Mid360でSLAMを実行するの続きになります。 前回の記事では犬を少し歩かせると、地図が崩れてしまいました。 本記事ではGo2内蔵のIMUを用いて、安定的なSLAMを実現します。 環境 環境は、次のようなものを想定しています。 機種: Go2 R&D+(Edu+)(AIR/PROではないもの) 付属LiDAR:Mid-360 ※FAST-LIOはかなり重いので、Orin NXで行うことを前提とします。 ...
    • 【Unitree Go2】Mid360のデフォルトサンプルの使い方(現在使用できません)

      初めに 本記事では、オプションのMid360/XT16版を用いたメーカーの用意したSLAMの使い方を案内する予定です。 ただし、メーカーに確認したところ、現状はうまく動作せず、2024年の年末頃に更新予定とのことです。(24/8/5現在) 使用するためにTechShareで用意した使用例(点群取得とSLAM)が下記のようにございます: TechShareで用意したサンプル(点群取得とSLAM) Mid360の場合 【Unitree Go2】Mid360を動かしてみる 【Unitree ...
    • 【Unitree Go2】一問一答FAQ

      初めに 本記事では、Unitree Go2を購入されたお客様からよくあるご質問内容を、一問一答形式でまとめたものになります。 一問一答(すべての機種について) Q: Go2を歩かせると、右方向に行くことがあまりにも多いですがこれは正常ですか? A: 初期姿勢が少しずれていると、右に行きやすくなることは他のGo2でも確認されています。初期姿勢が正しいか今一度確認ください。 ...
    • 【Unitree Go2】SDK or ROSを使う方法

      初めに 本記事では、ユーザー側で用意した外部PCを用いて、SDK(unitree_sdk2)やROS(unitree_ros2)を動かす方法についてご案内します。 環境 環境は、次のようなものを想定しています。 機種: Go2 R&D(Edu), R&D+(Edu+)(AIR/PROではないもの) Docking Station or 外部PC:ubuntu20 / ROS2 foxy 0.参考公式ドキュメント unitree_sdk2 Obtain SDK - Go2 SDK ...
    • 【Unitree Go2】メーカー資料について

      本記事ではGo2のメーカー公式資料等についてご案内します。 (1) スマホアプリ Unitree Go - Google Play Unitree Go - Apple Store app 注意:12/4現在開発中のため、一部動作しない機種がございます。 (2) オンラインSDK資料 R&D(EDU)版について: Go2 SDK Development Guide - UnitreeRobotics R&D(EDU)版githubになります: unitree_sdk2 - github ...