今回は主に、ハードウェア的な内容になります。
雑多なメモ状態ですが、参考になりましたら幸いです。(2022/3 に届いた Proモデルでの情報)
マニュアルにない、実際に使ってみたノウハウを書いてみたつもりです。
(どうやらスピーカやらWiFi 5GHz -> 2.4GHz 変更などノウハウがまとまったドキュメントがUnitree からもらえるぽいので、購入された方はサポートに聞いてみましょう。私も取得しました。)
2024/5 追記
こちらの方の記事によりますと、2023年暮れ~以降の出荷バージョンから何やら対策がなされたとの事です。
https://qiita.com/Manyan3/items/cfab10bfacd1e646a171
私の記事は2022年のものなので、どこまで同じことができるかわかりませんが、参考のために残しておきます。
前回 その1 スタート編→
追加
はじめに
内部のラズパイ・Jetson Nano にソフト追加したりするのには、USB-Ethernet 接続するのがシンプルに使えそうですが、 安易に apt update とかすると、最初の環境から変化していくので、標準ソフトへの影響が未知なのでよくなさそうです。
私は内部ボードのソフト構成はあまり変えず、追加のホストからLAN 経由でコントロールしています。
電源ON・OFF 基本操作
こちらのYotubeの公式動画がわかりやすいです。
基本的にはジョイスティックコントローラで一通り動かせます。
スマホアプリも Android / iOS 対応。
PC からWebブラウザでつないでジョイスティックでも操作できます。
電源ON・OFFは、バッテリ長押しです。
(以下、Twitter 紹介)
https://twitter.com/devemin/status/1509032857448378368?s=20&t=CqE3EiUGOAeExyu1Jl8wIg
(ちなみに電源ブツ切りなので、何か対策してるのかは未調査。後半のバックアップで補足)
ハード構成
ネットワーク
192.168.123.10 - 低層コントローラ(STM32 マイコン?)
192.168.123.161 - ラズパイ CM4 mem 2GB, swap 4GB 有線LAN
192.168.12.1 - ラズパイ CM4 WiFi
192.168.123.13 - Jetson Nano (頭部, Nano2gb) mem 2GB, swap 5GB
192.168.123.14 - Jetson Nano (SecNanoLeft) mem 4GB, swap 2GB
192.168.123.15 - Jetson Nano (MasterNano) mem 4GB, swap 2GB
電源を入れてHDMI にモニタを繋げばGUIデスクトップが表示されます。
また、LANポートに他のPCを繋げばSSHでログインできます。
(ssh pi@192.168.123.10 や ssh unitree@192.168.123.13 等のコマンドでwin/ubuntu 等からログインできます。)
ログインパスワード
ラズパイ
ID: pi
pass: 123
Jetson Nano
ID: unitree
pass: 123
GUI ログインやSSH にて利用します。
OSバージョン
・ラズパイ
OS: buster
Kernel: Linux raspberrypi 5.4.81-rt45-v8+ #9 SMP PREEMPT_RT Mon Dec 28 00:13:29 PST 2020 aarch64 GNU/Linux
・Jetson Nano
L4T: 32.5.0-20210115145440
JetPack: 4.5.1-b17
Kernel: Linux unitree-desktop 4.9.201-tegra #1 SMP PREEMPT Fri Jan 15 14:41:02 PST 2021 aarch64 aarch64 aarch64 GNU/Linux
ボディ端子・冷却用の排気孔など
パネルを外すと、内部ボードにアクセスできます。
ラズパイ CM4 module, Jetson Nano x3台ですが、Jetson Nano 1台(頭部)はSSH 接続のみです。
ほかは HDMI, USB 端子が用意されています。
有線LANは、内部ネットワーク用Hub ポートです。
外部PCを接続する場合は、その外部PCに固定IPを割り振ります。
XT30 端子で外部電源を接続できます。(公式動画によると 30V/30A)
Type-C 端子と専用拡張端子の利用法は謎ですw
内部構造
総務省の技適のPDF に内部パーツがひととおり写真があって面白いです。
モータ内部の写真は無いみたい。RS-485 通信規格のようです。
安定化電源
安定化電源にしたら、開発がとても楽になりました。
30V / 30A / 110V model
安定化電源側の端子は、付属していたものを利用。これらを半田づけして、秋月の熱収縮チューブで保護しました。(感電は本当によく注意しましょう)
なお、速い動きなどをすると電流足りず落ちる事があるので、 40A など上位モデルの方が良いかもしれません?対応などは不明。 段差モードなどゆっくり歩く程度では30A でもできます。(30A は公式動画で使われていたもの)
WiFi アクセスポイント機能について
(細かい話です。設定ファイルだけ修正した方が良さそう、という内容です。)
Go1 は単体でWiFi アクセスポイントになっています(2.4 GHz, 5 GHz 内蔵)。
5 GHz アクセスポイントは、通常は室内用となります。(技適ステッカーにも記載あり。)
私のAndroid (Xperia 1, Softbank 802SO)では、最初Go1 の WiFi AP が表示されませんでした。端末により表示できないものがあったようです。
設定を変えることで接続できました。
また、室外で使う場合は法的制限によりアクセスポイントのソフトhostapd の設定ファイル(/etc/hostapd/hostapd.conf)を2.4GHz 用に修正しましょう。(屋外での5GHz レーダー波への干渉を防ぐDFS機能が有効であるためか、先日屋外で5GHz 設定では、AP接続できても、通信ができませんでした。ラズパイすごい)
私は第二級陸上特殊無線技士の資格を取得したのですが、WiFi 法令をよくわかっておらず・・・
調べた範囲では、Go1 の初期設定が、
・hostapd.conf (アクセスポイント設定ファイル)が country_code=US(アメリカ)になってて、WiFi channel=165 (5.6GHz ?)となってる。(国によって無線の出力強度が異なるはずなので、国設定は正しく行う必要がある)
・書類上は 2.4GHz, 5.2GHz で技適を取得してて、5.6GHz は不明
(っていうか、技適取得の試験時は設定をどうしたのか謎w)
ゴチャゴチャ書きましたが、下記に内部ラズパイ用の設定を残しておきます。
(5.2GHz (室内)用)
(2.4GHz (室内・室外)用)
行頭#のコメントアウトで適宜修正し、再起動してください。
(なお 2.4GHz はとりあえず設定して繋がりましたが、チャンネル等うまい設定があれば是非コメント下さい。)
(こちらがとても参考になりました。感謝)
ファイル
/etc/hostapd/hostapd.conf
interface=wlan1
driver=nl80211
ieee80211n=1 #with beacon, country
ieee80211d=1 #with strength, country
ieee80211h=1 #with lader, DFS (for 5GHz)
#############################
#Japan
country_code=JP # not US
#############################
#select 2.4GHz / 5.2GHz
#hw_mode=g
hw_mode=a
#############################
#2.4GHz: All comment out (with '#' ), 5.2GHz: All enable
ieee80211ac=1
require_ht=1
require_vht=1
wmm_enabled=1
vht_oper_chwidth=1
vht_oper_centr_freq_seg0_idx=42
ht_capab=[HT40-][HT40+][SHORT-GI-40][DSSS_CCK-40]
#############################
#2.4GHz: 1-13?, 5.2GHz: 36
channel=36
#channel=11
#############################
#AP setting
wpa=2
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP
ssid=Unitree_Go210513A
wpa_passphrase=00000000
(補足)なお、5 GHz を屋外で利用したい場合は、陸上特殊無線技士の資格取得の上、下記の内容を総務省に申請すれば可能のようです。
バックアップについて
頭部のJetson Nano モジュールとmicroSD は頭部内に。
他はお腹に配置されていると思います。(技適PDF参照)
私は起動したままバックアップできる rpi-clone でバックアップしました。
(OSリカバリーが必要になった時は、USBブートでなんとかできるのかな?未調査。頭部のJetson Nano モジュールはUSB端子が無いので分解が必要?まぁ滅多にそういう状況にならないと思いますが)
(参考)
https://twitter.com/devemin/status/1500606492776742913?s=20&t=MU2ym7SpFsIFuEsnAhjmvg
キャリブレーション
歩行バランスが悪い時はキャリブレーションが必要かもしれません。
出荷前に一応されているはず。
モータ単体
RS485, 2.5Mbps ぽい
ケーブルは XT30 2+2 信号線つき
拡張端子
USB type-C 端子 x2 は、PCと接続すると USB-シリアル接続になりました。
2個あるうちの頭側、TeraTerm で115200 でつなぐとこんなログが出力されていました。
お尻側は何も出てないように見えました。
時刻合わせ
tzselect
date -s ""
https://engineer-ninaritai.com/linux-date/
内部のラズパイをインターネットにつなぐ
内部は WiFi AP 化の設定などがあって設定を都度変えれば良いのでしょうが、面倒だったので USB-Ethernet アダプタを買いました。
Buffalo LUA4-U3-AGTE-NBK
本体右側(ラズパイのUSB)にこのアダプタ、そして家のルータとLANケーブルを挿したら、 192.168.0.161 的な感じで家のネットにつながりました。
くれぐれもsudo apt update とかしない方が良いと思います。。。(環境が壊れる可能性も否めない)
自分はどうしても必要なパッケージだけ入れるようにしようと思い、apt update が必要な状況になったら、ローカルにパッケージをダウンロードしてきてやろうと思ってます。
続きは…
(その3 ソフト編)に続きます。