Unitree Go1 を使ってみよう！（その２　ハード編）

今回は主に、ハードウェア的な内容になります。

雑多なメモ状態ですが、参考になりましたら幸いです。（2022/3 に届いた Proモデルでの情報）
マニュアルにない、実際に使ってみたノウハウを書いてみたつもりです。

（どうやらスピーカやらWiFi 5GHz -> 2.4GHz 変更などノウハウがまとまったドキュメントがUnitree からもらえるぽいので、購入された方はサポートに聞いてみましょう。私も取得しました。）


:::note info

2024/5 追記

こちらの方の記事によりますと、2023年暮れ～以降の出荷バージョンから何やら対策がなされたとの事です。

https://qiita.com/Manyan3/items/cfab10bfacd1e646a171

私の記事は2022年のものなので、どこまで同じことができるかわかりませんが、参考のために残しておきます。

:::


<br>
<br>

前回　その１　スタート編→

https://qiita.com/devemin/items/c31e106a6e3661db1b1e


追加

https://qiita.com/devemin/items/1708176248a1928f3b88


# はじめに

内部のラズパイ・Jetson Nano にソフト追加したりするのには、USB-Ethernet 接続するのがシンプルに使えそうですが、 **安易に apt update とかすると、最初の環境から変化していくので、標準ソフトへの影響が未知なのでよくなさそうです。**

私は内部ボードのソフト構成はあまり変えず、追加のホストからLAN 経由でコントロールしています。



# 電源ON・OFF 基本操作

こちらのYotubeの公式動画がわかりやすいです。

基本的にはジョイスティックコントローラで一通り動かせます。
スマホアプリも Android / iOS 対応。
PC からWebブラウザでつないでジョイスティックでも操作できます。

電源ON・OFFは、バッテリ長押しです。


https://www.youtube.com/watch?v=toqfWvlKfUQ&t=745s

（以下、Twitter 紹介）
https://twitter.com/devemin/status/1509032857448378368?s=20&t=CqE3EiUGOAeExyu1Jl8wIg

https://twitter.com/ystk_hara/status/1509746389504651265?s=20&t=MU2ym7SpFsIFuEsnAhjmvg

https://twitter.com/kimeko__/status/1489785406803804161?s=20&t=MU2ym7SpFsIFuEsnAhjmvg

（ちなみに電源ブツ切りなので、何か対策してるのかは未調査。後半のバックアップで補足）


# ハード構成

### ネットワーク

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


# ボディ端子・冷却用の排気孔など

https://twitter.com/devemin/status/1507742757363716098?s=20&t=6J8f4Dxl5a1t917W3jWW6w

パネルを外すと、内部ボードにアクセスできます。
ラズパイ CM4 module, Jetson Nano x3台ですが、Jetson Nano １台（頭部）はSSH 接続のみです。
ほかは HDMI, USB 端子が用意されています。

有線LANは、内部ネットワーク用Hub ポートです。
外部PCを接続する場合は、その外部PCに固定IPを割り振ります。

XT30 端子で外部電源を接続できます。（公式動画によると 30V/30A）
Type-C 端子と専用拡張端子の利用法は謎ですｗ


# 内部構造

https://www.tele.soumu.go.jp/giteki/SearchServlet?pageID=jk01&NUM=&NAM=%82t%82%8E%82%89%82%94%82%92%82%85%82%85&FOM=&PC=&YAR_FROM=&MON_FROM=&DAY_FROM=&YAR_TO=&MON_TO=&DAY_TO=&RAD=00-00-00-00&TEC=1&TEC=2&TEC=3&TEC=4&TEC=5&TEC=6&TEC=7&SK=0&DC=0&SC=1&as_fid=17de57877f1651f7a960d1e9a08b21ead64c9d95#searchlist

総務省の技適のPDF に内部パーツがひととおり写真があって面白いです。
モータ内部の写真は無いみたい。RS-485 通信規格のようです。




# 安定化電源

安定化電源にしたら、開発がとても楽になりました。

https://www.youtube.com/watch?v=JUrVtR_WJJs

30V / 30A / 110V model

https://ja.aliexpress.com/item/1005001469072364.html?gatewayAdapt=glo2jpn&spm=a2g0o.order_list.0.0.21ef585aUi09Tl

安定化電源側の端子は、付属していたものを利用。これらを半田づけして、秋月の熱収縮チューブで保護しました。（感電は本当によく注意しましょう）

なお、速い動きなどをすると電流足りず落ちる事があるので、 40A など上位モデルの方が良いかもしれません？対応などは不明。　段差モードなどゆっくり歩く程度では30A でもできます。（30A は公式動画で使われていたもの）

https://www.amazon.co.jp/gp/product/B07CWW2CB9

https://www.amazon.co.jp/gp/product/B07W7Y4R2Y

https://www.amazon.co.jp/gp/product/B08J494K94

https://twitter.com/devemin/status/1502103630542827523?s=20&t=6J8f4Dxl5a1t917W3jWW6w

https://twitter.com/devemin/status/1496787726703611913?s=20&t=6J8f4Dxl5a1t917W3jWW6w





# 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 は不明
（っていうか、技適取得の試験時は設定をどうしたのか謎ｗ）


ゴチャゴチャ書きましたが、下記に内部ラズパイ用の設定を残しておきます。

（5.2GHz （室内）用）
（2.4GHz （室内・室外）用）

行頭#のコメントアウトで適宜修正し、再起動してください。
（なお 2.4GHz はとりあえず設定して繋がりましたが、チャンネル等うまい設定があれば是非コメント下さい。）

（こちらがとても参考になりました。感謝）

https://qiita.com/awesam/items/70fde5765b07783b7090


ファイル
/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
```

https://twitter.com/devemin/status/1500791696485134336?s=20&t=CqE3EiUGOAeExyu1Jl8wIg


（補足）なお、5 GHz を屋外で利用したい場合は、陸上特殊無線技士の資格取得の上、下記の内容を総務省に申請すれば可能のようです。

https://www.tele.soumu.go.jp/j/sys/others/wlan_outdoor/ 




# バックアップについて

頭部のJetson Nano モジュールとmicroSD は頭部内に。
他はお腹に配置されていると思います。（技適PDF参照）

私は起動したままバックアップできる rpi-clone でバックアップしました。

（OSリカバリーが必要になった時は、USBブートでなんとかできるのかな？未調査。頭部のJetson Nano モジュールはUSB端子が無いので分解が必要？まぁ滅多にそういう状況にならないと思いますが）

（参考）
https://twitter.com/devemin/status/1500606492776742913?s=20&t=MU2ym7SpFsIFuEsnAhjmvg



# キャリブレーション

歩行バランスが悪い時はキャリブレーションが必要かもしれません。
出荷前に一応されているはず。

https://twitter.com/devemin/status/1506472431959289864?s=20&t=6J8f4Dxl5a1t917W3jWW6w


# モータ単体

RS485, 2.5Mbps ぽい

ケーブルは XT30 2+2 信号線つき

# 拡張端子

USB type-C 端子 x2 は、PCと接続すると USB-シリアル接続になりました。

2個あるうちの頭側、TeraTerm で115200 でつなぐとこんなログが出力されていました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/478524/8b7df4a2-1cc9-a5d1-baeb-081287bddde4.png)

お尻側は何も出てないように見えました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/478524/aedcd5e3-0778-ab4a-f916-7c597b996302.png)


# 時刻合わせ

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 が必要な状況になったら、ローカルにパッケージをダウンロードしてきてやろうと思ってます。

# 続きは…

（その３　ソフト編）に続きます。

https://qiita.com/devemin/items/de1a1390da8795a71a4f