本リポジトリは、DENSO COBOTTA の制御を行う簡易スクリプト群です。 起動時に AutoCAL を実行し、ロボット制御ループとコントローラ入力ループを 別プロセスで並列実行します。
対象ファイル: cobocon/cobocon.py, cobocon/ps4con.py
セットアップガイド: cobocon/SETUP.md
教育ドキュメント: cobocon/TEACHING.md
- 起動時に AutoCAL を実行
- ロボット制御ループとコントローラ入力ループを別プロセスで並列実行
- 例外時は再接続・再初期化を試行
- 起動時に通常接続先IPと例外時IPを対話で選択
- Python 3.x
cobottaライブラリが利用可能であることpygameとpyautoguiが利用可能であること
python cobocon/cobocon.py起動すると、以下のように接続先IPの選択を求められます。
- 通常接続先IP
- 例外時に切り替えるIP
- 操作モード(ジョイスティック / CSV)
- 接続先IPの候補は
cobocon/cobocon.pyのIP_CANDIDATESを編集します。 - 例:
IP_CANDIDATES = ["192.168.12.63", "192.168.12.65", "192.168.12.76", "192.168.12.77"] - CSVの既定パスは
cobocon/points.csvです。
本プロジェクトは cobocon/vendor/ に cobotta を同梱しています。
移植時は cobocon フォルダごとコピーしてください。
cobocon/ps4con.py でジョイスティック入力を監視し、キーボード入力に変換します。
キー割り当てやデッドゾーンは ps4con.py 内で調整してください。
ps4con.py の button_map と key_map に基づく対応です。
- ×:
P - ◯:
P - □:
P - △:
P - share:
P - PS:
L - option:
ENTER - JOY-L:
P - JOY-R:
P - L1:
u - R1:
y - ↑キー:
c - ↓キー:
v - ←キー:
z - →キー:
x - タッチパッド:
ESC
DEADZONE = 0.5 を超えた場合に以下のキーが送出されます。
- 左スティックX(axis 0)
xaxis_value < -0.5:dxaxis_value > 0.5:f
- 左スティックY(axis 1)
yaxis_value < -0.5:ayaxis_value > 0.5:s
- 右スティック/トリガー(axis 3)
zaxis_value < -0.5:gzaxis_value > 0.5:h
cobocon/points.csv を使って4点を順に実行します。
1行は「位置6軸(X,Y,Z,Rx,Ry,Rz)+Fig+速度」の8パラメータです。
例:
0,0,90,0,90,0,0,30
10,0,85,0,90,0,0,30
20,0,80,0,90,0,0,30
0,0,90,0,90,0,0,30
TP 側で CALSET on start-up を有効にする場合は、
[F2 Arm] - [F6 Aux] - [F1 Config] の
252: CALSET on start-up = 1 を設定します。
1: MOVE P (Point/Joint)2: MOVE L (Linear)3: MOVE C (Circular)4: MOVE S (Spherical)
- 実機動作前に周辺安全を必ず確認してください。
- 例外時の再接続で IP が切り替わるロジックが含まれています。 運用に合わせて候補IPを見直してください。