| xCore-SDK 0.5.0 xCore SDK C# API

Public 成员函数 | Protected 成员函数 | Protected 属性 | 静态 Protected 属性 | 所有成员列表
rokae::clr::BaseRobot类 参考

机器人通用接口 更多...

`#include <robot_cli.hpp>`

类 rokae::clr::BaseRobot 继承关系图:

## Public 成员函数
virtual | ~BaseRobot ()
| Deconstructor
void | connectToRobot ([Out] ErrorCode^% ec)
| 连接到机器人。机器人地址为创建StandardRobot实例时传入的 更多...
void | connectToRobot (String^ remoteIP)
| 建立与机器人的连接。 更多...
void | connectToRobot (String^ remoteIP, String^ localIP)
| 建立与机器人的连接。 更多...
void | disconnectFromRobot ([Out] ErrorCode^% ec)
| 断开与机器人连接。断开前会停止机器人运动, 请注意安全。 更多...
void | setConnectionHandler (ConnectionHandlerDelegate^ handler)
| 设置连接断开回调函数 更多...
Info | robotInfo ([Out] ErrorCode^% ec)
| 查询机器人基本信息 更多...
String | sdkVersion ()
| 查询xCoreSDK版本 更多...
PowerState | powerState ([Out] ErrorCode^% ec)
| 查询机器人上下电以及急停状态 更多...
void | setPowerState (Boolean on, [Out] ErrorCode^% ec)
| 机器人上下电。注: 只有无外接使能开关或示教器的机器人才能手动模式上电。 更多...
OperateMode | operateMode ([Out] ErrorCode^% ec)
| 查询机器人当前操作模式 更多...
void | setOperateMode (OperateMode mode, [Out] ErrorCode^% ec)
| 切换手自动模式 更多...
void | rebootSystem ([Out] ErrorCode^% ec)
| 重启工控机 注：在自动模式、下电状态、运动和非空闲状态不允许重启操作 更多...
void | setHmiDisconnectBehaviour (int behaviour, int detect_time, [Out] ErrorCode ^ % ec)
| 设置HMI断开连接后控制器的行为 更多...
void | getHmiDisconnectBehaviour (int % behaviour, int % detect_time, [Out] ErrorCode ^ % ec)
| 获取HMI断开连接后控制器的行为 更多...
OperationState | operationState ([Out] ErrorCode^% ec)
| 查询机器人当前运行状态 (空闲, 运动中, 拖动开启等) 更多...
array< double > | jointPos ([Out] ErrorCode^% ec)
| 机器人当前轴角度 [rad], 机器人本体以及外部轴（若有）。 导轨[m] 更多...
array< double > | jointVel ([Out] ErrorCode^% ec)
| 机器人当前关节速度 [rad/s], 机器人本体以及外部轴（若有）。 导轨[m/s] 更多...
array< double > | jointTorque ([Out] ErrorCode^% ec)
| 关节力传感器数值 [Nm] 更多...
array< double > | posture (CoordinateType ct, [Out] ErrorCode^% ec)
| 获取机器人法兰或末端的当前位姿 更多...
CartesianPosition | cartPosture (CoordinateType ct, [Out] ErrorCode^% ec)
| 获取机器人法兰或末端的当前位姿 更多...
array< double > | baseFrame ([Out] ErrorCode^% ec)
| 读取基坐标系, 相对于世界坐标系 更多...
Toolset | toolset ([Out] ErrorCode^% ec)
| 查询当前工具工件组信息. 更多...
void | setToolset (Toolset^ toolset, [Out] ErrorCode^% ec)
| 设置工具工件组信息。 更多...
void | setToolset (System::String^ toolName, System::String^ wobjName, [Out] ErrorCode^% ec)
| 使用已创建的工具和工件，设置工具工件组信息 更多...
void | setBaseFrame (Frame^ frame, [Out] ErrorCode^% ec)
| 设置基坐标系, 设置后仅保存数值，重启控制器后生效 更多...
void | setMotionControlMode (MotionControlMode mode, [Out] ErrorCode^% ec)
| 设置运动控制模式. 更多...
void | moveReset ([Out] ErrorCode^% ec)
| 运动重置, 清空已发送的运动指令, 清除执行信息。 Robot类在初始化时会调用一次运动重置。RL程序和SDK运动指令切换控制，需要先运动重置。 更多...
void | stop ([Out] ErrorCode^% ec)
| 暂停机器人运动; 暂停后可调用moveStart()继续运动。若需要完全停止，不再执行已添加的指令，可调用moveReset() 更多...
void | executeCommand (MoveCommand::Type type, List< MoveCommand^>^ cmd, [Out] ErrorCode^% ec)
| 执行单条或多条运动指令，调用后机器人立刻开始运动 更多...
void | moveAppend (MoveCommand::Type type, List< MoveCommand^>^ cmd, System::String^% cmdId, [Out] ErrorCode^% ec)
| 添加单条或多条运动指令, 添加后调用moveStart()开始运动 更多...
void | moveAppend (MoveCommand::Type type, MoveCommand^ cmd, System::String^% cmdId, [Out] ErrorCode^% ec)
| 下发单条运动指令 更多...
void | moveAppend (List< ArcWelding::ArcWeldingCommand^>^ cmds, System::String^% cmdId, [Out] ErrorCode^% ec)
| 添加单条或多条焊接指令 更多...
void | moveAppend (PulseLCommand^ cmd, System::String^% cmdId, [Out] ErrorCode^% ec)
| 添加PulseL指令 更多...
void | moveAppend (ArcWelding::ArcWeldingCommand^ cmd, System::String^% cmdId, [Out] ErrorCode^% ec)
| 添加单条焊接指令 更多...
void | setDefaultSpeed (int speed, [Out] ErrorCode^% ec)
| 设定默认运动速度，初始值为100。该数值表示末端最大线速度(单位mm/s), 自动计算对应关节速度。 关节速度百分比划分为5个的范围: < 100 10% 100 ~ 200 30% 200 ~ 500 50% 500 ~ 800 80% > 800 100% 空间旋转速度为200°/s 更多...
void | setDefaultZone (int zone, [Out] ErrorCode^% ec)
| 设定默认转弯区。初始值为为0 (fine, 无转弯区)。该数值表示运动最大转弯区半径(单位:mm), 自动计算转弯百分比 转弯百分比划分4个范围: < 1 0 (fine) 1 ~ 20 10 % 20 ~ 60 30 % > 60 100 % 更多...
void | setDefaultConfOpt (bool forced, [Out] ErrorCode^% ec)
| 设置是否使用轴配置数据(confData)计算逆解。初始值为false 更多...
void | moveStart ([Out] ErrorCode^% ec)
| 开始/继续运动 更多...
void | setMaxCacheSize (int number, [Out] ErrorCode^% ec)
| 设置最大缓存指令个数，指发送到控制器待规划的路径点个数，允许的范围[1,300]，初始值为30。 更多...
void | adjustSpeedOnline (double scale, [Out] ErrorCode^% ec)
| 动态调整机器人运动速率，非实时模式时生效。 更多...
void | getAcceleration (double% acc, double% jerk, [Out] ErrorCode^% ec)
| 读取当前加/减速度和加加速度 更多...
void | adjustAcceleration (double acc, double jerk, [Out] ErrorCode^% ec)
| 调节运动加/减速度和加加速度。如果在机器人运动中调用，当前正在执行的指令不生效，下一条指令生效 更多...
EventInfo | queryEventInfo (Event eventType, [Out] ErrorCode^% ec)
| 查询事件信息。 更多...
void | resetMoveInfoWatch ([Out] ErrorCode^% ec)
| 重置运动信息监听 更多...
void | setEventWatcher (Event eventType, EventCallbackDelegate^ callback, [Out] ErrorCode^% ec)
| 设置接收事件的回调函数。 更多...
void | startJog (JogSpace space, double rate, double step, unsigned index, bool direction, [Out] ErrorCode^% ec)
| 开始jog机器人，需要切换到手动操作模式。调用此接口并且机器人开始运动后，无论机器人是否已经自行停止，都必须调用stop()来结束jog操作，否则机器人会一直处于jog的运行状态。 更多...
void | clearServoAlarm ([Out] ErrorCode^% ec)
| 清除伺服报警 更多...
void | triggerSoftEstop (bool enable, [Out] ErrorCode ^% ec)
| 触发/恢复软急停状态 更多...
List< LogInfo^> | queryControllerLog (unsigned count, LogInfo::Level level, [Out] ErrorCode^% ec)
| 查询控制器最新的日志 更多...
void | setDI (unsigned int board, unsigned int port, bool state, [Out] ErrorCode^% ec)
| 设置数字量输入信号，仅当输入仿真模式打开时可以设置(见setSimulationMode()) 更多...
bool | getDI (unsigned int board, unsigned int port, [Out] ErrorCode^% ec)
| 查询数字量输入信号值 更多...
void | setDO (unsigned int board, unsigned int port, bool state, [Out] ErrorCode^% ec)
| 设置数字量输出信号值 更多...
bool | getDO (unsigned int board, unsigned int port, [Out] ErrorCode^% ec)
| 查询数字输出量信号值 更多...
double | getAI (unsigned board, unsigned port, [Out] ErrorCode^% ec)
| 读取模拟量输入信号值 更多...
void | setAO (unsigned board, unsigned port, double value, [Out] ErrorCode^% ec)
| 设置模拟量输出信号 更多...
void | setSimulationMode (bool state, [Out] ErrorCode^% ec)
| 设置输入仿真模式 更多...
void | readRegister (System::String^ name, List< bool >^% value, [Out] ErrorCode^% ec)
| 读取bit/bool类型寄存器数组。 更多...
void | readRegister (System::String^ name, List< int >^% value, [Out] ErrorCode^% ec)
| 读取int16/int32类型寄存器数组。 更多...
void | readRegister (System::String^ name, List< float >^% value, [Out] ErrorCode^% ec)
| 读取float类型寄存器数组。 更多...
void | readRegister (System::String^ name, unsigned index, bool% value, [Out] ErrorCode^% ec)
| 读取bit/bool类型寄存器值。可读取单个寄存器，或按索引读取寄存器数组 更多...
void | readRegister (System::String^ name, unsigned index, int% value, [Out] ErrorCode^% ec)
| 读取int16/int32类型寄存器值。可读取单个寄存器，或按索引读取寄存器数组 更多...
void | readRegister (System::String^ name, unsigned index, float% value, [Out] ErrorCode^% ec)
| 读取float类型寄存器值。可读取单个寄存器，或按索引读取寄存器数组 更多...
void | writeRegister (System::String^ name, unsigned index, bool value, [Out] ErrorCode^% ec)
| 写bool/bit类型寄存器值。可写入单个寄存器，或按索引写入寄存器数组中某一元素。 更多...
void | writeRegister (System::String^ name, unsigned index, Int32 value, [Out] ErrorCode^% ec)
| 写byte/int16/int32寄存器值。可写入单个寄存器，或按索引写入寄存器数组中某一元素。 更多...
void | writeRegister (System::String^ name, unsigned index, float value, [Out] ErrorCode^% ec)
| 写float类型寄存器值。可写入单个寄存器，或按索引写入寄存器数组中某一元素。 更多...
void | writeRegister (System::String^ name, unsigned index, array< bool >^ value, [Out] ErrorCode^% ec)
| 写bool/bit类型寄存器数组 更多...
void | writeRegister (System::String^ name, unsigned index, array< int >^ value, [Out] ErrorCode^% ec)
| 写int16/int32类型寄存器数组。 更多...
void | writeRegister (System::String^ name, unsigned index, array< float >^ value, [Out] ErrorCode^% ec)
| 写float类型寄存器数组。 更多...
void | startReceiveRobotState_Nrt (int interval, List< String ^> ^ extend_fields, int port, [Out] ErrorCode^% ec)
| 打开机器人非实时状态数据发送功能。 与startReceiveRobotState()有所区别，这个状态数据是非实时的，通过TCP发送，机器人作为服务端，检测到 客户端连接后开始发送。发送的数据分为固定数据和扩展数据两部分。 关机设置保存，下次开机自启动 更多...
void | stopReceiveRobotState_Nrt ([Out] ErrorCode^% ec)
| 关闭机器人非实时状态数据发送功能。
int | queryStateDataPublisherServerInfo (List< String ^> ^ client_addr, [Out] ErrorCode^% ec)
| 查询状态数据发布服务端信息 更多...
List< RLProjectInfo^> | projectsInfo ([Out] ErrorCode^% ec)
| 查询工控机中RL工程名称及任务 更多...
void | loadProject (String^ name, System::Collections::Generic::List< System::String^>^ tasks, [Out] ErrorCode^% ec)
| 加载工程 更多...
void | ppToMain ([Out] ErrorCode^% ec)
| 程序指针跳转到main。调用后，等待控制器解析完工程后返回，阻塞时间视工程大小而定，超时时间设定为10秒。 更多...
void | runProject ([Out] ErrorCode^% ec)
| 开始运行当前加载的工程 更多...
void | pauseProject ([Out] ErrorCode^% ec)
| 暂停运行工程 更多...
void | setProjectRunningOpt (double rate, bool loop, [Out] ErrorCode^% ec)
| 更改工程的运行速度和循环模式 更多...
void | importProject (String^ file_path, bool overwrite, size_t max_size, [Out] ErrorCode^% ec)
| 从sdk导入RL工程（压缩包） 更多...
void | removeProject (String^ project_name, bool remove_all, [Out] ErrorCode^% ec)
| 从sdk删除RL工程 更多...
List< WorkToolInfo^> | toolsInfo ([Out] ErrorCode^% ec)
| 查询当前加载工程的工具信息 更多...
List< WorkToolInfo^> | wobjsInfo ([Out] ErrorCode^% ec)
| 查询当前加载工程的工件信息 更多...
void | setRailParameter (System::String^ name, Frame^ value, [Out] ErrorCode^% ec)
| 设置导轨基坐标系 更多...
void | setRailParameter (System::String^ name, System::String^ value, [Out] ErrorCode^% ec)
| 设置导轨名称 更多...
void | setRailParameter (System::String^ name, double value, [Out] ErrorCode^% ec)
| 设置导轨参数 更多...
void | setRailParameter (System::String^ name, bool value, [Out] ErrorCode^% ec)
| 打开关闭导轨 更多...
void | setRailParameter (System::String^ name, array< double >^ value, [Out] ErrorCode^% ec)
| 设置导轨软限位和运动范围 更多...
void | setRailParameter (System::String^ name, int value, [Out] ErrorCode^% ec)
| 设置导轨参数 更多...
void | getRailParameter (System::String^ name, bool% value, [Out] ErrorCode^% ec)
| 读取导轨是否打开 更多...
void | getRailParameter (System::String^ name, String^% value, [Out] ErrorCode^% ec)
| 读取导轨名称 更多...
void | getRailParameter (System::String^ name, Frame^% value, [Out] ErrorCode^% ec)
| 读取导轨基座标系 更多...
void | getRailParameter (System::String^ name, int% value, [Out] ErrorCode^% ec)
| 读取导轨参数 更多...
void | getRailParameter (System::String^ name, double% value, [Out] ErrorCode^% ec)
| 读取导轨参数 更多...
void | getRailParameter (System::String^ name, array< double >^% value, [Out] ErrorCode^% ec)
| 读取导轨软限位和运动范围 更多...
int | getStateData (String^ name, array< double >^% data)
| 读取机器人状态数据,注意传入的data类型要和数据类型一致。 支持的数据名称及数组长度 关节角度[rad]"q_m" | DoF 关节速度[rad/s]"dq_m" | DoF 关节力矩[Nm]"tau_m" | DoF 电机位置"theta_m" | DoF 电机位置微分"theta_vel_m" | DoF 电机转矩"motor_tau" | DoF 末端位姿, 相对于外部坐标系 [X,Y,Z,Rx,Ry,Rz]"pos_abc_m" | 6 末端位姿, 相对于外部坐标系, 行优先齐次变换矩阵"pos_m" | 16 外部轴角度[rad] 导轨[m]"ex_q_m" | 6 外部轴速度[rad/s] 导轨[m/s]"ex_dq_m" | 6 外部轴电机位置"ex_motor_m" | 6 更多...
int | getStateData (String^ name, UInt64% data)
| 读取机器人状态数据 支持的数据名称 时间戳,精确到微秒"ts" 更多...
int | getStateData (String^ name, double% data)
| 读取机器人状态数据 支持的数据名称 臂角[rad]"psi_m" 更多...
void | stopReceiveRobotState ()
| 停止接收实时状态数据，同时控制器停止发送。可用于重新设置要接收的状态数据。
unsigned | updateRobotState (int timeout_ms)
| 接收一次机器人状态数据，在每周期读取数据前，需调用此函数。阻塞等待收到新数据，或超时返回。 建议按照设定的发送频率来调用，以获取最新的数据 更多...
void | configNtp (System::String^ server_ip, [Out] ErrorCode^% ec)
| 配置NTP 更多...
void | syncTimeWithServer ([Out] ErrorCode^% ec)
| 手动同步一次时间，远端IP是通过configNtp配置的。耗时几秒钟，阻塞等待同步完成，接口预设的超时时间是12秒 更多...
array< double > | checkPath (CartesianPosition^ start, array< double >^ start_joint, CartesianPosition^ target, [Out] ErrorCode^% ec)
| 检验直线轨迹是否可达。支持导轨，返回的目标轴角为轴数+外部轴数 更多...
array< double > | checkPath (CartesianPosition^ start, array< double >^ start_joint, CartesianPosition^ target, AvoidSingularityMethod method, [Out] ErrorCode^% ec)
| 检验直线轨迹是否可达。支持导轨，返回的目标轴角为轴数+外部轴数 更多...
int | checkPath (array< double >^ start_joint, array< CartesianPosition^>^ targets, array< double >^% target_joint_calculated, [Out] ErrorCode^% ec)
| 校验多个直线轨迹 更多...
int | checkPath (array< double >^ start_joint, array< CartesianPosition^>^ targets, array< double >^% target_joint_calculated, AvoidSingularityMethod method, [Out] ErrorCode^% ec)
| 校验多个直线轨迹 更多...
array< double > | checkPath (CartesianPosition^ start, array< double >^ start_joint, CartesianPosition^ aux, CartesianPosition^ target, [Out] ErrorCode^% ec)
| 检验圆弧轨迹是否可达 更多...
array< double > | checkPath (CartesianPosition^ start, array< double >^ start_joint, CartesianPosition^ aux, CartesianPosition^ target, AvoidSingularityMethod method, [Out] ErrorCode^% ec)
| 检验圆弧轨迹是否可达 更多...
array< double > | checkPath (CartesianPosition^ start, array< double >^ start_joint, CartesianPosition^ aux1, CartesianPosition^ aux2, double angle, double rot_type, [Out] ErrorCode^% ec)
| 检验全圆轨迹是否可达 更多...
array< double > | checkPath (CartesianPosition^ start, array< double >^ start_joint, CartesianPosition^ aux1, CartesianPosition^ aux2, double angle, double rot_type, AvoidSingularityMethod method, [Out] ErrorCode^% ec)
| 检验全圆轨迹是否可达 更多...
void | recoverState (int item, [Out] ErrorCode^% ec)
| 根据选项恢复机器人状态 更多...
Welding | welding ()
| 返回焊接类 更多...
ArcWelding | arcwelding ()
| 焊接工艺包类 更多...
array< double > | calcIk (CartesianPosition^ posture, [Out] ErrorCode^% ec)
| 根据位姿计算逆解 更多...
array< double > | calcIk (CartesianPosition^ posture, Toolset^ toolset, [Out] ErrorCode^% ec)
| 根据位姿计算给定工具工件坐标系下逆解 更多...
array< array< double >^> | calcAllIkSolutions (CartesianPosition^ posture, array< array< int >^>^% confs, [Out] ErrorCode^% ec)
| 计算笛卡尔位姿所有逆解结果。支持除xMateSR(XMS)之外的所有机型 更多...
CartesianPosition | calcFk (array< double >^ joints, [Out] ErrorCode^% ec)
| 根据轴角度计算正解 更多...
CartesianPosition | calcFk (array< double >^ joints, Toolset^ toolset, [Out] ErrorCode^% ec)
| 根据轴角度计算给定工具工件坐标系下正解 更多...
FrameCalibrationResult | calibrateFrame (FrameType type, List< array< double >^>^ points, bool is_held, array< double >^ base_aux, [Out] ErrorCode^% ec)
| 坐标系标定 (N点标定). 更多...
bool | getSoftLimit (array< double, 2 >^% limits, [Out] ErrorCode^% ec)
| 获取当前软限位数值 更多...
void | setSoftLimit (bool enable, array< double, 2 >^ limits, [Out] ErrorCode^% ec)
| 设置软限位。软限位设定要求： 打开软限位时，机械臂应下电且处于手动模式 软限位不能超过机械硬限位 机械臂当前各轴角度应在设定的限位范围内 更多...
void | startReceiveRobotState (int interval, array< System::String^>^ fields)
| 让机器人控制器开始发送实时状态数据。阻塞等待收到第一帧消息，超时时间为3秒 更多...
void | setTeachPendantMode (bool enable, [Out] ErrorCode^% ec)
| 示教器热插拔。注：仅部分机型支持示教器热插拔，不支持的机型会返回错误码。不使用示教器后，使能按键和急停按键将失效。 更多...
array< double > | getRobotCfg_DHparam (bool get_nominal, [Out] ErrorCode^% ec)
| 读取DH参数 更多...
void | enableSched (bool enable, [Out] ErrorCode ^ % ec)
| 启用工位预约 更多...
bool | getSchedEnableStatus ([Out] ErrorCode ^ % ec)
| 获取工位预约的启用状态 更多...
void | registerEnableSched (bool enable, [Out] ErrorCode ^ % ec)
| 开始/停止预约. 更多...
bool | getSchedRegisterEnableStatus ([Out] ErrorCode ^ % ec)
| 获取是否开始预约 更多...
void | setSched (SchedSetting^ scheds, [Out] ErrorCode ^ % ec)
| 预约设置 更多...
SchedSetting | getSchedSetting ([Out] ErrorCode ^ % ec)
| 获取预约设置 更多...
void | registerSched (int sched_id, [Out] ErrorCode ^ % ec)
| 预约, 执行开始预约了之后才能预约 更多...
void | unregisterSched (int sched_id, [Out] ErrorCode ^ % ec)
| 取消预约 更多...
void | unregisterAllSched ([Out] ErrorCode ^ % ec)
| 取消所有预约 更多...
void | clearSchedCount ([Out] ErrorCode ^ % ec)
| 清除累计执行次数 更多...
List< SchedStatus > | getSchedStatus ([Out] ErrorCode ^ % ec)
| 获取预约状态 更多...
void | schedAdvancedSetting (String^ cancelBehavior, [Out] ErrorCode ^ % ec)
| 高级设置 更多...
Object | getProjectVariable (String ^ name, [Out] ErrorCode ^ % ec)
| 读取RL变量 更多...
bool | modifyVariableByName (String ^ varOldName, String ^ newVarName, String ^ varType, String ^ varValue, [Out] ErrorCode ^ % ec)
| 修改变量信息 – 按名称（字符串接口，跨平台调用更方便） 更多...
bool | modifyVariableByName (String ^ varName, String ^ varType, String ^ varValue, [Out] ErrorCode ^ % ec)
| 修改变量信息 – 按名称（字符串接口，跨平台调用更方便） 更多...
bool | modifyJointPointByName (String ^ oldPointName, String ^ newPointName, array< double > ^ jointAngles, array< double > ^ externalAxis, [Out] ErrorCode ^ % ec)
| 修改关节点位信息 – 按名称（数组接口，跨平台调用更方便） 更多...
bool | modifyJointPointByName (String ^ pointName, array< double > ^ jointAngles, array< double > ^ externalAxis, [Out] ErrorCode ^ % ec)
| 修改关节点位信息 – 按名称（数组接口，跨平台调用更方便） 更多...
bool | modifyCartPointByName (String ^ oldPointName, String ^ newPointName, array< double > ^ position, array< double > ^ orientation, double elbow, array< int > ^ confData, array< double > ^ externalAxis, [Out] ErrorCode ^ % ec)
| 修改笛卡尔点位信息 – 按名称（向量接口，适用于动态数据） 更多...
bool | modifyCartPointByName (String ^ pointName, array< double > ^ position, array< double > ^ orientation, double elbow, array< int > ^ confData, array< double > ^ externalAxis, [Out] ErrorCode ^ % ec)
| 修改笛卡尔点位信息 – 按名称（向量接口，适用于动态数据） 更多...

## Protected 成员函数
void | _moveEventCallback (const std::unordered_map< std::string, std::any > &info)
void | _safetyEventCallback (const std::unordered_map< std::string, std::any > &info)
void | _rlExecutionEventCallback (const std::unordered_map< std::string, std::any > &info)
void | _logReporterEventCallback (const std::unordered_map< std::string, std::any > &info)
void | _arcWeldStateEventCallback (const std::unordered_map< std::string, std::any > &info)
void | _lasertrackStateEventCallback (const std::unordered_map< std::string, std::any > &info)
void | _anticollisionStateEventCallback (const std::unordered_map< std::string, std::any > &info)
void | _schedStateEventCallback (const std::unordered_map< std::string, std::any > &info)
void | _disconnectionBehaviourEventCallback (const std::unordered_map< std::string, std::any > &info)

## Protected 属性
rokae::BaseRobot * | robot
rokae::StandardRobot * | ir6
rokae::PCB3Robot * | ir3
rokae::PCB4Robot * | ir4
rokae::xMateCr5Robot * | cobot5
rokae::xMateRobot * | cobot6
rokae::xMateErProRobot * | cobot7
rokae::Model_T< 3 > * | model3
rokae::Model_T< 4 > * | model4
rokae::Model_T< 5 > * | model5
rokae::Model_T< 6 > * | model6
rokae::Model_T< 7 > * | model7
EventCallbackNativeDelegate | _moveNativeDelegate
EventCallbackNativeDelegate | _safetyNativeDelegate
EventCallbackNativeDelegate | _rlExecutionNativeDelegate
EventCallbackNativeDelegate | _logReporterNativeDelegate
EventCallbackNativeDelegate | _arcWeldStateNativeDelegate
EventCallbackNativeDelegate | _lasertrackStateNativeDelegate
EventCallbackNativeDelegate | _anticollisionStateNativeDelegate
EventCallbackNativeDelegate | _schedStateNativeDelegate
EventCallbackNativeDelegate | _disconnectionBehaviourNativeDelegate
ConnectionHandlerDelegate | _connectionHandlerDelegate

## 静态 Protected 属性
static EventCallbackDelegate | _moveManagedDelegate
static EventCallbackDelegate | _safetyManagedDelegate
static EventCallbackDelegate | _rlExecutionManagedDelegate
static EventCallbackDelegate | _logReporterManagedDelegate
static EventCallbackDelegate | _arcWeldStateManagedDelegate
static EventCallbackDelegate | _lasertrackStateManagedDelegate
static EventCallbackDelegate | _anticollisionStateManagedDelegate
static EventCallbackDelegate | _schedStateManagedDelegate
static EventCallbackDelegate | _disconnectionBehaviourManagedDelegate

## 详细描述

机器人通用接口

在文件 robot_cli.hpp 第 44 行定义.

## 成员函数说明

## ◆ adjustAcceleration()

void rokae::clr::BaseRobot::adjustAcceleration | ( | double | acc,
|  | double | jerk,
|  | [Out] ErrorCode^% | ec
| ) |  |

调节运动加/减速度和加加速度。如果在机器人运动中调用，当前正在执行的指令不生效，下一条指令生效

参数

  acc | 系统预设加速度的百分比，范围[0.2, 1.5], 超出范围不会报错，自动改为上限或下限值
  jerk | 系统预设的加加速度的百分比，范围[0.1, 2], 超出范围不会报错，自动改为上限或下限值
  ec | 错误码

## ◆ adjustSpeedOnline()

void rokae::clr::BaseRobot::adjustSpeedOnline | ( | double | scale,
|  | [Out] ErrorCode^% | ec
| ) |  |

动态调整机器人运动速率，非实时模式时生效。

参数

  scale | 运动指令的速度的比例，范围 0.01 - 1。当设置scale为1时，机器人将以路径原本速度运动。
  ec | 错误码

## ◆ arcwelding()

ArcWelding rokae::clr::BaseRobot::arcwelding | ( |  | ) |

焊接工艺包类

返回
  ArcWelding

## ◆ baseFrame()

array< double > rokae::clr::BaseRobot::baseFrame | ( | [Out] ErrorCode^% | ec | ) |

读取基坐标系, 相对于世界坐标系

参数

  ec | 错误码

返回
  坐标系[x, y, z, rx, ry, rz]

## ◆ calcAllIkSolutions()

array< array< double >^> rokae::clr::BaseRobot::calcAllIkSolutions | ( | CartesianPosition^ | posture,
|  | array< array< int >^>^% | confs,
|  | [Out] ErrorCode^% | ec
| ) |  |

计算笛卡尔位姿所有逆解结果。支持除xMateSR(XMS)之外的所有机型

参数

  posture | 笛卡尔位姿，法兰相对与基座标系。其它坐标系需自行转换。
  confs | 对应的confdata，错误码为0时有效
  ec | 错误码，含逆解计算失败错误：-50102奇异点 | -50114 超限位 | -50519 超范围 | -50002 其它逆解错误

返回
  逆解结果, 单位:弧度, 错误码为0时有效

## ◆ calcFk() [1/2]

CartesianPosition rokae::clr::BaseRobot::calcFk | ( | array< double >^ | joints,
|  | [Out] ErrorCode^% | ec
| ) |  |

根据轴角度计算正解

参数

  joints | 轴角度,数组长度应与轴数一致。单位: 弧度
  ec | 错误码

返回
  机器人末端位姿，相对于外部参考坐标系

异常

  System::NullReferenceException | Robot类未构造

## ◆ calcFk() [2/2]

CartesianPosition rokae::clr::BaseRobot::calcFk | ( | array< double >^ | joints,
|  | Toolset^ | toolset,
|  | [Out] ErrorCode^% | ec
| ) |  |

根据轴角度计算给定工具工件坐标系下正解

参数

  joints | 轴角度,数组长度应与轴数一致。单位: 弧度
  toolset | 工具工件坐标系设置
  ec | 错误码

返回
  机器人末端位姿，相对于外部参考坐标系

异常

  System::NullReferenceException | Robot类未构造

## ◆ calcIk() [1/2]

array< double > rokae::clr::BaseRobot::calcIk | ( | CartesianPosition^ | posture,
|  | [Out] ErrorCode^% | ec
| ) |  |

根据位姿计算逆解

参数

  posture | 机器人末端位姿，相对于外部参考坐标系
  ec | 错误码

返回
  关节角度, 单位:弧度

异常

  System::NullReferenceException | Robot类未构造

## ◆ calcIk() [2/2]

array< double > rokae::clr::BaseRobot::calcIk | ( | CartesianPosition^ | posture,
|  | Toolset^ | toolset,
|  | [Out] ErrorCode^% | ec
| ) |  |

根据位姿计算给定工具工件坐标系下逆解

参数

  posture | 机器人末端位姿，相对于外部参考坐标系
  toolset | 工具工件坐标系设置
  ec | 错误码

返回
  关节角度, 单位:弧度

异常

  System::NullReferenceException | Robot类未构造

## ◆ calibrateFrame()

FrameCalibrationResult rokae::clr::BaseRobot::calibrateFrame | ( | FrameType | type,
|  | List< array< double >^>^ | points,
|  | bool | is_held,
|  | array< double >^ | base_aux,
|  | [Out] ErrorCode^% | ec
| ) |  |

坐标系标定 (N点标定).

各坐标系类型支持的标定方法及注意事项x 工具坐标系三点 / 四点 / 六点标定法 工件坐标系三点标定。标定结果不会相对用户坐标系做变换，即，若为外部工件，返回的结果是相对于基坐标系的。 基坐标系六点标定。标定前请确保动力学约束和前馈已关闭。 导轨基坐标系三点标定。若标定成功(无错误码)，控制器会自动保存标定结果，重启控制器后生效。

若标定成功(无错误码)，控制器会自动保存标定结果，重启控制器后生效。

参数

  type | 坐标系类型，支持工具(FrameType::tool), 工件(FrameType::wobj), 基坐标系(FrameType::base)
  points | 轴角度列表，列表长度为N。例如，使用三点法标定工具坐标系，应传入3组轴角度。轴角度的单位是弧度。
  is_held | true - 机器人手持 | false - 外部。仅影响工具/工件的标定
  base_aux | 基坐标系标定时用到的辅助点, 单位[米]
  ec | 错误码

返回
  标定结果，当错误码没有被置位时，标定结果有效。

异常

  System::NullReferenceException | Robot类未构造

## ◆ cartPosture()

CartesianPosition rokae::clr::BaseRobot::cartPosture | ( | CoordinateType | ct,
|  | [Out] ErrorCode^% | ec
| ) |  |

获取机器人法兰或末端的当前位姿

参数

  ct | 坐标系类型
  ec | 错误码

返回
  当前笛卡尔位置

## ◆ checkPath() [1/8]

int rokae::clr::BaseRobot::checkPath | ( | array< double >^ | start_joint,
|  | array< CartesianPosition^>^ | targets,
|  | array< double >^% | target_joint_calculated,
|  | [Out] ErrorCode^% | ec
| ) |  |

校验多个直线轨迹

参数

  start_joint | 起始轴角，单位[弧度]
  targets | 笛卡尔点位，至少需要2个点，第一个点是起始点
  target_joint_calculated | 若校验通过。返回计算出的目标轴角
  ec | 校验失败的原因

返回
  若校验失败，返回points中出错目标点的下标。其它情况返回0

## ◆ checkPath() [2/8]

int rokae::clr::BaseRobot::checkPath | ( | array< double >^ | start_joint,
|  | array< CartesianPosition^>^ | targets,
|  | array< double >^% | target_joint_calculated,
|  | AvoidSingularityMethod | method,
|  | [Out] ErrorCode^% | ec
| ) |  |

校验多个直线轨迹

参数

  start_joint | 起始轴角，单位[弧度]
  targets | 笛卡尔点位，至少需要2个点，第一个点是起始点
  target_joint_calculated | 若校验通过。返回计算出的目标轴角
  method | 校验奇异规避功能开启下是否可达, 仅支持wrist (腕部奇异规避)
  ec | 校验失败的原因

返回
  若校验失败，返回points中出错目标点的下标。其它情况返回0

## ◆ checkPath() [3/8]

array< double > rokae::clr::BaseRobot::checkPath | ( | CartesianPosition^ | start,
|  | array< double >^ | start_joint,
|  | CartesianPosition^ | aux,
|  | CartesianPosition^ | target,
|  | [Out] ErrorCode^% | ec
| ) |  |

检验圆弧轨迹是否可达

参数

  start | 起始点
  start_joint | 起始轴角
  aux | 辅助点
  target | 目标点
  ec | 含不可达的错误原因

返回
  计算出的目标轴角，仅当无错误码时有效

## ◆ checkPath() [4/8]

array< double > rokae::clr::BaseRobot::checkPath | ( | CartesianPosition^ | start,
|  | array< double >^ | start_joint,
|  | CartesianPosition^ | aux,
|  | CartesianPosition^ | target,
|  | AvoidSingularityMethod | method,
|  | [Out] ErrorCode^% | ec
| ) |  |

检验圆弧轨迹是否可达

参数

  start | 起始点
  start_joint | 起始轴角
  aux | 辅助点
  target | 目标点
  method | 校验奇异规避功能开启下是否可达, 仅支持wrist (腕部奇异规避)
  ec | 含不可达的错误原因

返回
  计算出的目标轴角，仅当无错误码时有效

## ◆ checkPath() [5/8]

array< double > rokae::clr::BaseRobot::checkPath | ( | CartesianPosition^ | start,
|  | array< double >^ | start_joint,
|  | CartesianPosition^ | aux1,
|  | CartesianPosition^ | aux2,
|  | double | angle,
|  | double | rot_type,
|  | [Out] ErrorCode^% | ec
| ) |  |

检验全圆轨迹是否可达

参数

  start | 起始点
  start_joint | 起始轴角
  aux1 | 辅助点1
  aux2 | 辅助点2
  angle | 全圆执行角度，单位弧度，不等于零时代表校验全圆轨迹
  rot_type | 全圆旋转类型
  ec | 含不可达的错误原因

返回
  计算出的目标轴角，仅当无错误码时有效

## ◆ checkPath() [6/8]

array< double > rokae::clr::BaseRobot::checkPath | ( | CartesianPosition^ | start,
|  | array< double >^ | start_joint,
|  | CartesianPosition^ | aux1,
|  | CartesianPosition^ | aux2,
|  | double | angle,
|  | double | rot_type,
|  | AvoidSingularityMethod | method,
|  | [Out] ErrorCode^% | ec
| ) |  |

检验全圆轨迹是否可达

参数

  start | 起始点
  start_joint | 起始轴角
  aux1 | 辅助点1
  aux2 | 辅助点2
  angle | 全圆执行角度，单位弧度，不等于零时代表校验全圆轨迹
  rot_type | 全圆旋转类型
  method | 校验奇异规避功能开启下是否可达, 仅支持wrist (腕部奇异规避)
  ec | 含不可达的错误原因

返回
  计算出的目标轴角，仅当无错误码时有效

## ◆ checkPath() [7/8]

array< double > rokae::clr::BaseRobot::checkPath | ( | CartesianPosition^ | start,
|  | array< double >^ | start_joint,
|  | CartesianPosition^ | target,
|  | [Out] ErrorCode^% | ec
| ) |  |

检验直线轨迹是否可达。支持导轨，返回的目标轴角为轴数+外部轴数

参数

  start | 起始点
  start_joint | 起始轴角
  target | 目标点
  ec | 含不可达的错误原因

返回
  计算出的目标轴角，仅当无错误码时有效

## ◆ checkPath() [8/8]

array< double > rokae::clr::BaseRobot::checkPath | ( | CartesianPosition^ | start,
|  | array< double >^ | start_joint,
|  | CartesianPosition^ | target,
|  | AvoidSingularityMethod | method,
|  | [Out] ErrorCode^% | ec
| ) |  |

检验直线轨迹是否可达。支持导轨，返回的目标轴角为轴数+外部轴数

参数

  start | 起始点
  start_joint | 起始轴角
  target | 目标点
  method | 校验奇异规避功能开启下是否可达, 仅支持wrist (腕部奇异规避)
  ec | 含不可达的错误原因

返回
  计算出的目标轴角，仅当无错误码时有效

## ◆ clearSchedCount()

void rokae::clr::BaseRobot::clearSchedCount | ( | [Out] ErrorCode ^ % | ec | ) |

清除累计执行次数

参数

  ec | 错误码

## ◆ clearServoAlarm()

void rokae::clr::BaseRobot::clearServoAlarm | ( | [Out] ErrorCode^% | ec | ) |

清除伺服报警

参数

  ec | 错误码，当有伺服报警且清除失败的情况下错误码置为-1

## ◆ configNtp()

void rokae::clr::BaseRobot::configNtp | ( | System::String^ | server_ip,
|  | [Out] ErrorCode^% | ec
| ) |  |

配置NTP

参数

  server_ip | NTP服务端IP
  ec | 错误码，NTP服务未正确安装，或地址非法

## ◆ connectToRobot() [1/3]

void rokae::clr::BaseRobot::connectToRobot | ( | [Out] ErrorCode^% | ec | ) |

连接到机器人。机器人地址为创建StandardRobot实例时传入的

参数

  ec | 错误码

## ◆ connectToRobot() [2/3]

void rokae::clr::BaseRobot::connectToRobot | ( | String^ | remoteIP | ) |

建立与机器人的连接。

参数

  remoteIP | 机器人IP地址

异常

  rokae::clr::ApiException | 网络连接异常;控制器版本不兼容;机型不匹配等

## ◆ connectToRobot() [3/3]

void rokae::clr::BaseRobot::connectToRobot | ( | String^ | remoteIP,
|  | String^ | localIP
| ) |  |

建立与机器人的连接。

参数

  remoteIP | 机器人IP地址
  localIP | 本机地址

异常

  rokae::clr::ApiException | 网络连接异常;控制器版本不兼容;机型不匹配等

## ◆ disconnectFromRobot()

void rokae::clr::BaseRobot::disconnectFromRobot | ( | [Out] ErrorCode^% | ec | ) |

断开与机器人连接。断开前会停止机器人运动, 请注意安全。

参数

  ec | 错误码

## ◆ enableSched()

void rokae::clr::BaseRobot::enableSched | ( | bool | enable,
|  | [Out] ErrorCode ^ % | ec
| ) |  |

启用工位预约

参数

  enable | true - 启用 | false - 禁用
  ec | 错误码

## ◆ executeCommand()

void rokae::clr::BaseRobot::executeCommand | ( | MoveCommand::Type | type,
|  | List< MoveCommand^>^ | cmd,
|  | [Out] ErrorCode^% | ec
| ) |  |

执行单条或多条运动指令，调用后机器人立刻开始运动

参数

  type | 指令类型
  cmd | 指令列表, 允许的个数为1-100, 需为同类型指令
  ec | 错误码，仅反馈执行前的错误, 包括: 网络连接问题; 指令个数或类型不符

## ◆ getAcceleration()

void rokae::clr::BaseRobot::getAcceleration | ( | double% | acc,
|  | double% | jerk,
|  | [Out] ErrorCode^% | ec
| ) |  |

读取当前加/减速度和加加速度

参数

  acc | 系统预设加速度的百分比
  jerk | 系统预设的加加速度的百分比
  ec | 错误码

## ◆ getAI()

double rokae::clr::BaseRobot::getAI | ( | unsigned | board,
|  | unsigned | port,
|  | [Out] ErrorCode^% | ec
| ) |  |

读取模拟量输入信号值

参数

  board | IO板序号
  port | 信号端口号
  ec | 错误码

返回
  信号值

## ◆ getDI()

bool rokae::clr::BaseRobot::getDI | ( | unsigned int | board,
|  | unsigned int | port,
|  | [Out] ErrorCode^% | ec
| ) |  |

查询数字量输入信号值

参数

  board | IO板序号
  port | 信号端口号
  ec | 错误码

返回
  true-开 | false-关

## ◆ getDO()

bool rokae::clr::BaseRobot::getDO | ( | unsigned int | board,
|  | unsigned int | port,
|  | [Out] ErrorCode^% | ec
| ) |  |

查询数字输出量信号值

参数

  board | IO板序号
  port | 信号端口号
  ec | 错误码

返回
  true-开 | false-关

## ◆ getHmiDisconnectBehaviour()

void rokae::clr::BaseRobot::getHmiDisconnectBehaviour | ( | int % | behaviour,
|  | int % | detect_time,
|  | [Out] ErrorCode ^ % | ec
| ) |  |

获取HMI断开连接后控制器的行为

参数

  behaviour | 断连行为。0 - 无行为；1 - Stop0，类比手动模式下电
  detect_time | 断连检测时间，单位：ms
  ec | 错误码

## ◆ getProjectVariable()

Object rokae::clr::BaseRobot::getProjectVariable | ( | String ^ | name,
|  | [Out] ErrorCode ^ % | ec
| ) |  |

读取RL变量

参数

  name | 变量名称，需创建好
  ec | 错误码: 变量名不存在/解析错误(一般由于版本不支持)

返回
  变量值，Bool/Int32/Double/String/CartesianPostion/JointPosition

## ◆ getRailParameter() [1/6]

void rokae::clr::BaseRobot::getRailParameter | ( | System::String^ | name,
|  | array< double >^% | value,
|  | [Out] ErrorCode^% | ec
| ) |  |

读取导轨软限位和运动范围

参数

  name | 参数及参数名 软限位(m), [下限,上限] - softLimit 运动范围(m), [下限,上限] - range
  value | 参数数值
  ec | 错误码 参数名不存在或数据类型不匹配返回错误码

## ◆ getRailParameter() [2/6]

void rokae::clr::BaseRobot::getRailParameter | ( | System::String^ | name,
|  | bool% | value,
|  | [Out] ErrorCode^% | ec
| ) |  |

读取导轨是否打开

参数

  name | 参数名，"enable"
  value | true - 打开
  ec | 错误码 参数名不存在或数据类型不匹配返回错误码

## ◆ getRailParameter() [3/6]

void rokae::clr::BaseRobot::getRailParameter | ( | System::String^ | name,
|  | double% | value,
|  | [Out] ErrorCode^% | ec
| ) |  |

读取导轨参数

参数

  name | 参数及参数名 减速比 - reductionRatio 最大速度(m/s) - maxSpeed 最大加速度（m/s^2) - maxAcc 最大加加速度(m/s^3) - maxJerk
  value | 参数数值
  ec | 错误码 参数名不存在或数据类型不匹配返回错误码

## ◆ getRailParameter() [4/6]

void rokae::clr::BaseRobot::getRailParameter | ( | System::String^ | name,
|  | Frame^% | value,
|  | [Out] ErrorCode^% | ec
| ) |  |

读取导轨基座标系

参数

  name | 参数名，"baseFrame"
  value | 导轨基坐标系
  ec | 错误码 参数名不存在或数据类型不匹配返回错误码

## ◆ getRailParameter() [5/6]

void rokae::clr::BaseRobot::getRailParameter | ( | System::String^ | name,
|  | int% | value,
|  | [Out] ErrorCode^% | ec
| ) |  |

读取导轨参数

参数

  name | 参数及参数名 编码器分辨率 - encoderResolution 电机最大转速(rpm) - motorSpeed
  value | 参数数值
  ec | 错误码 参数名不存在或数据类型不匹配返回错误码

## ◆ getRailParameter() [6/6]

void rokae::clr::BaseRobot::getRailParameter | ( | System::String^ | name,
|  | String^% | value,
|  | [Out] ErrorCode^% | ec
| ) |  |

读取导轨名称

参数

  name | 参数名，"name"
  value | 导轨名称
  ec | 错误码 参数名不存在或数据类型不匹配返回错误码

## ◆ getRobotCfg_DHparam()

array< double > rokae::clr::BaseRobot::getRobotCfg_DHparam | ( | bool | get_nominal,
|  | [Out] ErrorCode^% | ec
| ) |  |

读取DH参数

参数

  get_nominal | false - 优化后或设置后的参数 | true - 读取标称参数。一般建议使用false
  ec | 错误码

返回
  DH参数, 错误码为0时有效。依次为各轴的Alpha[°], A[mm], D[mm], Theta[°]

## ◆ getSchedEnableStatus()

bool rokae::clr::BaseRobot::getSchedEnableStatus | ( | [Out] ErrorCode ^ % | ec | ) |

获取工位预约的启用状态

参数

  ec | 错误码

返回
  工位预约的启用状态，错误码为0时有效.true - 启用 | false - 禁用

## ◆ getSchedRegisterEnableStatus()

bool rokae::clr::BaseRobot::getSchedRegisterEnableStatus | ( | [Out] ErrorCode ^ % | ec | ) |

获取是否开始预约

参数

  ec | 错误码

返回
  是否开始预约，错误码为0时有效.true - 开始预约 | false - 停止预约

## ◆ getSchedSetting()

SchedSetting rokae::clr::BaseRobot::getSchedSetting | ( | [Out] ErrorCode ^ % | ec | ) |

获取预约设置

参数

  ec | 错误码

返回
  预约设置，错误码为0时有效

## ◆ getSchedStatus()

List< SchedStatus > rokae::clr::BaseRobot::getSchedStatus | ( | [Out] ErrorCode ^ % | ec | ) |

获取预约状态

参数

  ec | 错误码

返回
  预约状态，错误码为0时有效

## ◆ getSoftLimit()

bool rokae::clr::BaseRobot::getSoftLimit | ( | array< double, 2 >^% | limits,
|  | [Out] ErrorCode^% | ec
| ) |  |

获取当前软限位数值

参数

  limits | 各轴软限位 [下限, 上限]，单位: 弧度
  ec | 错误码

返回
  true - 已打开 | false - 已关闭

异常

  System::NullReferenceException | Robot类未构造

## ◆ getStateData() [1/3]

int rokae::clr::BaseRobot::getStateData | ( | String^ | name,
|  | array< double >^% | data
| ) |  |

读取机器人状态数据,注意传入的data类型要和数据类型一致。

支持的数据名称及数组长度 关节角度[rad]"q_m" | DoF 关节速度[rad/s]"dq_m" | DoF 关节力矩[Nm]"tau_m" | DoF 电机位置"theta_m" | DoF 电机位置微分"theta_vel_m" | DoF 电机转矩"motor_tau" | DoF 末端位姿, 相对于外部坐标系 [X,Y,Z,Rx,Ry,Rz]"pos_abc_m" | 6 末端位姿, 相对于外部坐标系, 行优先齐次变换矩阵"pos_m" | 16 外部轴角度[rad] 导轨[m]"ex_q_m" | 6 外部轴速度[rad/s] 导轨[m/s]"ex_dq_m" | 6 外部轴电机位置"ex_motor_m" | 6

参数

  name | 数据名
  data | 数值

返回
  若无该数据名；或未通过startReceiveRobotState()设置为要接收的数据；或该数据类型和R不符，返回-1。成功读取返回0。

异常

  rokae::clr::ApiException | 网络错误

## ◆ getStateData() [2/3]

int rokae::clr::BaseRobot::getStateData | ( | String^ | name,
|  | double% | data
| ) |  |

读取机器人状态数据

支持的数据名称 臂角[rad]"psi_m"

参数

  name | 数据名
  data | 数值

返回
  若无该数据名；或未通过startReceiveRobotState()设置为要接收的数据；或该数据类型和R不符，返回-1。成功读取返回0。

异常

  rokae::clr::ApiException | 网络错误

## ◆ getStateData() [3/3]

int rokae::clr::BaseRobot::getStateData | ( | String^ | name,
|  | UInt64% | data
| ) |  |

读取机器人状态数据

支持的数据名称 时间戳,精确到微秒"ts"

参数

  name | 数据名
  data | 数值

返回
  若无该数据名；或未通过startReceiveRobotState()设置为要接收的数据；或该数据类型和R不符，返回-1。成功读取返回0。

异常

  rokae::clr::ApiException | 网络错误

## ◆ importProject()

void rokae::clr::BaseRobot::importProject | ( | String^ | file_path,
|  | bool | overwrite,
|  | size_t | max_size,
|  | [Out] ErrorCode^% | ec
| ) |  |

从sdk导入RL工程（压缩包）

参数

  file_path | 本地 .zip压缩包路径
  overwrite | 是否覆盖同名文件，true：覆盖；false：自动重命名
  max_size | 允许发送的最大文件大小,可缺省-缺省值为10M
  ec | 错误码

## ◆ jointPos()

array< double > rokae::clr::BaseRobot::jointPos | ( | [Out] ErrorCode^% | ec | ) |

机器人当前轴角度 [rad], 机器人本体以及外部轴（若有）。 导轨[m]

参数

  ec | 错误码

返回
  关节数值，数组长度机器人轴数+外部轴数

## ◆ jointTorque()

array< double > rokae::clr::BaseRobot::jointTorque | ( | [Out] ErrorCode^% | ec | ) |

关节力传感器数值 [Nm]

参数

  ec | 错误码

返回
  关节力矩

## ◆ jointVel()

array< double > rokae::clr::BaseRobot::jointVel | ( | [Out] ErrorCode^% | ec | ) |

机器人当前关节速度 [rad/s], 机器人本体以及外部轴（若有）。 导轨[m/s]

参数

  ec | 错误码

返回
  关节速度, 数组长度机器人轴数+外部轴数

## ◆ loadProject()

void rokae::clr::BaseRobot::loadProject | ( | String^ | name,
|  | System::Collections::Generic::List< System::String^>^ | tasks,
|  | [Out] ErrorCode^% | ec
| ) |  |

加载工程

参数

  name | 工程名称
    tasks | 模板参数
    System::String | 要运行的任务。该参数必须指定，不能为空，否则无法执行工程。
  ec | 错误码

## ◆ modifyCartPointByName() [1/2]

bool rokae::clr::BaseRobot::modifyCartPointByName | ( | String ^ | oldPointName,
|  | String ^ | newPointName,
|  | array< double > ^ | position,
|  | array< double > ^ | orientation,
|  | double | elbow,
|  | array< int > ^ | confData,
|  | array< double > ^ | externalAxis,
|  | [Out] ErrorCode ^ % | ec
| ) |  |

修改笛卡尔点位信息 – 按名称（向量接口，适用于动态数据）

参数

  oldPointName | 原点位名称
  newPointName | 新点位名称
  position | 位置向量 [x, y, z]，单位：米
  orientation | 姿态向量 [rx, ry, rz]，单位：度
  elbow | 臂角，适用于7轴机器人，单位：弧度
  confData | 轴配置数据向量
  externalAxis | 外部轴数值向量
  ec | 错误信息（输出）

返回
  是否修改成功.true - 成功 | false - 失败

## ◆ modifyCartPointByName() [2/2]

bool rokae::clr::BaseRobot::modifyCartPointByName | ( | String ^ | pointName,
|  | array< double > ^ | position,
|  | array< double > ^ | orientation,
|  | double | elbow,
|  | array< int > ^ | confData,
|  | array< double > ^ | externalAxis,
|  | [Out] ErrorCode ^ % | ec
| ) |  |

修改笛卡尔点位信息 – 按名称（向量接口，适用于动态数据）

参数

  pointName | 点位名称
  position | 位置向量 [x, y, z]，单位：米
  orientation | 姿态向量 [rx, ry, rz]，单位：度
  elbow | 臂角，适用于7轴机器人，单位：弧度
  confData | 轴配置数据向量
  externalAxis | 外部轴数值向量
  ec | 错误信息（输出）

返回
  是否修改成功.true - 成功 | false - 失败

## ◆ modifyJointPointByName() [1/2]

bool rokae::clr::BaseRobot::modifyJointPointByName | ( | String ^ | oldPointName,
|  | String ^ | newPointName,
|  | array< double > ^ | jointAngles,
|  | array< double > ^ | externalAxis,
|  | [Out] ErrorCode ^ % | ec
| ) |  |

修改关节点位信息 – 按名称（数组接口，跨平台调用更方便）

参数

  oldPointName | 原点位名称
  newPointName | 新点位名称
  jointAngles | 关节角度数组，单位：弧度
  externalAxis | 外部轴角度数组，单位：弧度|米，导轨单位米
  ec | 错误信息（输出）

返回
  是否修改成功.true - 成功 | false - 失败

## ◆ modifyJointPointByName() [2/2]

bool rokae::clr::BaseRobot::modifyJointPointByName | ( | String ^ | pointName,
|  | array< double > ^ | jointAngles,
|  | array< double > ^ | externalAxis,
|  | [Out] ErrorCode ^ % | ec
| ) |  |

修改关节点位信息 – 按名称（数组接口，跨平台调用更方便）

参数

  pointName | 点位名称
  jointAngles | 关节角度数组，单位：弧度
  externalAxis | 外部轴角度数组，单位：弧度|米，导轨单位米
  ec | 错误信息（输出）

返回
  是否修改成功.true - 成功 | false - 失败

## ◆ modifyVariableByName() [1/2]

bool rokae::clr::BaseRobot::modifyVariableByName | ( | String ^ | varName,
|  | String ^ | varType,
|  | String ^ | varValue,
|  | [Out] ErrorCode ^ % | ec
| ) |  |

修改变量信息 – 按名称（字符串接口，跨平台调用更方便）

参数

  varName | 变量名称
  varValue | 变量值
  varType | 变量类型，默认为"int"
  ec | 错误信息（输出）

返回
  是否修改成功.true - 成功 | false - 失败

## ◆ modifyVariableByName() [2/2]

bool rokae::clr::BaseRobot::modifyVariableByName | ( | String ^ | varOldName,
|  | String ^ | newVarName,
|  | String ^ | varType,
|  | String ^ | varValue,
|  | [Out] ErrorCode ^ % | ec
| ) |  |

修改变量信息 – 按名称（字符串接口，跨平台调用更方便）

参数

  varOldName | 原变量名称
  newVarName | 新变量名称
  varValue | 变量值
  varType | 变量类型，默认为"int"
  ec | 错误信息（输出）

返回
  是否修改成功.true - 成功 | false - 失败

## ◆ moveAppend() [1/5]

void rokae::clr::BaseRobot::moveAppend | ( | ArcWelding::ArcWeldingCommand^ | cmd,
|  | System::String^% | cmdId,
|  | [Out] ErrorCode^% | ec
| ) |  |

添加单条焊接指令

参数

  cmd | 焊接指令
  cmdId | 本条指令的ID, 可用于查询指令执行信息
  ec | 错误码

## ◆ moveAppend() [2/5]

void rokae::clr::BaseRobot::moveAppend | ( | List< ArcWelding::ArcWeldingCommand^>^ | cmds,
|  | System::String^% | cmdId,
|  | [Out] ErrorCode^% | ec
| ) |  |

添加单条或多条焊接指令

参数

  cmds | 焊接指令列表，WMoveLCommand或WMoveCCommand或WMoveLPendulum，需要相同的指令
  cmdId | 本条指令的ID, 可用于查询指令执行信息
  ec | 错误码

## ◆ moveAppend() [3/5]

void rokae::clr::BaseRobot::moveAppend | ( | MoveCommand::Type | type,
|  | List< MoveCommand^>^ | cmd,
|  | System::String^% | cmdId,
|  | [Out] ErrorCode^% | ec
| ) |  |

添加单条或多条运动指令, 添加后调用moveStart()开始运动

参数

  type | 指令类型
  cmd | 指令列表, 允许的个数为1-100, 需为同类型指令
  cmdId | 本条指令的ID, 可用于查询指令执行信息
  ec | 错误码，仅反馈执行前的错误, 包括: 网络连接问题; 指令个数或类型不符

## ◆ moveAppend() [4/5]

void rokae::clr::BaseRobot::moveAppend | ( | MoveCommand::Type | type,
|  | MoveCommand^ | cmd,
|  | System::String^% | cmdId,
|  | [Out] ErrorCode^% | ec
| ) |  |

下发单条运动指令

参数

  type | 类型
  cmd | 指令
  cmdId | 本条指令的ID, 可用于查询指令执行信息。MoveWait指令没有信息反馈
  ec | 错误码

## ◆ moveAppend() [5/5]

void rokae::clr::BaseRobot::moveAppend | ( | PulseLCommand^ | cmd,
|  | System::String^% | cmdId,
|  | [Out] ErrorCode^% | ec
| ) |  |

添加PulseL指令

参数

  cmd | PulseLCommand
  cmdId | 本条指令的ID, 可用于查询指令执行信息
  ec | 错误码

## ◆ moveReset()

void rokae::clr::BaseRobot::moveReset | ( | [Out] ErrorCode^% | ec | ) |

运动重置, 清空已发送的运动指令, 清除执行信息。 Robot类在初始化时会调用一次运动重置。RL程序和SDK运动指令切换控制，需要先运动重置。

每次程序开始运行并第一次执行运动指令之前, 调用该函数来重置运动缓存

参数

  ec | 错误码

## ◆ moveStart()

void rokae::clr::BaseRobot::moveStart | ( | [Out] ErrorCode^% | ec | ) |

开始/继续运动

参数

  ec | 错误码

## ◆ operateMode()

OperateMode rokae::clr::BaseRobot::operateMode | ( | [Out] ErrorCode^% | ec | ) |

查询机器人当前操作模式

参数

  ec | 错误码

返回
  手动 | 自动

## ◆ operationState()

OperationState rokae::clr::BaseRobot::operationState | ( | [Out] ErrorCode^% | ec | ) |

查询机器人当前运行状态 (空闲, 运动中, 拖动开启等)

参数

  ec | 错误码

返回
  运行状态枚举类

## ◆ pauseProject()

void rokae::clr::BaseRobot::pauseProject | ( | [Out] ErrorCode^% | ec | ) |

暂停运行工程

参数

  ec | 错误码

## ◆ posture()

array< double > rokae::clr::BaseRobot::posture | ( | CoordinateType | ct,
|  | [Out] ErrorCode^% | ec
| ) |  |

获取机器人法兰或末端的当前位姿

参数

  ct | 坐标系类型 flangeInBase法兰相对于基坐标系; endInRef末端相对于外部参考坐标系。例如, 当设置了手持工具及外部工件后，该坐标系类型返回的是工具相对于工件坐标系的坐标。 再例如，若外部参考坐标系与基坐标系重合，那么返回的结果等同于末端相对于基坐标系的位姿。 endInWorld末端相对于世界坐标系
  ec | 错误码

返回
  double数组, [x, y, z, rx, ry, rz].

## ◆ powerState()

PowerState rokae::clr::BaseRobot::powerState | ( | [Out] ErrorCode^% | ec | ) |

查询机器人上下电以及急停状态

参数

  ec | 错误码

返回
  on-上电 | off-下电 | estop-急停 | gstop-安全门打开

## ◆ ppToMain()

void rokae::clr::BaseRobot::ppToMain | ( | [Out] ErrorCode^% | ec | ) |

程序指针跳转到main。调用后，等待控制器解析完工程后返回，阻塞时间视工程大小而定，超时时间设定为10秒。

参数

  ec | 错误码。错误码能提供的信息有限，不能反馈如RL语法错误、变量不存在等错误。可通过queryControllerLog()查询错误日志。

## ◆ projectsInfo()

List< RLProjectInfo^> rokae::clr::BaseRobot::projectsInfo | ( | [Out] ErrorCode^% | ec | ) |

查询工控机中RL工程名称及任务

参数

  ec | 错误码

返回
  工程信息列表，若没有创建工程则返回空列表

## ◆ queryControllerLog()

List< LogInfo^> rokae::clr::BaseRobot::queryControllerLog | ( | unsigned | count,
|  | LogInfo::Level | level,
|  | [Out] ErrorCode^% | ec
| ) |  |

查询控制器最新的日志

参数

  count | 查询个数，上限是10条
  level | 指定日志等级
  ec | 错误码

返回
  日志信息

## ◆ queryEventInfo()

EventInfo rokae::clr::BaseRobot::queryEventInfo | ( | Event | eventType,
|  | [Out] ErrorCode^% | ec
| ) |  |

查询事件信息。

参数

  eventType | 事件类型
  ec | 错误码

返回
  事件信息

## ◆ queryStateDataPublisherServerInfo()

int rokae::clr::BaseRobot::queryStateDataPublisherServerInfo | ( | List< String ^> ^ | client_addr,
|  | [Out] ErrorCode^% | ec
| ) |  |

查询状态数据发布服务端信息

参数

  client_addr | 客户端地址列表
  ec | 错误码

返回
  服务端状态：0-监听中 | 2-已连接 | 3-关闭 | -1-发生错误查询失败

## ◆ readRegister() [1/6]

void rokae::clr::BaseRobot::readRegister | ( | System::String^ | name,
|  | List< bool >^% | value,
|  | [Out] ErrorCode^% | ec
| ) |  |

读取bit/bool类型寄存器数组。

参数

  name | 寄存器名称
  value | 寄存器数值
  ec | 错误码

## ◆ readRegister() [2/6]

void rokae::clr::BaseRobot::readRegister | ( | System::String^ | name,
|  | List< float >^% | value,
|  | [Out] ErrorCode^% | ec
| ) |  |

读取float类型寄存器数组。

参数

  name | 寄存器名称
  value | 寄存器数值
  ec | 错误码

## ◆ readRegister() [3/6]

void rokae::clr::BaseRobot::readRegister | ( | System::String^ | name,
|  | List< int >^% | value,
|  | [Out] ErrorCode^% | ec
| ) |  |

读取int16/int32类型寄存器数组。

参数

  name | 寄存器名称
  value | 寄存器数值
  ec | 错误码

## ◆ readRegister() [4/6]

void rokae::clr::BaseRobot::readRegister | ( | System::String^ | name,
|  | unsigned | index,
|  | bool% | value,
|  | [Out] ErrorCode^% | ec
| ) |  |

读取bit/bool类型寄存器值。可读取单个寄存器，或按索引读取寄存器数组

参数

  name | 寄存器名称
  index | 按索引读取寄存器数组中元素，从0开始。下列两种情况会报错：1) 索引超出数组长度; 2) 寄存器不是数组但index大于0
  value | 寄存器数值
  ec | 错误码

## ◆ readRegister() [5/6]

void rokae::clr::BaseRobot::readRegister | ( | System::String^ | name,
|  | unsigned | index,
|  | float% | value,
|  | [Out] ErrorCode^% | ec
| ) |  |

读取float类型寄存器值。可读取单个寄存器，或按索引读取寄存器数组

参数

  name | 寄存器名称
  index | 按索引读取寄存器数组中元素，从0开始。下列两种情况会报错：1) 索引超出数组长度; 2) 寄存器不是数组但index大于0
  value | 寄存器数值
  ec | 错误码

## ◆ readRegister() [6/6]

void rokae::clr::BaseRobot::readRegister | ( | System::String^ | name,
|  | unsigned | index,
|  | int% | value,
|  | [Out] ErrorCode^% | ec
| ) |  |

读取int16/int32类型寄存器值。可读取单个寄存器，或按索引读取寄存器数组

参数

  name | 寄存器名称
  index | 按索引读取寄存器数组中元素，从0开始。下列两种情况会报错：1) 索引超出数组长度; 2) 寄存器不是数组但index大于0
  value | 寄存器数值
  ec | 错误码

## ◆ rebootSystem()

void rokae::clr::BaseRobot::rebootSystem | ( | [Out] ErrorCode^% | ec | ) |

重启工控机 注：在自动模式、下电状态、运动和非空闲状态不允许重启操作

参数

  ec | 错误码

## ◆ recoverState()

void rokae::clr::BaseRobot::recoverState | ( | int | item,
|  | [Out] ErrorCode^% | ec
| ) |  |

根据选项恢复机器人状态

参数

  item | 恢复选项，1：急停恢复
  ec | 错误码

## ◆ registerEnableSched()

void rokae::clr::BaseRobot::registerEnableSched | ( | bool | enable,
|  | [Out] ErrorCode ^ % | ec
| ) |  |

开始/停止预约.

启用状态，且自动模式，且上电，才可以开始预约。停止预约之后，已经预约的还会正常执行

参数

  enable | true - 开始预约 | false - 停止预约
  ec | 错误码

## ◆ registerSched()

void rokae::clr::BaseRobot::registerSched | ( | int | sched_id,
|  | [Out] ErrorCode ^ % | ec
| ) |  |

预约, 执行开始预约了之后才能预约

参数

  sched_id | 工位号ID
  ec | 错误码

## ◆ removeProject()

void rokae::clr::BaseRobot::removeProject | ( | String^ | project_name,
|  | bool | remove_all,
|  | [Out] ErrorCode^% | ec
| ) |  |

从sdk删除RL工程

参数

  project_name | 工程名
  remove_all | 是否删除所有工程,true:是 false:否
  ec | 错误码

## ◆ resetMoveInfoWatch()

void rokae::clr::BaseRobot::resetMoveInfoWatch | ( | [Out] ErrorCode^% | ec | ) |

重置运动信息监听

参数

  ec | 错误码

## ◆ robotInfo()

Info rokae::clr::BaseRobot::robotInfo | ( | [Out] ErrorCode^% | ec | ) |

查询机器人基本信息

参数

  ec | 错误码

返回
  机器人基本信息

## ◆ runProject()

void rokae::clr::BaseRobot::runProject | ( | [Out] ErrorCode^% | ec | ) |

开始运行当前加载的工程

参数

  ec | 错误码

## ◆ schedAdvancedSetting()

void rokae::clr::BaseRobot::schedAdvancedSetting | ( | String^ | cancelBehavior,
|  | [Out] ErrorCode ^ % | ec
| ) |  |

高级设置

参数

  cancelBehavior | 取消行为。"pause_project"：暂停工程；"unregister"：取消预约
  ec | 错误码

## ◆ sdkVersion()

String rokae::clr::BaseRobot::sdkVersion | ( |  | ) |

查询xCoreSDK版本

返回
  版本号

## ◆ setAO()

void rokae::clr::BaseRobot::setAO | ( | unsigned | board,
|  | unsigned | port,
|  | double | value,
|  | [Out] ErrorCode^% | ec
| ) |  |

设置模拟量输出信号

参数

  board | IO板序号
  port | 信号端口号
  value | 输出值
  ec | 错误码

## ◆ setBaseFrame()

void rokae::clr::BaseRobot::setBaseFrame | ( | Frame^ | frame,
|  | [Out] ErrorCode^% | ec
| ) |  |

设置基坐标系, 设置后仅保存数值，重启控制器后生效

参数

  frame | 坐标系，默认使用自定义安装方式
  ec | 错误码

## ◆ setConnectionHandler()

void rokae::clr::BaseRobot::setConnectionHandler | ( | ConnectionHandlerDelegate^ | handler | ) |

设置连接断开回调函数

参数

  handler | 回调函数, 参数为bool, true-连接 | false-断开

## ◆ setDefaultConfOpt()

void rokae::clr::BaseRobot::setDefaultConfOpt | ( | bool | forced,
|  | [Out] ErrorCode^% | ec
| ) |  |

设置是否使用轴配置数据(confData)计算逆解。初始值为false

参数

  forced | true - 使用运动指令的confData计算笛卡尔点位逆解, 如计算失败则返回错误; false - 不使用，逆解时会选取机械臂当前轴角度的最近解
  ec | 错误码

## ◆ setDefaultSpeed()

void rokae::clr::BaseRobot::setDefaultSpeed | ( | int | speed,
|  | [Out] ErrorCode^% | ec
| ) |  |

设定默认运动速度，初始值为100。该数值表示末端最大线速度(单位mm/s), 自动计算对应关节速度。 关节速度百分比划分为5个的范围:

- < 100 10%
- 100 ~ 200 30%
- 200 ~ 500 50%
- 500 ~ 800 80%
- > 800 100%

空间旋转速度为200°/s

参数

  speed | 该接口不对参数进行范围限制。末端线速度的实际有效范围分别是5-4000(协作), 5-7000(工业)。
  ec | 错误码

## ◆ setDefaultZone()

void rokae::clr::BaseRobot::setDefaultZone | ( | int | zone,
|  | [Out] ErrorCode^% | ec
| ) |  |

设定默认转弯区。初始值为为0 (fine, 无转弯区)。该数值表示运动最大转弯区半径(单位:mm), 自动计算转弯百分比 转弯百分比划分4个范围:

- < 1 0 (fine)
- 1 ~ 20 10 %
- 20 ~ 60 30 %
- > 60 100 %

参数

  zone | 该接口不对参数进行范围限制。转弯区半径大小实际有效范围是0-200。
  ec | 错误码

## ◆ setDI()

void rokae::clr::BaseRobot::setDI | ( | unsigned int | board,
|  | unsigned int | port,
|  | bool | state,
|  | [Out] ErrorCode^% | ec
| ) |  |

设置数字量输入信号，仅当输入仿真模式打开时可以设置(见setSimulationMode())

参数

  board | IO板序号
  port | 信号端口号
  state | true-开 | false-关
  ec | 错误码

## ◆ setDO()

void rokae::clr::BaseRobot::setDO | ( | unsigned int | board,
|  | unsigned int | port,
|  | bool | state,
|  | [Out] ErrorCode^% | ec
| ) |  |

设置数字量输出信号值

参数

  board | IO板序号
  port | 信号端口号
  state | true-开 | false-关
  ec | 错误码

## ◆ setEventWatcher()

void rokae::clr::BaseRobot::setEventWatcher | ( | Event | eventType,
|  | EventCallbackDelegate^ | callback,
|  | [Out] ErrorCode^% | ec
| ) |  |

设置接收事件的回调函数。

参数

  eventType | 事件类型
  callback | 处理事件的回调函数 Event::moveExecution 回调函数在同一个线程执行, 请避免函数中有执行时间较长的操作 Event::safety 每次独立线程回调, 没有执行时间的限制
  ec | 错误码

## ◆ setHmiDisconnectBehaviour()

void rokae::clr::BaseRobot::setHmiDisconnectBehaviour | ( | int | behaviour,
|  | int | detect_time,
|  | [Out] ErrorCode ^ % | ec
| ) |  |

设置HMI断开连接后控制器的行为

参数

  behaviour | 断连行为。0 - 无行为；1 - Stop0，类比手动模式下电
  detect_time | 断连检测时间，单位：ms，范围：(0,10000]
  ec | 错误码

## ◆ setMaxCacheSize()

void rokae::clr::BaseRobot::setMaxCacheSize | ( | int | number,
|  | [Out] ErrorCode^% | ec
| ) |  |

设置最大缓存指令个数，指发送到控制器待规划的路径点个数，允许的范围[1,300]，初始值为30。

如果轨迹多为短轨迹，可以调大这个数值，避免因指令发送不及时导致机器人停止运动(停止后如果有未执行的指令，可moveStart()继续);

参数

  number | 个数
  ec | 错误码

## ◆ setMotionControlMode()

void rokae::clr::BaseRobot::setMotionControlMode | ( | MotionControlMode | mode,
|  | [Out] ErrorCode^% | ec
| ) |  |

设置运动控制模式.

在调用各运动控制接口之前, 必须设置对应的控制模式。

参数

  mode | 模式
  ec | 错误码

## ◆ setOperateMode()

void rokae::clr::BaseRobot::setOperateMode | ( | OperateMode | mode,
|  | [Out] ErrorCode^% | ec
| ) |  |

切换手自动模式

参数

  mode | 手动/自动
  ec | 错误码

## ◆ setPowerState()

void rokae::clr::BaseRobot::setPowerState | ( | Boolean | on,
|  | [Out] ErrorCode^% | ec
| ) |  |

机器人上下电。注: 只有无外接使能开关或示教器的机器人才能手动模式上电。

参数

  on | true-上电 | false-下电
  ec | 错误码

## ◆ setProjectRunningOpt()

void rokae::clr::BaseRobot::setProjectRunningOpt | ( | double | rate,
|  | bool | loop,
|  | [Out] ErrorCode^% | ec
| ) |  |

更改工程的运行速度和循环模式

参数

  rate | 运行速率，范围 0.01 - 1
  loop | true - 循环执行 | false - 单次执行
  ec | 错误码

## ◆ setRailParameter() [1/6]

void rokae::clr::BaseRobot::setRailParameter | ( | System::String^ | name,
|  | array< double >^ | value,
|  | [Out] ErrorCode^% | ec
| ) |  |

设置导轨软限位和运动范围

参数

  name | 参数名，见value说明
  value | 参数及参数名 软限位(m), [下限,上限] - softLimit 运动范围(m), [下限,上限] - range
  ec | 错误码。参数名不存在或数据类型不匹配返回错误码

## ◆ setRailParameter() [2/6]

void rokae::clr::BaseRobot::setRailParameter | ( | System::String^ | name,
|  | bool | value,
|  | [Out] ErrorCode^% | ec
| ) |  |

打开关闭导轨

参数

  name | 参数名，"enable"
  value | true - 打开
  ec | 错误码。参数名不存在或数据类型不匹配返回错误码

## ◆ setRailParameter() [3/6]

void rokae::clr::BaseRobot::setRailParameter | ( | System::String^ | name,
|  | double | value,
|  | [Out] ErrorCode^% | ec
| ) |  |

设置导轨参数

参数

  name | 参数名，见value说明
  value | 参数及参数名 减速比 - reductionRatio 最大速度(m/s) - maxSpeed 最大加速度（m/s^2) - maxAcc 最大加加速度(m/s^3) - maxJerk
  ec | 错误码。参数名不存在或数据类型不匹配返回错误码

## ◆ setRailParameter() [4/6]

void rokae::clr::BaseRobot::setRailParameter | ( | System::String^ | name,
|  | Frame^ | value,
|  | [Out] ErrorCode^% | ec
| ) |  |

设置导轨基坐标系

参数

  name | 参数名，"baseFrame"
  value | 基坐标系数值
  ec | 错误码。参数名不存在或数据类型不匹配返回错误码

## ◆ setRailParameter() [5/6]

void rokae::clr::BaseRobot::setRailParameter | ( | System::String^ | name,
|  | int | value,
|  | [Out] ErrorCode^% | ec
| ) |  |

设置导轨参数

参数

  name | 参数名，见value说明
  value | 参数及参数名 编码器分辨率 - encoderResolution 电机最大转速(rpm) - motorSpeed
  ec | 错误码。参数名不存在或数据类型不匹配返回错误码

## ◆ setRailParameter() [6/6]

void rokae::clr::BaseRobot::setRailParameter | ( | System::String^ | name,
|  | System::String^ | value,
|  | [Out] ErrorCode^% | ec
| ) |  |

设置导轨名称

参数

  name | 参数名，"name"
  value | 导轨名称
  ec | 错误码。参数名不存在或数据类型不匹配返回错误码

## ◆ setSched()

void rokae::clr::BaseRobot::setSched | ( | SchedSetting^ | scheds,
|  | [Out] ErrorCode ^ % | ec
| ) |  |

预约设置

参数

  scheds | 预约设置
  ec | 错误码

## ◆ setSimulationMode()

void rokae::clr::BaseRobot::setSimulationMode | ( | bool | state,
|  | [Out] ErrorCode^% | ec
| ) |  |

设置输入仿真模式

参数

  state | true - 打开 | false - 关闭
  ec | 错误码

## ◆ setSoftLimit()

void rokae::clr::BaseRobot::setSoftLimit | ( | bool | enable,
|  | array< double, 2 >^ | limits,
|  | [Out] ErrorCode^% | ec
| ) |  |

设置软限位。软限位设定要求：

- 打开软限位时，机械臂应下电且处于手动模式
- 软限位不能超过机械硬限位
- 机械臂当前各轴角度应在设定的限位范围内

参数

  enable | true - 打开 | false - 关闭
  limits | 各轴[下限, 上限]，单位：弧度。 当limits为默认值时，视为仅打开软限位不修改数值; 不为默认值时，先修改软限位再打开 关闭软限位时不会修改限位数值
  ec | 错误码

异常

  System::NullReferenceException | Robot类未构造

## ◆ setTeachPendantMode()

void rokae::clr::BaseRobot::setTeachPendantMode | ( | bool | enable,
|  | [Out] ErrorCode^% | ec
| ) |  |

示教器热插拔。注：仅部分机型支持示教器热插拔，不支持的机型会返回错误码。不使用示教器后，使能按键和急停按键将失效。

参数

  enable | true - 使用示教器 | false - 不使用示教器
  ec | 当前机器人状态不能切换(运动中/手动模式上电); 机型等原因切换失败

## ◆ setToolset() [1/2]

void rokae::clr::BaseRobot::setToolset | ( | System::String^ | toolName,
|  | System::String^ | wobjName,
|  | [Out] ErrorCode^% | ec
| ) |  |

使用已创建的工具和工件，设置工具工件组信息

设置前提: 已加载一个RL工程，且创建了工具和工件。否则，只能设置为默认的工具工件，即"tool0"和"wobj0"。一组工具工件无法同时为手持或外部；如果有冲突，以工具的位置为准，例如工具工件同时为手持，不会返回错误，但是工件的坐标系变成了外部

参数

  toolName | 工具名称
  wobjName | 工件名称
  ec | 错误码

## ◆ setToolset() [2/2]

void rokae::clr::BaseRobot::setToolset | ( | Toolset^ | toolset,
|  | [Out] ErrorCode^% | ec
| ) |  |

设置工具工件组信息。

此工具工件组仅为SDK运动控制使用, 不与RL工程相关。 设置后RobotAssist右上角会显示“toolx", "wobjx", 状态监控显示的末端坐标也会变化。 除此接口外, 如果通过RobotAssist更改默认工具工件(右上角的选项), 该工具工件组也会相应更改. </remarks> <param name="toolset">工具工件组信息</param> <param name="ec">错误码

## ◆ startJog()

void rokae::clr::BaseRobot::startJog | ( | JogSpace | space,
|  | double | rate,
|  | double | step,
|  | unsigned | index,
|  | bool | direction,
|  | [Out] ErrorCode^% | ec
| ) |  |

开始jog机器人，需要切换到手动操作模式。调用此接口并且机器人开始运动后，无论机器人是否已经自行停止，都必须调用stop()来结束jog操作，否则机器人会一直处于jog的运行状态。

参数

  space | jog参考坐标系。 工具/工件坐标系使用原则同setToolset() 工业六轴机型和xMateCR和xMateSR六轴机型支持两种奇异规避方式Jog：Space.singularityAvoidMode, Space.baseParallelMode CR5轴机型支持平行基座模式Jog：Space::baseParallelMode
  rate | 速率, 范围 0.01 - 1
  step | 步长。单位: 笛卡尔空间-毫米 | 轴空间-度。步长大于0即可，不设置上限，如果机器人无法继续jog会自行停止运动。
  index | 根据不同的space，该参数含义如下： 世界坐标系,基坐标系,法兰坐标系,工具工件坐标系: 6轴机型: 0~5分别对应X, Y, Z, Rx, Ry, Rz; >5代表外部轴(若有)。 7轴机型6代表肘关节, > 6代表外部轴(若有) 轴空间: 关节序号，从0开始计数 奇异规避模式,平行基座模式: 六轴机型0~5分别对应X, Y, Z, J4(4轴), Ry, J6(6轴); 5轴机型0~4分别对应X, Y, Z, Ry, J5(5轴)
  direction | 根据不同的space和index，该参数含义如下： 奇异规避模式 J4: true - ±180° | false - 0° 平行基座模式 J4,Ry: true - ±180° | false - 0° 其它，true - 正向 | false - 负向
  ec | 错误码

## ◆ startReceiveRobotState()

void rokae::clr::BaseRobot::startReceiveRobotState | ( | int | interval,
|  | array< System::String^>^ | fields
| ) |  |

让机器人控制器开始发送实时状态数据。阻塞等待收到第一帧消息，超时时间为3秒

参数

  interval | 控制器发送状态数据的间隔，单位ms，允许的时长：1ms/2ms/4ms/8ms/1s
  fields | 接收的机器人状态数据, 最大总长度为1024个字节。支持的数据及名称见getStateData()

异常

  rokae::clr::ApiException | 设置了不支持的状态数据；或机器人无法开始发送数据；或总长度超过1024; 或已经开始发送数据；或超时后仍未收到第一帧数据
  System::NullReferenceException | Robot类未构造

## ◆ startReceiveRobotState_Nrt()

void rokae::clr::BaseRobot::startReceiveRobotState_Nrt | ( | int | interval,
|  | List< String ^> ^ | extend_fields,
|  | int | port,
|  | [Out] ErrorCode^% | ec
| ) |  |

打开机器人非实时状态数据发送功能。 与startReceiveRobotState()有所区别，这个状态数据是非实时的，通过TCP发送，机器人作为服务端，检测到 客户端连接后开始发送。发送的数据分为固定数据和扩展数据两部分。 关机设置保存，下次开机自启动

参数

  interval | 发送间隔，单位毫秒[100, 300000]
  ec | 错误码
  extend_fields | 扩展数据
  port | 端口，固定为16666, 暂不支持修改

## ◆ stop()

void rokae::clr::BaseRobot::stop | ( | [Out] ErrorCode^% | ec | ) |

暂停机器人运动; 暂停后可调用moveStart()继续运动。若需要完全停止，不再执行已添加的指令，可调用moveReset()

目前支持stop2停止类型:规划停止不断电, 见StopLevel。

参数

  ec | 错误码

## ◆ syncTimeWithServer()

void rokae::clr::BaseRobot::syncTimeWithServer | ( | [Out] ErrorCode^% | ec | ) |

手动同步一次时间，远端IP是通过configNtp配置的。耗时几秒钟，阻塞等待同步完成，接口预设的超时时间是12秒

参数

  ec | 错误码，NTP服务未正确安装，或无法和服务端同步

## ◆ toolset()

Toolset rokae::clr::BaseRobot::toolset | ( | [Out] ErrorCode^% | ec | ) |

查询当前工具工件组信息.

此工具工件组仅为SDK运动控制使用, 不与RL工程相关

参数

  ec | 错误码

返回
  工具工件组

## ◆ toolsInfo()

List< WorkToolInfo^> rokae::clr::BaseRobot::toolsInfo | ( | [Out] ErrorCode^% | ec | ) |

查询当前加载工程的工具信息

参数

  ec | 错误码

返回
  工具信息列表, 若未加载任何工程或没有创建工具, 则返回默认工具tool0的信息

## ◆ triggerSoftEstop()

void rokae::clr::BaseRobot::triggerSoftEstop | ( | bool | enable,
|  | [Out] ErrorCode ^% | ec
| ) |  |

触发/恢复软急停状态

参数

  enable | true-触发 | false-恢复
  ec | 错误码

## ◆ unregisterAllSched()

void rokae::clr::BaseRobot::unregisterAllSched | ( | [Out] ErrorCode ^ % | ec | ) |

取消所有预约

参数

  ec | 错误码

## ◆ unregisterSched()

void rokae::clr::BaseRobot::unregisterSched | ( | int | sched_id,
|  | [Out] ErrorCode ^ % | ec
| ) |  |

取消预约

参数

  sched_id | 工位号ID
  ec | 错误码

## ◆ updateRobotState()

unsigned rokae::clr::BaseRobot::updateRobotState | ( | int | timeout_ms | ) |

接收一次机器人状态数据，在每周期读取数据前，需调用此函数。阻塞等待收到新数据，或超时返回。 建议按照设定的发送频率来调用，以获取最新的数据

参数

  timeout_ms | 超时时间[ms]

返回
  接收到的数据长度。如果超时前没有收到数据，那么返回0。

异常

  rokae::clr::ApiException | 无法收到数据；或收到的数据有错误导致无法解析

## ◆ welding()

Welding rokae::clr::BaseRobot::welding | ( |  | ) |

返回焊接类

返回
  Welding

## ◆ wobjsInfo()

List< WorkToolInfo^> rokae::clr::BaseRobot::wobjsInfo | ( | [Out] ErrorCode^% | ec | ) |

查询当前加载工程的工件信息

参数

  ec | 错误码

返回
  工件信息列表, 若未加载任何工程或没有创建工件, 则返回空vector

## ◆ writeRegister() [1/6]

void rokae::clr::BaseRobot::writeRegister | ( | System::String^ | name,
|  | unsigned | index,
|  | array< bool >^ | value,
|  | [Out] ErrorCode^% | ec
| ) |  |

写bool/bit类型寄存器数组

参数

  name | 寄存器名称
  index | 数组索引，写入数组时忽略
  value | 写入的数值
  ec | 错误码

## ◆ writeRegister() [2/6]

void rokae::clr::BaseRobot::writeRegister | ( | System::String^ | name,
|  | unsigned | index,
|  | array< float >^ | value,
|  | [Out] ErrorCode^% | ec
| ) |  |

写float类型寄存器数组。

参数

  name | 寄存器名称
  index | 数组索引，写入数组时忽略
  value | 写入的数值
  ec | 错误码

## ◆ writeRegister() [3/6]

void rokae::clr::BaseRobot::writeRegister | ( | System::String^ | name,
|  | unsigned | index,
|  | array< int >^ | value,
|  | [Out] ErrorCode^% | ec
| ) |  |

写int16/int32类型寄存器数组。

参数

  name | 寄存器名称
  index | 数组索引，写入数组时忽略
  value | 写入的数值
  ec | 错误码

## ◆ writeRegister() [4/6]

void rokae::clr::BaseRobot::writeRegister | ( | System::String^ | name,
|  | unsigned | index,
|  | bool | value,
|  | [Out] ErrorCode^% | ec
| ) |  |

写bool/bit类型寄存器值。可写入单个寄存器，或按索引写入寄存器数组中某一元素。

参数

  name | 寄存器名称
  index | 数组索引，从0开始。下列两种情况会报错：1) 索引超出数组长度; 2) 寄存器不是数组但index大于0
  value | 写入的数值
  ec | 错误码

## ◆ writeRegister() [5/6]

void rokae::clr::BaseRobot::writeRegister | ( | System::String^ | name,
|  | unsigned | index,
|  | float | value,
|  | [Out] ErrorCode^% | ec
| ) |  |

写float类型寄存器值。可写入单个寄存器，或按索引写入寄存器数组中某一元素。

参数

  name | 寄存器名称
  index | 数组索引，从0开始。下列两种情况会报错：1) 索引超出数组长度; 2) 寄存器不是数组但index大于0
  value | 写入的数值
  ec | 错误码

## ◆ writeRegister() [6/6]

void rokae::clr::BaseRobot::writeRegister | ( | System::String^ | name,
|  | unsigned | index,
|  | Int32 | value,
|  | [Out] ErrorCode^% | ec
| ) |  |

写byte/int16/int32寄存器值。可写入单个寄存器，或按索引写入寄存器数组中某一元素。

参数

  name | 寄存器名称
  index | 数组索引，从0开始。下列两种情况会报错：1) 索引超出数组长度; 2) 寄存器不是数组但index大于0
  value | 写入的数值
  ec | 错误码

## 类成员变量说明

## ◆ _anticollisionStateManagedDelegate

EventCallbackDelegate rokae::clr::BaseRobot::_anticollisionStateManagedDelegate
| static protected

在文件 robot_cli.hpp 第 83 行定义.

## ◆ _anticollisionStateNativeDelegate

EventCallbackNativeDelegate rokae::clr::BaseRobot::_anticollisionStateNativeDelegate
| protected

在文件 robot_cli.hpp 第 82 行定义.

## ◆ _arcWeldStateManagedDelegate

EventCallbackDelegate rokae::clr::BaseRobot::_arcWeldStateManagedDelegate
| static protected

在文件 robot_cli.hpp 第 79 行定义.

## ◆ _arcWeldStateNativeDelegate

EventCallbackNativeDelegate rokae::clr::BaseRobot::_arcWeldStateNativeDelegate
| protected

在文件 robot_cli.hpp 第 78 行定义.

## ◆ _connectionHandlerDelegate

ConnectionHandlerDelegate rokae::clr::BaseRobot::_connectionHandlerDelegate
| protected

在文件 robot_cli.hpp 第 89 行定义.

## ◆ _disconnectionBehaviourManagedDelegate

EventCallbackDelegate rokae::clr::BaseRobot::_disconnectionBehaviourManagedDelegate
| static protected

在文件 robot_cli.hpp 第 87 行定义.

## ◆ _disconnectionBehaviourNativeDelegate

EventCallbackNativeDelegate rokae::clr::BaseRobot::_disconnectionBehaviourNativeDelegate
| protected

在文件 robot_cli.hpp 第 86 行定义.

## ◆ _lasertrackStateManagedDelegate

EventCallbackDelegate rokae::clr::BaseRobot::_lasertrackStateManagedDelegate
| static protected

在文件 robot_cli.hpp 第 81 行定义.

## ◆ _lasertrackStateNativeDelegate

EventCallbackNativeDelegate rokae::clr::BaseRobot::_lasertrackStateNativeDelegate
| protected

在文件 robot_cli.hpp 第 80 行定义.

## ◆ _logReporterManagedDelegate

EventCallbackDelegate rokae::clr::BaseRobot::_logReporterManagedDelegate
| static protected

在文件 robot_cli.hpp 第 77 行定义.

## ◆ _logReporterNativeDelegate

EventCallbackNativeDelegate rokae::clr::BaseRobot::_logReporterNativeDelegate
| protected

在文件 robot_cli.hpp 第 76 行定义.

## ◆ _moveManagedDelegate

EventCallbackDelegate rokae::clr::BaseRobot::_moveManagedDelegate
| static protected

在文件 robot_cli.hpp 第 71 行定义.

## ◆ _moveNativeDelegate

EventCallbackNativeDelegate rokae::clr::BaseRobot::_moveNativeDelegate
| protected

在文件 robot_cli.hpp 第 70 行定义.

## ◆ _rlExecutionManagedDelegate

EventCallbackDelegate rokae::clr::BaseRobot::_rlExecutionManagedDelegate
| static protected

在文件 robot_cli.hpp 第 75 行定义.

## ◆ _rlExecutionNativeDelegate

EventCallbackNativeDelegate rokae::clr::BaseRobot::_rlExecutionNativeDelegate
| protected

在文件 robot_cli.hpp 第 74 行定义.

## ◆ _safetyManagedDelegate

EventCallbackDelegate rokae::clr::BaseRobot::_safetyManagedDelegate
| static protected

在文件 robot_cli.hpp 第 73 行定义.

## ◆ _safetyNativeDelegate

EventCallbackNativeDelegate rokae::clr::BaseRobot::_safetyNativeDelegate
| protected

在文件 robot_cli.hpp 第 72 行定义.

## ◆ _schedStateManagedDelegate

EventCallbackDelegate rokae::clr::BaseRobot::_schedStateManagedDelegate
| static protected

在文件 robot_cli.hpp 第 85 行定义.

## ◆ _schedStateNativeDelegate

EventCallbackNativeDelegate rokae::clr::BaseRobot::_schedStateNativeDelegate
| protected

在文件 robot_cli.hpp 第 84 行定义.

## ◆ cobot5

rokae::xMateCr5Robot* rokae::clr::BaseRobot::cobot5
| protected

在文件 robot_cli.hpp 第 51 行定义.

## ◆ cobot6

rokae::xMateRobot* rokae::clr::BaseRobot::cobot6
| protected

在文件 robot_cli.hpp 第 52 行定义.

## ◆ cobot7

rokae::xMateErProRobot* rokae::clr::BaseRobot::cobot7
| protected

在文件 robot_cli.hpp 第 53 行定义.

## ◆ ir3

rokae::PCB3Robot* rokae::clr::BaseRobot::ir3
| protected

在文件 robot_cli.hpp 第 49 行定义.

## ◆ ir4

rokae::PCB4Robot* rokae::clr::BaseRobot::ir4
| protected

在文件 robot_cli.hpp 第 50 行定义.

## ◆ ir6

rokae::StandardRobot* rokae::clr::BaseRobot::ir6
| protected

在文件 robot_cli.hpp 第 48 行定义.

## ◆ model3

rokae::Model_T<3>* rokae::clr::BaseRobot::model3
| protected

在文件 robot_cli.hpp 第 54 行定义.

## ◆ model4

rokae::Model_T<4>* rokae::clr::BaseRobot::model4
| protected

在文件 robot_cli.hpp 第 55 行定义.

## ◆ model5

rokae::Model_T<5>* rokae::clr::BaseRobot::model5
| protected

在文件 robot_cli.hpp 第 56 行定义.

## ◆ model6

rokae::Model_T<6>* rokae::clr::BaseRobot::model6
| protected

在文件 robot_cli.hpp 第 57 行定义.

## ◆ model7

rokae::Model_T<7>* rokae::clr::BaseRobot::model7
| protected

在文件 robot_cli.hpp 第 58 行定义.

## ◆ robot

rokae::BaseRobot* rokae::clr::BaseRobot::robot
| protected

在文件 robot_cli.hpp 第 47 行定义.

该类的文档由以下文件生成:

- robot_cli.hpp