Doosan Robotics API Manual Logo
  • 1. Introduction
    • 1.1 Overview
      • 1.1.1 Copyright
      • 1.1.2 History of Document Creation/Revision
    • 1.2 Architecture & Library Structure
      • 1.2.1 API Layer Architecture
        • DRFC.h
        • DRFS.h
        • DRFL.h
        • DRFLEx.h
      • 1.2.2 Composition of Library
      • 1.2.3 Linking Library
        • Linux Library
        • Windows Library
      • 1.2.4 Using Header File
    • 1.3 Environment Setup
      • 1.3.1 System Requirements
        • Windows
        • Linux
      • 1.3.2 DRCF Version Compatibility
      • 1.3.3 Windows Environment (64-bit)
        • A. Install Required dependencies
        • B. Clone the DRFL repository
        • C. Open the provided Visual Studio solution
        • D. Modify solution code for your development environment
        • E. Setup Docker
      • 1.3.4 Linux (Ubuntu) Environment (64-bit)
        • A. Create a workspace
        • B. Clone the DRFL repository
        • C. Install required dependencies
        • D. Launch Simulator (Virtual Mode)
        • E. Build the project
        • F. Manual build (alternative)
    • 1.4 Realtime External Control
      • 1.4.1 Version
  • 2. Definitions
    • 2.1 Constant Type
      • 2.1.1 Boolean & Debug Constants
      • 2.1.2 Robot Configuration Constants
      • 2.1.3 String Size Constants
      • 2.1.4 I/O Configuration Constants
      • 2.1.5 I/O Configuration Constants (Version 3)
      • 2.1.6 Motion / Configuration Size Limits
      • 2.1.7 Modbus Configuration Constants
      • 2.1.8 Flange & Hardware Utility Macros
    • 2.2 Enumeration Type
      • 2.2.1 System Session
        • ROBOT_STATE
        • ROBOT_CONTROL
        • MONITORING_SPEED
        • SPEED_MODE
        • ROBOT_SYSTEM
        • UPDATE_TARGET
        • RELEASE_MODE
        • ROBOT_MODE
        • SERVO_MODE
      • 2.2.2 Access & Authority
        • MANAGE_ACCESS_CONTROL
        • MONITORING_ACCESS_CONTROL
      • 2.2.3 Program & DRL
        • DRL_PROGRAM_STATE
        • PROGRAM_STOP_CAUSE
        • SUB_PROGRAM
        • VARIABLE_TYPE
        • DATA_TYPE
      • 2.2.4 Motion Basics(Spaces & Axes)
        • ROBOT_SPACE
        • ROBOT_AXIS
        • JOG_AXIS
        • JOINT_AXIS
        • TASK_AXIS
        • COORDINATE_SYSTEM
        • MOVE_REFERENCE
      • 2.2.5 Move Execution Modes/Options
        • MOVE_MODE
        • MOVE_ORIENTATION
        • SPIRAL_DIR
        • ROT_DIR
        • PATH_MODE
        • MOVE_HOME
        • SINGULARITY_AVOIDANCE
        • BLENDING_SPEED_TYPE
        • DR_SERVOJ_TYPE
        • SPLINE_VELOCITY_OPTION
        • MOVEB_BLENDING_TYPE
        • STOP_TYPE
        • DR_MV_APP
        • CONTROL_MODE
      • 2.2.6 Tools/TCP/Payload
        • COG_REFERENCE
        • ADD_UP
      • 2.2.7 Force & Compliance
        • FORCE_AXIS
        • FORCE_MODE
      • 2.2.8 I/O & Modbus & Communication
        • GPIO_CTRLBOX_DIGITAL_INDEX
        • GPIO_CTRLBOX_ANALOG_INDEX
        • GPIO_TOOL_DIGITAL_INDEX
        • GPIO_TOOL_ANALOG_INDEX
        • GPIO_ANALOG_TYPE
        • OUTPUT_TYPE
        • BYTE_SIZE
        • STOP_BITS
        • PARITY_CHECK
        • ENCORDER_POLARITY
        • MODBUS_REGISTER_TYPE
      • 2.2.9 Safety
        • SAFE_STOP_RESET_TYPE
        • SAFETY_MODE
        • SAFETY_STATE
        • SAFETY_FUNC
        • SAFETY_MODE_EVENT
      • 2.2.10 Log & Message
        • MESSAGE_LEVEL
        • POPUP_RESPONSE
        • LOG_LEVEL
        • LOG_GROUP
    • 2.3 Structure
      • 2.3.1 System / Package / License
        • SYSTEM_VERSION
        • SYSTEM_VERSION_EX
        • SYSTEM_TIME
        • SYSTEM_IPADDRESS
        • SYSTEM_POWER
        • SYSTEM_CPUUSAGE
        • SYSTEM_DISKSIZE
        • FLANGE_VERSION
        • SYSTEM_UPDATE_RESPONSE
        • PACKAGE_LOCAL_UPDATE
        • PACKAGE_NETWORK_UPDATE
        • PACKAGE_UNZIP_COMMAND
        • PACKAGE_UNZIP_RESPONSE
        • PACKAGE_RESTORE
        • PACKAGE_RESTORE_LIST
        • SVM_NETWORK_UPDATE
        • LICENSE_TEXT_PARAM
      • 2.3.2 Monitoring & Status
        • ROBOT_MONITORING_JOINT
        • ROBOT_MONITORING_TASK
        • ROBOT_MONITORING_WORLD
        • ROBOT_MONITORING_USER
        • ROBOT_MONITORING_TORQUE
        • ROBOT_MONITORING_STATE
        • ROBOT_MONITORING_DATA
        • ROBOT_MONITORING_DATA_EX
        • MONITORING_MISC
        • MONITORING_DATA
        • MONITORING_FORCECONTROL
        • ROBOT_MONITORING_SENSOR
        • ROBOT_MONITORING_AMODEL
        • MONITORING_FLANGE_IO_CONFIG
        • MONITORING_DATA_EX
        • MONITORING_COCKPIT
        • MONITORING_MODBUS
        • READ_CTRLIO_INPUT
        • READ_CTRLIO_OUTPUT
        • READ_ENCODER_INPUT
        • READ_PROCESS_INPUT
        • READ_CTRLIO_INPUT_EX
        • READ_CTRLIO_INPUT_EX2
        • READ_CTRLIO_OUTPUT_EX
        • READ_CTRLIO_OUTPUT_EX2
        • MONITORING_CTRLIO
        • MONITORING_CTRLIO_EX
        • MONITORING_CTRLIO_EX2
      • 2.3.3 Operation & Feedback (Program / Message / Logs)
        • PROGRAM_SYNTAX_CHECK
        • PROGRAM_EXECUTION_EX
        • PROGRAM_WATCH_VARIABLE
        • PROGRAM_ERROR
        • MESSAGE_PROGRESS
        • MESSAGE_POPUP
        • MESSAGE_INPUT
        • REPORT_TCP_CLIENT
        • LOG_ALARM
        • ROBOT_LED_CONFIG
      • 2.3.4 Coordinates / Tools / TCP / Payload
        • USER_COORDINATE
        • CONFIG_USER_COORDINATE_EX
        • CONFIG_USER_COORDINATE_EX2
        • CONFIG_WORLD_COORDINATE
        • CONFIG_WORLD_COORDINATE_EX
        • USER_COORDINATE_MATRIX_RESPONSE
        • CONFIG_TOOL
        • CONFIG_TOOL_SYMBOL
        • CONFIG_TOOL_LIST
        • CONFIG_TOOL_SHAPE
        • CONFIG_TOOL_SHAPE_SYMBOL
        • CONFIG_TOOL_SHAPE_LIST
        • CONFIG_TCP
        • CONFIG_TCP_SYMBOL
        • CONFIG_TCP_LIST
        • CONFIG_TCP_SYMBOL_EX
        • CONFIG_TCP_LIST_EX
        • CONFIG_PAYLOAD_EX
      • 2.3.5 Kinematics & Robot Model (Pose / Wrenches / Positions / Link Info)
        • ROBOT_POSE
        • ROBOT_TASK_POSE
        • ROBOT_VEL
        • ROBOT_FORCE
        • INVERSE_KINEMATIC_RESPONSE
        • POSITION
        • POSITION_EX
        • POSITION_ADDTO
        • VECTOR3D
        • NORMAL_VECTOR
        • POINT_2D
        • POINT_3D
        • LINE
        • JTS_PARAM_DATA
        • FTS_PARAM_DATA
        • COUNTER_BALANCE_PARAM_DATA
        • CALIBRATION_PARAM_DATA
        • GRAVITY_PARAM_DATA
        • ROBOT_LINK_INFO
      • 2.3.6 Motion Primitives
        • MOVE_POSB
        • MOVE_MOVESINE
        • MOVE_MOVELISSAJOUS
      • 2.3.7 Measurement & Calibration
        • MEASURE_TOOL_RESPONSE
        • MEASURE_TCP
        • MEASURE_TCP_RESPONSE
        • MEASURE_TCP_WELDING
        • MEASURE_FRICTION
        • MEASURE_FRICTION_RESPONSE
        • MEASURE_CONVEYOR_COORD
        • MEASURE_CONVEYOR_COORD_RESPONSE
        • MEASURE_CONVEYOR_DISTANCE_RESPONSE
      • 2.3.8 Encoders / IO & Burst
        • CONFIG_ENCODER_POLARITY
        • CONFIG_ENCODER_MODE
        • GPIO_PORT
        • WRITE_SERIAL_BURST
      • 2.3.9 Industrial Communication (Modbus / Ethernet / Serial)
        • MODBUS_DATA
        • MODBUS_DATA_LIST
        • MODBUS_REGISTER_MONITORING
        • MODBUS_REGISTER
        • MODBUS_MULTI_REGISTER
        • UPDATE_MODBUS_MULTI_REGISTER
        • WRITE_MODBUS_DATA
        • WRITE_MODBUS_MULTI_DATA
        • WRITE_MODBUS_RTU_DATA
        • WRITE_MODBUS_BURST
        • MONITORING_MBUS_SLAVE_COIL
        • MONITORING_MBUS_SLAVE_HOILDING_REGISTER
        • CONFIG_INDUSTRIAL_ETHERNET
        • SETUP_OPERARION_INDUSTRIAL_ETHERNET
        • MONITORING_IE_GPR
        • MONITORING_IE_SLAVE
        • READ_IETHERNET_SLAVE_DATA
        • IETHERNET_SLAVE_DATA_EX
        • IETHERNET_SLAVE_RESPONSE_DATA_EX
        • FLANGE_SERIAL_DATA
        • FLANGE_SER_RXD_INFO
        • FLANGE_SER_RXD_INFO_EX
        • READ_FLANGE_SERIAL
        • READ_FLANGE_SERIAL_EX
        • SERIAL_PORT_NAME
        • SERIAL_SEARCH
      • 2.3.10 Industrial Applications (Conveyor / Welding / Machine Tending)
        • CONVEYOR_BASIC
        • CONFIG_CONVEYOR
        • CONVEYOR_COORD_EX
        • CONVEYOR_DISTANCE
        • MONITOR_CONVEYOR
        • CONVEYOR_OBJECT
        • CONVEYOR_TRACK
        • WELDING_CHANNEL
        • CONFIG_WELDING_INTERFACE
        • CONFIG_WELD_SETTING
        • ADJUST_WELDING_SETTING
        • CONFIG_TRAPEZOID_WEAVING_SETTING
        • CONFIG_ZIGZAG_WEAVING_SETTING
        • CONFIG_CIRCULE_WEAVING_SETTING
        • CONFIG_SINE_WEAVING_SETTING
        • CONFIG_WELDING_DETAIL_INFO
        • CONFIG_ANALOG_WELDING_INTERFACE
        • CONFIG_ANALOG_WELDING_SETTING
        • ANALOG_WELDING_ADJUST_SETTING
        • CONFIG_DIGITAL_WELDING_IF_MAPPING_DATA
        • CONFIG_DIGITAL_WELDING_INTERFACE_PROCESS
        • CONFIG_DIGITAL_WELDING_INTERFACE_MODE
        • CONFIG_DIGITAL_WELDING_INTERFACE_TEST
        • CONFIG_DIGITAL_WELDING_INTERFACE_CONDITION
        • CONFIG_DIGITAL_WELDING_INTERFACE_OPTION
        • CONFIG_DIGITAL_WELDING_INTERFACE_PROCESS2
        • CONFIG_DIGITAL_WELDING_INTERFACE_MONITORING
        • CONFIG_DIGITAL_WELDING_INTERFACE_OTHER
        • DIGITAL_WELDING_RESET
        • CONFIG_DIGITAL_WELDING_MODE
        • CONFIG_DIGITAL_WELDING_CONDITION
        • CONFIG_DIGITAL_WELDING_ADJUST
        • TACK_WELDING_SETTING
        • WEAVING_OFFSET
        • CONFIG_WEAVING_SETTING
        • ROBOT_WELDING_DATA
        • ROBOT_ALALOG_WELDING_DATA
        • ROBOT_DIGITAL_WELDING_DATA
        • DIGITAL_WELDING_COMM_STATE
        • MACHINE_TENDING_FOCAS_ERR_STRING
        • MACHINE_TENDING_FOCAS_CONNECT
        • MACHINE_TENDING_FOCAS_DISCONNECT
        • MACHINE_TENDING_FOCAS_PMC_DATA
        • MACHINE_TENDING_FOCAS_PMC
        • MACHINE_TENDING_FOCAS_CNC_PARAM
        • MACHINE_TENDING_RESPONSE_FOCAS_CNC_PARAM
        • MACHINE_TENDING_RESPONSE_FOCAS_PROGRAM_NUMBER
        • FOCAS_IS_ALIVE_RESPONSE
      • 2.3.11 Safety Configuration & Objects
        • JOINT_RANGE
        • CONFIG_JOINT_RANGE
        • GENERAL_RANGE
        • CONFIG_GENERAL_RANGE
        • CONFIG_INSTALL_POSE
        • CONFIG_SAFETY_FUNCTION
        • CONFIG_SAFETY_IO
        • CONFIG_SAFETY_IO_EX
        • CONFIG_SAFETY_IO_OP
        • SAFETY_CONFIGURATION_EX
        • SAFETY_CONFIGURATION_EX2
        • SAFETY_CONFIGURATION_EX2_V3
        • CONFIG_SAFETY_PARAM_ENABLE
        • SAFETY_OBJECT_SPHERE
        • SAFETY_OBJECT_CAPSULE
        • SAFETY_OBJECT_CUBE
        • SAFETY_OBJECT_OBB
        • SAFETY_OBJECT_POLYPRISM
        • SAFETY_OBJECT_DATA
        • SAFETY_OBJECT
      • 2.3.12 Safety Local Rules & Zones
        • LOCAL_ZONE_PROPERTY_JOINT_RANGE
        • LOCAL_ZONE_PROPERTY_JOINT_SPEED
        • LOCAL_ZONE_PROPERTY_TCP_FORCE
        • LOCAL_ZONE_PROPERTY_TCP_POWER
        • LOCAL_ZONE_PROPERTY_TCP_SPEED
        • LOCAL_ZONE_PROPERTY_TCP_MOMENTUM
        • LOCAL_ZONE_PROPERTY_COLLISION
        • LOCAL_ZONE_PROPERTY_SPEED_RATE
        • LOCAL_ZONE_PROPERTY_SPEED_REDUCTION
        • LOCAL_ZONE_PROPERTY_COLLISION_STOPMODE
        • LOCAL_ZONE_PROPERTY_TCPSLF_STOPMODE
        • LOCAL_ZONE_PROPERTY_TOOL_ORIENTATION
        • VIRTUAL_FENCE_OBJECT
        • CONFIG_VIRTUAL_FENCE
        • VIRTUAL_FENCE_RESPONSE
        • SAFETY_ZONE_SHAPE_SPHERE
        • SAFETY_ZONE_SHAPE_CYLINDER
        • SAFETY_ZONE_SHAPE_CUBOID
        • SAFETY_ZONE_SHAPE_TILTED_CUBOID
        • SAFETY_ZONE_SHAPE_MULTI_PLANE
        • SAFETY_ZONE_SHAPE_CAPSULE
        • SAFETY_ZONE_SHAPE_DATA
        • SAFETY_ZONE_SHAPE
        • SAFETY_ZONE_PROPERTY_SPACE_LIMIT
        • SAFETY_ZONE_PROPERTY_LOCAL_ZONE
        • SAFETY_ZONE_PROPERTY_DATA
        • CONFIG_PROTECTED_ZONE
        • CONFIG_COLLISION_MUTE_ZONE
        • CONFIG_COLLISION_MUTE_ZONE_PROPERTY
        • SAFETY_TOOL_ORIENTATION_LIMIT
        • CONFIG_TOOL_ORIENTATION_LIMIT_ZONE
        • ENABLE_SAFE_ZONE
        • CONFIG_ADD_SAFETY_ZONE
        • CONFIG_DELETE_SAFETY_ZONE
      • 2.3.13 Access & Remote Control
        • CONFIG_COCKPIT_EX
        • CONFIG_IDLE_OFF
        • CONFIG_NUDGE
        • CONFIG_CONFIGURABLE_IO
        • CONFIG_CONFIGURABLE_IO_EX
        • CONFIG_IO_FUNC
        • CONFIG_REMOTE_CONTROL
      • 2.3.14 Real-time Streams
        • RT_INPUT_DATA_LIST
        • RT_OUTPUT_DATA_LIST
    • 2.4 Callback Function
      • 2.4.1 Core State & Lifecycle
        • TOnMonitoringStateCB
        • TOnProgramStoppedCB
        • TOnHommingCompletedCB
        • TOnTpInitializingCompletedCB
        • TOnMasteringNeedCB
        • TOnDisconnectedCB
        • TOnMonitoringSpeedModeCB
      • 2.4.2 Monitoring Streams
        • TOnMonitoringDataCB
        • TOnMonitoringDataExCB
      • 2.4.3 I/O, Modbus & Communication
        • TOnMonitoringCtrlIOCB
        • TOnMonitoringCtrlIOExCB
        • TOnMonitoringCtrlIOEx2CB
        • TOnMonitoringModbusCB
      • 2.4.4 Safety System & Access Control
        • TOnMonitoringSafetyStateCB
        • TOnMonitoringSafetyStopTypeCB
        • TOnMonitoringRobotSystemCB
        • TOnMonitoringAccessControlCB
      • 2.4.5 Teach Pendant UI & Message
        • TOnTpPopupCB
        • TOnTpLogCB
        • TOnTpGetUserInputCB
        • TOnTpProgressCB
        • TOnLogAlarmCB
      • 2.4.6 Real-Time Stream
        • TOnRTMonitoringDataCB
      • 2.4.7 Welding Data
        • TOnMonitoringWeldingDataCB
        • TOnMonitoringAnalogWeldingDataCB
        • TOnMonitoringDigitalWeldingDataCB
  • 3. Mode
    • 3.1 Common
      • 3.1.1 Connection
        • open_connection
        • close_connection
      • 3.1.2 Mode/State
        • get_system_version
        • get_library_version
        • get_robot_mode
        • set_robot_mode
        • get_robot_state
        • set_robot_control
        • get_control_mode
        • get_robot_system
        • set_robot_system
        • get_robot_speed_mode
        • set_robot_speed_mode
        • manage_access_control
        • system_shut_down
      • 3.1.3 Monitoring/Callbacks
        • set_on_monitoring_state
        • set_on_monitoring_data
        • set_on_monitoring_data_ex
        • set_on_monitoring_ctrl_io
        • set_on_monitoring_ctrl_io_ex
        • set_on_monitoring_modbus
        • set_on_monitoring_speed_mode
        • set_on_monitoring_access_control
        • set_on_monitoring_safety_state
        • set_on_monitoring_robot_system
        • set_on_monitoring_safety_stop_type
        • set_on_log_alarm
        • set_on_program_stopped
        • set_on_homming_completed
        • set_on_tp_initializing_completed
        • set_on_mastering_need
        • set_on_disconnected
        • set_on_tp_popup
        • set_on_tp_get_user_input
        • set_on_tp_progress
        • set_on_tp_log
        • setup_monitoring_version
      • 3.1.4 Program/DRL_Execution
        • get_program_state
        • drl_start
        • drl_stop
        • drl_pause
        • drl_resume
        • change_operation_speed
        • save_sub_program
      • 3.1.5 Motion execution
        • stop
        • move_pause
        • move_resume
        • mwait
        • move_home
        • enable_alter_motion
        • alter_motion
        • disable_alter_motion
        • check_motion
      • 3.1.6 Position
        • get_current_posx
        • get_desired_posx
        • get_current_posj
        • get_desired_posj
        • get_current_tool_flange_posx
        • get_current_pose
        • get_control_space
        • get_current_solution_space
        • get_current_rotm
      • 3.1.7 Kinematics/Math
        • trans
        • ikin
        • ikin (extension)
        • ikin (with iteration threshold)
        • ikin_norm
        • fkin (forward kinematics)
        • addto
        • get_orientation_error
        • get_solution_space
        • coord_transform
        • calc_coord
        • get_robot_link_info
        • set_singularity_handling
      • 3.1.8 Velocity
        • get_current_velx
        • get_current_velj
        • get_desired_velx
      • 3.1.9 Force/Compliance
        • task_compliance_ctrl
        • set_stiffnessx
        • set_desired_force
        • release_compliance_ctrl
        • release_force
        • check_force_condition
        • check_position_condition_abs
        • check_position_condition_rel
        • check_position_condition
        • check_orientation_condition_abs
        • check_orientation_condition_rel
        • is_done_bolt_tightening
        • get_joint_torque
        • get_external_torque
        • get_tool_force
      • 3.1.10 Tool
        • set_tool
        • get_tool
        • add_tool
        • del_tool
        • set_tool_shape
        • get_tool_shape
      • 3.1.11 Tcp
        • set_tcp
        • get_tcp
        • add_tcp
        • del_tcp
      • 3.1.12 Payload
        • set_workpiece_weight
        • get_workpiece_weight
        • reset_workpiece_weight
      • 3.1.13 Coordinate
        • set_user_cart_coord1
        • set_user_cart_coord2 (3-point method)
        • set_user_cart_coord3 (vector method)
        • get_user_cart_coord
        • overwrite_user_cart_coord
        • set_ref_coord
        • get_user_home
        • set_user_home
      • 3.1.14 I/O
        • set_digital_output
        • get_digital_output
        • get_digital_input
        • set_analog_output
        • get_analog_input
        • set_mode_analog_input
        • set_mode_analog_output
        • set_tool_digital_output
        • get_tool_digital_input
        • get_tool_digital_output
        • get_tool_analog_input
        • set_tool_digital_output_level
        • set_tool_digital_output_type
        • set_mode_tool_analog_input
      • 3.1.15 Modbus
        • add_modbus_signal
        • del_modbus_signal
        • set_modbus_output
        • get_modbus_input
        • query_modbus_data_list
      • 3.1.16 Serial(Flange)
        • flange_serial_open
        • flange_serial_close
        • flange_serial_write
        • flange_serial_read
      • 3.1.17 TP
        • tp_popup_response
        • tp_get_user_input_response
        • config_program_watch_variable
      • 3.1.18 Report alarm
        • get_last_alarm
      • 3.1.19 LED
        • state_led_reset
        • set_state_led_off
        • set_state_led_color
        • get_state_led_rule
      • 3.1.20 Safety(Configuration parameter)
        • change_collision_sensitivity
        • set_palletizing_mode
        • set_auto_safety_move_stop
        • release_protective_stop
        • get_safety_configuration_ex (DRCF v2)
        • get_safety_configuration_ex_v3 (DRCF v3)
      • 3.1.21 Safety(State/Mode)
        • set_safety_mode
        • set_safe_stop_reset_type
      • 3.1.22 Servo Power
        • servo_off
        • set_auto_servo_off
    • 3.2 Manual Mode
      • 3.2.1 Jogging & Motion Control
        • jog (Manual Mode)
        • multi_jog (Manual Mode)
        • stop (Manual Mode)
        • move_pause (Manual Mode)
        • move_resume (Manual Mode)
        • mwait (Manual Mode)
        • get_current_posx (Manual Mode)
        • get_current_posj (Manual Mode)
        • get_current_velx (Manual Mode)
        • get_current_velj (Manual Mode)
        • get_control_mode (Manual Mode)
        • get_robot_mode (Manual Mode)
        • get_robot_state (Manual Mode)
        • enable_alter_motion (Manual Mode)
        • alter_motion (Manual Mode)
        • disable_alter_motion (Manual Mode)
      • 3.2.2 Coordinate Teaching
        • set_user_cart_coord (1-point, Manual Mode)
        • set_user_cart_coord (3-point, Manual Mode)
        • set_user_cart_coord (2-vector, Manual Mode)
        • overwrite_user_cart_coord (Manual Mode)
        • get_user_cart_coord (Manual Mode)
        • set_ref_coord (Manual Mode)
        • coord_transform (Manual Mode)
        • calc_coord (Manual Mode)
        • set_user_home (Manual Mode)
        • get_user_home (Manual Mode)
        • get_current_tool_flange_posx (Manual Mode)
        • trans (Manual Mode)
        • fkin (Manual Mode)
        • ikin (Manual Mode)
        • get_orientation_error (Manual Mode)
        • set_singularity_handling (Manual Mode)
        • get_current_rotm (Manual Mode)
      • 3.2.3 I/O Communication & Feedback
        • set_tool_digital_output (Manual Mode)
        • get_tool_digital_input (Manual Mode)
        • get_tool_digital_output (Manual Mode)
        • get_tool_analog_input (Manual Mode)
        • set_mode_tool_analog_input (Manual Mode)
        • set_tool_digital_output_level (Manual Mode)
        • set_tool_digital_output_type (Manual Mode)
        • set_digital_output (Manual Mode)
        • set_digital_output_ex (Manual Mode)
        • get_digital_input (Manual Mode)
        • get_digital_input_ex (Manual Mode)
        • get_digital_output (Manual Mode)
        • get_digital_output_ex (Manual Mode)
        • set_analog_output (Manual Mode)
        • get_analog_input (Manual Mode)
        • get_analog_input_ex (Manual Mode)
        • set_mode_analog_input (Manual Mode)
        • set_mode_analog_output (Manual Mode)
        • add_modbus_signal (Manual Mode)
        • del_modbus_signal (Manual Mode)
        • get_modbus_input (Manual Mode)
        • set_modbus_output (Manual Mode)
        • query_modbus_data_list (Manual Mode)
        • flange_serial_open (Manual Mode)
        • flange_serial_close (Manual Mode)
        • flange_serial_write (Manual Mode)
        • flange_serial_read (Manual Mode)
        • set_on_monitoring_ctrl_io_ex (Manual Mode)
        • set_on_monitoring_ctrl_io_ex2 (Manual Mode)
        • set_on_monitoring_modbus (Manual Mode)
      • 3.2.4 Safety & Servo Operations
        • set_robot_mode (Manual Mode)
        • set_robot_system (Manual Mode)
        • set_robot_speed_mode (Manual Mode)
        • servo_off (Manual Mode)
        • set_auto_servo_off (Manual Mode)
        • set_auto_safety_move_stop (Manual Mode)
        • change_collision_sensitivity (Manual Mode)
        • set_safety_mode (Manual Mode)
        • set_safe_stop_reset_type (Manual Mode)
        • release_protective_stop (Manual Mode)
        • manage_access_control (Manual Mode)
        • get_robot_system (Manual Mode)
        • get_robot_speed_mode (Manual Mode)
        • get_last_alarm (Manual Mode)
        • get_safety_configuration_ex2 (Manual Mode)
        • get_safety_configuration_ex2_v3 (Manual Mode)
        • check_motion (Manual Mode)
        • set_on_monitoring_safety_state (Manual Mode)
        • set_on_monitoring_safety_stop_type (Manual Mode)
      • 3.2.5 Force Control & Compliance Tuning
        • task_compliance_ctrl (Manual Mode)
        • set_stiffnessx (Manual Mode)
        • set_desired_force (Manual Mode)
        • release_compliance_ctrl (Manual Mode)
        • release_force (Manual Mode)
        • check_force_condition (Manual Mode)
        • check_position_condition_abs (Manual Mode)
        • check_position_condition_rel (Manual Mode)
        • check_position_condition (Manual Mode)
        • check_orientation_condition_abs (Manual Mode)
        • check_orientation_condition_rel (Manual Mode)
        • is_done_bolt_tightening (Manual Mode)
        • get_tool_force (Manual Mode)
        • get_external_torque (Manual Mode)
        • get_joint_torque (Manual Mode)
      • 3.2.6 TP Interaction
        • set_on_tp_popup (Manual Mode)
        • set_on_tp_get_user_input (Manual Mode)
        • tp_popup_response (Manual Mode)
        • tp_get_user_input_response (Manual Mode)
        • set_state_led_color (Manual Mode)
        • state_led_reset (Manual Mode)
        • set_state_led_off (Manual Mode)
        • get_state_led_rule (Manual Mode)
      • 3.2.7 TP Logging & Lifecycle
        • set_on_tp_progress (Manual Mode)
        • set_on_tp_log (Manual Mode)
        • set_on_tp_initializing_completed (Manual Mode)
        • set_on_program_stopped (Manual Mode)
      • 3.2.8 Watch Variables
        • config_program_watch_variable (Manual Mode)
    • 3.3 Auto Mode
      • 3.3.1 DRL Program Control
        • drl_start (Auto Mode)
        • drl_stop (Auto Mode)
        • drl_pause (Auto Mode)
        • drl_resume (Auto Mode)
        • change_operation_speed (Auto Mode)
        • get_program_state (Auto Mode)
        • get_last_alarm (Auto Mode)
      • 3.3.2 Motion Primitives-Basic Trajectory
        • movej (Auto Mode)
        • movel (Auto Mode)
        • movec (Auto Mode)
        • moveb (Auto Mode)
        • amovej (Auto Mode)
        • amovel (Auto Mode)
        • amovec (Auto Mode)
        • amoveb (Auto Mode)
      • 3.3.3 Motion Primitives-Advanced/Blending/Special Trajectories
        • movejx (Auto Mode)
        • movesj (Auto Mode)
        • movesx (Auto Mode)
        • amovejx (Auto Mode)
        • amovesj (Auto Mode)
        • amovesx (Auto Mode)
        • move_spiral (Auto Mode)
        • amove_spiral (Auto Mode)
        • move_periodic (Auto Mode)
        • amove_periodic (Auto Mode)
      • 3.3.4 Motion Control Utilities
        • stop (Auto Mode)
        • move_pause (Auto Mode)
        • move_resume (Auto Mode)
        • mwait (Auto Mode)
        • check_motion (Auto Mode)
      • 3.3.5 Home & Recovery Operations
        • move_home (Auto Mode)
        • set_user_home (Auto Mode)
        • get_user_home (Auto Mode)
      • 3.3.6 Force & Compliance Control
        • task_compliance_ctrl (Auto Mode)
        • set_desired_force (Auto Mode)
        • set_stiffnessx (Auto Mode)
        • release_force (Auto Mode)
        • release_compliance_ctrl (Auto Mode)
        • check_force_condition (Auto Mode)
        • check_position_condition (Auto Mode)
        • check_position_condition_abs (Auto Mode)
        • check_position_condition_rel (Auto Mode)
        • check_orientation_condition_abs (Auto Mode)
        • check_orientation_condition_rel (Auto Mode)
        • is_done_bolt_tightening (Auto Mode)
      • 3.3.7 Velocity & Servo Following
        • speedj (Auto Mode)
        • speedl (Auto Mode)
        • servoj (Auto Mode)
        • servol (Auto Mode)
        • servoj_g (Auto Mode)
        • servol_g (Auto Mode)
        • movesj_g (Auto Mode)
        • movesx_g (Auto Mode)
      • 3.3.8 Tools / TCP / Payload
        • set_workpiece_weight (Auto Mode)
        • get_workpiece_weight (Auto Mode)
        • reset_workpiece_weight (Auto Mode)
        • set_tool (Auto Mode)
        • add_tool (Auto Mode)
        • del_tool (Auto Mode)
        • get_tool (Auto Mode)
        • set_tcp (Auto Mode)
        • add_tcp (Auto Mode)
        • del_tcp (Auto Mode)
        • get_tcp (Auto Mode)
        • set_tool_shape (Auto Mode)
        • get_tool_shape (Auto Mode)
      • 3.3.9 GPIO / Modbus / Flange Serial
        • set_digital_output (Auto Mode)
        • get_digital_input (Auto Mode)
        • set_analog_output (Auto Mode)
        • get_analog_input (Auto Mode)
        • set_modbus_output (Auto Mode)
        • get_modbus_input (Auto Mode)
        • add_modbus_signal (Auto Mode)
        • del_modbus_signal (Auto Mode)
        • flange_serial_open (Auto Mode)
        • flange_serial_close (Auto Mode)
        • flange_serial_write (Auto Mode)
        • flange_serial_read (Auto Mode)
    • 3.4 RT Stream
      • 3.4.1 Realtime Instance Create/Destroy
        • create_robot_control_udp
        • destroy_robot_control_udp
      • 3.4.2 Realtime Session Lifecycle
        • connect_rt_control
        • start_rt_control
        • stop_rt_control
        • disconnect_rt_control
      • 3.4.3 Realtime Stream Schema & Version Negotiation
        • get_rt_control_input_version_list
        • get_rt_control_output_version_list
        • get_rt_control_input_data_list
        • get_rt_control_output_data_list
        • set_rt_control_input
        • set_rt_control_output
      • 3.4.4 Realtime Data Stream I/O
        • read_data_rt
        • write_data_rt
      • 3.4.5 Realtime Command (High-Frequency Control)
        • set_velj_rt
        • set_accj_rt
        • set_velx_rt
        • set_accx_rt
        • speedj_rt
        • speedl_rt
        • servoj_rt
        • servol_rt
        • torque_rt
      • 3.4.6 Realtime Diagnostics & Callbacks
        • set_on_rt_monitoring_data
        • set_on_rt_log_alarm
  • 4. Applications Extensions
    • 4.1 Welding Application
      • 4.1.1 Weave Path Configuration
        • app_weld_weave_cond_trapezoidal
        • app_weld_weave_cond_zigzag
        • app_weld_weave_cond_circular
        • app_weld_weave_cond_sinusoidal
      • 4.1.2 Analog Welding Interface Path
        • app_weld_enable_analog
        • app_weld_set_weld_cond_analog
        • app_weld_adj_welding_cond_analog
      • 4.1.3 Digital/Ethernet-ip Interface
        • app_weld_set_interface_eip_r2m_process
        • app_weld_set_interface_eip_r2m_mode
        • app_weld_set_interface_eip_r2m_test
        • app_weld_set_interface_eip_r2m_condition
        • app_weld_set_interface_eip_r2m_option
        • app_weld_set_interface_eip_m2r_process2
        • app_weld_set_interface_eip_m2r_monitoring
        • app_weld_set_interface_eip_m2r_other
        • app_weld_enable_digital
        • app_weld_disable_digital
        • app_weld_set_weld_cond_digital
        • app_weld_adj_welding_cond_digital
        • app_weld_reset_interface
      • 4.1.4 Monitoring & Signal Control
        • set_on_monitoring_welding_data
        • set_on_monitoring_analog_welding_data
        • set_on_monitoring_digital_welding_data
        • set_digital_welding_signal_output
        • set_digital_welding_monitoring_mode
      • 4.1.5 Calibration & Measurement
        • measure_welding_tcp
        • set_welding_cockpit_setting
        • set_welding_cockpit_setting_time_setting
      • 4.1.6 Motion Assistance
        • app_weld_adj_motion_offset
  • 5. Programming Instructions
    • 5.1 Robot Connection/Release
    • 5.2 Robot Initialization
    • 5.3 Management of Control Right
    • 5.4 Robot Operation Mode
    • 5.5 Robot Operation State
    • 5.6 Robot state transition
    • 5.7 Program Execution and Shutdown
    • 5.8 Limits on Robot Safety Setting Function
  • 6. Tutorials
    • 6.1 Operation Modes
      • 6.1.1 Virtual Mode
      • 6.1.2 Real Mode
    • 6.2 Basic Tutorials
      • Connection & Callback Registration
      • Access Control & ServoOn
      • Jog & Home
      • MoveJ / MoveL (Sync / Async)
      • DRL Mini Loop (Start / Stop)
      • I/O Basics (Control Box DO)
    • 6.3 Advanced Tutorials
      • Unified Stop / Pause / Resume
      • Safety Stop & Recovery
      • Alarm & Access Loss Handling
      • Monitoring & Logging
      • Custom Trajectory Planning
      • Servo Off & Reconnection
    • 6.4 Application Tutorials
      • 6.4.1 Welding Tutorials
        • Analog Welding Control
        • Digital Welding Control (EtherNet/IP)
        • Weaving Patterns
        • Real-time Parameter Adjustment
        • Welding TCP Calibration
        • Monitoring & Signal Output
    • 6.5 RT Tutorials
      • RT Connection Setup
      • RT Output Configuration
      • Start / Stop RT Control
      • RT Data Monitoring
      • Speed / Torque Commands (Extension)
      • Unified Safety Handling
    • 6.6 Scenario-based Examples
      • 6.6.1 minimal_motion_sample.cpp
        • Setup & Connection
        • Access Control & State monitoring
        • Connection & Version Information
        • Access control & STANDBY
        • Robot Mode Confiuguration
        • Motion Execution
      • 6.6.2 minimal_rt_monitoring_sample.cpp
        • Overview & Global Configuration
        • Realtime Connection Setup
        • RT Monitoring Callback
        • RT Output
        • Start & Stop RT Monitoring
      • 6.6.3 send_drl_script_sample.cpp
        • Setup & Connection
        • Access Control & State Monitoring Callback
        • Connection & Version Information
        • Access Control & StandBy
        • Robot Mode Configuration
        • DRL Script Definition & Execution
        • Program Control (Pause / Resume / Stop)
      • 6.6.4 minimal_welding_sample.cpp
        • Setup & Global Variables
        • Main Loop
        • Callback Registration
        • Connection to Controller
        • Control Authority & Servo On Handling
        • Robot Mode & System Configuration
        • DRL-based Welding Script
        • C++-based Welding Interface Configuration
      • 6.6.5 minimal_instruction_sample.cpp
        • Setup & Global Variables
        • Keyboard Menu & Main loop
        • Callback Registration
        • Connection to Controller
        • Control Authority Handling
        • Servo On & Monitoring Version
        • Robot Mode & System Configuration
        • Joint Motion Execution
        • Kinematics Test
        • DRL Script Execution
        • Xenomai / Real-time Environment Notes
      • 6.6.6. realtime_control_sample.cpp
        • Setup & Global Variables
        • Callback Registration
        • Connection & Version Information
        • Control Authority & Servo On
        • Robot Mode Configuration
        • RT Session Activation
        • Stop / Pause / Resume
        • Quintic Trajectory Planning
        • Realtime RT Loop
        • Stopping RT Control
  • 7. Troubleshooting
    • 7.1 Connection Refused (API Link Error)
      • A. Error Case
      • B. Root Cause Analysis
      • C. Solution
    • 7.2 Access Control Loss
      • A. Error Case
      • B. Root Cause Analysis
      • C. Solution
    • 7.3 Build Error: Poco Not Found
      • A. Error Case
      • B. Root Cause Analysis
      • C. Solution
Doosan Robotics API Manual
  • 2. Definitions
  • 2.3 Structure
  • 2.3.5 Kinematics & Robot Model (Pose / Wrenches / Positions / Link Info)
  • ROBOT_LINK_INFO
  • View page source

ROBOT_LINK_INFO

This structure defines the Denavit–Hartenberg (DH) parameters and installation properties for each of the six robot links. It describes both the geometric and orientation configuration of the robot, which are essential for forward/inverse kinematics and mechanical calibration.

BYTE#

Field Name

Data Type

Value

Remarks

0

d[6]

float[6]

Link offset distance along Z-axis (m)

24

a[6]

float[6]

Link length along X-axis (m)

48

alpha[6]

float[6]

Twist angle between consecutive Z-axes (rad)

72

theta[6]

float[6]

Joint reference angle (mechanical reference) (rad)

96

offset[6]

float[6]

Homing offset per joint (rad)

120

gradient

float

Base installation gradient angle (deg)

124

rotation

float

Base installation rotation angle (deg)

Total size: 128 bytes

Defined in: DRFS.h

typedef struct _ROBOT_LINK_INFO
{
    float d[6];       // meter
    float a[6];       // meter
    float alpha[6];   // rad
    float theta[6];   // rad (mechanical reference)
    float offset[6];  // rad (homingOffset)
    float gradient;   // base install gradient
    float rotation;   // base install rotation
} ROBOT_LINK_INFO, *LPROBOT_LINK_INFO;
Previous Next

© Copyright 2025, Doosan Robotics.

Built with Sphinx using a theme provided by Read the Docs.
1.33.1
Versions
1.33.1
1.33.0