01 / 接入
快速开始
首次使用请先联系团队,说明所需功能与运行环境,确认对应客户端及安装说明。已获取软件的用户,请按交付说明完成安装,并核对下方适用版本后再启动服务。
以下首次调用示例适用于机械臂与移动双臂程序。先确认已安装的交付版本。工作台程序必须保持运行,图形界面可以关闭;默认服务地址为 http://127.0.0.1:8085。
当前文档对应客户端软件提供的 HTTP JSON 接口,默认不要求账号或 API Key。跨机器访问、跨域网页调用和公网认证不在此接口范围内。
| 程序 | 适用版本 | 在已安装程序目录运行 |
|---|---|---|
| OmindOS Navigation | 0.2.0-preview.8 | ./omindos workbench |
| OmindOS Manipulation | 0.3.1 | ./OmindOS-Workbench --no-browser |
POST 请求使用 Content-Type: application/json。两套程序默认都使用 8085 端口;应分别启动,或为机械臂程序指定 --port 8086 并相应修改客户端地址。
curl --fail-with-body http://127.0.0.1:8085/v1/workbench-stateimport json
from urllib.request import urlopen
with urlopen("http://127.0.0.1:8085/v1/workbench-state",
timeout=10) as response:
state = json.load(response)
print(state)查找接口
接口速查
共 17 个接口 · 点开接口查看说明
02 / 导航参数
导航与四足参数
用于注册机器人参数、保存版本和按编号读取。相同参数重复提交返回同一编号;修改参数生成新版本。配置注册不会使能真实电机。
POST/v1/robot-profiles注册机器人参数
请求体为完整参数配置;成功返回 HTTP 201 和 profile_id
GET/v1/robot-profiles/{profile_id}读取参数版本
使用完整编号读取已保存的版本
| 字段 | 含义 |
|---|---|
robot_id | 机器人标识 |
kinematics.urdf_xml | URDF XML 文本 |
dynamics.joints | 以关节名为键的电机与传动参数;使用工作台导出的完整配置 |
先在工作台导出完整配置 robot-parameters.json;不要为未知的电机标定参数填入估计值。以下 PROFILE_ID 应替换为 POST 返回的完整 profile_id。
curl --fail-with-body \
-X POST http://127.0.0.1:8085/v1/robot-profiles \
-H 'Content-Type: application/json' \
--data-binary @robot-parameters.json
curl --fail-with-body \
http://127.0.0.1:8085/v1/robot-profiles/PROFILE_ID成功响应包含 profile_id、robot_id、joint_names 等字段。runtime_applied 和 hardware_validated 为 false,表示配置存储成功,不代表已加载到真实控制器。
03 / 机械臂操作
机械臂与移动双臂
适用 OmindOS Manipulation 0.3.1,提供模型读取、双臂与腰部规划、差速或全向底盘几何导航。随包 RM75 模型的实际 TCP 为 left_tool0 与 right_tool0,请使用该模型返回的 mapping。
GET/v1/workbench-state读取工作台状态
读取活动配置和软件停止状态
GET/v1/workbench-models列出机器人模型
列出随交付版本提供的模型
GET/v1/workbench-model/{id}读取模型与姿态
读取 profile、mapping、poses;id 为 b / 6fb / 6f
GET/v1/workbench-active-profile读取当前配置
读取已写入程序的配置
POST/v1/workbench-active-profile更新当前配置
请求体为完整 profile;校验、写入并使旧运动结果失效
GET/v1/planning-config读取规划配置
读取参考映射;使用模型响应中的 mapping
POST/v1/planning-start创建规划任务
提交关节或双 TCP 协同规划;返回任务状态
GET/v1/planning-task/{task_id}查询规划结果
读取规划状态、error 与成功结果
POST/v1/planning-cancel取消规划任务
请求体:{"task_id":"实际任务编号"}
POST/v1/robot-model计算模型与正运动学
urdf_xml(必填)、positions、base_pose;计算模型与正运动学
POST/v1/workbench-stop软件停止与复位
{"engaged":true} 停止;复位须携带 expected_epoch
规划请求:字段与单位
| 字段 | 含义 |
|---|---|
profile | 完整模型配置;可由模型接口读取 |
mode | joint:关节路径;object:双 TCP 共同位移与旋转 |
start / target | 关节名到弧度值的映射;joint 模式提供 target |
mapping | 模型对应的左右臂、腰部与 TCP 映射 |
translation_m | object 模式的 [x, y, z] 位移,米 |
rotation_deg | object 模式的 XYZ 欧拉角,度;这是角度单位的例外 |
base_pose / obstacles | 固定底盘位姿与世界坐标系盒体障碍物 |
joint 规划期间底盘、夹爪及非主体关节保持固定。object 单次位移各轴不超过 ±0.25 m,rotation_deg 各轴不超过 ±45°。
导航请求:地图与停车后操作
| 字段 | 含义 |
|---|---|
profile, start, goal | 必填:完整配置、初始关节姿态、底盘目标 |
goal / base_pose | x_m、y_m、yaw_rad;距离为米,朝向为弧度 |
config | 从 navigation-config 获取完整默认配置后修改;drive_type 为 differential 或 omnidirectional |
config.map | size_m、origin_m、resolution_m;data 为按行排列的占用栅格,仅整数 0 表示自由空间。不传 data 时为空地图仿真 |
mapping / obstacles | 模型映射和共享环境障碍物 |
manipulation.translation_m | 可选 [x, y, z];确认停车后启动双 TCP 共同位移规划 |
导航定位来自几何仿真。传入真实地图仍需另行完成现场标定;规划结果不是可直接发送到电机的控制时序。
04 / 示例
调用示例
读取机械臂工作台状态
以下 Python 示例仅使用标准库,读取状态、模型目录与导航配置,不修改工作台参数。
import json
from urllib.request import urlopen
base_url = "http://127.0.0.1:8085"
for endpoint in ("/v1/workbench-state", "/v1/workbench-models",
"/v1/navigation-config"):
with urlopen(base_url + endpoint, timeout=10) as response:
print(endpoint, json.load(response))提交导航与四足参数
先准备从工作台导出的 robot-parameters.json,再运行以下代码。配置保存在当前程序的数据目录。
import json
from pathlib import Path
from urllib.request import Request, urlopen
payload = Path("robot-parameters.json").read_bytes()
request = Request(
"http://127.0.0.1:8085/v1/robot-profiles",
data=payload,
headers={"Content-Type": "application/json"},
method="POST",
)
with urlopen(request, timeout=10) as response:
result = json.load(response)
print(result["profile_id"])提交准备好的规划请求
按上面的规划字段准备 planning-request.json,使用当前模型的 profile 和 mapping。收到 task_id 后继续轮询;HTTP 成功不等于规划完成。
curl --fail-with-body \
-X POST http://127.0.0.1:8085/v1/planning-start \
-H 'Content-Type: application/json' \
--data-binary @planning-request.json
curl --fail-with-body \
http://127.0.0.1:8085/v1/planning-task/TASK_ID05 / 任务状态
状态与错误处理
规划任务:running → succeeded / failed / canceled。提交成功只表示任务已创建,必须继续读取任务状态。
导航任务:planning、navigating、aligning、parking;仅导航的成功终态为 parked。带后续操作的任务继续进入 manipulation_planning,成功终态为 succeeded。
每 0.1–0.5 秒读取一次任务状态;超过 3 秒未读取会停止任务。仅导航成功时 result 为 null,请读取 navigation。失败或取消后,不使用部分路径继续操作。
| HTTP | 处理方式 |
|---|---|
| 400 | 请求校验失败;检查响应 error。异步任务中的校验失败也可能通过 status=failed 返回 |
| 403 | 本机同源校验失败;使用本机客户端访问 127.0.0.1 |
| 404 | GET 查询的配置、模型或任务不存在;确认完整编号 |
| 413 | 请求大小或传输编码不符合要求;参数请求体上限 2 MiB |
| 415 | POST 内容类型错误;设置 Content-Type: application/json |
| 423 | 软件停止、任务互斥或版本状态联锁;读取当前状态,不自动重试运动 |
停止与复位
发送 {"engaged":true} 到 /v1/workbench-stop 可触发软件停止。复位前重新读取当前 motion_epoch,将该整数放入 expected_epoch,并发送 {"engaged":false,"expected_epoch":当前值}。复位不会自动续跑;软件停止不代替硬件急停。
06 / 兼容性
版本与适用范围
| 文档版本 | 公开接口范围 | 运行条件 |
|---|---|---|
| Navigation 0.2.0-preview.8 | 机器人参数注册与版本读取;预览版本,真实硬件未验收 | Ubuntu 22.04 / 24.04 x86_64;已部署工作台,需 Docker Engine |
| Manipulation 0.3.1 | 本机运动学、路径规划、保守离散碰撞与几何导航仿真 | Ubuntu 22.04 / 24.04 x86_64;已部署工作台,无需另装 ROS 或 Docker |
机械臂文档的正式版本范围为本机软件功能。真机驱动、动力学、力控、连续碰撞和载荷碰撞不在本版验收范围内。导航参数 API 不代表四足整机已经完成标定。
接入前请确认程序版本、机器人型号、参数与任务场景。
咨询技术接入文档更新:2026-10-11
