13 KiB
机器人相关模块文档 (Python版本)
机器人相关
校验机器人是否存在
-
方法说明
校验机器人是否存在。
async def is_robot_exist(robot_name: str) -> bool
-
输入参数
robot_name: string 类型,机器人名称。 -
输出参数
True: 存在。False: 不存在。
-
异常
本方法不抛出异常。
获取机器人基本信息
-
方法说明
获取机器人基本信息。
async def get_lite_robots_status() -> str
-
输入参数
无。
-
输出参数
[
{
"battery_level": 1,
"confidence": 1,
"currentGroup": "unnamed",
"current_map": "newCHACHECPD-15_1",
"current_map_invalid": false,
"dI": [],
"dO": [],
"disconnect": false,
"dispatchable": true,
"dispatchable_status": 0,
"errors": [],
"ip": "",
"low_battery": false,
"reloc_status": 1,
"task_status": 0,
"unconfirmed_reloc": false,
"unlock": 0,
"uuid": "sim_01"
},
{
"battery_level": 1,
"confidence": 1,
"currentGroup": "RobotGroup-01",
"current_map": "newCHACHECPD-15_1",
"current_map_invalid": false,
"dI": [],
"dO": [],
"disconnect": false,
"dispatchable": true,
"dispatchable_status": 0,
"errors": [],
"ip": "",
"low_battery": false,
"orderId": "ab913f4b-9a35-4cdf-a4e5-07928897e0d2",
"reloc_status": 1,
"state": "FINISHED",
"task_status": 4,
"unconfirmed_reloc": false,
"unlock": 0,
"uuid": "sim_02"
}
]
-
异常
本方法抛出异常。
根据ID获取机器人基本信息
-
方法说明
根据ID获取机器人基本信息。
async def get_lite_robots_status_by_id(agv_id: str) -> str
-
输入参数
agv_id: string 类型,机器人ID。 -
输出参数
{
"battery_level": 1,
"confidence": 1,
"currentGroup": "unnamed",
"current_map": "newCHACHECPD-15_1",
"current_map_invalid": false,
"dI": [],
"dO": [],
"disconnect": false,
"dispatchable": true,
"dispatchable_status": 0,
"errors": [],
"ip": "",
"low_battery": false,
"reloc_status": 1,
"task_status": 0,
"unconfirmed_reloc": false,
"unlock": 0,
"uuid": "sim_01"
}
-
异常
本方法会抛出异常。
根据ID获取机器人位置
-
方法说明
根据机器人ID获取机器人的位置。
async def get_vehicle_station(agv_id: str) -> str
-
输入参数
agv_id: string 类型,机器人ID。 -
输出参数
{
"lastStation": "LM32",
"station": "AP25"
}
如果与调度断连返回空对象 {}。
-
异常
本方法不抛出异常。
获取Core报错信息
-
方法说明
获取Core报错信息。
async def get_core_alarms() -> str
-
输入参数
无。
-
输出参数
{
"errors": [
{
"code": 52106,
"desc": "(AMB-01: blocked by chengpin-02 in occupy path. blocked by chengpin-02 in block group's edge BlockGroup102)(AMB-02: blocked by AMB-05 in occupy path. blocked by AMB-05 in block group's edge BlockGroup94)(AMB-03: blocked by AMB-05 in block group's lm BlockGroup94)(AMB-05: blocked by AMB-03 in block group's lm BlockGroup105)(chengpin-02: blocked by AMB-01 in occupy path. blocked by AMB-01 in block group's edge BlockGroup102)",
"times": 5,
"timestamp": 1681110467
},
{
"code": 52201,
"desc": "(AMB-01,chengpin-02, in BlockGroup102, whose max number is 1 ), The number of robots in same block group is over max number.",
"times": 1,
"timestamp": 1681110452
}
],
"warnings": [
{
"code": 54000,
"desc": "AMB-02,AMB-05,chengpin-03,chengpin-08, unable to reach park point.",
"times": 1,
"timestamp": 1681110462
}
]
}
当与调度断连时,本方法会返回 None。
-
异常
本方法不会抛出异常。
async ### 根据ID获取Core报错信息
-
方法说明
根据ID获取Core报错信息。
async def get_core_alarms_by_id(code: int) -> str
-
输入参数
code: int类型,错误码。 -
输出参数
{
"errors": [
{
"code": 52201,
"desc": "(AMB-01,chengpin-02, in BlockGroup102, whose max number is 1 ), The number of robots in same block group is over max number.",
"times": 1,
"timestamp": 1681110452
}
]
}
当与调度断连时,本方法会返回 None。
-
异常
本方法不会抛出异常。
获取Rbk报错信息
-
方法说明
获取Rbk报错信息。
async def get_rbk_alarms() -> str
-
输入参数
无。
-
输出参数
{
"errors": [
{
"code": 52200,
"desc": "Blocked by : chengpin-02",
"times": 1,
"timestamp": 1681116822857
},
{
"code": 52200,
"desc": "Blocked by : AMB-01",
"times": 1,
"timestamp": 1681116822858
}
]
}
当与调度断连时,本方法会返回 None。
-
异常
本方法不会抛出异常。
根据ID获取Rbk报错信息
-
方法说明
根据ID获取Rbk报错信息。
async def get_rbk_alarms_by_id(code: int) -> str
-
输入参数
code: int类型,错误码。 -
输出参数
{
"errors": [
{
"code": 52200,
"desc": "Blocked by : chengpin-02",
"times": 1,
"timestamp": 1681117052956
},
{
"code": 52200,
"desc": "Blocked by : AMB-01",
"times": 1,
"timestamp": 1681117052956
}
]
}
当与调度断连时,本方法会返回 None。
-
异常
本方法不会抛出异常。
设置机器人软急停
-
方法说明
设置机器人软急停。
async def set_soft_stop(vehicle_id: str, status: bool) -> bool
-
输入参数
vehicle_id: string 类型,机器人名称。status: boolean类型,True: 设置机器人软急停,False: 取消机器人软急停。 -
输出参数
True: 成功。False: 失败。
-
异常
本方法不抛出异常。
获取机器人所有信息
-
方法说明
获取机器人所有信息。
async def get_robots_status() -> str
-
输入参数
无。
-
输出参数
{
"dynamic_obstacle": {},
"errors": [
{
"52101": 1634020173,
"desc": "hu-test-1,hu-test-3, have no charge point in map.",
"times": 1
},
{
"52103": 1634020173,
"desc": "hu-test-1,hu-test-3, have no park point in map.",
"times": 1
},
{
"53200": 1634020174,
"desc": "[{\"error_msg\":\"old: hu-test-1, now: AMB-01, please change back!\",\"ip\":\"106.14.198.1\"}]",
"times": 1
}
],
"fatals": [],
"notices": [],
"report": [
{
"area_resources_occupied": [
{
"area_name": "new",
"avoidObs_area_occupied": {
"radius": -1,
"x": 0,
"y": 0
},
"blocks_occupied": [],
"path_occupied": [
{
"end_id": "AP1",
"end_percentage": 0.7882161028093827,
"source_id": "AP61",
"start_percentage": 0.7882161028093827
}
]
}
],
"basic_info": {
"current_map": "20200529150233136",
"dsp_version": "simulation",
"ip": "106.14.198.1",
"model": "AMB-150",
"robot_note": "",
"version": "v3.3.4.51"
},
"changes": {
"maps": [
"20200529150233136.smap",
"default.smap",
"wwww(1).smap"
],
"model": true
},
"chassis": {
"goods_region": {
"name": "",
"point": []
},
"head": 0.42,
"radius": 0.0,
"shape": 1,
"tail": 0.38,
"width": 0.56
},
"connection_status": 1,
"current_order": {},
"dispatchable": false,
"is_error": false,
"lock_info": {
"desc": "",
"ip": "58.34.135.130",
"locked": true,
"nick_name": "DESKTOP-27FKEEM(0d50b)",
"port": 54733,
"time_t": "1634023715",
"type": 2
},
"network_delay": 100,
"rbk_report": {
"DI": [],
"DO": [],
"angle": -1.5626,
"battery_level": 1.0,
"blocked": false,
"brake": false,
"charging": false,
"confidence": 0.996,
"current": -1.0,
"current_map": "20200529150233136",
"current_map_md5": "72a91de898406e10b9cedfed51a3a5f9",
"current_station": "LM1",
"emergency": false,
"errors": [],
"fatals": [],
"fork": {
"fork_auto_flag": true,
"fork_height": -0.0,
"fork_height_in_place": false,
"forward_in_place": false,
"forward_val": 0.0
},
"info": {},
"jack": {
"jack_emc": false,
"jack_enable": false,
"jack_error_code": 0,
"jack_height": 0.0,
"jack_isFull": false,
"jack_load_times": 0,
"jack_mode": false,
"jack_speed": 0,
"jack_state": 0
},
"last_station": "CP2",
"lock_info": {
"desc": "",
"ip": "58.34.135.130",
"locked": true,
"nick_name": "DESKTOP-27FKEEM(0d50b)",
"port": 54733,
"time_t": "1634023715",
"type": 2
},
"notices": [],
"odo": 24.771,
"received_on": {
"data_nsec": "1110998989197957",
"frame_id": "",
"pub_nsec": "1110998989197957",
"seq": "0"
},
"reloc_status": 1,
"requestCurrent": -0.0,
"requestVoltage": -0.0,
"roller": {
"roller_emc": false,
"roller_enable": false,
"roller_error_code": 0,
"roller_isFull": false,
"roller_mode": false,
"roller_speed": 0,
"roller_state": 0
},
"soft_emc": false,
"steer": -0.0,
"time": 104303118,
"today_odo": 15.812,
"total_time": 444534615,
"voltage": 1.0,
"vx": -0.0,
"vy": -0.0,
"w": -0.0,
"warnings": [
{
"55001": 1634020734,
"desc": "The robot is in the dispatching state. If you need to control, please regain control and go offline during dispatching.",
"times": 1
}
],
"x": -0.3316,
"y": -1.4711
},
"undispatchable_reason": {
"current_map_invalid": false,
"disconnect": false,
"dispatchable_status": 0,
"low_battery": false,
"unconfirmed_reloc": false,
"unlock": 1
},
"uuid": "hu-test-1",
"vehicle_id": "AMB-01"
}
],
"scene_md5": "b481893504019cd71c03484f4b2419e1",
"warnings": []
}
当与调度断连时,本方法会返回 None。
-
异常
本方法抛出异常。
查询所有机器人充电阈值
-
方法说明
获取所有机器人充电阈值信息。
async def query_charge_param() -> str
-
输入参数
无。
-
输出参数
[
{
"vehicle": "AMB-01",
"params": {
"chargeNeed": 40.0,
"chargeOnly": 30.0,
"chargedOK": 50.0,
"chargedFull": 90.0
}
},
{
"vehicle": "AMB-02",
"params": {
"chargeNeed": 50.0,
"chargeOnly": 20.0,
"chargedOK": 60.0,
"chargedFull": 80.0
}
}
]
当与调度断连时,本方法会返回 None。
-
异常
本方法不抛出异常。
查询机器人充电阈值
-
方法说明
根据机器人名称获取机器人充电阈值信息。
async def query_charge_param_by_vehicles(vehicles: str) -> str
-
输入参数
vehicles: JSON 格式的字符串(将数组转成字符串格式),查询指定数量的机器人充电阈值信息。 -
输出参数
[
{
"vehicle": "AMB-01",
"params": {
"chargeNeed": 40.0,
"chargeOnly": 30.0,
"chargedOK": 50.0,
"chargedFull": 90.0
}
},
{
"vehicle": "AMB-02",
"params": {
"chargeNeed": 50.0,
"chargeOnly": 20.0,
"chargedOK": 60.0,
"chargedFull": 80.0
}
}
]
-
异常
本方法不抛出异常。
修改机器人充电阈值
-
方法说明
根据机器人名称修改机器人充电阈值信息。
async def modify_charge_param(param: str) -> bool
-
输入参数
param: JSON 格式的字符串,包含要修改的机器人名称和对应的阈值。 -
输出参数
True: 修改成功。False: 修改失败。
-
异常
本方法不抛出异常。
-
示例:
def boot():
# 指定要修改的机器人名称,以及对应的阈值
req = {
"vehicles": ["sim_01"],
"params": {
"chargeNeed": 30
}
}
# 查询修改前的阈值信息
before = jj.query_charge_param_by_vehicles(json.dumps(["sim_01"]))
# 使用 modify_charge_param 修改阈值
data = jj.modify_charge_param(json.dumps(req))
# 查询修改后的阈值信息
after = jj.query_charge_param_by_vehicles(json.dumps(["sim_01"]))
# 打印结果
jj.script_log("info", "Charge", f"query = {before}")
jj.script_log("info", "Charge", f"modify = {data}")
jj.script_log("info", "Charge", f"query = {after}")
得到以下打印信息,表示修改 chargeNeed 参数成功: