| xCore-SDK 0.7.1 xCore SDK C# API

data_types_cli.hpp
浏览该文件的文档.
1
8#pragma once
9#ifndef XCORESDK_SRC_CLI_DATA_TYPES_CLI_HPP_
10#define XCORESDK_SRC_CLI_DATA_TYPES_CLI_HPP_
11
12#include <unordered_map>
13#include <any>
14
15 using namespace System;
16 using namespace System::Collections::Generic;
17
18 namespace rokae::clr {
19
23 public ref class ErrorCode {
24 private:
25 int value_;
26 String^ message_;
27 public:
28
29 ErrorCode(int v, String^ m) : value_(v), message_(m) {};
33 property String^ message {
34 String^ get() {
35 return message_;
36 }
37 }
41 property int value {
42 int get() {
43 return value_;
44 }
45 }
46 };
47
51 public enum class PowerState {
53 on = 0,
55 off = 1,
57 estop = 2,
59 gstop = 3,
61 unknown = -1
62 };
63
67 public enum class OperateMode {
69 manual = 0,
71 automatic = 1,
73 unknown = -1
74 };
75
79 public enum class OperationState {
81 idle = 0,
83 jog = 1,
85 rtControlling = 2,
87 drag = 3,
89 rlProgram = 4,
91 demo = 5,
93 dynamicIdentify = 6,
95 frictionIdentify = 7,
97 loadIdentify = 8,
99 moving = 9,
101 jogging = 10,
103 unknown = -1
104 };
105
109 public enum class CoordinateType {
111 flangeInBase,
113 endInRef
114 };
115
119 public enum class StopLevel {
121 stop0,
123 stop1,
125 stop2,
127 suppleStop
128 };
129
133 public enum class MotionControlMode {
135 Idle,
137 NrtCommand,
139 NrtRLTask,
141 RtCommand,
142 };
143
147 public enum class JogSpace {
149 world = 0,
151 flange,
153 baseFrame,
155 toolFrame,
157 wobjFrame,
159 jointSpace,
161 singularityAvoidMode,
163 baseParallelMode
164 };
165
169 public enum class FrameType {
171 world = 0,
173 baseFrame = 1,
175 flange = 2,
177 tool = 3,
179 wobj = 4,
181 path = 5,
183 rail = 6
184 };
185
189 public value struct DragOpt {
190 public:
191 enum class Space {
193 jointSpace = 0,
195 cartesianSpace = 1
196 };
197 enum class Type {
199 translationOnly = 0,
201 rotationOnly = 1,
203 freely = 2
204 };
205 };
206
210 public value struct xPanelOpt {
214 enum class Vout {
216 off,
218 reserve,
220 supply12v,
222 supply24v
223 };
224 };
225
229 public enum class AvoidSingularityMethod {
231 lockAxis4,
233 wrist,
235 jointWay
236 };
237
238 typedef System::Collections::Generic::Dictionary<String^, System::Object^>^ EventInfo;
239 public delegate void EventCallbackDelegate(EventInfo);
240 public delegate void EventCallbackNativeDelegate(const std::unordered_map<std::string, std::any>&);
241 typedef void(__stdcall * EventCallbackPtr)(const std::unordered_map<std::string, std::any> &);
242
243 public delegate void ConnectionHandlerDelegate(bool);
244 typedef void(__stdcall* ConnectionHandlerPtr)(bool);
245
249 public enum class Event {
251 moveExecution,
253 safety,
255 rlExecution,
257 logReporter
258 };
259
263 public value struct Info {
265 String^ id;
267 String^ mac;
269 String^ version;
271 String^ type;
273 Int32 joint_num;
274 };
275
279 public ref class Frame {
280 public:
286 Frame(array<double>^ _trans, array<double>^ _rpy) : trans(_trans), rpy(_rpy) {}
287
292 Frame(array<double>^ _frame) : trans(gcnew array<double>(3)), rpy(gcnew array<double>(3)) {
293 if (_frame->Length < 6) {
294 throw gcnew System::IndexOutOfRangeException();
295 }
296 trans[0] = _frame[0];
297 trans[1] = _frame[1];
298 trans[2] = _frame[2];
299 rpy[0] = _frame[3];
300 rpy[1] = _frame[4];
301 rpy[2] = _frame[5];
302 }
303
307 Frame(): trans(gcnew array<double>(3)), rpy(gcnew array<double>(3)){}
309 array<double>^ trans;
311 array<double>^ rpy;
312 };
313
317 public ref class CartesianPosition : public Frame {
318 public:
322 ref class Offset {
323 public:
325 enum class Type {
327 none,
329 offs,
331 relTool
332 };
333 Offset(): type(Type::none), frame(gcnew Frame()) {};
334 Type type;
335 Frame^ frame;
336 };
337 CartesianPosition(): Frame(), elbow(0), confData(gcnew List<int>), external(gcnew List<double>) {};
338
340 double elbow;
342 List<int>^ confData;
344 List<double>^ external;
345 };
346
350 public ref class JointPosition {
351 public:
352 JointPosition() : joints(gcnew List<double>()), external(gcnew List<double>()) {};
354 List<double>^ joints;
356 List<double>^ external;
357 };
358
362 public ref class MoveCommand {
363 public:
367 enum class Type {
369 MoveL,
371 MoveJ,
373 MoveAbsJ,
375 MoveC,
377 MoveCF,
379 MoveSP,
381 MoveWait
382
383 };
384
386 CartesianPosition^ cartTarget;
388 JointPosition^ jointTarget;
390 CartesianPosition^ auxPoint;
392 CartesianPosition::Offset^ cartTargetOffset;
394 CartesianPosition::Offset^ auxPointOffset;
396 double speed;
400 double jointSpeed;
403 double rotSpeed;
405 double zone;
407 String^ customInfo;
408
419 List<double>^ args;
420
421 MoveCommand() : cartTarget(gcnew CartesianPosition()),
422 jointTarget(gcnew JointPosition()),
423 auxPoint(gcnew CartesianPosition()),
424 cartTargetOffset(gcnew CartesianPosition::Offset()),
425 auxPointOffset(gcnew CartesianPosition::Offset()),
426 speed(-1), jointSpeed(-1), rotSpeed(-1), zone(-1), customInfo(gcnew String("")), args(gcnew List<double>()) {};
427 };
428
432 public ref class Load {
433 public:
434 Load(): mass(0.0), cog(gcnew array<double>(3)), inertia(gcnew array<double>(3)){}
435 Load(double m, array<double>^ c, array<double>^ i): mass(m), cog(c), inertia(i) {}
437 double mass;
439 array<double>^ cog;
441 array<double>^ inertia;
442 };
443
447 public value struct StateList {
451 array<double>^ joint_pos;
452
456 CartesianPosition^ cart_pos;
457
461 array<System::Tuple<String^, Boolean>^>^ digital_signals;
465 array<System::Tuple<String^, Double>^>^ analog_signals;
469 OperateMode operation_mode;
473 double speed_override;
474 };
475
476
481 public ref class Toolset {
482 public:
483 Toolset() : load(gcnew Load()), end(gcnew Frame()), reference(gcnew Frame()) {}
485 Load^ load;
487 Frame^ end;
489 Frame^ reference;
490 };
491
495 public ref class FrameCalibrationResult {
496 public:
497 FrameCalibrationResult() : frame(gcnew Frame()), errors(gcnew array<double>(3)) {}
498 FrameCalibrationResult(Frame^ f, array<double>^ e): frame(f), errors(e){}
500 Frame^ frame;
502 array<double>^ errors{};
503 };
504
508 public ref class LogInfo {
509 public:
511 enum class Level {
513 info,
515 warning,
517 error
518 };
519 LogInfo(int _id, String^ ts, String^ ct, String^ r): id(_id),
520 timestamp(ts), content(ct), repair(r) {}
522 const int id;
524 String^ timestamp;
526 String^ content;
528 String^ repair;
529 };
530
534 public ref class RLProjectInfo {
535 public:
536 RLProjectInfo(String^ n): name(n), taskList(gcnew List<String^>()){}
538 String^ name;
540 List<String^>^ taskList;
541 };
542
546 public ref class WorkToolInfo {
547 public:
548 WorkToolInfo(): name(gcnew String("")), alias(gcnew String("")),
549 robotHeld(false), pos(gcnew Frame()), load(gcnew Load()) {}
550 WorkToolInfo(String^ n, String^ a, bool isHeld, Frame^ p, Load^ l):
551 name(n), alias(a), robotHeld(isHeld), pos(p), load(l) {}
552
554 String^ name;
556 String^ alias;
558 bool robotHeld;
560 Frame^ pos;
562 Load^ load;
563 };
564
565}
566#endif // XCORESDK_SRC_CLI_DATA_TYPES_CLI_HPP_
rokae::clr::CartesianPosition::Offset
偏移
Definition: data_types_cli.hpp:322
rokae::clr::CartesianPosition::Offset::Type
Type
偏移类型
Definition: data_types_cli.hpp:325
rokae::clr::CartesianPosition::Offset::type
Type type
偏移类型
Definition: data_types_cli.hpp:334
rokae::clr::CartesianPosition::Offset::frame
Frame frame
相对于指定工具/工件坐标系的偏移
Definition: data_types_cli.hpp:335
rokae::clr::CartesianPosition
笛卡尔点位
Definition: data_types_cli.hpp:317
rokae::clr::CartesianPosition::external
List< double > external
外部关节数值,单位:弧度|米。导轨单位米
Definition: data_types_cli.hpp:344
rokae::clr::CartesianPosition::elbow
double elbow
臂角, 适用于7轴机器人, 单位：弧度
Definition: data_types_cli.hpp:340
rokae::clr::CartesianPosition::confData
List< int > confData
轴配置数据，[cf1, cf2, cf3, cf4, cf5, cf6, cf7, cfx]
Definition: data_types_cli.hpp:342
rokae::clr::ErrorCode
xCoreSDK错误码
Definition: data_types_cli.hpp:23
rokae::clr::FrameCalibrationResult
坐标系标定结果
Definition: data_types_cli.hpp:495
rokae::clr::FrameCalibrationResult::errors
array< double > errors
样本点与TCP标定值的偏差, 依次为最小值,平均值,最大值, 单位m
Definition: data_types_cli.hpp:502
rokae::clr::FrameCalibrationResult::frame
Frame frame
标定结果坐标系
Definition: data_types_cli.hpp:500
rokae::clr::Frame
坐标系
Definition: data_types_cli.hpp:279
rokae::clr::Frame::rpy
array< double > rpy
欧拉角 [Rx, Ry, Rz], 单位:弧度
Definition: data_types_cli.hpp:311
rokae::clr::Frame::Frame
Frame(array< double >^ _trans, array< double >^ _rpy)
Constructor
Definition: data_types_cli.hpp:286
rokae::clr::Frame::Frame
Frame()
Constructor.
Definition: data_types_cli.hpp:307
rokae::clr::Frame::trans
array< double > trans
平移量 [X, Y, Z], 单位:米
Definition: data_types_cli.hpp:309
rokae::clr::Frame::Frame
Frame(array< double >^ _frame)
Constructor
Definition: data_types_cli.hpp:292
rokae::clr::JointPosition
关节点位
Definition: data_types_cli.hpp:350
rokae::clr::JointPosition::joints
List< double > joints
关节角度值, 单位:弧度
Definition: data_types_cli.hpp:354
rokae::clr::JointPosition::external
List< double > external
外部关节数值, 单位:弧度|米。导轨单位米
Definition: data_types_cli.hpp:356
rokae::clr::Load
负载信息
Definition: data_types_cli.hpp:432
rokae::clr::Load::mass
double mass
负载质量, 单位:千克
Definition: data_types_cli.hpp:437
rokae::clr::Load::inertia
array< double > inertia
惯量 [ix, iy, iz], 单位:千克·平方米
Definition: data_types_cli.hpp:441
rokae::clr::Load::cog
array< double > cog
质心 [x, y, z], 单位:米
Definition: data_types_cli.hpp:439
rokae::clr::LogInfo
控制器日志信息
Definition: data_types_cli.hpp:508
rokae::clr::LogInfo::timestamp
String timestamp
日期及时间
Definition: data_types_cli.hpp:524
rokae::clr::LogInfo::repair
String repair
修复办法
Definition: data_types_cli.hpp:528
rokae::clr::LogInfo::content
String content
日志内容
Definition: data_types_cli.hpp:526
rokae::clr::LogInfo::Level
Level
日志等级
Definition: data_types_cli.hpp:511
rokae::clr::LogInfo::id
const int id
日志ID号
Definition: data_types_cli.hpp:522
rokae::clr::MoveCommand
非实时运动指令
Definition: data_types_cli.hpp:362
rokae::clr::MoveCommand::customInfo
String customInfo
自定义信息，可在运动信息反馈中返回出来
Definition: data_types_cli.hpp:407
rokae::clr::MoveCommand::cartTargetOffset
CartesianPosition::Offset cartTargetOffset
笛卡尔目标点偏移选项
Definition: data_types_cli.hpp:392
rokae::clr::MoveCommand::rotSpeed
double rotSpeed
空间旋转速度，用于末端类型指令，单位rad/s。 大于等于0时生效；小于0时旋转速度默认为200°/s
Definition: data_types_cli.hpp:403
rokae::clr::MoveCommand::jointSpeed
double jointSpeed
关节速度百分比，用于关节类型指令，范围[0, 1]。 大于等于0时生效；小于0时仍使用speed计算出的关节速度
Definition: data_types_cli.hpp:400
rokae::clr::MoveCommand::args
List< double > args
运动指令其它参数 Type::MoveCF接受长度为2参数，依次为: 全圆执行角度[弧度]; 旋转姿态类型, 0不变姿态|1动轴旋转|2定轴旋转 Type::MoveSP接受长度为4参数，依次为:初始半...
Definition: data_types_cli.hpp:419
rokae::clr::MoveCommand::auxPointOffset
CartesianPosition::Offset auxPointOffset
辅助点偏移选项
Definition: data_types_cli.hpp:394
rokae::clr::MoveCommand::cartTarget
CartesianPosition cartTarget
目标笛卡尔点位
Definition: data_types_cli.hpp:386
rokae::clr::MoveCommand::speed
double speed
机器人末端最大线速度, 单位mm/s。见setDefaultSpeed
Definition: data_types_cli.hpp:396
rokae::clr::MoveCommand::jointTarget
JointPosition jointTarget
目标关节点位
Definition: data_types_cli.hpp:388
rokae::clr::MoveCommand::Type
Type
指令类型
Definition: data_types_cli.hpp:367
rokae::clr::MoveCommand::auxPoint
CartesianPosition auxPoint
辅助点
Definition: data_types_cli.hpp:390
rokae::clr::MoveCommand::zone
double zone
转弯区半径大小，单位mm。见setDefaultZone
Definition: data_types_cli.hpp:405
rokae::clr::RLProjectInfo
RL工程信息
Definition: data_types_cli.hpp:534
rokae::clr::RLProjectInfo::taskList
List< String^> taskList
任务名称列表
Definition: data_types_cli.hpp:540
rokae::clr::RLProjectInfo::name
String name
工程名称
Definition: data_types_cli.hpp:538
rokae::clr::Toolset
工具工件组信息, 根据一对工具工件的坐标、负载、机器人手持设置计算得出
Definition: data_types_cli.hpp:481
rokae::clr::Toolset::end
Frame end
机器人末端坐标系相对法兰坐标系转换
Definition: data_types_cli.hpp:487
rokae::clr::Toolset::load
Load load
机器人末端手持负载
Definition: data_types_cli.hpp:485
rokae::clr::Toolset::reference
Frame reference
机器人参考坐标系相对世界坐标系转换
Definition: data_types_cli.hpp:489
rokae::clr::WorkToolInfo
工具/工件信息。工件的坐标系已相对其用户坐标系变换
Definition: data_types_cli.hpp:546
rokae::clr::WorkToolInfo::load
Load load
负载
Definition: data_types_cli.hpp:562
rokae::clr::WorkToolInfo::alias
String alias
描述
Definition: data_types_cli.hpp:556
rokae::clr::WorkToolInfo::robotHeld
bool robotHeld
是否机器人手持
Definition: data_types_cli.hpp:558
rokae::clr::WorkToolInfo::pos
Frame pos
位姿
Definition: data_types_cli.hpp:560
rokae::clr::WorkToolInfo::name
String name
名称
Definition: data_types_cli.hpp:554
rokae::clr::OperationState
OperationState
机器人工作状态
Definition: data_types_cli.hpp:79
rokae::clr::OperationState::frictionIdentify
@ frictionIdentify
摩擦力辨识中
rokae::clr::OperationState::jogging
@ jogging
Jog运动中
rokae::clr::OperationState::rtControlling
@ rtControlling
实时模式控制中
rokae::clr::OperationState::moving
@ moving
机器人运动中
rokae::clr::OperationState::dynamicIdentify
@ dynamicIdentify
动力学辨识中
rokae::clr::OperationState::drag
@ drag
拖动已开启
rokae::clr::OperationState::rlProgram
@ rlProgram
RL工程运行中
rokae::clr::OperationState::jog
@ jog
jog状态(未运动)
rokae::clr::OperationState::loadIdentify
@ loadIdentify
负载辨识中
rokae::clr::OperationState::idle
@ idle
机器人静止
rokae::clr::OperationState::demo
@ demo
Demo演示中
rokae::clr::FrameType
FrameType
笛卡尔空间坐标系类型
Definition: data_types_cli.hpp:169
rokae::clr::FrameType::wobj
@ wobj
工件坐标系
rokae::clr::FrameType::tool
@ tool
工具坐标系
rokae::clr::FrameType::rail
@ rail
导轨基坐标系
rokae::clr::FrameType::path
@ path
路径坐标系
rokae::clr::StopLevel
StopLevel
机器人停止运动等级
Definition: data_types_cli.hpp:119
rokae::clr::StopLevel::stop0
@ stop0
快速停止机器人运动后断电
rokae::clr::StopLevel::suppleStop
@ suppleStop
柔顺停止，仅适用于协作机型
rokae::clr::StopLevel::stop1
@ stop1
规划停止机器人运动后断电, 停在原始路径上
rokae::clr::StopLevel::stop2
@ stop2
规划停止机器人运动后不断电, 停在原始路径上
rokae::clr::CoordinateType
CoordinateType
位姿坐标系类型
Definition: data_types_cli.hpp:109
rokae::clr::CoordinateType::flangeInBase
@ flangeInBase
法兰相对于基坐标系
rokae::clr::CoordinateType::endInRef
@ endInRef
末端相对于外部坐标系
rokae::clr::JogSpace
JogSpace
Jog选项: 坐标系
Definition: data_types_cli.hpp:147
rokae::clr::JogSpace::singularityAvoidMode
@ singularityAvoidMode
奇异规避模式，适用于工业六轴, xMateCR和xMateSR机型，规避方法是锁定4轴
rokae::clr::JogSpace::jointSpace
@ jointSpace
轴空间
rokae::clr::JogSpace::baseParallelMode
@ baseParallelMode
平行基座模式，仅适用于xMateCR和xMateSR机型
rokae::clr::JogSpace::world
@ world
世界坐标系
rokae::clr::JogSpace::baseFrame
@ baseFrame
基坐标系
rokae::clr::JogSpace::wobjFrame
@ wobjFrame
工件坐标系
rokae::clr::JogSpace::flange
@ flange
法兰坐标系
rokae::clr::JogSpace::toolFrame
@ toolFrame
工具坐标系
rokae::clr::MotionControlMode
MotionControlMode
SDK运动控制模式
Definition: data_types_cli.hpp:133
rokae::clr::MotionControlMode::RtCommand
@ RtCommand
实时模式控制
rokae::clr::MotionControlMode::NrtRLTask
@ NrtRLTask
非实时模式运行RL工程
rokae::clr::MotionControlMode::NrtCommand
@ NrtCommand
非实时模式执行运动指令
rokae::clr::MotionControlMode::Idle
@ Idle
空闲
rokae::clr::AvoidSingularityMethod
AvoidSingularityMethod
奇异规避方式
Definition: data_types_cli.hpp:229
rokae::clr::AvoidSingularityMethod::jointWay
@ jointWay
轴空间短轨迹插补
rokae::clr::AvoidSingularityMethod::wrist
@ wrist
牺牲姿态
rokae::clr::AvoidSingularityMethod::lockAxis4
@ lockAxis4
四轴锁定
rokae::clr::PowerState
PowerState
机器人上下电及急停状态
Definition: data_types_cli.hpp:51
rokae::clr::PowerState::off
@ off
下电
rokae::clr::PowerState::gstop
@ gstop
安全门打开
rokae::clr::PowerState::unknown
@ unknown
未知(发生异常)
rokae::clr::PowerState::on
@ on
上电
rokae::clr::PowerState::estop
@ estop
急停被按下
rokae::clr::OperateMode
OperateMode
机器人操作模式
Definition: data_types_cli.hpp:67
rokae::clr::OperateMode::automatic
@ automatic
自动
rokae::clr::OperateMode::manual
@ manual
手动
rokae::clr::Event
Event
事件类型
Definition: data_types_cli.hpp:249
rokae::clr::Event::safety
@ safety
安全 (是否碰撞)
rokae::clr::Event::rlExecution
@ rlExecution
RL执行信息
rokae::clr::Event::logReporter
@ logReporter
控制器日志上报
rokae::clr::Event::moveExecution
@ moveExecution
非实时运动指令执行信息
rokae::clr::DragOpt
机器人拖动模式参数, 包括拖动类型和空间
Definition: data_types_cli.hpp:189
rokae::clr::DragOpt::Space
Space
Definition: data_types_cli.hpp:191
rokae::clr::DragOpt::Type
Type
Definition: data_types_cli.hpp:197
rokae::clr::Info
机器人基本信息，在与建立机器人连接后加载
Definition: data_types_cli.hpp:263
rokae::clr::Info::version
String version
控制器版本
Definition: data_types_cli.hpp:269
rokae::clr::Info::joint_num
Int32 joint_num
轴数
Definition: data_types_cli.hpp:273
rokae::clr::Info::id
String id
机器人uid, 可用于区分连接的机器人
Definition: data_types_cli.hpp:265
rokae::clr::Info::type
String type
机器人机型名称
Definition: data_types_cli.hpp:271
rokae::clr::Info::mac
String mac
Mac地址
Definition: data_types_cli.hpp:267
rokae::clr::StateList
状态列表
Definition: data_types_cli.hpp:447
rokae::clr::StateList::cart_pos
CartesianPosition cart_pos
笛卡尔位姿
Definition: data_types_cli.hpp:456
rokae::clr::StateList::analog_signals
array< System::Tuple< String^, Double >^> analog_signals
模拟量IO, 信号名称及数值
Definition: data_types_cli.hpp:465
rokae::clr::StateList::speed_override
double speed_override
程序速度比例
Definition: data_types_cli.hpp:473
rokae::clr::StateList::joint_pos
array< double > joint_pos
轴角，单位弧度
Definition: data_types_cli.hpp:451
rokae::clr::StateList::operation_mode
OperateMode operation_mode
操作模式
Definition: data_types_cli.hpp:469
rokae::clr::StateList::digital_signals
array< System::Tuple< String^, Boolean >^> digital_signals
数字量IO, 信号名称及数值
Definition: data_types_cli.hpp:461
rokae::clr::xPanelOpt
xPanel配置
Definition: data_types_cli.hpp:210
rokae::clr::xPanelOpt::Vout
Vout
xPanel对外供电模式
Definition: data_types_cli.hpp:214