C#
About 20 min
C#
This document introduces the data types and APIs defined in JAKA SDK (C#), mainly intended for software developers who create robot applications in C# to communicate with virtual or real controllers. It will also be helpful for users who need to understand JAKA robot controller applications.
Interface List
Basic Robot Operations
[Create Handler]
int create_handler(char[] ip, ref int handle, bool use_grpc = false);
int create_handler([MarshalAs(UnmanagedType.LPStr)] string ip, ref int handle, bool use_grpc = false);
int create_handler_with_auth([MarshalAs(UnmanagedType.LPStr)] string ip, ref int handle, bool use_grpc, [MarshalAs(UnmanagedType.LPStr)] string username, [MarshalAs(UnmanagedType.LPStr)] string password);
[Destroy Handler]
int destroy_handler(ref int handle)
Robot Arm Login
int power_on(ref int handle)
Power Off Robot Arm
int power_off(ref int handle)
Shut Down Robot Arm
int shut_down(ref int handle)
Enable Robot Arm
int enable_robot(ref int handle)
Disable Robot Arm
int disable_robot(ref int handle)
Get DH parameters of the currently connected robot arm
int get_dh_param(ref int handle, ref JKTYPE.DHParam offset)
Set Robot Arm Installation Angle
int set_installation_angle(ref int handle, double angleX, double angleZ)
Get Robot Arm Installation Angle
int get_installation_angle(ref int handle, ref JKTYPE.Quaternion quat, ref JKTYPE.Rpy appang)
Get Robot Arm Status
int get_robot_state(ref int handle, ref JKTYPE.RobotState state)
Get Robot Arm Status Monitoring Data - Only Thread-Safe Interface
int get_robot_status(ref int handle, ref JKTYPE.RobotStatus status)
Get Robot Arm Status Monitoring Data
int get_robot_status_simple(ref int handle, ref JKTYPE.get_robot_status_simple status)
SDK-related
Register callback function for robot arm errors
int set_error_handler(ref int handle, CallBackFuncType func)
Get SDK Version Number
int get_sdk_version(ref int handle, StringBuilder version, int size)
Set robot arm motion type to automatically stop during network exceptions
int set_network_exception_handle(ref int handle, float millisecond, JKTYPE.ProcessType mnt)
Get Controller IP
int get_controller_ip(char[] controller_name, StringBuilder ip);
int get_controller_ip([MarshalAs(UnmanagedType.LPStr)] string controller_name, StringBuilder ip)
Set file storage path for robot arm error codes
int set_errorcode_file_path(ref int handle, StringBuilder path)
Set file storage path for robot arm error codes and get the most recent robot arm error code
int get_last_error(ref int handle, ref JKTYPE.ErrorCode code)
Clear errors, meaning to clear collision alarms and recover from collision alarms
int clear_error(ref int i)
Set whether the SDK enables debug mode
int set_debug_mode(ref int handle, bool mode)
Set SDK log path
int set_SDK_filepath(ref int handle, ref char[] filepath);
int set_SDK_filepath(ref int handle, [MarshalAs(UnmanagedType.LPStr)] string filepath)
Get SDK log path
int get_SDK_filepath(char[] path, int size);
int get_SDK_filepath(StringBuilder path, int size)
Robot Moving Output
Robotic arm movement in manual mode
int jog(ref int handle, int aj_num, JKTYPE.MoveMode move_mode, JKTYPE.CoordType coord_type, double vel_cmd, double pos_cmd)
Robotic arm stop movement in manual mode
int jog_stop(ref int handle, int num)
Robotic arm joint movement
int joint_move(ref int handle, ref JKTYPE.JointValue joint_pos, JKTYPE.MoveMode move_mode, bool is_block, double speed);
int joint_move_extend(ref int handle, ref JKTYPE.JointValue joint_pos, JKTYPE.MoveMode move_mode, bool is_block, double speed, double acc, double tol, ref JKTYPE.OptionalCond option_cond)
Robotic arm linear movement at end effector
int linear_move(ref int handle, ref JKTYPE.CartesianPose end_pos, JKTYPE.MoveMode move_mode, bool is_block, double speed);
int linear_move_extend(ref int handle, ref JKTYPE.CartesianPose cart_pos, JKTYPE.MoveMode move_mode, bool is_block, double speed, double acc, double tol, ref JKTYPE.OptionalCond option_cond);
int linear_move_extend_ori(ref int handle, ref JKTYPE.CartesianPose cart_pos, JKTYPE.MoveMode move_mode, bool is_block, double speed, double acc, double tol, ref JKTYPE.OptionalCond option_cond, double ori_vel, double ori_acc)
Robotic arm arc movement
int circular_move(ref int handle, ref JKTYPE.CartesianPose end_pos, ref JKTYPE.CartesianPose mid_pos, JKTYPE.MoveMode move_mode, bool is_block, double speed, double acc, double tol, ref JKTYPE.OptionalCond option_cond);
int circular_move_extend(ref int handle, ref JKTYPE.CartesianPose end_pos, ref JKTYPE.CartesianPose mid_pos, JKTYPE.MoveMode move_mode, bool is_block, double speed, double acc, double tol, ref JKTYPE.OptionalCond option_cond, double circle_cnt);
int circular_move_extend_mode(ref int handle, ref JKTYPE.CartesianPose end_pos, ref JKTYPE.CartesianPose mid_pos, JKTYPE.MoveMode move_mode, bool is_block, double speed, double acc, double tol, ref JKTYPE.OptionalCond option_cond, double circle_cnt, int circle_mode)
Set robot arm speed multiplier
int set_rapidrate(ref int handle, double rapid_rate)
Get robot arm speed multiplier
int get_rapidrate(ref int handle, ref double rapid_rate)
Set tool information
int set_tool_data(ref int handle, int id, ref JKTYPE.CartesianPose tcp, char[] name);
int set_tool_data(ref int handle, int id, ref JKTYPE.CartesianPose tcp, [MarshalAs(UnmanagedType.LPStr)] string name)
Get tool information
int get_tool_data(ref int handle, int id, ref JKTYPE.CartesianPose tcp)
Set the tool ID currently in use
int set_tool_id(ref int handle, int id)
Query the tool ID currently in use
int get_tool_id(ref int handle, ref int id)
Set user coordinate system information
int set_user_frame_data(ref int handle, int id, ref JKTYPE.CartesianPose user_frame, char[] name);
int set_user_frame_data(ref int handle, int id, ref JKTYPE.CartesianPose user_frame, [MarshalAs(UnmanagedType.LPStr)] string name)
Get user coordinate system information
int get_user_frame_data(ref int handle, int id, ref JKTYPE.CartesianPose user_frame)
Set the user coordinate system ID currently in use
int set_user_frame_id(ref int handle, int id)
Query the user coordinate system ID currently in use
int get_user_frame_id(ref int handle, ref int id)
Control robot arm to enter or exit drag mode
int drag_mode_enable(ref int handle, bool enable)
Query whether the robot arm is in drag mode
int is_in_drag_mode(ref int handle, ref bool in_drag)
Set joint friction compensation coefficient (drag feel parameter)
int set_drag_friction_compensation_gain(ref int handle, int joint, int gain);
Get joint friction compensation coefficient (drag feel parameter)
int get_drag_friction_compensation_gain(ref int handle, ref JKTYPE.DragFrictionCompensationGainList gainList);
Get the pose of the tool endpoint under the current settings — servo feedback
int get_actual_tcp_position(ref int handle, ref JKTYPE.CartesianPose tcp_position)
Get the pose of the tool endpoint under the current settings
int get_tcp_position(ref int handle, ref JKTYPE.CartesianPose tcp_position)
Get current robot arm joint angles — servo feedback
int get_actual_joint_position(ref int handle, ref JKTYPE.JointValue joint_position)
Get the current robot arm joint angles
int get_joint_position(ref int handle, ref JKTYPE.JointValue joint_position)
Set manual or automatic mode
int set_auto_manual_mode(int mode, int robot_id)
Get the current robot arm operation mode
int get_auto_manual_mode(ref int mode, int robot_id)
Check if the robot arm exceeds the limit
int is_on_limit(ref int handle, ref bool on_limit)
Check if the robot arm movement has stopped
int is_in_pos(ref int handle, ref bool in_pos)
Check if the robot arm is in an emergency stop state
int is_in_estop(ref int handle, ref bool estop)
Set the robot arm motion planner type
int set_motion_planner(ref int handle, int type)
Terminate robot arm movement
int motion_abort()
Check the robot arm motion status
int get_motion_status(ref int handle, ref JKTYPE.MotionStatus status)
Set the robot arm load
int set_payload(ref int handle, ref JKTYPE.PayLoad payload)
Get robot arm load data
int get_payload(ref int handle, ref JKTYPE.PayLoad payload)
IO related
Set digital output variable
int set_digital_output(ref int handle, JKTYPE.IOType type, int index, bool value)
Set analog output variable
int set analog output(ref int handle, JKTYPE.IOType type, int index, float value)
Check digital input status
int get digital input(ref int handle, JKTYPE.IOType type, int index, ref bool result)
Check digital output status
int get digital output(ref int handle, JKTYPE.IOType type, int index, ref bool result)
Get the value of the analog input variable
int get analog input(ref int handle, JKTYPE.IOType type, int index, ref float result)
Get the value of the analog output variable
int get analog output(ref int handle, JKTYPE.IOType type, int index, float result)
Set digital output variable during movement
int set motion digital output(ref int handle, JKTYPE.IOType type, int index, bool value, bool relative, double distance);
Set analog output variable during movement
int set motion analog output(ref int handle, JKTYPE.IOType type, int index, float value)
Check if the extended IO is running
int is external IO running(ref int handle, ref bool is_running)
TIO related
Set the tiov3 voltage parameters
int set TIO voltage output parameter(ref int handle, int vout_enable, int vout_voltage)
Get the tiov3 voltage parameters
int get TIO voltage output parameter(ref int handle, ref int vout_enable, ref int vout_voltage)
Add or modify TIO semaphore
int add TIO RS signal(ref int handle, JKTYPE.SignInfo sign_info)
TIO delete semaphore
int delete TIO RS signal(ref int handle, char[] signal_name);
int delete TIO RS signal(ref int handle, [MarshalAs(UnmanagedType.LPStr)] string signal_name)
TIO RS485 send command
int send TIO RS command(ref int handle, int channel_id, byte[] data, int buffer_size)
TIO refresh signal information
int update TIO RS signal(ref int handle, [In, Out] JKTYPE.SignInfo_simple[] sign_info)
TIO get semaphore information
int get RS485 signal info(ref int handle, [In, Out] JKTYPE.SignInfo[] sign_info, ref int size)
Set TIO mode
int set TIO pin mode(ref int handle, int pin_type, int pin_mode)
Get TIO mode
int get TIO pin mode(ref int handle, int pin_type, ref int pin_mode)
TIO RS485 communication parameter configuration
int set RS485 channel communication(ref int handle, JKTYPE.ModRtuComm mod_rtu_comm)
TIO RS485 communication parameter query
int get RS485 channel communication(ref int handle, ref JKTYPE.ModRtuComm mod_rtu_comm)
TIO RS485 communication mode configuration
int set RS485 channel mode(ref int handle, int channel_id, int channel_mode)
TIO RS485 communication mode query
int get RS485 channel mode(ref int handle, int channel_id, ref int channel_mode)
Servo related
Query whether the robot arm is in servo motion state
int is in servo move(ref int handle, bool in_servo)
Enable robot arm servo position control mode
int enable servo move(ref int handle, bool enable);
int enable servo move extended(ref int handle, bool enable, bool is_blocked, int robot_id)
Robotic arm joint space servo mode motion
int servo_j(ref int handle, ref JKTYPE.JointValue joint_pos, JKTYPE.MoveMode move_mode, int step_num = 1);
(int ret, int queue_num) servo_j(ref int handle, ref JKTYPE.JointValue joint_pos, JKTYPE.MoveMode move_mode, int step_num = 1, JKTYPE.DOInfo? do_info = null, int robot_id = 0)
Robotic arm Cartesian space servo mode motion extension
int servo_p(ref int handle, ref JKTYPE.CartesianPose cartesian_pose, JKTYPE.MoveMode move_mode, int step_num = 1);
(int, int queue_num) servo_p(ref int handle, ref JKTYPE.CartesianPose cartesian_pose, JKTYPE.MoveMode move_mode, int step_num = 1, JKTYPE.DOInfo? do_info = null, int robot_id = 0)
Disable filter in robot arm servo mode
int servo_move_use_none_filter(ref int i)
First-order low-pass filtering in robot arm joint space servo mode
int servo_move_use_joint_LPF(ref int handle, double cutoffFreq)
Nonlinear filtering in robot arm joint space servo mode
int servo_move_use_joint_NLF(ref int handle, double max_vr, double max_ar, double max_jr)
Nonlinear filtering in robot arm Cartesian space servo mode
int servo_move_use_carte_NLF(ref int handle, double max_vp, double max_ap, double max_jp, double max_vr, double max_ar, double max_jr);
int servo_move_use_carte_NLF_extend(ref int handle, double max_vp, double max_ap, double max_jp, double max_vr, double max_ar, double max_jr, int ori_quat, int robot_id)
Multi-stage mean filtering in robot arm joint space servo mode
int servo_move_use_joint_MMF(ref int handle, int max_buf, double kp, double kv, double ka)
Set velocity feedforward parameters in robot arm servo mode
int servo_speed_foresight(ref int handle, int max_buf, double kp);
int servo_speed_foresight_extend(ref int handle, int max_buf, double kp, int ori_quat, int robot_id)
Filter joint space in robot arm SERVO mode
int servo_move_use_joint_PCM(ref int handle, int max_buf, double kp, int robot_id);
Filter Cartesian space in robot arm SERVO mode
int servo_move_use_carte_PCM(ref int handle, int max_buf, double kp, int robot_id);
Execute servo trajectory file in robot arm SERVO mode
int start_servo_traj(ref int handle, [MarshalAs(UnmanagedType.LPStr)] string file)
Get servo trajectory execution status
int get_traj_status(ref int handle, ref int is_running, ref whole_points, ref progress)
Stop running servo trajectory file
int stop_servo_traj(ref int handle)
EDG
Robotic arm EDG enable
int edg_init(ref int handle, ref bool en, char[] edg_stat_ip)
int edg_init_extend(ref int handle, ref bool en, char[] edg_stat_ip, int edg_port, int edg_mode)
Robotic arm high-speed acquisition of EDG feedback data
int edg_get_stat(ref int handle, ref JKTYPE.EDGState edg_state, byte robot_index)
Robotic arm acquisition of EDG feedback data issuance timestamp
int edg_stat_details(ref int handle, ulong[] details)
Robotic arm EDG joint space servo mode motion
int edg_servo_j(ref int handle, ref JKTYPE.JointValue joint_pos, JKTYPE.MoveMode move_mode, int step_num, byte robot_index)
Robotic arm EDG Cartesian space servo mode motion
int edg_servo_p(ref int handle, ref JKTYPE.CartesianPose cartesian_pose, JKTYPE.MoveMode move_mode, int step_num, byte robot_index)
Trajectory Related
Set trajectory reproduction configuration parameters
int set_traj_config(ref int handle, ref JKTYPE.TrajTrackPara para)
Get trajectory reproduction configuration parameters
int get_traj_config(ref int handle, ref JKTYPE.TrajTrackPara para)
Collect trajectory reproduction data control switch
int set_traj_sample_mode(ref int handle, bool mode, char[] filename);
int set_traj_sample_mode(ref int handle, bool mode, [MarshalAs(UnmanagedType.LPStr)] string filename)
Query status of collected trajectory reproduction data
int get_traj_sample_status(ref int handle, ref bool sample_status)
Query file names of already existing trajectory reproduction data in the controller
int get_existing_traj_file_name(ref int handle, ref JKTYPE.MultStrStorType filename)
Rename file names of trajectory reproduction data
int rename_traj_file_name(ref int handle, ref char[] src, ref char[] dest);
int rename_traj_file_name(ref int handle, [MarshalAs(UnmanagedType.LPStr)] string src, [MarshalAs(UnmanagedType.LPStr)] string dest)
Delete trajectory reproduction data files in the controller
int remove_traj_file(ref int handle, ref char[] filename);
int remove_traj_file(ref int handle, [MarshalAs(UnmanagedType.LPStr)] string filename)
Generate controller execution script from trajectory reproduction data files in the controller
int generate_traj_exe_file(ref int handle, char[] filename);
int generate_traj_exe_file(ref int handle, [MarshalAs(UnmanagedType.LPStr)] string filename)
Program related
Run the currently loaded job program
int program_run(ref int handle)
Pause the currently running job program
int program_pause(ref int handle)
Continue running the currently paused job program
int program_resume(ref int handle)
Terminate the currently executing job program
int program_abort(ref int handle)
Load the specified job program
int program_load(ref int handle, char[] file);
int program_load(ref int handle, [MarshalAs(UnmanagedType.LPStr)] string file)
Get the name of the loaded job program
int get_loaded_program(ref int handle, StringBuilder file, 100)
Get the execution line number of the current robot arm operation program
int get_current_line(ref int handle, ref int curr_line)
Get execution status of robot arm job program
int get_program_state(ref int handle, ref JKTYPE.ProgramState status)
Get information of robot arm job program
int get_program_info(ref int handle, ref JKTYPE.ProgramInfo info)
Get system variable
int get_user_var(ref int handle, ref JKTYPE.UserVariableList vlist)
Set system variable
int set_user_var(ref int handle, ref JKTYPE.UserVariable v)
FTP
Initialize FTP client
int init_ftp_client(ref int i)
Close FTP client
int close_ftp_client(ref int i)
FTP download
int download_file(ref int handle, char[] local, char[] remote, int opt);
int download_file(ref int handle, [MarshalAs(UnmanagedType.LPStr)] string local, [MarshalAs(UnmanagedType.LPStr)] string remote, int opt)
FTP upload
int upload_file(ref int handle, char[] local, char[] remote, int opt);
int upload_file(ref int handle, [MarshalAs(UnmanagedType.LPStr)] string local, [MarshalAs(UnmanagedType.LPStr)] string remote, int opt)
FTP delete
int delete_ftp_file(ref int handle, char[] remote, int opt);
int delete_ftp_file(ref int handle, [MarshalAs(UnmanagedType.LPStr)] string remote, int opt)
FTP rename
int rename_ftp_file(ref int handle, char[] remote, char[] destination, int opt);
int rename_ftp_file(ref int handle, [MarshalAs(UnmanagedType.LPStr)] string remote, [MarshalAs(UnmanagedType.LPStr)] string destination, int opt)
FTP directory query
int get_ftp_directory(ref int handle, char[] remote, int type, StringBuilder ret );
int get_ftp_directory(ref int handle, [MarshalAs(UnmanagedType.LPStr)] string remote, int type, StringBuilder ret )
Force control related
Set end force sensor model
int set_torsenosr_brand(ref int handle, int sensor_brand)
Get end force sensor model
int get_torsenosr_brand(ref int handle, ref int sensor_brand)
Enable or disable end force sensor
int set_torque_sensor_mode(ref int handle, int sensor_mode)
Get sensor operating status
int get_torque_sensor_mode(ref int handle, ref int sensor_mode)
Set end force sensor communication parameters
int set_torque_sensor_comm(ref int handle, int type, ref char[] ip_address, int port);
int set_torque_sensor_comm(ref int handle, int type, [MarshalAs(UnmanagedType.LPStr)] string ip_address, int port)
Get end force sensor communication parameters
int get_torque_sensor_comm(ref int handle, ref int type, [MarshalAs(UnmanagedType.LPStr)] StringBuilder ip_address, ref int port)
Constant Force Compliant Control
int disable_force_control(ref int handle);
Set end force sensor low-pass filter cutoff frequency
int set_torque_sensor_filter(ref int handle, float torque_sensor_filter)
Get end force sensor low-pass filter cutoff frequency
int get_torque_sensor_filter(ref int handle, ref float torque_sensor_filter)
Set end force sensor soft limit
int set_torque_sensor_soft_limit(ref int handle, JKTYPE.FTxyz torque_sensor_soft_limit)
Get end force sensor soft limit
int get_torque_sensor_soft_limit(ref int handle, ref JKTYPE.FTxyz torque_sensor_soft_limit)
Get sensor status and data
int get_torque_sensor_data(ref int handle, int type, ref JKTYPE.TorqSensorData)
Zero Sensor
int zero_end_sensor(ref int handle)
Set force control speed limit
int set_compliant_speed_limit(ref int handle, double velocity, double angular_velocity)
Get force control speed limit
int get_compliant_speed_limit(ref int handle, ref double velocity, ref double angular_velocity)
Set speed compliance control parameters
int set_velocity_compliant_control(ref int handle, ref JKTYPE.VelCom vel_cfg)
Set torque reference center
int set_torque_reference_point(ref int handle, int refPoint)
Get torque reference center
int get_torque_reference_point(ref int handle, ref int refPoint)
Set sensor sensitivity
int set_end_sensor_sensitivity_threshold(ref int handle, JKTYPE.FTxyz)
Get sensor sensitivity
int get_end_sensor_sensitivity_threshold(ref int handle, ref JKTYPE.FTxyz)
Set force control termination condition
int set_force_stop_condition(ref int handle, ref JKTYPE.ForceStopConditionList)
Get basic sensor information
int get_ft_sensor_basic_information(ref int handle, ref JKTYPE.FTSensorBasicInfoStr infos, int robot_id)
Get sensor soft limit rules
int get_ft_sensor_soft_limit_rules(ref int handle, ref JKTYPE.FTSensorSoftLimitRuleStr rules, int robot_id)
Set sensor soft limit rules
int set_ft_sensor_soft_limit_rules(ref int handle, ref JKTYPE.FTSensorSoftLimitRuleStr rules, int robot_id)
Set sensor filter parameters
int set_ft_sensor_filter(ref int handle, int sensor_id, ref double filter)
Get sensor filter parameters
int get_ft_sensor_filter(ref int handle, int sensor_id, ref double filter)
Get sensor mode
int get_ft_sensor_mode(ref int handle, int sensor_id, ref int mode)
To zero the sensor
int set_ft_sensor_zero_point(ref int handle, int sensor_id)
Set sensor threshold
int set_contact_force_threshold(ref int handle, int sensor_id, ref JKTYPE.FTSensorThresholdStr threshold)
Get sensor threshold
int get_contact_force_threshold(ref int handle, int sensor_id, ref JKTYPE.FTSensorThresholdStr threshold)
Set sensor reference point
int set_ft_sensor_reference_point(ref int handle, ref JKTYPE.CartesianTran ref_point, int robot_id)
Get sensor reference point
int get_ft_sensor_reference_point(ref int handle, ref JKTYPE.CartesianTran ref_point, int robot_id)
Get sensor data
int get_ft_sensor_data(ref int handle, int sensor_id, int type, ref JKTYPE.FTSensorDataStr data)
Get sensor load
int get_ft_sensor_payload(ref int handle, int sensor_id, ref JKTYPE.PayLoad payload)
Set sensor load
int set_ft_sensor_payload(ref int handle, int sensor_id, int payload_id)
Get ID of the sensor currently connected to the robot arm
int get_linked_ft_sensor_ids(ref int handle, ref JKTYPE.FTLinkedSensorIDStr sensor_ids, int robot_id)
Add sensor
int add_ft_sensor(ref int handle, ref JKTYPE.FTSensorConfigStr config, int robot_id)
Delete sensor
int remove_ft_sensor(ref int handle, int sensor_id, int robot_id)
Set speed limit in force control mode
int set_force_control_velocity_limit(ref int handle, ref JKTYPE.VelocityLimit limit, int robot_id)
Get speed limit in force control mode
int get_force_control_velocity_limit(ref int handle, ref JKTYPE.VelocityLimit limit, int robot_id)
Set approach speed limit
int set_approaching_vel_limit(ref int handle, ref JKTYPE.VelocityLimit limit, int robot_id)
Get approach speed limit
int get_approaching_vel_limit(ref int handle, ref JKTYPE.VelocityLimit limit, int robot_id)
Set constant-force compliance control mode parameters
int set_cst_force_ctrl_config(ref int handle, ref JKTYPE.AdmitCtrlType config, int robot_id)
Get constant-force compliance control mode parameters
int get_cst_force_ctrl_config(ref int handle, ref JKTYPE.AdmitCtrlType config, int robot_id)
Set constant-force compliance control tolerance
int set_cst_force_ctrl_tol(ref int handle, ref JKTYPE.FTxyz tol, int robot_id)
Get constant-force compliance control tolerance
int get_cst_force_ctrl_tol(ref int handle, ref JKTYPE.FTxyz tol, int robot_id)
Payload Identification
Start identifying sensor end load
int start_torq_sensor_payload_identify(ref int handle, ref JKTYPE.JointValue joint_pos)
Get sensor end load identification status
int get_torq_sensor_identify_status(ref int handle, ref int identify_status)
Get sensor end load identification result
int get_torq_sensor_payload_identify_result(ref int handle, ref JKTYPE.PayLoad payload)
Set sensor end load
int set_torq_sensor_tool_payload(ref int handle, ref JKTYPE.PayLoad payload)
Get sensor end load
int get_torq_sensor_tool_payload(ref int handle, ref JKTYPE.PayLoad payload)
Tool Drag
Get force compliance control parameters
int get_admit_ctrl_config(ref int handle, ref JKTYPE.RobotAdmitCtrl admit_ctrl_cfg)
[Set force compliance control parameters]
int set_admit_ctrl_config(ref int handle, int axis, int opt, double ftUser, double ftConstant, int ftNormalTrack, double ftReboundFK)
Enable or disable tool dragging
int enable_admittance_ctrl(ref int handle, int enable_flag)
Enable tool dragging
int enable_tool_drive(ref int handle, int enable_flag)
Get tool dragging enable status
int get_tool_drive_state(ref int handle, ref int enable_flag, ref int state)
Get tool dragging parameters
int get_tool_drive_config(ref int handle, ref JKTYPE.RobotToolDriveCtrl)
Set force control drag feel parameters
int set_tool_drive_config(ref int handle, JKTYPE.ToolDriveConfig)
Get tool drag coordinate system
int get_tool_drive_frame(ref int handle, ref JKTYPE.FTFrameType)
Set tool drag coordinate system
int set_tool_drive_frame(ref int handle, JKTYPE.FTFrameType)
Get fusion drag sensitivity
int get_fusion_drive_sensitivity_level(ref int handle, ref int level)
Set fusion drag sensitivity
int set_fusion_drive_sensitivity_level(ref int handle, int level)
Get motion limit - singularity and joint limit - warning range
int get_motion_limit_warning_range(ref int handle, ref int warning_range)
Set motion limit - singularity and joint limit - warning range
int set_motion_limit_warning_range(ref int handle, int warning_range)
Force control
Set constant-force compliance control coordinate system
int set_ft_ctrl_frame(ref int handle, int ftFrame)
Get constant-force compliance control coordinate system
int get_ft_ctrl_frame(ref int handle, ref int ftFrame)
Set force control type and zero calibration (initialization) options
int set_compliant_type(ref int handle, int sensor_compensation, int compliance_type)
Get force control type and reading display (initialization) status
int get_compliant_type(ref int handle, ref int sensor_compensation, ref int compliance_type)
Set speed compliance control force condition
int set_compliance_condition(ref int handle, ref JKTYPE.FTxyz ft)
Set approach speed limit
int set_approach_speed_limit(ref int handle, double vel, double angularVel)
Get approach speed limit
int get_approach_speed_limit(ref int handle, ref double vel, ref double angularVel)
Set constant-force control tolerance
int set_ft_tolerance(ref int handle, double force, double torque)
Get constant-force control tolerance
int get_ft_tolerance(ref int handle, ref double force, ref double torque)
Activate/Deactivate Constant Force Compliant Control
int set_ft_ctrl_mode(ref int handle, int mode)
Get constant-force compliance enable status
int get_ft_ctrl_mode(ref int handle, ref int mode)
Set constant-force compliance control parameters
int set_ft_ctrl_config(ref int handle, AdmitCtrlType cfg)
Get constant-force compliance control parameters
int get_ft_ctrl_config(ref int handle, ref RobotAdmitCtrl cfg)
Collision
Query whether the robot arm is in collision protection mode
int is_in_collision(ref int handle, ref bool in_collision)
Recover from collision protection mode after collision
int collision_recover(ref int handle)
Set robot arm collision level
int set_collision_level(ref int handle, int level)
Get collision level set by machine
int get_collision_level(ref int handle, ref int level)
Kinematics
Robotic arm inverse kinematics solution
int kine_inverse(ref int handle, ref JKTYPE.JointValue ref_pos, ref JKTYPE.CartesianPose cartesian_pose, ref JKTYPE.JointValue joint_pos)
Robotic arm forward kinematics solution
int kine_forward(ref int handle, ref JKTYPE.JointValue joint_pos, ref JKTYPE.CartesianPose cartesian_pose)
Robotic arm inverse solution extension
int kine_inverse_extend(ref int handle, ref JKTYPE.JointValue ref_pos, ref JKTYPE.CartesianPose cartesian_pose, ref JKTYPE.JointValue joint_pos, ref JKTYPE.CartesianPose tool, ref JKTYPE.CartesianPose userFrame)
Extended robot arm forward kinematics calculation
int kine_forward_extend(ref int handle, ref JKTYPE.JointValue joint_pos, ref JKTYPE.CartesianPose cartesian_pose, ref JKTYPE.CartesianPose tool, ref JKTYPE.CartesianPose userFrame)
Convert Euler angles to rotation matrix
int rpy_to_rot_matrix(ref int handle, ref JKTYPE.Rpy rpy, ref JKTYPE.RotMatrix rot_matrix)
Convert rotation matrix to Euler angles
int rot_matrix_to_rpy(ref int handle, ref JKTYPE.RotMatrix rot_matrix, ref JKTYPE.Rpy rpy)
Convert quaternion to rotation matrix
int quaternion_to_rot_matrix(ref int handle, ref JKTYPE.Quaternion quaternion, ref JKTYPE.RotMatrix rot_matrix)
Convert rotation matrix to quaternion
int rot_matrix_to_quaternion(ref int handle, ref JKTYPE.RotMatrix rot_matrix, ref JKTYPE.Quaternion quaternion)
Interface call return value list and troubleshooting
| Error codes | Description | Handling suggestions |
|---|---|---|
| 0 | success | null |
| 2 | interface error or controller not supported | Check the controller and SDK version information, upgrade or use another interface |
| -1 | invalid handler | Please check whether login is done before calling the interface |
| -2 | invalid parameter | Please check whether the parameters are correct |
| -3 | failed to connect | Please check the network connection status, or whether the robot IP is correct |
| -4 | inverse kinematics error | Inverse kinematics failed, please check the current coordinate system, or whether the reference joint angles are reasonable |
| -5 | emergency stop | Emergency stop state, status retained |
| -6 | not powered on | Not powered on |
| -7 | not enabled | Not enabled |
| -8 | not in servo mode | Not in servo mode. When executing servoJP, you must first enter servo mode. Please check whether the corresponding interface is called |
| -9 | must disable enable before powering off | Must disable enable before powering off |
| -10 | cannot operate, program is running | Cannot operate, a program is currently running. Please close the program first |
| -11 | cannot open file, or file does not exist | Cannot open file, or file does not exist |
| -12 | motion abnormal | Abnormal movement, possibly near a singularity point or exceeding robot movement limits |
| -14 | ftp error | ftp abnormal |
| -15 | socket msg or value oversize | Exceeding limit abnormal |
| -16 | kine_forward error | Forward kinematics failed |
| -17 | not support empty folder | Empty folders are not supported |
| -20 | protective stop | Safeguard (Protective) Stop |
| -21 | emergency stop | Emergency stop |
| -22 | on soft limit | In soft limit position, manual drag of the robot is not possible; use the teaching function in the APP to approach the soft limit |
| -30 | fail to encode cmd string | Command encoding failed, usually due to an error while parsing the message returned by the controller |
| -31 | fail to decode cmd string | Command decoding failed, usually due to an error while parsing the message returned by the controller |
| -32 | fail to uncompress port 10004 string | Failed to decompress data from port 10004, possibly due to network fluctuations or excessive data size |
| -40 | move linear error | Linear movement failed, please check if there are any singular regions in the path |
| -41 | move joint error | Joint movement failed, please check the set joint angles |
| -42 | move circular error | Arc motion failed, please check the set parameters |
| -50 | block_wait timeout | Blocking wait timeout |
| -51 | power on timeout | Power-on timeout |
| -52 | power off timeout | Power-off timeout |
| -53 | enable timeoff | Enable timeout |
| -54 | disable timeout | Disable timeout |
| -55 | set userframe timeout | Setting user coordinate system timeout |
| -56 | set tool timeout | Setting tool coordinate system timeout |
| -57 | edg init failed | EDG function initialization failed |
| -58 | edg is running, cannot use servo_j or servo_p | EDG function is running, cannot use servo_j or servo_p interface |
| -59 | Current EDG mode does not support using edg_servo_j or edg_servo_p. | EDG function is running, cannot use edg_servo_j or edg_servo_p interface |
| -60 | set io timeout | Setting IO timeout |
| -61 | operation timeout | Interface timeout |
| -62 | servo queue is full | Servo queue is full |
| -63 | servo is not running | Servo mode is not started |
| -9997 | not implement | Interface not implemented |
| -9998 | deprecated interface | Interface will be removed in the future (function still available) |
| -9999 | obsolete interface | Interface will be removed in the future (function unavailable) |
Issue feedback
If there are any inaccurate descriptions or mistakes in the document, we kindly ask readers for their understanding and corrections. If you find any problems or wish to provide suggestions while reading, you can send an email to support@jaka.com, and we will reply to you as soon as possible.
