Appliance
Appliance は, EtherCAT マスタだけを動かす専用ボード.
AUTD3 との配線をボードが持ち, ユーザのマシンは RemoteLink で TCP 接続する.
EtherCAT バスはホストから切り離されてボードの上で閉じるので, ホスト側の OS のリアルタイム性・NIC・負荷にバスの安定性が左右されない. ホストは Windows / Linux / macOS のいずれでもよく, TwinCAT や npcap も不要. 特に理由がなければ, AUTD3 を駆動する方法としては, これを推奨する.
現在サポートしているのはRaspberry Pi 4 (以下, RP4) のみ.
用意するもの
Section titled “用意するもの”| ボード | Raspberry Pi 4 Model B |
| microSD カード | 8GB 以上 |
| 電源 | RP4 用の USB-C 電源 (5V/3A) |
| USB イーサネットアダプタ | ホストとつなぐ 2 つ目の有線ポート. 動作を確認しているのは AX88179 系 |
| Ethernet ケーブル | CAT 5e 以上を 2 本 (AUTD3 用とホスト用) |
イメージの入手
Section titled “イメージの入手”SD イメージは SDK 本体とは別の Release ページで配布している.
appliance-v0.9.0 を開き, autd3-appliance-rp4-<バージョン>-<日付>.img.xz をダウンロードする.
使用するクライアントと同じバージョンのイメージを使うこと.
SD カードへの書き込み
Section titled “SD カードへの書き込み”Raspberry Pi Imager を使う場合は,
「Use custom / カスタムイメージを使う」で .img.xz をそのまま選ぶ.
Linux / macOS では dd でもよい.
xz -dc autd3-appliance-rp4-*.img.xz | sudo dd of=/dev/sdX bs=4M conv=fsync status=progress初回起動には1分程度の時間がかかる.
起動したかどうかは, ホストからアプライアンスを探索して確かめられる.
autd3-appliance scanautd3-appliance は autd3-console のバンドルに同梱されている (コンソール).
autd3-console の Appliance タブで「Scan」を押しても良い.
- RP4 の オンボード有線ポートをAUTD3に接続し, 追加でUSB イーサネットアダプタを用いてホストとイーサネットで直結する
- RP4とホストとの接続はLAN (Wi-Fiも可, 下記参照) でもよいが, 直結が推奨
- AUTD3 とボードの電源を入れる
- ホストから
RemoteLinkでつなぐ
RemoteLinkOption::discover()?;RemoteLinkOption.discover()RemoteLinkOption.Discover();ダッシュボード
Section titled “ダッシュボード”http://autd3-<serial no.>.local:8081/ でバスの状態が見れる.
(アドレスはscan結果に出る.)
以下の操作が可能.
| 状態監視 | バスの開閉状態, 各デバイスの EtherCAT 状態, 位相逸脱と exchange 時間, 接続中のクライアント, アップリンクのアドレスと Wi-Fi の状態 |
| バス操作 | 開く / 閉じる / 接続台数の確認 |
| 設定 | 設定ファイルの取得と差し替え (反映は再起動後) |
| ログ監視 | ボードのログ |
| 保守 | サーバの再起動, ボードの再起動・電源断, Wi-Fi 資格情報の設定と削除 |
同じ操作は autd3-appliance コマンドからもできる.
探索・状態表示・バスの開閉・再起動・サーバの更新は autd3-console の Appliance タブからも行える.
autd3-appliance scanautd3-appliance statusautd3-appliance config get > appliance.tomlautd3-appliance config set appliance.tomlautd3-appliance logs --lines 500Wi-Fi を使う場合は, まず有線 (直結でも LAN でもよい) でつないでから資格情報を入れる必要がある.
autd3-appliance wifi set --ssid <SSID> --psk <PASSPHRASE> --country JP--country には 2 文字の国コードを渡す (日本なら JP).
省略すると 5GHz 帯と 12/13ch が使えない.
つながったかどうかは autd3-appliance status の uplink 行で見れる.
radio blocked はボードで無線が無効になっている状態, domain unset は国コードが入っていない状態.
Wi-Fi は有線より遅く不安定になりやすいので, 可能なら有線での接続を推奨する.
保存した資格情報を消すには wifi forget を使う.
autd3-appliance wifi forgetautd3-appliance wifi forget --radio-off--radio-off を付けると, 資格情報を消したうえで無線そのものを止める.
どちらも有線でつながっていないと拒否される.
Wi-Fi経由で強制的にOffにするならなら --force を付ける.
API から戻せなくなったとき
Section titled “API から戻せなくなったとき”wifi forget --force でボードに触れなくなった場合や, 有線も Wi-Fi も使えなくなった場合は SD カードを直接書き換えて直す必要がある.
カードをホストに挿すと boot パーティションが見えるので, config.txt の末尾に次の行を足すと無線を止められる.
dtoverlay=disable-wifi無線を戻すときはこの行を消す.
資格情報だけを消したいなら, autd3-data パーティションの network/autd3-wifi.nmconnection と wifi-radio-off を削除する.
サーバの更新
Section titled “サーバの更新”ボード上の autd3-remote-server だけは, SD カードを焼き直さずに差し替えられる.
autd3-console の Appliance タブでは, 走っているサーバの版数の横に新しい版数があるかどうかが出る. 版数を選んで Update を押すと, console が Release からバイナリを取ってきてボードへ送り, ボードはそれを入れ替えて再起動する.
同じことは autd3-appliance からもできる.
autd3-appliance releasesautd3-appliance update --version 0.10.0autd3-appliance update ./autd3-remote-serverバイナリは appliance-vX.Y.Z の Release に autd3-remote-server-X.Y.Z-aarch64-unknown-linux-musl として置かれている.
console も CLI も SHA-256 を照合してから送る.
更新には control.allow_admin が有効である必要がある.
セキュリティ
Section titled “セキュリティ”コントロール API にも Remote Link にも認証は無い.
書き込み系だけを止めるなら, 設定の control.allow_admin を false にする.
これにより状態の取得とバスの開閉は残り, ボードの再起動・電源断・バイナリ更新・Wi-Fi の設定と削除・設定の差し替えが拒否される.
サーバプロセスの再起動は拒否されない.
control.enabled を false にすると HTTP 通信自体が無効になる.
設定ファイルはボードの /data/autd3/remote-server.tomlにある.
ブラウザか autd3-appliance config で読み書きする.
変更が効くのはサーバの再起動後.
ユーザが主に触るのは次の 2 つ.
| キー | 意味 |
|---|---|
bus.sync0_period |
EtherCAT バスの周期. 既定 1ms. 台数が多い場合は伸ばす |
bus.open_on_start |
電源投入時にバスを開くか. 既定 true |
チューニング
Section titled “チューニング”sync0_period と frame_phaseの組み合わせを順に試し, OP 状態を保てたものを表にする.
autd3-appliance tune run --period 1ms --period 2ms --frame-phase auto --frame-phase 25--frame-phase には auto か 1〜99 の百分率を渡す.
--period と合わせて指定した数だけ候補が作られ, 1 候補につき --warmup (既定 5s) + --dwell (既定 30s) かかる.
チューニング中はクライアントは切断しておくこと.