捡垃圾 Sample
本示例演示 Quanta X1 SDK Client 与推理服务的基本交互流程:读取机器人状态和相机数据,向推理服务发送观测与任务指令,接收动作序列,并通过 SDK 控制机器人执行捡垃圾任务。
示例代码
https://github.com/X-Square-Robot/sdk_robot/tree/main/samples/quanta_x1
外部环境
将机器人放置在空旷、地面无杂物的平整场地,将垃圾桶和待拾取的垃圾放置在机器人前方。确认机器人周围留有足够的移动和机械臂操作空间,并确保急停可随时使用。
网络连接
按照当前 SDK 标准网络配置,使用网线连接开发 PC 与机器人,并将开发 PC 的机器人侧有线接口配置为 192.168.10.10/24。
本文示例使用以下机器人网络配置:
-
机器人有线 IP:
192.168.10.1 -
机器人 SDK Server:
192.168.10.1:50051
运行 Sample 前,请先确认机器人和 SDK Server 可达:
ping 192.168.10.1
python3 check_connect.py --server 192.168.10.1:50051Sample 还需要访问模型推理服务 ws://<INFERENCE_SERVER_IP>:<PORT>。开发 PC 可以使用有线网络连接机器人,同时使用 Wi-Fi 或另一网络访问模型服务,但必须确保两条网络路由不冲突。Sample 不负责配置系统路由、选择网卡或进行网络故障切换。
软件环境
在 SDK 仓库根目录执行:
cd /path/to/sdk_robot
source .venv/bin/activate
python -m pip install -r samples/quanta_x1/requirements.txt运行示例
将推理服务地址和端口替换为本次服务发布方提供的真实值。机器人 SDK Server 地址通过第 6 个位置参数显式传入:
INFERENCE_SERVER_IP='REPLACE_WITH_CONFIRMED_IP_OR_HOST'
INFERENCE_SERVER_PORT='REPLACE_WITH_CONFIRMED_PORT'
bash samples/quanta_x1/scripts/start_sdk_ex001.sh \
"$INFERENCE_SERVER_IP" \
"$INFERENCE_SERVER_PORT" \
"Move and pick up the garbage around the trash can and put it into the trash can." \
end_pose \
10 \
192.168.10.1:50051start_sdk_ex001.sh 的六个位置参数依次为:
MODEL_ADDRESS
MODEL_PORT
INSTRUCTION
CONTROL_MODE
INTERPOLATE_MULTIPLIER
ROBOT_SDK_URL-
MODEL_ADDRESS:模型推理服务 IP 地址或域名。 -
MODEL_PORT:模型推理服务实际监听端口。 -
INSTRUCTION:发送给模型的任务指令。 -
CONTROL_MODE:示例使用end_pose,表示末端位姿控制。 -
INTERPOLATE_MULTIPLIER:示例中的10为动作插值倍率,不是执行次数。 -
ROBOT_SDK_URL:机器人 SDK Server 地址,格式为host:port,不要添加x2://前缀。省略时脚本默认使用192.168.10.1:50051。
推理服务端口不是 SDK 固定常量,请使用服务发布方确认的当前端口,不要沿用历史文档中的 40189。
修改机器人 IP
如果机器人不使用默认地址 192.168.10.1,请同步调整开发 PC 的机器人侧网络配置,并通过启动脚本的第 6 个位置参数传入实际 SDK Server 地址。
例如机器人 SDK Server 修改为 192.168.10.2:50051:
bash samples/quanta_x1/scripts/start_sdk_ex001.sh \
"$INFERENCE_SERVER_IP" \
"$INFERENCE_SERVER_PORT" \
"Move and pick up the garbage around the trash can and put it into the trash can." \
end_pose \
10 \
192.168.10.2:50051**注意:**不要使用同名环境变量尝试覆盖脚本默认值,例如下面的写法不会修改 ROBOT_SDK_URL:
ROBOT_SDK_URL=192.168.10.2:50051 \
bash samples/quanta_x1/scripts/start_sdk_ex001.sh \
"$INFERENCE_SERVER_IP" \
"$INFERENCE_SERVER_PORT" \
"INSTRUCTION" \
end_pose \
10需要修改机器人 SDK Server 地址时,请始终通过第 6 个位置参数显式传入。
运行说明
-
脚本会同时连接模型推理 WebSocket 和机器人 SDK Server。
-
脚本启动后会将机器人切换到 SDK 工作模式并初始化相关控制模块。
-
运行前清空机器人周边无关人员和障碍物,操作人员应随时准备停止机器人。
-
推理服务或 SDK 连接断开后,应先确认机器人已经安全停止,再排查模型服务、机器人 SDK Server 和系统网络路由。
-
重新运行脚本会建立新的客户端会话,当前 Sample 没有持久化并恢复上一次推理流程的实现,因此不能保证自动续接上一次中断位置。