まずはこちら

本体組み立て

上記リンクにそっていけば組み立ては難しくない。ネジが小さくて見づらいのは別の話(苦笑) 注意点はいくつか。ネジの話ばかり。

  • インストラクション通りに作るとネジが足りなくなる
    • ちゃんとした製品というよりは kickstarter でのプレッジに対するウィワード(簡単に言うと購入)だからかも?
    • 足りなくなる、というよりは M1.4のネジが入ってなくて代用できませんでした
  • 3Dプリンタを使って作られたパーツのせいか、精度が今ひとつで、サーボモニタの取り付けで長いネジを使う必要があった

ソフトのインストール

本家が詳しいが、インストールするイメージファイルが 32GBで、使う microSDカードによっては入らないので、パーティションを小さくしてイメージファイルを小さくする。pishrink はこの辺から。

sudo losetup -f # 使える loopback device を表示
sudo losetup /dev/loop16 MiniPupper2004.img # losetup -f で表示された loopback device は 16
sudo partprobe /dev/loop16 sudo gparted /dev/loop16

# root だと gpartedが開かないかもなので、xhost si:localuser:root する
sudo pishrink.sh MiniPupper2004.img # これだと上書きしちゃうけど

 

VNCでリモート接続

端末からホストへ SSH でなくて、VNCで接続して端末立ち上げる
https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-vnc-on-ubuntu-20-04-ja
を参考に。
ただ、これだと rviz が上がらないようだ。。VNCが問題なのか、xfceが問題なのか。

足のキャリブレーションはめんどうだ

最初はしょうがないけど、細かい調整をやり直したいとき、また一つずつやっていくのは大変。なので、設定ファイルmnpp_ws/src/minipupper_ros/servo_interface/config/calibration/calibration.yaml を直接編集。なぜか設定ファイルと異なる順番。

音がでないぞ

SLAMが使える、というイメージとデフォルトのイメージでは起動時の設定が結構違う。音が出ない。
/boot にあるコンフィグファイルにdtparam=audio=on が必要。
/boot/firmware/syscfg.txt に追加。

便利なHDMI設定

起動時しかHDMI出力できないので、以下を追加。参考はこちら

hdmi_force_hotplug=1
hdmi_group=1
hdmi_mode=16 # 1920x1080@60p

今わかっているキットの不具合

  • M1.4のネジが入っていない -> 送ってもらって解決
  • 足の付根につけるカバーが一つ足りない -> すみません、ありました
  • 横につけるカバーが同じもの(左右別々でないので、片方が裏表逆になっちゃう)
  • SLAMを取り付ける台の足がもげた -> 自分のせいですね。。

すっきりしないので、イチからソフト設定

いろいろ参考にしたけど、環境を壊したのか気持ちよくいかないので、ゼロから構築。

  1. Ubuntu 20.04 をインストール
    1. ubuntu-20.04.4-preinstalled-server-arm64+raspi.img を書き込む
    2. ブートしてデスクトップ環境を入れる
  2. GNOMEの VNC 設定しても「バージョンが悪い」的なことを言われるので gsettings set org.gnome.Vino require-encryption false を実行
    • 5900番ポートでVNC接続が可能
  3. /boot/firmware/config.txt の dtoverlay=vc4-kms-v3d をコメントアウト(そうしないとコンソールが上がらない)
  4. HDMIのホットプラグを無視する設定を行う

DS4コントローラーでラジコン化する

  1. https://github.com/mangdangroboticsclub/QuadrupedRobot/blob/MiniPupper_V2/Doc/guide/software_installation.rst の通りにインストール
    1. GitHubからダウンロード
    2. libudev.h がないと言われたら sudo apt-get install libudev-dev
  2. Bluetoothモジュールを追加。sudo apt install bluetooth-pi
  3. 必要なモジュールが動作してるか確認
    1. sudo systemctl status joystick
    2. sudo systemctl status robot
  4. コントローラーの SHARE+PSボタンでペアリングモードに入れて、つながればOK

ROSとして使う

  1. ROS Noeticをインストール
  2. https://github.com/mangdangroboticsclub/minipupper_ros に従って必要なものをインストール
  3. コマンドを実行するとPermissionError: [Errno 13] Permission denied: '/sys/class/pwm/pwmchip0/pwm15/duty_cycle’ と言われるので以下を実行
    1. sudo groupadd gpio && sudo gpasswd -a $(whoami) gpio
    2. sudo tee /etc/udev/rules.d/99-mini-pupper.rules << EOF > /dev/null
      SUBSYSTEM=="pwm*", PROGRAM="/bin/sh -c '\
      chown -R root:gpio /sys/class/pwm && chmod -R 770 /sys/class/pwm;\
      chown -R root:gpio /sys/class/pwm/pwmchip0/pwm*/duty_cycle && chmod -R 770 /sys/class/pwm/pwmchip0/pwm*/duty_cycle'"
      EOF
    3. sudo udevadm control –reload-rules && sudo udevadm trigger

その他

  • カーネルをアップデートしちゃうとモジュールがないので、電池容量とかEEPROMが読めなくなる。Robotics/QuadrupedRobot/Mangdang/FuelGauge  とRobotics/QuadrupedRobot/Mangdang/EEPROM  で sudo bash install.sh する。

接続機器を買う

LiDARモジュールを買う

MangDangさんによると、おすすめはLD-AIR LiDARだそうだが、もうキャンペーンは終わっていたので、LD06というのを購入。見た目はほぼ同じ。Kickstarter見てもスペックも同等、といってもいいのかな。yahboom.netで $169.99。Makuake で売ってるのも LD06 のようなのでOKか。

カメラを買う

kickstarter では OAK-D-Lite (AF) がよい、とのこと。こちらも Kickstarter のキャンペーンは終わってた。商品ページでは $149 なのだが、ここを見ると、Kickstarterの値段 $89.00 で買える。買えていいのかわからないが、kickstarter のメンバーだし、特に文句は言われなかったのでよしとする(でよかったかな…)。

SLAMで遊ぶ

カメラで遊ぶ

  • https://www.techlife-hacking.com/?p=1180 を参考に depthAI を試す
  • https://www.techlife-hacking.com/?p=1197 を参考に物体追従
    • 認識する物体は oak_detect.py 内のtoward_obj(5,detections)の第一引数を編集する
    • 足のキャリブレーションが大きいせいかわからないけど、足の動きがおかしくなる(そして倒れる)。どこか計算がおかしいか?

電源をなんとかしたい

電池容量は大きくないので、立ち上げていろいろセットアップしたり試したりしてるとすぐなくなる。ので、外部電源を導入したい。
7.4VのACアダプタなんてないし、安定化電源を真面目に買うと高いので、DC-DCコンバータをいくつか試す

  1. VKLSVAN 10個 2A DC-DC ブーストステップアップ 転換モジュール Micro USB 2V-24V to 5V-28V 9V 12V 24V MT3608コンバータ
    • 10個で1000円しないほど安価。でも10個はいらない。
    • USBから給電可能
    • 起動はするけどモーターを動かすほどの電力はない。モーターを動かそうとすると電圧が下がるのか切れてしまう。USBからだとせいぜい1Aだし、無理な話か。。
  2. Aideepen DC-DC降圧コンバータモジュール降圧レギュレータ8-60V ~ 1-36V 出力電圧調整可能なコンバーター電源降圧ボード200W 15A CC CV降圧型電源安定器12V 24V 36V から 3.3V 5V 9V定電流定電圧トランス
    • 動作的には期待通り。 12V/3AのACアダプタが使える
    • でも、ちょっと大きい
  3. HiLetgo 2個セット 5A大電流 定電圧電流 モジュール LEDドライバー
    • 動作も大きさも期待通り。この大きさだと本体に取り付けたくなる
    • 2個で1000円しない。そこそこ安価。

今のとこ、3がいい感じに使える

AWS RoboMaker で遊ぶ

ROSが Melodic でないといけないようですね…