Categories: 工作・開発

机の上を月面に見立てた小型ローバー、頭脳はブラウザ

デスクをSF映画のような月面に見立てて走り回る自律ローバーだ。Absurd Industriesが公開した「LUN-E Explorer」はSeeed StudioのXIAO ESP32-S3 Senseをベースにした自律探索ロボットで、GitHubにソースコードと詳細なドキュメントが公開されている。コンセプトは「デスクが月面だったら?」だ。

このプロジェクトで際立つのは「ブラウザが脳」というアーキテクチャだ。ESP32-S3の仕事はOV2640カメラ(QVGA 320×240)からのMJPEGストリームをWi-Fi経由でポート81に配信し、2基の連続回転サーボへPWM信号を送ることだけに絞られている。自律走行の判断はすべてブラウザのJavaScriptが担う。ブラウザはMJPEGストリームを80×60ピクセルのキャンバスに描画し、200ミリ秒ごとに全4800ピクセルを解析して床か障害物かに分類する。その結果からスロットルと操舵量を算出し、40HzのWebSocketでESP32へ送り返す。UIと制御ロジックはESP32のROMに書き込まれた1枚のHTMLファイルに収まっており、ブラウザでhttp://explorer.localを開くだけで動作する。

床の識別にニューラルネットは使わない。起動時にカメラ映像の下部中央を5フレーム分サンプリングし、RGBの平均と標準偏差を算出して「床の色」を学習する。以降は「各チャンネルが平均から標準偏差の2.5倍以内なら床」というシンプルな箱型テストで分類する。自律動作は有限状態機械(FSM)で管理され、LEARN・SCAN・FWD・AVOID・REV・CLIFFの6状態が床の割合・障害物・崖・スタックの検出に応じて遷移する。床の色許容度やスタック判定閾値などはブラウザのスライダーからリフラッシュなしに調整できる。

ビルドにはPlatformIOが必要で、ファームウェアをフラッシュ後にLUN-E SSIDへ接続するとキャプティブポータルが立ち上がりWi-Fi設定が完了する。外部サーバーもAPI呼び出しも不要で、ブラウザを演算リソースとして活用する設計はESP32の負荷を最小化しつつ、PCの処理能力をそのまま使える点でコスト・消費電力の両面で合理的だ。

関連情報

FabScene編集部

FabScene編集部