底盘控制

Woosh 底盘控制 API 参考文档

模块:chassis_api — Woosh 机器人底盘 HTTP API 客户端

一、数据模型

数据类 错误码 / 动作指令 / 数据模型
枚举值 值 说明
SUCCESS 0 成功
CONNECTION_ERROR 1001 连接错误
AUTH_ERROR 1002 认证错误
TIMEOUT_ERROR 1003 超时错误
INVALID_RESPONSE 1004 无效响应
OPERATION_FAILED 1005 操作失败
枚举值 值 说明
PAUSE 2 暂停任务
RESUME 3 继续任务
CANCEL 4 取消任务
字段 类型 说明
robotId int 机器人 ID
state int 状态码
字段 类型 说明
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
)
bool — 连接是否成功
Python
if api.connect():
    print("连接成功")
Python
api.disconnect()

三、状态查询

状态查询 get_robot_state / get_battery / get_abnormal_codes
RobotState — 机器人状态对象,失败返回 None
Python
state = api.get_robot_state()
if state:
    print(f"机器人ID: {state.robotId}")
    print(f"状态码: {state.state}")
BatteryInfo — 电池信息对象,失败返回 None
Python
battery = api.get_battery()
if battery:
    print(f"电量: {battery.power}%")
    print(f"充电状态: {battery.chargeState}")
List[AbnormalCode] — 异常码列表
Python
codes = api.get_abnormal_codes()
print(f"异常码数量: {len(codes)}")
for code in codes:
    print(f"[{code.code}] {code.msg} (级别: {code.level})")
参数 类型 必需 默认值 说明
is_record bool 否 True 是否记录
bool — 清除是否成功
Python
api.clear_abnormal_codes(is_record=True)

四、运动控制

运动控制 set_velocity / stop / estop
参数 类型 必需 默认值 说明
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)
bool — 停止是否成功
Python
api.stop()
Python
api.estop()

五、储位、地图与任务管理

储位管理 create_storage / delete_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)
bool — 删除是否成功
Python
api.delete_storage()
地图管理 get_scene_list / switch_map
SceneList — 场景列表,失败返回 None
Python
scene_list = api.get_scene_list()
if scene_list:
    for scene in scene_list.scenes:
        print(f"场景: {scene.name}")
        print(f"地图: {', '.join(scene.maps)}")
参数 类型 必需 默认值 说明
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
参数 类型 必需 默认值 说明
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"
)
参数 类型 必需 说明
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)

六、测试方法

测试 出厂测试项
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