콘텐츠로 건너뛰기
한국어 - 대한민국
  • 검색 필드가 비어 있으므로 제안 사항이 없습니다.

AIDIN-hand TCP/IP Communication Manual

✅ 2025.09.15

Overview 

  • AIDIN-hand can be controlled from the high-level controller via TCP/IP communication. 
  • AIDIN-hand is a server node, and the provided example code is a client node. 

TCP/IP communication information 

  • Port number: 8000 
  • Buffer size: 2048 
  • JSON data types 
  • KEY and VALUE information 
    • Hand command information (received value based on hand) 
      • hand_mode : v1 (data type: uint16_t) 
        -> operating mode setting variable 
      • maxtorque : v1 (data type: uint16_t) 
        -> maximum output current setting variable 
      • hand_TP_cmd : {v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15} (data type: int[15]) 
        -> position control setting value based on motor encoder value 
        -> v1, v2, v3: Thumb 1,2,3 motor encoder values / v4, v5, v6: Index finger 1,2,3 motor encoder values / v7, v8, v9: Middle finger 1,2,3 motor encoder values / v10, v11, v12: Ring finger 1,2,3 motor encoder values / v13, v14, v15: little finger 1,2,3 motor encoder values 
      • 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])  
        -> position control setting value based on finger joint angle value (radians) 
        -> v1, v2, v3, v4: Thumb q1, q2, q3, q4 joint angle values / v5, v6, v7, v8: Index finger q1, q2, q3, q4 joint angle values / v9, v10, v11, v12: Middle finger q1, q2, q3, q4 joint angle values / v13, v14, v15, v16: Ring finger q1, q2, q3, q4 joint angle values / v17, v18, v19, v20: little finger q1, q2, q3, q4 joint angle values 
        (q3, q4 are coupled, so only q3 value needs to be entered) 
      • hand_taskspace_cmd : {v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15} (data type: double[15]) 
        -> position control setting value based on fingertip coordinate val. 
        -> v1, v2, v3: Thumb x, y, z fingertip coordinates / v4, v5, v6: Index finger x, y, z fingertip coordinates / v7, v8, v9: Middle finger x, y, z fingertip coordinates / v10, v11, v12: Ring finger x, y, z fingertip coordinates / v13, v14, v15: little finger x, y, z fingertip coordinates  
      • hand_TT_cmd: {v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15} (data type: int[15]) 
        -> Current control setting value 
        -> v1, v2, v3: Thumb 1,2,3 motor current value / v4, v5, v6: Index finger 1,2,3 motor current value / v7, v8, v9: Middle finger 1,2,3 motor current value / v10, v11, v12: Ring finger 1,2,3 motor current value / v13, v14, v15: little finger 1,2,3 motor current value 
    • Hand position/current/sensor data information  
      (transmission value based on hand) 
      • motor_pos : {v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15} (data type: int32_t[15]) 
        -> encoder values ​​for each finger motor 
        -> v1, v2, v3: Thumb 1,2,3 motor encoder values / v4, v5, v6: Index finger 1,2,3 motor encoder values / v7, v8, v9: Middle finger 1,2,3 motor encoder values / v10, v11, v12: Ring finger 1,2,3 motor encoder values / v13, v14, v15: little finger 1,2,3 motor encoder values 
      • 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]) 
        -> joint angle value for each finger (radians) 
        -> v1, v2, v3, v4: Thumb q1, q2, q3, q4 joint angle values / v5, v6, v7, v8: Index finger q1, q2, q3, q4 joint angle values / v9, v10, v11, v12: Middle finger q1, q2, q3, q4 joint angle values / v13, v14, v15, v16: Ring finger q1, q2, q3, q4 joint angle values / v17, v18, v19, v20: little finger q1, q2, q3, q4 joint angle values 
      • task_space_pos” : {v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15} (data type: double[15]) 
        -> coordinates of each fingertip 
        -> v1, v2, v3: Thumb x, y, z fingertip coordinates / v4, v5, v6: Index finger x, y, z fingertip coordinates / v7, v8, v9: Middle finger x, y, z fingertip coordinates / v10, v11, v12: Ring finger x, y, z fingertip coordinates / v13, v14, v15: little finger x, y, z fingertip coordinates 
      • current_state : {v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15} (data type: int16_t[15]) 
        -> current value of each finger motor 
        -> v1, v2, v3: Thumb 1,2,3 motor current value / v4, v5, v6: Index finger 1,2,3 motor current value / v7, v8, v9: Middle finger 1,2,3 motor current value / v10, v11, v12: Ring finger 1,2,3 motor current value / v13, v14, v15: little finger 1,2,3 motor current value 
      • 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]) 
        -> force/torque sensor values ​​for each finger 
        -> v1, v2, v3, v4, v5, v6: Thumb fingertip sensor Fx, Fy, Fz, Tx, Ty, Tz values / v7, v8, v9, v10, v11, v12: Index fingertip sensor Fx, Fy, Fz, Tx, Ty, Tz values / v13, v14, v15, v16, v17, v18: middle fingertip sensor Fx, Fy, Fz, Tx, Ty, Tz values / v19, v20, v21, v22, v23, v24: Ring fingertip sensor Fx, Fy, Fz, Tx, Ty, Tz values / v25, v26, v27, v28, v29, v30: little fingertip sensor Fx, Fy, Fz, Tx, Ty, Tz values 

Robot hand operating information  
(mode selection and input information) 

  • To operate the robot hand, you must select the appropriate mode and enter the corresponding data. 
  • The description and input information for each mode are as follows. 
    • Homing mode 
      • “hand_mode” : 1 
      • Set the value of the “hand_mode” key to 1 and maintain the input value for 3 seconds 
      • Homing mode that opens all the fingers of the robot hand and sets the open position as the origin  
        (the task of opening the fingers with current control for 3 seconds and then resetting the incremental encoder value to make the origin point) 
    • Initial position mode 
      • “hand_mode” : 2 
      • Initial position mode that executes position control of the five fingers to the origin position set in the homing mode 
    • Stop mode 
      • “hand_mode” : 3 
      • Stop mode that turns off the motor power and allows the fingers to move freely with external force  
        (used to monitor angle/coordinate values ​​when teaching fingers) 
         
    • Sensor bias mode 
      • “hand_mode” : 4 
      • Sensor bias mode that initializes the sensor value to 0 when the initial sensor value reflects values ​​other than 0 due to environmental changes (temperature/external force, etc.) 
      • Maxtorque setup mode 
      • “hand_mode” : 5 
      • Set the value of the “maxtorque” key to the desired value. 
      • Mode for setting the maximum output current. The setting value range of maxtorque is 0 ~ 1000, and 1 means 0.1%. 
        (range of 700-1000 is recommended) 
    • Encoder position command mode 
      • “hand_mode” : 10 
      • Set the value of the “hand_TP_cmd” key to the desired finger motor encoder value. 
      • Position control mode that controls by giving the encoder position command for each finger 
    • Joint angle command mode 
      • “hand_mode” : 22 
      • Set the value of the “hand_joint_cmd” key to the desired finger joint angle value (radians). 
      • Position control mode that controls by giving joint angle commands for each finger 
         
    • Taskspace command mode 
      • “hand_mode” : 32 
      • Set the value of the “hand_taskspace_cmd” key to the desired fingertip coordinate value. 
      • Position control mode that controls by giving task space coordinate commands for each finger 
    • Current control mode 
      • “hand_mode” : 41 
      • Set the value of the “hand_TT_cmd” key to the desired current value for each motor. 
      • Current control mode that controls by giving current commands for each finger (Required: Set maxtorque to 1000 when controlling) 
      • The range of each variable is as follows 
        - maxtorque: 0 – 1000 (1 => 0.1%, 1000 => 100%) 
        - m1, m2: 0 – 280000 (thumb), 0 – 440000 (idx./mid./rig./lit.) 
        - m3: 0 – 210000 (thumb), 0 – 170000 (idx./mid./rig./lit.) 
        - q1: -13° – 45° (thumb), -45° – 45° (idx./mid./rig./lit.) 
        - q2: -30° – 30° (all fingers) 
        - q3: 82° – 154° (thumb), 115° – 175° (idx./mid./rig./lit.) 
        - x: -51mm – 51mm (thumb), -51mm – 51mm (idx./mid./rig./lit.) 
        - y: 45.5mm – 115.7mm (thumb), 2.6mm – 100mm (idx./mid./rig./lit.) 
        - z: 13mm – 146.7mm  (thumb), 0mm – 149.5mm (idx./mid./rig./lit.) 

[Definition of each variable and coordinate system location] 

 

[Coordinate system of angle q1, q2, q3, q4]

[Coordinates of each finger origin from the robot hand origin (unit: mm)]