Search

AIDIN-hand TCP/IP 통신 매뉴얼

개요

AIDIN-hand를 TCP/IP 통신을 통해 상위 제어기에서 제어할 수 있습니다.
AIDIN-hand는 server 노드이며, 제공되는 예시 코드는 client 노드입니다.

TCP/IP 통신 정보

포트번호: 8000
버퍼사이즈: 2048
JSON 형식 사용
KEY값과 VALUE값 정보
핸드 명령 정보 (핸드 기준 수신값)
“hand_mode” : v1 (data type: uint16_t)
> 작동 모드 설정 변수
“maxtorque” : v1 (data type: uint16_t)
> 최대 출력 전류값 설정 변수
“hand_TP_cmd” : {v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15} (data type: int[15])
> 모터 엔코더값 기반 위치 제어 설정값
> v1, v2, v3: 엄지손가락 1,2,3번 모터 엔코더값 / v4, v5, v6: 검지손가락 1,2,3번 모터 엔코더값 / v7, v8, v9: 중지손가락 1,2,3번 모터 엔코더값/ v10, v11, v12: 약지손가락 1,2,3번 모터 엔코더값 / v13, v14, v15: 새끼손가락 1,2,3번 모터 엔코더값
“hand_joint_cmd” : {v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20} (data type: double[20])
> 손가락 관절 각도 기반 위치 제어 설정값 (라디안)
> v1, v2, v3, v4: 엄지손가락 q1, q2, q3, q4 관절 각도값 / v5, v6, v7, v8: 검지손가락 q1, q2, q3, q4 관절 각도값 / v9, v10, v11, v12: 중지손가락 q1, q2, q3, q4 관절 각도값 / v13, v14, v15, v16: 약지손가락 q1, q2, q3, q4 관절 각도값 / v17, v18, v19, v20: 새끼손가락 q1, q2, q3, q4 관절 각도값
(q3, q4는 커플링 되어 있어 q3값만 입력 필요)
“hand_taskspace_cmd” : {v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15} (data type: double[15])
> 손가락 끝점 좌표 기반 위치 제어 설정값
> v1, v2, v3: 엄지손가락 x, y, z 끝점 좌표값 / v4, v5, v6: 검지손가락 x, y, z 끝점 좌표값 / v7, v8, v9: 중지손가락 x, y, z 끝점 좌표값 / v10, v11, v12: 약지손가락 x, y, z 끝점 좌표값 / v13, v14, v15: 새끼손가락 x, y, z 끝점 좌표값
“hand_TT_cmd” : {v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15} (data type: int[15])
> 전류 제어 설정값
> v1, v2, v3: 엄지손가락 1,2,3번 모터 전류값 / v4, v5, v6: 검지손가락 1,2,3번 모터 전류값 / v7, v8, v9: 중지손가락 1,2,3번 모터 전류값 / v10, v11, v12: 약지손가락 1,2,3번 모터 전류값 / v13, v14, v15: 새끼손가락 1,2,3번 모터 전류값
핸드 위치/센서 데이터 정보 (핸드 기준 송신값)
“motor_pos” : {v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15} (data type: int32_t[15])
> 각 손가락 모터 엔코더값
> v1, v2, v3: 엄지손가락 1,2,3번 모터 엔코더값 / v4, v5, v6: 검지손가락 1,2,3번 모터 엔코더값 / v7, v8, v9: 중지손가락 1,2,3번 모터 엔코더값/ v10, v11, v12: 약지손가락 1,2,3번 모터 엔코더값 / v13, v14, v15: 새끼손가락 1,2,3번 모터 엔코더값
“joint_pos” : {v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20} (data type: double[20])
> 각 손가락 관절 각도값 (라디안)
> v1, v2, v3, v4: 엄지손가락 q1, q2, q3, q4 관절 각도값 / v5, v6, v7, v8: 검지손가락 q1, q2, q3, q4 관절 각도값 / v9, v10, v11, v12: 중지손가락 q1, q2, q3, q4 관절 각도값 / v13, v14, v15, v16: 약지손가락 q1, q2, q3, q4 관절 각도값 / v17, v18, v19, v20: 새끼손가락 q1, q2, q3, q4 관절 각도값
“task_space_pos” : {v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15} (data type: double[15])
> 각 손가락 끝점 좌표값
> v1, v2, v3: 엄지손가락 x, y, z 끝점 좌표값 / v4, v5, v6: 검지손가락 x, y, z 끝점 좌표값 / v7, v8, v9: 중지손가락 x, y, z 끝점 좌표값 / v10, v11, v12: 약지손가락 x, y, z 끝점 좌표값 / v13, v14, v15: 새끼손가락 x, y, z 끝점 좌표값
“current_state” : {v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15} (data type: int16_t[15])
> 각 손가락 모터 전류값
> v1, v2, v3: 엄지손가락 1,2,3번 모터 전류값 / v4, v5, v6: 검지손가락 1,2,3번 모터 전류값 / v7, v8, v9: 중지손가락 1,2,3번 모터 전류값 / v10, v11, v12: 약지손가락 1,2,3번 모터 전류값 / v13, v14, v15: 새끼손가락 1,2,3번 모터 전류값
“sensor_state” : {v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30} (data type: double[30])
> 각 손가락의 힘/토크 센서값
> v1, v2, v3, v4, v5, v6: 엄지손가락 핑거팁 센서의 Fx, Fy, Fz, Tx, Ty, Tz 센싱값 / v7, v8, v9, v10, v11, v12: 검지손가락 핑거팁 센서의 Fx, Fy, Fz, Tx, Ty, Tz 센싱값 / v13, v14, v15, v16, v17, v18: 중지손가락 핑거팁 센서의 Fx, Fy, Fz, Tx, Ty, Tz 센싱값 / v19, v20, v21, v22, v23, v24: 약지손가락 핑거팁 센서의 Fx, Fy, Fz, Tx, Ty, Tz 센싱값 / v25, v26, v27, v28, v29, v30: 새끼손가락 핑거팁 센서의 Fx, Fy, Fz, Tx, Ty, Tz 센싱값

로봇핸드 조작 정보 (모드선택 및 입력정보)

로봇핸드를 조작하기 위해 적절한 모드선택 및 이에 상응하는 데이터를 입력해야 합니다.
각 모드의 설명 및 입력정보는 아래와 같습니다.
Homing mode
“hand_mode” : 1
“hand_mode” key의 value 값을 1로 설정하고 3초간 입력값 유지
로봇핸드의 모든 손가락을 펼쳐서 해당 위치를 원점으로 셋팅하는 홈잉모드 (3초간 전류제어로 손가락을 펼친 뒤 증분엔코더값을 리셋시켜 해당 지점을 0점으로 만드는 작업)
Initial position mode
“hand_mode” : 2
홈잉모드로 셋팅된 원점 지점으로 다섯 손가락의 위치 제어를 실행하는 초기위치모드
Stop mode
“hand_mode” : 3
모터의 전원을 내리고 외력으로 손가락을 자유롭게 움직일 수 있는 스탑모드 (손가락 티칭 시, 각도/좌표값을 모니터링 하기위해 사용)
Sensor bias mode
“hand_mode” : 4
초기 센서값이 환경변화(온도/외력 등)로 인해 0이 아닌 다른 값들이 반영되어 있을 때, 센서값을 초기화하여 0으로 만들어주는 센서 바이어스 모드
Maxtorque setup mode
“hand_mode” : 5
“maxtorque” key의 value 값을 원하는 값으로 설정
최대 출력 전류를 셋팅하는 모드. Maxtorque의 셋팅값 범위는 0 ~ 1000이며, 1 당 0.1%를 의미함. (700-1000 범위를 권장)
Encoder position command mode
“hand_mode” : 10
“hand_TP_cmd” key의 value 값을 원하는 손가락 모터 엔코더 값으로 설정
각 손가락의 엔코더 위치 명령을 주어 제어하는 위치 제어 모드
Joint angle command mode
“hand_mode” : 22
“hand_joint_cmd” key의 value 값을 원하는 손가락 관절 각도값(라디안)으로 설정
손가락의 관절 각도 명령을 주어 제어하는 위치 제어 모드
Taskspace command mode
“hand_mode” : 32
“hand_taskspace_cmd” key의 value 값을 원하는 손가락 끝점 좌표값으로 설정
각 손가락의 task space 좌표 명령을 주어 제어하는 위치 제어 모드
Current control mode
“hand_mode” : 41
“hand_TT_cmd” key의 value 값을 원하는 각 모터의 전류값으로 설정
각 손가락의 전류 명령을 주어 제어하는 전류 제어 모드
각 변수의 범위는 다음과 같음
maxtorque: 0 – 1000 (1 => 0.1%, 1000 => 100%)
m1, m2: 0 – 280000 (엄지), 0 – 440000 (검지/중지/약지/새끼)
m3: 0 – 210000 (엄지), 0 – 170000 (검지/중지/약지/새끼)
q1: -13° – 45° (엄지), -45° – 45° (검지/중지/약지/새끼)
q2: -30° – 30° (모든 손가락)
q3: 82° – 154° (엄지), 115° – 175° (검지/중지/약지/새끼)
x: -51mm – 51mm (엄지), -51mm – 51mm (검지/중지/약지/새끼)
y: 45.5mm – 115.7mm (엄지), 2.6mm – 100mm (검지/중지/약지/새끼)
z: 13mm – 146.7mm (엄지), 0mm – 149.5mm (검지/중지/약지/새끼)
[각 변수 명칭 및 좌표계 위치]
[q1, q2, q3, q4 각도의 좌표계]
[로봇핸드 원점에서의 각 손가락 원점 좌표 (단위: mm)]