YouDuck.ai

robotctl コマンドリファレンス

最終更新

robotctl はロボット上で動きます。このページは用途別の一覧です。

コマンドごとの個別ページ

このページは用途別の一覧です。各コマンドには出力の読み方と誤読しやすい点をまとめた個別ページがあります。

分類 コマンド
診断 version · health · monitor
設定 configure
関節の電源 robot init · robot relax
ゲームパッド pad status · pad pair · pad forget
音声 quack · chorale
ネットワーク net status · net scan · net connect · net forget
identity と電源 system info · system pin · system set-name · system set-pin · system reboot
更新 status · check · apply · rollback · log · show · watch · select · pin · reset-to-golden

権限

  • 読み取り専用のコマンドに権限は不要。
  • ロボットの状態を変える操作にはすべて sudo(あるいは configd--allow-user / --allow-groupupdater.tomlallow_uids / allow_gids)。

診断

robotctl version    # デーモンごとの実行中 vs インストール済み
robotctl health     # ハードとソフトを 1 レポートに、不健全なら非ゼロ終了
robotctl monitor    # 要求値と適用値、食い違う場合はその理由

何かおかしいときは version が最初です。更新後に古いコードのまま動いているデーモンは、いま直したはずの修正が効いていない状態とまったく同じに見えます

health は不健全・到達不能のとき非ゼロで終了するので、スクリプトの前提条件にそのまま使えます。モーターの過熱や pin されたコンポーネントは報告されますが、終了コードには影響しません——判定ではなく情報だからです。

設定

sudo robotctl configure

/etc/robot/robotd.toml の対話エディタ。信頼できる性質が 3 つあります。デーモンと食い違えない(同じクレート、同じスキーマ、キー一覧はテストで固定)、ファイルを壊さない(変更したキーだけを書き、既定に戻すとキーを削除する)、robotd が起動できないファイルを書けない(デーモン自身のローダーで検証し、原子的に書く)。

自分のポリシー

[policy]
walk = "/home/radxa/my_walking.onnx"
sudo systemctl restart robotd

このパスは更新を越えて残ります。 リリースが置き換えるのは同梱のバイナリとポリシーであって、別の場所を指すファイルではありません。

関節の電源

sudo robotctl robot init          # 通電し、約 2 秒でホームポーズへ
sudo robotctl robot relax --yes   # 電源を切る。ロボットは崩れる

initすべての関節を動かします。スタンドに載せてから実行してください。

止め方は 3 通りあり、同じではありません。relax は電源を切って倒れ、Start をもう一度押すとポリシーが止まって立ったまま、robot.stop は速度がゼロになって立ったままです。

ゲームパッド

robotctl pad status
sudo robotctl pad pair
sudo robotctl pad forget 78:86:2E:BB:13:28

ゲームパッドのペアリング操作一覧を参照。

音声

robotctl quack
robotctl chorale

各個体の音声バンクは SoC のシリアルから生成されるので、応答した個体が SSH している個体です。音声を持たないロボットはそう明言するので、沈黙は常に「間違ったアヒル」を意味します。

chorale既定でオフ、そしてオフのときは不可視です。参加していないアヒルは空中に何も出しません。

ネットワーク・identity・電源

robotctl net status / scan
sudo robotctl net connect <ssid> --psk <passphrase>
robotctl system info / pin
sudo robotctl system set-name <name>
sudo robotctl system reboot

更新

robotctl update status / check / log / show / watch
sudo robotctl update apply daemon
sudo robotctl update rollback daemon
sudo robotctl update select daemon 0.1.4
sudo robotctl update pin daemon 0.1.4
sudo robotctl update reset-to-golden daemon

すべての更新は署名検証・ヘルスゲート・巻き戻し可能です。

開発ボードでは、--ref を付けない apply daemon は通常ダウングレードです。意味は「最新のものを入れる」ではなく「安定チャネルが提供するものを入れる」です。

ログ

journalctl -u configd -b --no-pager | tail -40
journalctl -b -u robotd -u updaterd -u btd -u configd   # updaterd が起動しないとき
journalctl -b -u robot-boot-check                        # ロボットが自分で巻き戻したか
robotctl update log