Skip to main content

C#

JAKAAbout 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)

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)

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)

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)

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)

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)

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 )

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 codesDescriptionHandling suggestions
0successnull
2interface error or controller not supportedCheck the controller and SDK version information, upgrade or use another interface
-1invalid handlerPlease check whether login is done before calling the interface
-2invalid parameterPlease check whether the parameters are correct
-3failed to connectPlease check the network connection status, or whether the robot IP is correct
-4inverse kinematics errorInverse kinematics failed, please check the current coordinate system, or whether the reference joint angles are reasonable
-5emergency stopEmergency stop state, status retained
-6not powered onNot powered on
-7not enabledNot enabled
-8not in servo modeNot in servo mode. When executing servoJP, you must first enter servo mode. Please check whether the corresponding interface is called
-9must disable enable before powering offMust disable enable before powering off
-10cannot operate, program is runningCannot operate, a program is currently running. Please close the program first
-11cannot open file, or file does not existCannot open file, or file does not exist
-12motion abnormalAbnormal movement, possibly near a singularity point or exceeding robot movement limits
-14ftp errorftp abnormal
-15socket msg or value oversizeExceeding limit abnormal
-16kine_forward errorForward kinematics failed
-17not support empty folderEmpty folders are not supported
-20protective stopSafeguard (Protective) Stop
-21emergency stopEmergency stop
-22on soft limitIn soft limit position, manual drag of the robot is not possible; use the teaching function in the APP to approach the soft limit
-30fail to encode cmd stringCommand encoding failed, usually due to an error while parsing the message returned by the controller
-31fail to decode cmd stringCommand decoding failed, usually due to an error while parsing the message returned by the controller
-32fail to uncompress port 10004 stringFailed to decompress data from port 10004, possibly due to network fluctuations or excessive data size
-40move linear errorLinear movement failed, please check if there are any singular regions in the path
-41move joint errorJoint movement failed, please check the set joint angles
-42move circular errorArc motion failed, please check the set parameters
-50block_wait timeoutBlocking wait timeout
-51power on timeoutPower-on timeout
-52power off timeoutPower-off timeout
-53enable timeoffEnable timeout
-54disable timeoutDisable timeout
-55set userframe timeoutSetting user coordinate system timeout
-56set tool timeoutSetting tool coordinate system timeout
-57edg init failedEDG function initialization failed
-58edg is running, cannot use servo_j or servo_pEDG function is running, cannot use servo_j or servo_p interface
-59Current 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
-60set io timeoutSetting IO timeout
-61operation timeoutInterface timeout
-62servo queue is fullServo queue is full
-63servo is not runningServo mode is not started
-9997not implementInterface not implemented
-9998deprecated interfaceInterface will be removed in the future (function still available)
-9999obsolete interfaceInterface 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.

Last update: