実機の全関節が、Pythonで動いた
LOG123R2R2R2026/4/2

実機の全関節が、Pythonで動いた

mechArmの電源を入れた。MacのWiFiに ElephantRobotics_AP が出てこなかった。

LOG122で設定したはずのホットスポットが、再起動で消えていた。

💡 Key Takeaway

J1からJ6まで、全6関節の単軸テストをPythonスクリプトで完了した。グリッパーを取り付け、開閉動作も確認。ホーム位置(J6=-30°補正)も設定した。mechArm 270-PiがPythonから完全制御できる状態になった。

作業

結果

ホットスポット自動起動設定

再起動後も ElephantRobotics_AP が自動で立ち上がるようになった

J1〜J6 単軸テスト

全関節 ±10°往復 → ホーム復帰 完了

グリッパー取り付け・動作確認

開閉テスト成功

ホーム位置補正

J6=-30°でグリッパーが水平になる位置を確定

ホットスポットが消えていた

再起動のたびに手動で立ち上げるのは運用として成立しない。

モニターとキーボードをPiに直接繋いで、ターミナルを開いた。接続プロファイルを確認すると ElephantRobotics_AP は存在しなかった。前回の設定は消えていた。

新しくホットスポットを作り直した。

sudo nmcli dev wifi hotspot ifname wlan0 ssid ElephantRobotics_AP password Elephant

Device 'wlan0' successfully activated — 立ち上がった。

接続名は Hotspot-1 だった。これを自動起動に設定した。

sudo nmcli con modify Hotspot-1 connection.autoconnect yes

再起動して確認した。Macに ElephantRobotics_AP が自動で出てきた。これで次回からモニターは不要になった。

joint_test.py — 全関節テストスクリプト

Pythonスクリプトを1本作った。引数に関節番号を渡すと、その関節を単軸で±10°往復させてホーム位置に戻す。

python3 joint_test.py 1   # J1をテスト
python3 joint_test.py 2   # J2をテスト

最初の実行でエラーが出た。cannot import name 'MechArm270' — インストール済みのpymycobotが古いバージョンで、MechArm270クラスが存在しなかった。MyCobotクラスに変更して通った。

もう1つ、接続直後の get_angles() が失敗していた。接続安定化の待機時間が1秒では足りなかった。3秒に伸ばして解決した。

J1から順番に実行した。

J1: ベース回転 ✓
J2: 肩 ✓
J3: 肘 ✓
J4: 手首1 ✓
J5: 手首2 ✓
J6: エンドエフェクター回転 ✓

全6関節、完了。

グリッパーを取り付けた

LEGOコネクターでアーム先端に差し込んで、ケーブルを接続した。

gripper_test.py を作ってPiに転送した。実行すると、グリッパーが開いた。閉じた。また開いた。

物理的に動く部品がついたアームがPythonの命令で動いている。シンプルな事実だけど、シンプルじゃない意味がある。

ホーム位置の補正

ホーム位置(全関節ゼロ度)に戻したとき、グリッパーが傾いていた。取り付け角度の問題だ。

J6を調整して水平を出した。

+15° → 変化なし
-15° → 方向は正しい、足りない
-18° → まだ足りない
-24° → まだ足りない
-30° → 水平

J6=-30°がこのグリッパー取り付け位置でのホーム位置になった。joint_test.py と gripper_test.py 両方のホーム復帰コマンドを更新した。

arm.send_angles([0, 0, 0, 0, 0, -30], 20)

今日の結果

実機のmechArm 270-Piが、Pythonから完全に制御できる状態になった。

全関節が動く。グリッパーが開閉する。ホーム位置に戻る。これが全部、MacのターミナルからSSH経由で実行できる。

次のステップ:複数関節を組み合わせた動作へ。R2R2Rループの実装が近い。

※ プロジェクト名「R2R2R」は、UC Berkeley・Toyota Research Instituteの研究「Real2Render2Real」(Yu, Fu et al., 2025)の概念に触発されています。現実空間をデジタルツイン化し、仮想空間での試行から得た知見を実世界のモーター駆動へ還元する——その設計と実装過程を毎日記録しています。技術アプローチおよび目的は独自のものです。