底盘控制
Woosh 底盘控制 API 参考文档
模块:chassis_api — Woosh 机器人底盘 HTTP API 客户端
一、数据模型
数据类 错误码 / 动作指令 / 数据模型
ChassisErrorCode — 错误码枚举
| 枚举值 | 值 | 说明 |
|---|---|---|
SUCCESS |
0 | 成功 |
CONNECTION_ERROR |
1001 | 连接错误 |
AUTH_ERROR |
1002 | 认证错误 |
TIMEOUT_ERROR |
1003 | 超时错误 |
INVALID_RESPONSE |
1004 | 无效响应 |
OPERATION_FAILED |
1005 | 操作失败 |
ActionOrder — 动作指令枚举
| 枚举值 | 值 | 说明 |
|---|---|---|
PAUSE |
2 | 暂停任务 |
RESUME |
3 | 继续任务 |
CANCEL |
4 | 取消任务 |
RobotState — 机器人状态
| 字段 | 类型 | 说明 |
|---|---|---|
robotId |
int | 机器人 ID |
state |
int | 状态码 |
BatteryInfo — 电池信息
| 字段 | 类型 | 说明 |
|---|---|---|
batteryCycle |
int | 电池循环次数 |
chargeCycle |
int | 充电循环次数 |
chargeState |
int | 充电状态 |
health |
int | 健康状态 |
power |
int | 电量百分比 |
robotId |
int | 机器人 ID |
tempMax |
int | 最高温度 |
二、初始化与连接管理
ChassisAPI get_chassis_api()
get_chassis_api(host="169.254.128.2", port=5480, robot_id=30001, username=None, password=None, timeout=5.0)
参数
| 参数 | 类型 | 必需 | 默认值 | 说明 |
|---|---|---|---|---|
host |
str | 否 | 169.254.128.2 |
底盘 IP 地址 |
port |
int | 否 | 5480 |
HTTP 端口 |
robot_id |
int | 否 | 30001 |
机器人 ID |
username |
str | 否 | None |
认证用户名 |
password |
str | 否 | None |
认证密码 |
timeout |
float | 否 | 5.0 |
请求超时(秒) |
使用示例
Python
from chassis_api import get_chassis_api api = get_chassis_api( host="169.254.128.2", port=5480, robot_id=30001 )
connect() — 连接到底盘
bool — 连接是否成功Python
if api.connect(): print("连接成功")
disconnect() — 断开连接
Python
api.disconnect()
三、状态查询
状态查询 get_robot_state / get_battery / get_abnormal_codes
get_robot_state() — 获取机器人状态
RobotState — 机器人状态对象,失败返回 NonePython
state = api.get_robot_state() if state: print(f"机器人ID: {state.robotId}") print(f"状态码: {state.state}")
get_battery() — 获取电池信息
BatteryInfo — 电池信息对象,失败返回 NonePython
battery = api.get_battery() if battery: print(f"电量: {battery.power}%") print(f"充电状态: {battery.chargeState}")
get_abnormal_codes() — 获取异常码
List[AbnormalCode] — 异常码列表Python
codes = api.get_abnormal_codes() print(f"异常码数量: {len(codes)}") for code in codes: print(f"[{code.code}] {code.msg} (级别: {code.level})")
clear_abnormal_codes() — 清除异常码
| 参数 | 类型 | 必需 | 默认值 | 说明 |
|---|---|---|---|---|
is_record |
bool | 否 | True |
是否记录 |
bool — 清除是否成功Python
api.clear_abnormal_codes(is_record=True)
四、运动控制
运动控制 set_velocity / stop / estop
set_velocity() — 设置运动速度
| 参数 | 类型 | 必需 | 默认值 | 说明 |
|---|---|---|---|---|
linear |
float | 是 | — | 线速度 (m/s),正=前进,负=后退 |
angular |
float | 是 | — | 角速度 (rad/s),正=左转,负=右转 |
duration |
float | 否 | None |
持续时间(秒),None 表示持续发送 |
bool — 设置是否成功Python
# 前进 api.set_velocity(linear=0.1, angular=0) # 后退 api.set_velocity(linear=-0.1, angular=0) # 原地左转 api.set_velocity(linear=0, angular=0.3) # 转弯 api.set_velocity(linear=0.1, angular=0.15) # 持续运动 3 秒后停止 api.set_velocity(linear=0.1, angular=0, duration=3.0)
stop() — 停止运动
bool — 停止是否成功Python
api.stop()
estop() — 紧急停止
Python
api.estop()
五、储位、地图与任务管理
储位管理 create_storage / delete_storage
create_storage() — 创建储位
| 参数 | 类型 | 必需 | 说明 |
|---|---|---|---|
storage |
Storage | 是 | 储位信息对象 |
bool — 创建是否成功Python
from chassis_api import ( Storage, StorageIdentity, StoragePose, DockPose, RealPose, StorageNav, StorageDock ) storage = Storage( identity=StorageIdentity(id=1, no="A001"), pose=StoragePose( dock=DockPose(x=1.0, y=2.0, theta=0.0), real=RealPose(x=1.0, y=2.0, theta=0.0) ), nav=StorageNav(arr=0), dock=StorageDock() ) api.create_storage(storage)
delete_storage() — 删除储位
bool — 删除是否成功Python
api.delete_storage()
地图管理 get_scene_list / switch_map
get_scene_list() — 获取场景列表
SceneList — 场景列表,失败返回 NonePython
scene_list = api.get_scene_list() if scene_list: for scene in scene_list.scenes: print(f"场景: {scene.name}") print(f"地图: {', '.join(scene.maps)}")
switch_map() — 切换地图
| 参数 | 类型 | 必需 | 默认值 | 说明 |
|---|---|---|---|---|
scene_name |
str | 是 | — | 场景名称 |
map_name |
str | 否 | None |
地图名称,默认使用场景名称 |
bool — 切换是否成功Python
# 切换到指定地图 api.switch_map(scene_name="wooshmap", map_name="wooshmap") # 使用默认地图名 api.switch_map(scene_name="test")
任务执行 exec_task / action_order
exec_task() — 执行导航任务
| 参数 | 类型 | 必需 | 默认值 | 说明 |
|---|---|---|---|---|
task_type |
int | 是 | — | 任务类型 |
mark_no |
str | 是 | — | 目标点编号 |
task_id |
int | 否 | 0 |
任务 ID |
direction |
int | 否 | 0 |
任务方向 |
task_type_no |
int | 否 | 0 |
类型组合 |
bool — 任务下发是否成功Python
# 导航到指定点位 api.exec_task(task_type=0, mark_no="A001") # 带完整参数的任务 api.exec_task( task_id=1, task_type=1, direction=0, task_type_no=0, mark_no="B002" )
action_order() — 发送动作指令
| 参数 | 类型 | 必需 | 说明 |
|---|---|---|---|
order |
int | 是 | 2=暂停, 3=继续, 4=取消 |
bool — 指令发送是否成功Python
from chassis_api import ActionOrder # 暂停任务 api.action_order(order=ActionOrder.PAUSE) # 继续任务 api.action_order(order=ActionOrder.RESUME) # 取消任务 api.action_order(order=ActionOrder.CANCEL)
六、测试方法
测试 出厂测试项
test_forward_backward() — 测试前进/后退
Tuple[bool, str] — (是否通过, 详细信息)Python
success, details = api.test_forward_backward() print(f"测试结果: {'通过' if success else '失败'}") print(f"详细信息: {details}")
其他测试方法:
•
•
•
返回值均为
•
test_rotate() — 测试原地旋转(测试项 [11])•
test_turn() — 测试转弯(测试项 [12])•
test_brake() — 测试制动与停车(测试项 [13])返回值均为
Tuple[bool, str]。七、完整使用示例
完整示例 底盘控制完整流程
Python
from chassis_api import ( get_chassis_api, ActionOrder, Storage, StorageIdentity, StoragePose, DockPose, RealPose, StorageNav, StorageDock ) # 创建 API 实例 api = get_chassis_api( host="169.254.128.2", port=5480, robot_id=30001 ) # 连接底盘 if api.connect(): print("连接成功") # 获取机器人状态 state = api.get_robot_state() print(f"状态: {state}") # 运动控制 api.set_velocity(linear=0.1, angular=0) import time time.sleep(2) api.stop() # 电池信息 battery = api.get_battery() print(f"电量: {battery.power}%") # 场景管理 scenes = api.get_scene_list() api.switch_map(scene_name="wooshmap") # 任务执行 api.exec_task(task_type=0, mark_no="A001") # 断开连接 api.disconnect()
八、依赖安装
Shell
pip install requests
Y1 | Woosh 底盘控制 API 文档 Ver1.0.0
