実機の全関節が、Pythonで動いた
mechArmの電源を入れた。MacのWiFiに ElephantRobotics_AP が出てこなかった。
LOG122で設定したはずのホットスポットが、再起動で消えていた。
💡 Key Takeaway
J1からJ6まで、全6関節の単軸テストをPythonスクリプトで完了した。グリッパーを取り付け、開閉動作も確認。ホーム位置(J6=-30°補正)も設定した。mechArm 270-PiがPythonから完全制御できる状態になった。
作業 | 結果 |
|---|---|
ホットスポット自動起動設定 | 再起動後も |
J1〜J6 単軸テスト | 全関節 ±10°往復 → ホーム復帰 完了 |
グリッパー取り付け・動作確認 | 開閉テスト成功 |
ホーム位置補正 | J6=-30°でグリッパーが水平になる位置を確定 |
ホットスポットが消えていた
再起動のたびに手動で立ち上げるのは運用として成立しない。
モニターとキーボードをPiに直接繋いで、ターミナルを開いた。接続プロファイルを確認すると ElephantRobotics_AP は存在しなかった。前回の設定は消えていた。
新しくホットスポットを作り直した。
sudo nmcli dev wifi hotspot ifname wlan0 ssid ElephantRobotics_AP password ElephantDevice '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ループの実装が近い。
