帮助中心
帮助中心主页
激光雷达
外部传感器
其他传感器
总线型编码器
电池及充电
喇叭及氛围灯
功能授权
机构脚本接口字典

一、SimModule 模块接口

1.1 SimModule 模块接口速览表

接口描述参数返回数据类型
控 制 类 接 口setDO控制DO开关id:int, status:boolbool
setMotorSpeed控制电机以某个速度运转name:str, vel:float, stopDI:intbool
setMotorPosition控制电机运转到指定位置motor_name:str, pos:float, maxVel:float, stopDI:intbool
publishSpeed将电机控制方案,进行速度规划后下发bool
resetMotor将电机重置为不启用状态motor_name:strbool
setPathOnWorld控制agv在世界坐标系下以特定线路行走x:list, y:list, angle:float
setPathOnRobot控制agv在AGV坐标系下以特定线路行走x:list, y:list, angle:float
setPathReachDist设置路径导航的到点精度a:float
setPathReachAngle设置路径导航的到点角度精度a:float
setPathBackMode设置路径导航是否倒走a:bool
setPathUseOdo设置路径导航是否启用里程定位a:bool
setPathMaxSpeed设置路径导航的最大速度a:float
setPathMaxRot设置路径导航的最大角速度a:float
setSound播放音频文件name:str, flag:bool
stopSound停止播放音频文件flag:bool
switchMap切换地图map:str, switchPoint:strint
goPath控制AGV移动
resetPath控制agv沿着规划的线路行驶
stopRobot控制agv停下来flag:bool
setNextSpeed设置准备下发的速度nav:strbool
speedDecomposition将导航速度分解,目前只有单舵轮和双舵轮有效nav:strstr
addMoveTask增加任务,对应3051msg:str
addMoveTaskList增加任务队列,对应3066msg:str
resetTriggleScript重置Triggle信息
resetRecAndGoPathDi重置识别行走的动作
recAndGoPathDi识别并且会行走task:strint
openSpeed控制小车行走速度vx:float, vy: float, vw:float
resetGoMapPath行走的动作
goMapPath按地图路线行走task:strint
armBinTask调用机械臂动作task_id: int, cmd: str
armStop停止机械臂动作
armPause暂停机械臂动作
armResume恢复机械臂动作
scannerCode机械臂识别二维码task_id: int
stopMotor停止所有非行走电机







doRec进行识别filename:str
resetRec重置识别模块
getRecResult获取识别结果dict
doRecWithAngle进行识别,包含识别机构在agv坐标系下的角度filename:str, a:float
getRecStatus获取识别状态: 0 初始化,1 识别中,2 获得结果, 3 识别出错, -1 未知错误int
setLocalShelfArea加载顶升上的货物模型object_model_path:strbool
resetLocalShelfArea取消顶升上的货架模型bool
setGoodsShape设置货物形状,并且告诉rbk车上装载有货物了head:float, tail:float, width:float
hasGoods获取身上是否有货物的状态bool
clearGoodsShape去除agv身上的状态bool
getForkPressure货叉测得重量float
getForkPressureADC货叉压力传感器adc值float
getRecFileFromTask通过任务获取识别文件str
setContainer设置车子上库位或者背篓货物container_name:str, goods_id:str, desc:strbool
getContainers获取当前车子上库位或者背篓货物的状态list
clearContainer清除车上特定库位或者背篓的状态container_name:strbool
clearContainerByGoodsId根据goodsId清除车上特定库位或者背篓的状态goods_id:strbool
laserCollision检测激光点是否和自身碰撞ids: listbool
RecognizeBarCode
3.3.5.78
获取一维码信息name (str): 其中输入为识别文件的目录,如: tag/t0001.tagstr: 为识别到的条形码的编码符号。
如未识别到,返回值为空
forkGoods货叉上加载或卸载货物模型及货物检测DIload: bool, recfile: strint






isMotorReached查询电机是否运转到位motor_name:strbool
isAllMotorsReached查询所有电机是否运转到位bool
isMotorPositionReached查询电机是否到达特定位置motor_name:str, pos:float, stopDI:intbool
isMotorStop查询电机是否处于停止状态motor_name:strbool
isPathReached查询agv是否完成线路bool
getMsg获取消息名称type_name:strdict
getCount获取当前任务循环的次数int
odo获得里程数据dict
loc获取AGV定位数据dict
navSpeed获取当前速度数据dict
getNextSpeed获取当前NavSpeed的速度dict
battery获取电池数据dict
rfid获得rfid数据dict
magnetic获得磁条数据dict
Di获取机器人DI数据dict
Do获取机器人DO数据dict
pgv获得pgv数据dict
sound获得音频数据dict
controller获取AGV控制器数据dict
fork获取AGV货叉数据dict
jack获取AGV顶升数据dict
moveTask获取AGV任务数据dict
getArmInfo获取机械臂信息dict
getDistanceSensor获取距离节点信息list
sensorPointCloud获得后视激光点云信息dict
getTriggleScriptName获取TriggleScript的名称str
getTriggleScriptArgs获取TriggleScript的参数str
hasTriggleScript监测是否有TriggleScript触发bool
robokitVersion获取 robokit 版本号, from: 3.3.5.11str
initForkCollisionCheck初始化货叉移动时的碰撞检测,读取模型文件fork设备BackLaser相应的参数
forkCollisionCheck货叉移动时后视激光碰撞检测ss:strbool
getLM3.3.5.78获取点位坐标name (str): 站点或者库位名称
flag (bool): True 返回的坐标是地图坐标系, False返回的坐标是机器人坐标系
tuple: 0-> x (m); 1->y (m); 2->theta (rad); 3-> id (-1 表示不存在)
getMinDynamicObs获取离小车最近的动态障碍物坐标list






logInfo输出数据到log文件中,等级为Infoss:str
logWarn输出数据到log文件中,等级为Warningss:str
logError输出数据到log文件中,等级为Errorss:str
logDebug输出数据到log文件中,等级为Debugss:str
setInfo输出脚本调试信息ss:str
setNotice输出报警码为57300的Noticess:str
setWarning输出报警码为55300的Warningss:str
setUserWarning输出自定义报警码(55900~55999)的Warningss:str
setError输出报警码为53000的Errorss:str
setUserError输出自定义报警码(53900~53999)的Errorcode:int, ss:str
setPickRobotError多料箱车专用报错码(53800~53899)code:int, ss:str
clearError清除特定编号的Errorcode:int
clearWarning清除特定编号的Warningcode:int
clearNotice3.3.5.78清除特定编号的Noticecode:int
warningExits查询特定编号的Warning是否存在code:intbool
errorExits查询特定编号的Error是否存在code:intbool
errorExists3.3.5.78查询特定编号的Error是否存在code:intbool
warningExists3.3.5.78查询特定编号的Error是否存在code:intbool
noticeExists3.3.5.78查询特定编号的Error是否存在code:intbool
setBlockError设置阻挡52200错误
clearBlockError清除阻挡52200错误
setBlockReason设置阻挡原因,collision_type (int): 阻挡原因见rbk.py脚本中的CollisionType类,x (float): 障碍物位置,y (float): 障碍物位置,id (float): 障碍物idcollision_type: int, x: float, y: float, id: int
getRobotFile获取模型文件的原始数据dict
getRecFile获取识别文件的原始数据name:strdict

二、数据查询字段解析

2.1 获取当前任务循环的次数

接口描述参数返回数据类型
getCount获取当前任务循环的次数int

方法调用示例:

python
msg = r.getCount()
print(msg)
1
2

接口返回数据示例:

python
Output: 15
1

2.2 获取电池数据

接口描述参数返回数据类型
battery获取电池数据dict

方法调用示例:

python
battery_data = r.battery()
print(msg)
1
2

接口返回数据示例:

python
Output: 
    {
        "charge_current": -1,
        "charge_voltage": 1"cycle": 0,
        "is_charging": false
        "max_charge_current": 0,
        "max_charge_voltage": 0,
        "percetage": 1,
        "temperature": 0,
        "user_data": ""
    }
1
2
3
4
5
6
7
8
9
10
11
12

返回字段解释:

字段数据类型示例值描述
charge_currentint-1当前充电状态
charge_voltageint1
cycleint0
is_chargingboolfalse是否正在充电中
max_charge_currentint0
max_charge_voltageint0
percetageint1
temperatureint0电池温度
user_datastring""

2.3 获取里程数据

接口描述参数返回数据类型
odo获得里程数据dict

方法调用示例:

python
msg = r.odo()
print(msg)
1
2

接口返回数据示例:

python
Output: 
    {
        "angle": -4.5602541, 
        "cycle": 4651341, 
        "detect_skid": false, 
        "follow_err": false, 
        "header": {
            "data_nsec": "415223169185955", 
            "frame_id": "/odo", 
            "pub_nsec": "415223169186125", 
            "seq": "0"
        }, 
        "is_stop": true, 
        "motor_info": [
            {
                "calib": false, 
                "can_id": 2, 
                "can_router": 1, 
                "current": 1, 
                "emc": false, 
                "encoder": 0, 
                "err": false, 
                "error_code": 0, 
                "follow_err": false, 
                "motor_name": "motor_Right", 
                "passive": false, 
                "position": 0, 
                "raw_position": 0, 
                "speed": 0, 
                "stop": false, 
                "temperature": 1, 
                "type": 0, 
                "voltage": 0
            }, 
            {
                "calib": false, 
                "can_id": 1, 
                "can_router": 1, 
                "current": 1, 
                "emc": false, 
                "encoder": 0, 
                "err": false, 
                "error_code": 0, 
                "follow_err": false, 
                "motor_name": "motor_Left", 
                "passive": false, 
                "position": 0, 
                "raw_position": 0, 
                "speed": 0, 
                "stop": false, 
                "temperature": 1, 
                "type": 0, 
                "voltage": 0
            }
        ], 
        "vel_rotate": 0, 
        "vel_x": 0, 
        "vel_y": 0, 
        "x": 26.302389137252263, 
        "y": -16.080223023014746
    }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61

返回字段解释:

字段数据类型示例值描述
angleint-4.5602541小车当前角度
cycleint4651341
detect_skidboolfalse小车是否打滑
follow_errboolfalse
is_stopbooltrue小车是否静止
vel_rotateint0
vel_xint0
vel_yint0
xint26.302389137252263世界坐标系下 x 轴坐标
yint-16.080223023014746世界坐标系下 y 轴坐标

header 字段解释:

字段数据类型示例值描述
data_nsecstring"415223169185955"
frame_idstring/odo执行的函数名称
pub_nsecstring"415223169186125"
seqstring"0"

motor_info 字段解释:

字段数据类型示例值描述
calibboolfalse
can_idint1can 的 id
can_routerint1can 的 路由
currentint1
emcboolfalse是否急停
encoderint0
errboolfalse
error_codeint0
follow_errboolfalse
motor_namestring"motor_Left"电机名称
passiveboolfalse
positionint0
raw_positionint0
speedint0
stopboolfalse
temperatureint1电机温度
typeint0
voltageint0

2.4 获取定位数据

接口描述参数返回数据类型
loc获取AGV定位数据dict

方法调用示例:

python
msg = r.loc()
print(msg)
1
2

接口返回数据示例:

python
Output: 
    {
        "angle": -3.01641845703125, 
        "confidence": 0.2693849443659164, 
        "correction_errs": [0.004627956391526823, -0.012603017829776946, 0.035735549737506714], 
        "header": {
            "data_nsec": "417519229609708", 
            "frame_id": "", 
            "pub_nsec": "0", 
            "seq": "0"
        }, 
        "in_forbidden_area": false, 
        "loc_method": 0, 
        "loc_state": 0, 
        "reliabilities": [0, 0, 0, 0], 
        "similarity": 0, 
        "update_reason": 0, 
        "x": 14.005484914171664, 
        "y": -5.584118684568884
    }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

返回字段解释:

字段数据类型示例值描述
angleint-3.01641845703125小车当前角度
confidenceint0.2693849443659164小车当前的置信度
correction_errslist0.004627956391526823,0.035735549737506714
in_forbidden_areaboolfalse
loc_methodint0
loc_stateint0
reliabilitieslist0, 0, 0, 0
similarityint0
update_reasonint0
xint14.005484914171664世界坐标系下 x 轴坐标
yint-5.584118684568884世界坐标系下 y 轴坐标

2.5 获取当前速度数据

接口描述参数返回数据类型
navSpeed获取当前速度数据dict

方法调用示例:

python
msg = r.navSpeed()
print(msg)
1
2

接口返回数据示例:

python
Output: 
    {
        "header": {
            "data_nsec": "418162132735146", 
            "frame_id": "", 
            "pub_nsec": "418162132735146", 
            "seq": "0"
        }, 
        "is2move": true, 
        "motor_cmd": [
            {
                "can_id": 0, 
                "can_router": 0, 
                "io_cmd": 3, 
                "motor_name": "motor_Left", 
                "type": 0, "value": 0
            }, 
            {
                "can_id": 0, 
                "can_router": 0, 
                "io_cmd": 3, 
                "motor_name": "motor_Right", 
                "type": 0, 
                "value": 0
            }
        ], 
        "rotate": 0, 
        "x": 0, 
        "y": 0
    }}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

返回字段解释:

字段数据类型示例值描述
is2movebooltrue
rotateint0
xint0
yint0

motor_cmd 字段解释:

字段数据类型示例值描述
can_idint0can 的 id
can_routerint0can 的路由
io_cmdint3
motor_namestring"motor_Right"电机名称
typeint0
valueint0

2.6 获取当前 NavSpeed 的速度

接口描述参数返回数据类型
getNextSpeed获取当前NavSpeed的速度dict

方法调用示例:

python
msg = r.getNextSpeed()
print(msg)
1
2

接口返回数据示例:

python
Output: 
    {
        "header": {
            "data_nsec": "419669544810406", 
            "frame_id": "", 
            "pub_nsec": "419669544810406", 
            "seq": "0"
        }, 
        "is2move": false, 
        "motor_cmd": [
            {
                "can_id": 0, 
                "can_router": 0, 
                "io_cmd": 3, 
                "motor_name": "motor_Left", 
                "type": 0, "value": 0
            }, 
            {
                "can_id": 0, 
                "can_router": 0, 
                "io_cmd": 3, 
                "motor_name": "motor_Right", 
                "type": 0, 
                "value": 0
            }
        ], 
        "rotate": 0, 
        "x": 0, 
        "y": 0
    }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

返回字段解释:

字段数据类型示例值描述
is2moveboolfalse
rotateint0
xint0
yint0

motor_cmd 字段解释:

字段数据类型示例值描述
can_idint0can 的 id
can_routerint0can 的路由
io_cmdint3
motor_namestring"motor_Right"电机名称
typeint0
valueint0

2.7 获取 rfid 数据

接口描述参数返回数据类型
rfid获得rfid数据dict

方法调用示例:

python
msg = r.rfid()
print(msg)
1
2

接口返回数据示例:

python
Output: 
    {
        "rfid_nodes": []
    }
1
2
3
4

返回字段解释:

字段数据类型示例值描述
rfid_nodeslist[]

2.8 获取磁条数据

接口描述参数返回数据类型
magnetic获得磁条数据dict

方法调用示例:

python
msg = r.magnetic()
print(msg)
1
2

接口返回数据示例:

python
Output: 
    {
        "magnetic_nodes": []
    }
1
2
3
4

返回字段解释:

字段数据类型示例值描述
magnetic_nodeslist[]

2.9 获取机器人 DI 数据

接口描述参数返回数据类型
Di获取机器人DI数据dict

方法调用示例:

python
msg = r.Di()
print(msg)
1
2

接口返回数据示例:

python
Output: 
    {
        "max_node": 0, 
        "node": [
            {
                "forbidden": false, 
                "func": "", 
                "id": 8, 
                "maxdist": 0, 
                "mindist": 0, 
                "posx": [], 
                "posy": [], 
                "range": 0, 
                "shape": "", 
                "source": "virtual", 
                "status": false, 
                "type": "", 
                "x": 0, 
                "y": 0, 
                "yaw": 0, 
                "z": 0
            }, 
            {
                "forbidden": false, 
                "func": "", 
                "id": 7, 
                "maxdist": 0, 
                "mindist": 0, 
                "posx": [], 
                "posy": [], 
                "range": 0, 
                "shape": "", 
                "source": "virtual", 
                "status": false, 
                "type": "", 
                "x": 0, 
                "y": 0, 
                "yaw": 0, 
                "z": 0
            }, 
            {
                "forbidden": false, 
                "func": "", 
                "id": 6, 
                "maxdist": 0, 
                "mindist": 0, 
                "posx": [], 
                "posy": [], 
                "range": 0, 
                "shape": "", 
                "source": "virtual", 
                "status": false, 
                "type": "", 
                "x": 0, 
                "y": 0, 
                "yaw": 0, 
                "z": 0
            }, 
            {
                "forbidden": false, 
                "func": "", 
                "id": 5, 
                "maxdist": 0, 
                "mindist": 0, 
                "posx": [], 
                "posy": [], 
                "range": 0, 
                "shape": "", 
                "source": "virtual", 
                "status": false, 
                "type": "", 
                "x": 0, 
                "y": 0, 
                "yaw": 0, 
                "z": 0
            }
        ]
    }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78

返回字段解释:

字段数据类型示例值描述
max_nodeint0

node 字段解释:

字段数据类型示例值描述
forbiddenboolfalse
funcstring""
idint5
maxdistint0
mindistint0
posxlist[]
posylist[]
rangeint0
shapestring""
sourcestring"virtual"虚拟 DI
statusboolfalse
typestring""
xint0
yint0
yawint0
zint0

2.10 获取机器人 DO 数据

接口描述参数返回数据类型
Do获取机器人DO数据dict

方法调用示例:

python
msg = r.Do()
print(msg)
1
2

接口返回数据示例:

python
Output: 
    {
        "max_node": 0, 
        "node": [
            {
                "func": "", 
                "id": 6, 
                "source": "", 
                "status": false
            }, 
            {
                "func": "", 
                "id": 5, 
                "source": "", 
                "status": false
            }, 
            {
                "func": "", 
                "id": 4, 
                "source": "", 
                "status": true
            }, 
            {
                "func": "", 
                "id": 3, 
                "source": "", 
                "status": false
            }, 
            {
                "func": "", 
                "id": 2, 
                "source": "", 
                "status": false
            }, 
            {
                "func": "", 
                "id": 1, 
                "source": "", 
                "status": true
            }, 
            {
                "func": "", 
                "id": 0, 
                "source": "", 
                "status": true
            }
        ]
    }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48

返回字段解释:

字段数据类型示例值描述
max_nodeint0

node 字段解释:

字段数据类型示例值描述
funcstring""
idint0
sourcestring""
statusbooltrue

2.11 获取 pgv 数据

接口描述参数返回数据类型
pgv获得pgv数据dict

方法调用示例:

python
msg = r.pgv()
print(msg)
1
2

接口返回数据示例:

python
Output: 
    {
        "pgvs": []
    }
1
2
3
4

返回字段解释:

字段数据类型示例值描述
pgvslist[]

2.12 获取音频数据

接口描述参数返回数据类型
sound获得音频数据dict

方法调用示例:

python
msg = r.sound()
print(msg)
1
2

接口返回数据示例:

python
Output: 
    {
        "loop": true, 
        "sound_name": "navigation.wav", 
        "status": 2
    }
1
2
3
4
5
6

返回字段解释:

字段数据类型示例值描述
loopbooltrue是否循环播放,true:循环播放,false:不循环播放
sound_namestring"navigation.wav"播放的音频名称
statusint20:未播放音频,1:音频暂停播放中,2:音频播放中

2.13 获取控制器数据

接口描述参数返回数据类型
controller获取AGV控制器数据dict

方法调用示例:

python
msg = r.controller()
print(msg)
1
2

接口返回数据示例:

python
Output: 
    {
        "autoCharge": false, 
        "brake": false, 
        "driverEmc": false, 
        "electric": false, 
        "emc": false, 
        "humi": 0, 
        "isExternalControl": false, 
        "isIMUCalibrating": false, 
        "manualCharge": false, 
        "softEMC": false, 
        "temp": 0, 
        "voltage": 0, 
        "voltagebyAdc": 0
    }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

返回字段解释:

字段数据类型示例值描述
autoChargeboolfalse
brakeboolfalse
driverEmcboolfalse
electricboolfalse
emcboolfalse
humiint0
isExternalControlboolfalse
isIMUCalibratingboolfalse
manualChargeboolfalse
softEMCboolfalse
tempint0
voltageint0
voltagebyAdcint0

2.14 获取货叉数据

接口描述参数返回数据类型
fork获取AGV货叉数据dict

方法调用示例:

python
msg = r.fork()
print(msg)
1
2

接口返回数据示例:

python
Output: 
    {
        "fork_error": 0, 
        "fork_val": 0, 
        "forward_in_place": false, 
        "forward_val": 0, 
        "get_goods": false, 
        "height": 0, 
        "height_in_place": false, 
        "incline": 0, 
        "incline_in_place": false, 
        "incline_val": 0, 
        "pressure_actual": 0, 
        "pressure_adc": 0
    }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

返回字段解释:

字段数据类型示例值描述
fork_errorint0
fork_valint0
forward_in_placeboolfalse
forward_valint0
get_goodsboolfalse
heightint0
height_in_placeboolfalse
inclineint0
incline_in_placeboolfalse
incline_valint0
pressure_actualint0
pressure_adcint0

2.15 获取顶升数据

接口描述参数返回数据类型
jack获取AGV顶升数据dict

方法调用示例:

python
msg = r.jack()
print(msg)
1
2

接口返回数据示例:

python
Output: 
    {
        "emc": false, 
        "enable": false, 
        "errorCode": 0, 
        "height": 0, 
        "isFull": false, 
        "mode": false, 
        "speed": 0, 
        "state": 0
    }
1
2
3
4
5
6
7
8
9
10
11

返回字段解释:

字段数据类型示例值描述
emcboolfalse
enableboolfalse
errorCodeint0
heightint0
isFullboolfalse
modeboolfalse
speedint0
stateint0

2.16 获取任务数据

接口描述参数返回数据类型
moveTask获取AGV任务数据dict

方法调用示例:

python
msg = r.moveTask()
print(msg)
1
2

接口返回数据示例:

python
Output: 
    {
        "dec_obs_expansion": 0.2, 
        "max_acc": 1, 
        "max_dec": 1, 
        "max_rot": 0.782907095366736, 
        "max_rot_acc": 2.0943951023931953, 
        "max_rot_dec": 1.5707963267948966, 
        "max_speed": 0.7853981633974483, 
        "obs_dec_dist": 3, 
        "obs_dec_speed": 0.2, 
        "obs_expansion": 0.1, 
        "obs_stop_dist": 1, 
        "params": [
            {
                "key": "operation", 
                "string_value": "Script"
            }, 
            {
                "key": "script_name", 
                "string_value": "lin/test.py"
            }, 
            {
                "bool_value": true, 
                "key": "allow_free_go"
            }
        ], 
        "reach_angle": 0.008726646259971648, 
        "reach_dist": 0.005, 
        "reach_method": "forward", 
        "skill_name": "Action", 
        "target_name": "9"
    }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33

返回字段解释:

字段数据类型示例值描述
dec_obs_expansionint0.2
max_accint1
max_decint1
max_rotint0.782907095366736
max_rot_accint2.0943951023931953
max_rot_decint1.5707963267948966
max_speedint0.7853981633974483
obs_dec_distint3
obs_dec_speedint0.2
obs_expansionint0.1
obs_stop_distint1
reach_angleint0.008726646259971648
reach_distint0.005
reach_methodstring"forward"
skill_namestring"Action"
target_namestring"9"

params 字段:

字段数据类型示例值描述
keystring"operation"
string_valuestringScript
keystring"script_name"
string_valuestring"lin/test.py"
bool_valuebooltrue
keystring"allow_free_go"

2.17 获取机械臂信息

接口描述参数返回数据类型
getArmInfo获得机械臂信息dict

方法调用示例:

python
msg = r.getArmInfo()
print(msg)
1
2

接口返回数据示例:

python
Output: 
	{
        "DI": [], 
        "DO": [], 
        "enabled": false, 
        "robot_status_bits": [], 
        "safety_mode": 0, 
        "safety_status_bits": [], 
        "taskId": 0, 
        "task_status": 0
    }
1
2
3
4
5
6
7
8
9
10
11

返回字段解释:

字段数据类型示例值描述
DIlist[]
DOlist[]
enabledboolfalse是否启用机械臂,true = 启用,false = 不启用
robot_status_bitslist[]
safety_modeint0
safety_status_bitslist[]
taskIdint0
task_statusint0

2.18 获取距离节点信息

接口描述参数返回数据类型
getDistanceSensor获得距离节点信息dict

方法调用示例:

python
msg = r.getDistanceSensor()
print(msg)
1
2

接口返回数据示例:

python
Output: 
	{
        "node": []
    }
1
2
3
4

返回字段解释:

字段数据类型示例值描述
nodelist[]

2.19 获取后视激光点云信息

接口描述参数返回数据类型
sensorPointCloud获得后视激光点云信息dict

方法调用示例:

python
msg = r.sensorPointCloud()
print(msg)
1
2

接口返回数据示例:

python
Output: 
    {
        "global_cluster": [
            {
                "header": 
                {
                    "data_nsec": "423939395152396", 
                    "frame_id": "", 
                    "pub_nsec": "0", 
                    "seq": "0"
                }, 
                "id": "1", 
                "point": [
                    {
                        "is_obstacle": true, 
                        "rssi": 100, 
                        "x": 24.781345578357573, 
                        "y": -12.40421655491872, 
                        "z": 0
                    }, 
                    {
                        "is_obstacle": true, 
                        "rssi": 100, 
                        "x": 26.920356728196996, 
                        "y": -13.95355462811719, 
                        "z": 0
                    }, 
                    {
                        "is_obstacle": true, 
                        "rssi": 100, 
                        "x": 24.96300860843852, 
                        "y": -12.314360624573617, 
                        "z": 0
                    }, 
                    {
                        "is_obstacle": true, 
                        "rssi": 100, "x": 25.154097313239248, 
                        "y": -12.319513761761758, 
                        "z": 0
                    }, 
                    {
                        "is_obstacle": true, 
                        "rssi": 100, 
                        "x": 25.18682711936516, 
                        "y": -12.206342445234426, 
                        "z": 0
                    }, 
                    {
                        "is_obstacle": true, 
                        "rssi": 100, 
                        "x": 25.19041497687728, 
                        "y": -12.073297463125794, 
                        "z": 0
                    }
                ], 
                "type": 5
            }, 
            {
                "header": {
                    "data_nsec": "423939437107877", 
                    "frame_id": "", 
                    "pub_nsec": "0", 
                    "seq": "0"
                }, 
                "id": "", 
                "point": [], 
                "type": 6
            }
        ]
    }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70

global_cluster 字段解释:

字段数据类型示例值描述
idstring"1"
typeint5

point 字段解释:

字段数据类型示例值描述
is_obstaclebooltrue是否阻碍,true:阻碍,false:不阻碍
rssiint100信号强度
xint25.19041497687728点云在世界坐标系下的 x 坐标轴
yint-12.073297463125794点云在世界坐标系下的 y 坐标轴
zint0点云在世界坐标系下的 z 坐标轴

2.20 获取模型文件的原始数据

接口描述参数返回数据类型
getRobotFile获得模型文件的原始数据dict

方法调用示例:

python
robotmodel = r.getRobotFile()
1

接口返回数据示例:

python
{"deviceTypes": [{"desc": "REk=", "devices": [{"desc": "REk=", "deviceParams": [{"arrayParam": {"params": [{"cloneEnable": false, "desc": "SDEuMi4xMOS7peWJjTogCk5vcm1hbCBpZOiMg+WbtO+8mjAtOCAKVmlydHVhbCBpZOiMg+WbtO+8mjktMTYgCk1vZGJ1cyBpZOiMg+WbtO+8mjE3LTgwIAoKSDEuMi4xMOS7peWJjSjlkKtjdXJ0aXPmianlsZVJTyk6IApOb3JtYWwgaWTojIPlm7TvvJowLTE2IApWaXJ0dWFsIGlk6IyD5Zu077yaMTctMjQgCk1vZGJ1cyBpZOiMg+WbtO+8mjI1LTgwIAoKSDEuMi4xMOWPiuS7peWQjjogCk5vcm1hbCBpZOiMg+WbtO+8mjAtMTAgClZpcnR1YWwgaWTojIPlm7TvvJoxMS0xOCAKTW9kYnVzIGlk6IyD5Zu077yaMTktODAgCgpIMS4yLjEw5Y+K5Lul5ZCOKOWQq2N1cnRpc+aJqeWxlUlPKTogCk5vcm1hbCBpZOiMg+WbtO+8mjAtMTggClZpcnR1YWwgaWTojIPlm7TvvJoxOS0yNiAKTW9kYnVzIGlk6IyD5Zu077yaMjctODA=", "key": "id", "type": "uint32", "uint32Maxvalue": 80, "uint32Minvalue": 0, "uint32Value": 1, "unit": ""}, {"boolValue": false, "cloneEnable": false, "desc": "5Y+N5ZCR55S15bmz6Kem5Y+RKOiZmuaLn0RJ5ZKMY3VydGlza+aJqeWxlURJ6Zmk5aSWKQ==", "key": "inverse", "type": "bool", "unit": ""}]}, "cloneEnable": false, "desc": "5Z+656GA5Y+C5pWw", "key": "basic", "type": "arrayParam"}], "isDisplay": false, "isEnabled": true, "name": "DI1"}, {"desc": "REk=", "deviceParams": [{"arrayParam": {"params": [{"cloneEnable": false, "desc": "SDEuMi4xMOS7peWJjTogCk5vcm1hbCBpZOiMg+WbtO+8mjAtOCAKVmlydHVhbCBpZOiMg+WbtO+8mjktMTYgCk1vZGJ1cyBpZOiMg+WbtO+8mjE3LTgwIAoKSDEuMi4xMOS7peWJjSjlkKtjdXJ0aXPmianlsZVJTyk6IApOb3JtYWwgaWTojIPlm7TvvJowLTE2IApWaXJ0dWFsIGlk6IyD5Zu077yaMTctMjQgCk1vZGJ1cyBpZOiMg+WbtO+8mjI1LTgwIAoKSDEuMi4xMOWPiuS7peWQjjogCk5vcm1hbCBpZOiMg+WbtO+8mjAtMTAgClZpcnR1YWwgaWTojIPlm7TvvJoxMS0xOCAKTW9kYnVzIGlk6IyD5Zu077yaMTktODAgCgpIMS4yLjEw5Y+K5Lul5ZCOKOWQq2N1cnRpc+aJqeWxlUlPKTogCk5vcm1hbCBpZOiMg+WbtO+8mjAtMTggClZpcnR1YWwgaWTojIPlm7TvvJoxOS0yNiAKTW9kYnVzIGlk6IyD5Zu077yaMjctODA=", "key": "id", "type": "uint32", "uint32Maxvalue": 80, "uint32Minvalue": 0, "uint32Value": 2, "unit": ""}, {"boolValue": false, "cloneEnable": false, "desc": "5Y+N5ZCR55S15bmz6Kem5Y+RKOiZmuaLn0RJ5ZKMY3VydGlza+aJqeWxlURJ6Zmk5aSWKQ==", "key": "inverse", "type": "bool", "unit": ""}]}, "cloneEnable": false, "desc": "5Z+656GA5Y+C5pWw", "key": "basic", "type": "arrayParam"}], "isDisplay": false, "isEnabled": true, "name": "DI2"}, {"desc": "REk=", "deviceParams": [{"arrayParam": {"params": [{"cloneEnable": false, "desc": "SDEuMi4xMOS7peWJjTogCk5vcm1hbCBpZOiMg+WbtO+8mjAtOCAKVmlydHVhbCBpZOiMg+WbtO+8mjktMTYgCk1vZGJ1cyBpZOiMg+WbtO+8mjE3LTgwIAoKSDEuMi4xMOS7peWJjSjlkKtjdXJ0aXPmianlsZVJTyk6IApOb3JtYWwgaWTojIPlm7TvvJowLTE2IApWaXJ0dWFsIGlk6IyD5Zu077yaMTctMjQgCk1vZGJ1cyBpZOiMg+WbtO+8mjI1LTgwIAoKSDEuMi4xMOWPiuS7peWQjjogCk5vcm1hbCBpZOiMg+WbtO+8mjAtMTAgClZpcnR1YWwgaWTojIPlm7TvvJoxMS0xOCAKTW9kYnVzIGlk6IyD5Zu077yaMTktODAgCgpIMS4yLjEw5Y+K5Lul5ZCOKOWQq2N1cnRpc+aJqeWxlUlPKTogCk5vcm1hbCBpZOiMg+WbtO+8mjAtMTggClZpcnR1YWwgaWTojIPlm7TvvJoxOS0yNiAKTW9kYnVzIGlk6IyD5Zu077yaMjctODA=", "key": "id", "type": "uint32", "uint32Maxvalue": 80, "uint32Minvalue": 0, "uint32Value": 3, "unit": ""}, {"boolValue": true, "cloneEnable": false, "desc": "5Y+N5ZCR55S15bmz6Kem5Y+RKOiZmuaLn0RJ5ZKMY3VydGlza+aJqeWxlURJ6Zmk5aSWKQ==", "key": "inverse", "type": "bool", "unit": ""}]}, "cloneEnable": false, "desc": "5Z+656GA5Y+C5pWw", "key": "basic", "type": "arrayParam"}], "isDisplay": false, "isEnabled": true, "name": "DI3"}, {"desc": "REk=", "deviceParams": [{"arrayParam": {"params": [{"cloneEnable": false, "desc": "SDEuMi4xMOS7peWJjTogCk5vcm1hbCBpZOiMg+WbtO+8mjAtOCAKVmlydHVhbCBpZOiMg+WbtO+8mjktMTYgCk1vZGJ1cyBpZOiMg+WbtO+8mjE3LTgwIAoKSDEuMi4xMOS7peWJjSjlkKtjdXJ0aXPmianlsZVJTyk6IApOb3JtYWwgaWTojIPlm7TvvJowLTE2IApWaXJ0dWFsIGlk6IyD5Zu077yaMTctMjQgCk1vZGJ1cyBpZOiMg+WbtO+8mjI1LTgwIAoKSDEuMi4xMOWPiuS7peWQjjogCk5vcm1hbCBpZOiMg+WbtO+8mjAtMTAgClZpcnR1YWwgaWTojIPlm7TvvJoxMS0xOCAKTW9kYnVzIGlk6IyD5Zu077yaMTktODAgCgpIMS4yLjEw5Y+K5Lul5ZCOKOWQq2N1cnRpc+aJqeWxlUlPKTogCk5vcm1hbCBpZOiMg+WbtO+8mjAtMTggClZpcnR1YWwgaWTojIPlm7TvvJoxOS0yNiAKTW9kYnVzIGlk6IyD5Zu077yaMjctODA=", "key": "id", "type": "uint32", "uint32Maxvalue": 80, "uint32Minvalue": 0, "uint32Value": 4, "unit": ""}, {"boolValue": true, "cloneEnable": false, "desc": "5Y+N5ZCR55S15bmz6Kem5Y+RKOiZmuaLn0RJ5ZKMY3VydGlza+aJqeWxlURJ6Zmk5aSWKQ==", "key": "inverse", "type": "bool", "unit": ""}]}, "cloneEnable": false, "desc": "5Z+656GA5Y+C5pWw", "key": "basic", "type": "arrayParam"}], "isDisplay": false, "isEnabled": false, "name": "DI4"}, {"desc": "REk=", "deviceParams": [{"arrayParam": {"params": [{"cloneEnable": false, "desc": "SDEuMi4xMOS7peWJjTogCk5vcm1hbCBpZOiMg+WbtO+8mjAtOCAKVmlydHVhbCBpZOiMg+WbtO+8mjktMTYgCk1vZGJ1cyBpZOiMg+WbtO+8mjE3LTgwIAoKSDEuMi4xMOS7peWJjSjlkKtjdXJ0aXPmianlsZVJTyk6IApOb3JtYWwgaWTojIPlm7TvvJowLTE2IApWaXJ0dWFsIGlk6IyD5Zu077yaMTctMjQgCk1vZGJ1cyBpZOiMg+WbtO+8mjI1LTgwIAoKSDEuMi4xMOWPiuS7peWQjjogCk5vcm1hbCBpZOiMg+WbtO+8mjAtMTAgClZpcnR1YWwgaWTojIPlm7TvvJoxMS0xOCAKTW9kYnVzIGlk6IyD5Zu077yaMTktODAgCgpIMS4yLjEw5Y+K5Lul5ZCOKOWQq2N1cnRpc+aJqeWxlUlPKTogCk5vcm1hbCBpZOiMg+WbtO+8mjAtMTggClZpcnR1YWwgaWTojIPlm7TvvJoxOS0yNiAKTW9kYnVzIGlk6IyD5Zu077yaMjctODA=", "key": "id", "type": "uint32", "uint32Maxvalue": 80, "uint32Minvalue": 0, "uint32Value": 5, "unit": ""}, {"boolValue": false, "cloneEnable": false, "desc": "5Y+N5ZCR55S15bmz6Kem5Y+RKOiZmuaLn0RJ5ZKMY3VydGlza+aJqeWxlURJ6Zmk5aSWKQ==", "key": "inverse", "type": "bool", "unit": ""}]}, "cloneEnable": false, "desc": "5Z+656GA5Y+C5pWw", "key": "basic", "type": "arrayParam"}], "isDisplay": false, "isEnabled": true, "name": "DI5"}, {"desc": "REk=", "deviceParams": [{"arrayParam": {"params": [{"cloneEnable": false, "desc": "SDEuMi4xMOS7peWJjTogCk5vcm1hbCBpZOiMg+WbtO+8mjAtOCAKVmlydHVhbCBpZOiMg+WbtO+8mjktMTYgCk1vZGJ1cyBpZOiMg+WbtO+8mjE3LTgwIAoKSDEuMi4xMOS7peWJjSjlkKtjdXJ0aXPmianlsZVJTyk6IApOb3JtYWwgaWTojIPlm7TvvJowLTE2IApWaXJ0dWFsIGlk6IyD5Zu077yaMTctMjQgCk1vZGJ1cyBpZOiMg+WbtO+8mjI1LTgwIAoKSDEuMi4xMOWPiuS7peWQjjogCk5vcm1hbCBpZOiMg+WbtO+8mjAtMTAgClZpcnR1YWwgaWTojIPlm7TvvJoxMS0xOCAKTW9kYnVzIGlk6IyD5Zu077yaMTktODAgCgpIMS4yLjEw5Y+K5Lul5ZCOKOWQq2N1cnRpc+aJqeWxlUlPKTogCk5vcm1hbCBpZOiMg+WbtO+8mjAtMTggClZpcnR1YWwgaWTojIPlm7TvvJoxOS0yNiAKTW9kYnVzIGlk6IyD5Zu077yaMjctODA=", "key": "id", "type": "uint32", "uint32Maxvalue": 80, "uint32Minvalue": 0, "uint32Value": 6, "unit": ""}, {"boolValue": true, "cloneEnable": false, "desc": "5Y+N5ZCR55S15bmz6Kem5Y+RKOiZmuaLn0RJ5ZKMY3VydGlza+aJqeWxlURJ6Zmk5aSWKQ==", "key": "inverse", "type": "bool", "unit": ""}]}, "cloneEnable": false, "desc": "5Z+656GA5Y+C5pWw", "key": "basic", "type": "arrayParam"}], "isDisplay": false, "isEnabled": true, "name": "DI6"}, {"desc": "REk=", "deviceParams": [{"arrayParam": {"params": [{"cloneEnable": false, "desc": "SDEuMi4xMOS7peWJjTogCk5vcm1hbCBpZOiMg+WbtO+8mjAtOCAKVmlydHVhbCBpZOiMg+WbtO+8mjktMTYgCk1vZGJ1cyBpZOiMg+WbtO+8mjE3LTgwIAoKSDEuMi4xMOS7peWJjSjlkKtjdXJ0aXPmianlsZVJTyk6IApOb3JtYWwgaWTojIPlm7TvvJowLTE2IApWaXJ0dWFsIGlk6IyD5Zu077yaMTctMjQgCk1vZGJ1cyBpZOiMg+WbtO+8mjI1LTgwIAoKSDEuMi4xMOWPiuS7peWQjjogCk5vcm1hbCBpZOiMg+WbtO+8mjAtMTAgClZpcnR1YWwgaWTojIPlm7TvvJoxMS0xOCAKTW9kYnVzIGlk6IyD5Zu077yaMTktODAgCgpIMS4yLjEw5Y+K5Lul5ZCOKOWQq2N1cnRpc+aJqeWxlUlPKTogCk5vcm1hbCBpZOiMg+WbtO+8mjAtMTggClZpcnR1YWwgaWTojIPlm7TvvJoxOS0yNiAKTW9kYnVzIGlk6IyD5Zu077yaMjctODA=", "key": "id", "type": "uint32", "uint32Maxvalue": 80, "uint32Minvalue": 0, "uint32Value": 7, "unit": ""}, {"boolValue": false, "cloneEnable": false, "desc": "5Y+N5ZCR55S15bmz6Kem5Y+RKOiZmuaLn0RJ5ZKMY3VydGlza+aJqeWxlURJ6Zmk5aSWKQ==", "key": "inverse", "type": "bool", "unit": ""}]}, "cloneEnable": false, "desc": "5Z+656GA5Y+C5pWw", "key": "basic", "type": "arrayParam"}], "isDisplay": false, "isEnabled": true, "name": "DI7"}, {"desc": "REk=", "deviceParams": [{"arrayParam": {"params": [{"cloneEnable": false, "desc": "SDEuMi4xMOS7peWJjTogCk5vcm1hbCBpZOiMg+WbtO+8mjAtOCAKVmlydHVhbCBpZOiMg+WbtO+8mjktMTYgCk1vZGJ1cyBpZOiMg+WbtO+8mjE3LTgwIAoKSDEuMi4xMOS7peWJjSjlkKtjdXJ0aXPmianlsZVJTyk6IApOb3JtYWwgaWTojIPlm7TvvJowLTE2IApWaXJ0dWFsIGlk6IyD5Zu077yaMTctMjQgCk1vZGJ1cyBpZOiMg+WbtO+8mjI1LTgwIAoKSDEuMi4xMOWPiuS7peWQjjogCk5vcm1hbCBpZOiMg+WbtO+8mjAtMTAgClZpcnR1YWwgaWTojIPlm7TvvJoxMS0xOCAKTW9kYnVzIGlk6IyD5Zu077yaMTktODAgCgpIMS4yLjEw5Y+K5Lul5ZCOKOWQq2N1cnRpc+aJqeWxlUlPKTogCk5vcm1hbCBpZOiMg+WbtO+8mjAtMTggClZpcnR1YWwgaWTojIPlm7TvvJoxOS0yNiAKTW9kYnVzIGlk6IyD5Zu077yaMjctODA=", "key": "id", "type": "uint32", "uint32Maxvalue": 80, "uint32Minvalue": 0, "uint32Value": 8, "unit": ""}, {"boolValue": false, "cloneEnable": false, "desc": "5Y+N5ZCR55S15bmz6Kem5Y+RKOiZmuaLn0RJ5ZKMY3VydGlza+aJqeWxlURJ6Zmk5aSWKQ==", "key": "inverse", "type": "bool", "unit": ""}]}, "cloneEnable": false, "desc": "5Z+656GA5Y+C5pWw", "key": "basic", "type": "arrayParam"}], "isDisplay": false, "isEnabled": true, "name": "DI8"}, {"desc": "REk=", "deviceParams": [{"arrayParam": {"params": [{"cloneEnable": false, "desc": "SDEuMi4xMOS7peWJjTogCk5vcm1hbCBpZOiMg+WbtO+8mjAtOCAKVmlydHVhbCBpZOiMg+WbtO+8mjktMTYgCk1vZGJ1cyBpZOiMg+WbtO+8mjE3LTgwIAoKSDEuMi4xMOS7peWJjSjlkKtjdXJ0aXPmianlsZVJTyk6IApOb3JtYWwgaWTojIPlm7TvvJowLTE2IApWaXJ0dWFsIGlk6IyD5Zu077yaMTctMjQgCk1vZGJ1cyBpZOiMg+WbtO+8mjI1LTgwIAoKSDEuMi4xMOWPiuS7peWQjjogCk5vcm1hbCBpZOiMg+WbtO+8mjAtMTAgClZpcnR1YWwgaWTojIPlm7TvvJoxMS0xOCAKTW9kYnVzIGlk6IyD5Zu077yaMTktODAgCgpIMS4yLjEw5Y+K5Lul5ZCOKOWQq2N1cnRpc+aJqeWxlUlPKTogCk5vcm1hbCBpZOiMg+WbtO+8mjAtMTggClZpcnR1YWwgaWTojIPlm7TvvJoxOS0yNiAKTW9kYnVzIGlk6IyD5Zu077yaMjctODA=", "key": "id", "type": "uint32", "uint32Maxvalue": 80, "uint32Minvalue": 0, "uint32Value": 9, "unit": ""}, {"boolValue": false, "cloneEnable": false, "desc": "5Y+N5ZCR55S15bmz6Kem5Y+RKOiZmuaLn0RJ5ZKMY3VydGlza+aJqeWxlURJ6Zmk5aSWKQ==", "key": "inverse", "type": "bool", "unit": ""}]}, "cloneEnable": false, "desc": "5Z+656GA5Y+C5pWw", "key": "basic", "type": "arrayParam"}], "isDisplay": false, "isEnabled": true, "name": "DI9"}, {"desc": "REk=", "deviceParams": [{"arrayParam": {"params": [{"cloneEnable": false, "desc": "SDEuMi4xMOS7peWJjTogCk5vcm1hbCBpZOiMg+WbtO+8mjAtOCAKVmlydHVhbCBpZOiMg+WbtO+8mjktMTYgCk1vZGJ1cyBpZOiMg+WbtO+8mjE3LTgwIAoKSDEuMi4xMOS7peWJjSjlkKtjdXJ0aXPmianlsZVJTyk6IApOb3JtYWwgaWTojIPlm7TvvJowLTE2IApWaXJ0dWFsIGlk6IyD5Zu077yaMTctMjQgCk1vZGJ1cyBpZOiMg+WbtO+8mjI1LTgwIAoKSDEuMi4xMOWPiuS7peWQjjogCk5vcm1hbCBpZOiMg+WbtO+8mjAtMTAgClZpcnR1YWwgaWTojIPlm7TvvJoxMS0xOCAKTW9kYnVzIGlk6IyD5Zu077yaMTktODAgCgpIMS4yLjEw5Y+K5Lul5ZCOKOWQq2N1cnRpc+aJqeWxlUlPKTogCk5vcm1hbCBpZOiMg+WbtO+8mjAtMTggClZpcnR1YWwgaWTojIPlm7TvvJoxOS0yNiAKTW9kYnVzIGlk6IyD5Zu077yaMjctODA=", "key": "id", "type": "uint32", "uint32Maxvalue": 80, "uint32Minvalue": 0, "uint32Value": 10, "unit": ""}, {"boolValue": false, "cloneEnable": false, "desc": "5Y+N5ZCR55S15bmz6Kem5Y+RKOiZmuaLn0RJ5ZKMY3VydGlza+aJqeWxlURJ6Zmk5aSWKQ==", "key": "inverse", "type": "bool", "unit": ""}]}, "cloneEnable": false, "desc": "5Z+656GA5Y+C5pWw", "key": "basic", "type": "arrayParam"}], "isDisplay": false, "isEnabled": true, "name": "DI10"}, {"desc": "REk=", "deviceParams": [{"arrayParam": {"params": [{"cloneEnable": false, "desc": "SDEuMi4xMOS7peWJjTogCk5vcm1hbCBpZOiMg+WbtO+8mjAtOCAKVmlydHVhbCBpZOiMg+WbtO+8mjktMTYgCk1vZGJ1cyBpZOiMg+WbtO+8mjE3LTgwIAoKSDEuMi4xMOS7peWJjSjlkKtjdXJ0aXPmianlsZVJTyk6IApOb3JtYWwgaWTojIPlm7TvvJowLTE2IApWaXJ0dWFsIGlk6IyD5Zu077yaMTctMjQgCk1vZGJ1cyBpZOiMg+WbtO+8mjI1LTgwIAoKSDEuMi4xMOWPiuS7peWQjjogCk5vcm1hbCBpZOiMg+WbtO+8mjAtMTAgClZpcnR1YWwgaWTojIPlm7TvvJoxMS0xOCAKTW9kYnVzIGlk6IyD5Zu077yaMTktODAgCgpIMS4yLjEw5Y+K5Lul5ZCOKOWQq2N1cnRpc+aJqeWxlUlPKTogCk5vcm1hbCBpZOiMg+WbtO+8mjAtMTggClZpcnR1YWwgaWTojIPlm7TvvJoxOS0yNiAKTW9kYnVzIGlk6IyD5Zu077yaMjctODA=", "key": "id", "type": "uint32", "uint32Maxvalue": 80, "uint32Minvalue": 0, "uint32Value": 0, "unit": ""}, {"boolValue": false, "cloneEnable": false, "desc": "5Y+N5ZCR55S15bmz6Kem5Y+RKOiZmuaLn0RJ5ZKMY3VydGlza+aJqeWxlURJ6Zmk5aSWKQ==", "key": "inverse", "type": "bool", "unit": ""}]}, "cloneEnable": false, "desc": "5Z+656GA5Y+C5pWw", "key": "basic", "type": "arrayParam"}], "isDisplay": false, "isEnabled": true, "name": "DI0"}], "maxCount": 81, "name": "DI", "ord": 0}, {"desc": "RElTZW5zb3I=", "devices": [{"desc": "RElTZW5zb3I=", "deviceParams": [{"cloneEnable": false, "comboParam": {"childKey": "collision", "childParams": [{"desc": "Z29vZHMgZGV0ZWN0aW9u", "key": "goodsDetect", "params": []}, {"desc": "aWdub3JlIHRhc2sgaW5zdHJ1Y3Rpb24=", "key": "ignoreTask", "params": []}, {"desc": "56m6", "key": "none", "params": []}, {"desc": "56Kw5pKe5p2h", "key": "collision", "params": []}, {"desc": "57qi5aSW", "key": "infrared", "params": []}, {"desc": "6LaF5aOw", "key": "ultrasonic", "params": []}, {"desc": "6Ziy6LeM6JC9", "key": "fallingDown", "params": []}]}, "desc": "57G75Z6L", "key": "type", "type": "comboParam"}, {"arrayParam": {"params": [{"cloneEnable": false, "desc": "6YCJ5oup55u45bqU55qEREnluo/lj7c=", "key": "id", "type": "uint32", "uint32Maxvalue": 80, "uint32Minvalue": 0, "uint32Value": 5, "unit": ""}]}, "cloneEnable": false, "desc": "5Z+656GA5Y+C5pWw", "key": "basic", "type": "arrayParam"}, {"cloneEnable": false, "comboParam": {"childKey": "vertex", "childParams": [{"desc": "5omH5b2i", "key": "arc", "params": [{"cloneEnable": false, "desc": "eA==", "doubleMaxvalue": 1000, "doubleMinvalue": -1000, "doubleValue": 0, "key": "x", "type": "double", "unit": "m"}, {"cloneEnable": false, "desc": "eQ==", "doubleMaxvalue": 1000, "doubleMinvalue": -1000, "doubleValue": 0, "key": "y", "type": "double", "unit": "m"}, {"cloneEnable": false, "desc": "eg==", "doubleMaxvalue": 1000, "doubleMinvalue": -1000, "doubleValue": 0, "key": "z", "type": "double", "unit": "m"}, {"cloneEnable": false, "desc": "eWF3", "doubleMaxvalue": 180, "doubleMinvalue": -180, "doubleValue": 0, "key": "yaw", "type": "double", "unit": "deg"}, {"cloneEnable": false, "desc": "5pyA6L+R6Led56a7", "doubleMaxvalue": 999.99, "doubleMinvalue": 0, "doubleValue": 0, "key": "minDist", "type": "double", "unit": "m"}, {"cloneEnable": false, "desc": "5pyA6L+c6Led56a7", "doubleMaxvalue": 999.99, "doubleMinvalue": 0, "doubleValue": 0.1, "key": "maxDist", "type": "double", "unit": "m"}, {"cloneEnable": false, "desc": "6KeS5bqm6IyD5Zu0", "doubleMaxvalue": 360, "doubleMinvalue": 0, "doubleValue": 0, "key": "range", "type": "double", "unit": "deg"}]}, {"desc": "5aSa6L655b2i", "key": "vertex", "params": [{"cloneEnable": false, "desc": "", "doubleValue": 0.5133333333333333, "key": "posX0", "type": "double", "unit": "m"}, {"cloneEnable": false, "desc": "", "doubleValue": 0.34666666666666673, "key": "posY0", "type": "double", "unit": "m"}, {"cloneEnable": false, "desc": "", "doubleValue": 0.5166666666666666, "key": "posX1", "type": "double", "unit": "m"}, {"cloneEnable": false, "desc": "", "doubleValue": -0.37999999999999995, "key": "posY1", "type": "double", "unit": "m"}]}]}, "desc": "5b2i54q2", "key": "shape", "type": "comboParam"}, {"cloneEnable": false, "comboParam": {"childKey": "stop", "childParams": [{"desc": "56m6", "key": "none", "params": []}, {"desc": "5YGc5q2i", "key": "stop", "params": []}, {"desc": "5YeP6YCf", "key": "slowdown", "params": []}]}, "desc": "5Yqf6IO9", "key": "func", "type": "comboParam"}], "isDisplay": true, "isEnabled": true, "name": "Bumper"}, {"desc": "RElTZW5zb3I=", "deviceParams": [{"cloneEnable": false, "comboParam": {"childKey": "collision", "childParams": [{"desc": "Z29vZHMgZGV0ZWN0aW9u", "key": "goodsDetect", "params": []}, {"desc": "aWdub3JlIHRhc2sgaW5zdHJ1Y3Rpb24=", "key": "ignoreTask", "params": []}, {"desc": "56m6", "key": "none", "params": []}, {"desc": "56Kw5pKe5p2h", "key": "collision", "params": []}, {"desc": "57qi5aSW", "key": "infrared", "params": []}, {"desc": "6LaF5aOw", "key": "ultrasonic", "params": []}, {"desc": "6Ziy6LeM6JC9", "key": "fallingDown", "params": []}]}, "desc": "57G75Z6L", "key": "type", "type": "comboParam"}, {"arrayParam": {"params": [{"cloneEnable": false, "desc": "6YCJ5oup55u45bqU55qEREnluo/lj7c=", "key": "id", "type": "uint32", "uint32Maxvalue": 80, "uint32Minvalue": 0, "uint32Value": 8, "unit": ""}]}, "cloneEnable": false, "desc": "5Z+656GA5Y+C5pWw", "key": "basic", "type": "arrayParam"}, {"cloneEnable": false, "comboParam": {"childKey": "vertex", "childParams": [{"desc": "5omH5b2i", "key": "arc", "params": [{"cloneEnable": false, "desc": "eA==", "doubleMaxvalue": 1000, "doubleMinvalue": -1000, "doubleValue": 0, "key": "x", "type": "double", "unit": "m"}, {"cloneEnable": false, "desc": "eQ==", "doubleMaxvalue": 1000, "doubleMinvalue": -1000, "doubleValue": 0, "key": "y", "type": "double", "unit": "m"}, {"cloneEnable": false, "desc": "eg==", "doubleMaxvalue": 1000, "doubleMinvalue": -1000, "doubleValue": 0, "key": "z", "type": "double", "unit": "m"}, {"cloneEnable": false, "desc": "eWF3", "doubleMaxvalue": 180, "doubleMinvalue": -180, "doubleValue": 0, "key": "yaw", "type": "double", "unit": "deg"}, {"cloneEnable": false, "desc": "5pyA6L+R6Led56a7", "doubleMaxvalue": 999.99, "doubleMinvalue": 0, "doubleValue": 0, "key": "minDist", "type": "double", "unit": "m"}, {"cloneEnable": false, "desc": "5pyA6L+c6Led56a7", "doubleMaxvalue": 999.99, "doubleMinvalue": 0, "doubleValue": 0.1, "key": "maxDist", "type": "double", "unit": "m"}, {"cloneEnable": false, "desc": "6KeS5bqm6IyD5Zu0", "doubleMaxvalue": 360, "doubleMinvalue": 0, "doubleValue": 0, "key": "range", "type": "double", "unit": "deg"}]}, {"desc": "5aSa6L655b2i", "key": "vertex", "params": [{"cloneEnable": false, "desc": "", "doubleValue": -0.5166666666666667, "key": "posX0", "type": "double", "unit": "m"}, {"cloneEnable": false, "desc": "", "doubleValue": -0.3899999999999999, "key": "posY0", "type": "double", "unit": "m"}, {"cloneEnable": false, "desc": "", "doubleValue": -0.5133333333333335, "key": "posX1", "type": "double", "unit": "m"}, {"cloneEnable": false, "desc": "", "doubleValue": 0.3533333333333332, "key": "posY1", "type": "double", "unit": "m"}]}]}, "desc": "5b2i54q2", "key": "shape", "type": "comboParam"}, {"cloneEnable": false, "comboParam": {"childKey": "stop", "childParams": [{"desc": "56m6", "key": "none", "params": []}, {"desc": "5YGc5q2i", "key": "stop", "params": []}, {"desc": "5YeP6YCf", "key": "slowdown", "params": []}]}, "desc": "5Yqf6IO9", "key": "func", "type": "comboParam"}], "isDisplay": true, "isEnabled": true, "name": "Bumper1"}, {"desc": "RElTZW5zb3I=", "deviceParams": [{"cloneEnable": false, "comboParam": {"childKey": "infrared", "childParams": [{"desc": "Z29vZHMgZGV0ZWN0aW9u", "key": "goodsDetect", "params": []}, {"desc": "aWdub3JlIHRhc2sgaW5zdHJ1Y3Rpb24=", "key": "ignoreTask", "params": []}, {"desc": "56m6", "key": "none", "params": []}, {"desc": "56Kw5pKe5p2h", "key": "collision", "params": []}, {"desc": "57qi5aSW", "key": "infrared", "params": []}, {"desc": "6LaF5aOw", "key": "ultrasonic", "params": []}, {"desc": "6Ziy6LeM6JC9", "key": "fallingDown", "params": []}]}, "desc": "57G75Z6L", "key": "type", "type": "comboParam"}, {"arrayParam": {"params": [