feat(contracts): ship arm rpc contracts in-package (info/move_joint/move_pose/get_state/set_head) The D1 arm primitive declares robonix/primitive/arm/{info,move_joint, get_state,move_pose,set_head}, but their .toml + .srv definitions lived only on the robonix monorepo’s dev-hand branch and were never merged to main. On a fresh clone codegen therefore produced no arm.proto, and d1_arm crashed at ‘import arm_pb2’. Ship the contracts under /capabilities/ so the package is self-contained and codegen resolves them per-package.
feat(contracts): ship arm rpc contracts in-package (info/move_joint/move_pose/get_state/set_head)
The D1 arm primitive declares robonix/primitive/arm/{info,move_joint, get_state,move_pose,set_head}, but their .toml + .srv definitions lived only on the robonix monorepo’s dev-hand branch and were never merged to main. On a fresh clone codegen therefore produced no arm.proto, and d1_arm crashed at ‘import arm_pb2’. Ship the contracts under /capabilities/ so the package is self-contained and codegen resolves them per-package.
English
robonix.primitive.beingbeyond.d1.arm — BeingBeyond D1 六自由度机械臂 + 二自由度头部云台的 robonix 原语。直连 beingbeyond_d1_sdk 的 HeadArm 串口链路,无 ROS 后端。
robonix.primitive.beingbeyond.d1.arm
beingbeyond_d1_sdk
robonix/primitive/arm/driver
CMD_INIT
ACTIVATE
DEACTIVATE
SHUTDOWN
robonix/primitive/arm/info
robonix/primitive/arm/move_joint
robonix/primitive/arm/get_state
robonix/primitive/arm/move_pose
robonix/primitive/arm/set_head
只暴露 6 个臂关节;2 个头关节共用同一串口,由 set_head 单独驱动,move_joint 期间保持当前位姿。状态读取是 rpc(无 ROS 后端,故不提供 state_joint 的 topic_out 流)。
set_head
move_joint
state_joint
topic_out
字段、单位、默认值与失败条件见根目录 config.spec。要点:
config.spec
dev
/dev/ttyUSB0
baudrate
1000000
urdf_path
""
move_pose
ik_pos_tol
0.05
每个字段都有对应的 D1_ARM_* 环境变量回退。
D1_ARM_*
cp310
manylinux_2_17_x86_64
robonix_api
robot-beingbeyond-d1
tools/func_verify/lib/
pip install
sudo chmod 666 /dev/ttyUSB0
dialout
scripts/start.sh
$HOME/miniconda3/envs/bb_d1_robonix/bin/python3
BLOCK_GRASP_PYTHON
bash scripts/build.sh # rbnx codegen,生成 gRPC stub bash scripts/start.sh # 或由 rbnx boot 经部署清单拉起 rbnx caps -v | grep arm # 验证 6 条能力已注册且 provider 为 ACTIVE
关闭由 Driver 的 CMD_SHUTDOWN 处理(on_shutdown 会 robot.close() 释放串口), 无额外清理动作,故不提供 scripts/stop.sh。
CMD_SHUTDOWN
on_shutdown
robot.close()
scripts/stop.sh
get_state
info
package_manifest.yaml config.spec README.md scripts/{build.sh, start.sh} d1_arm/{__init__.py, main.py}
MulanPSL-2.0
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802047560号
primitive-beingbeyond-d1-arm-rbnx
English
robonix.primitive.beingbeyond.d1.arm— BeingBeyond D1 六自由度机械臂 + 二自由度头部云台的 robonix 原语。直连beingbeyond_d1_sdk的 HeadArm 串口链路,无 ROS 后端。能力
robonix/primitive/arm/driverCMD_INIT/ACTIVATE/DEACTIVATE/SHUTDOWN)robonix/primitive/arm/inforobonix/primitive/arm/move_jointrobonix/primitive/arm/get_staterobonix/primitive/arm/move_poserobonix/primitive/arm/set_head只暴露 6 个臂关节;2 个头关节共用同一串口,由
set_head单独驱动,move_joint期间保持当前位姿。状态读取是 rpc(无 ROS 后端,故不提供state_joint的topic_out流)。配置
字段、单位、默认值与失败条件见根目录
config.spec。要点:dev(默认/dev/ttyUSB0)— HeadArm 串口设备。臂与头共用这一个口,不要与其它进程同时打开。baudrate(默认1000000)— 须与控制器固件一致。urdf_path(默认"")—move_poseIK 用的 URDF;留空回退 SDK 自带模型。ik_pos_tol(默认0.05m)— IK 位置容差,超差的解被拒绝。每个字段都有对应的
D1_ARM_*环境变量回退。依赖与权限
cp310+manylinux_2_17_x86_64,非 3.10 装不上)。beingbeyond_d1_sdk(≥ 0.2.0)与robonix_api。SDK wheel 随robot-beingbeyond-d1部署仓的tools/func_verify/lib/提供,pip install该 whl 即可。sudo chmod 666 /dev/ttyUSB0,或把用户加入dialout组。scripts/start.sh默认用$HOME/miniconda3/envs/bb_d1_robonix/bin/python3, 可用BLOCK_GRASP_PYTHON覆盖。构建与启动
关闭由 Driver 的
CMD_SHUTDOWN处理(on_shutdown会robot.close()释放串口), 无额外清理动作,故不提供scripts/stop.sh。安全
get_state/info),确认硬件急停可独立断臂再下发运动。CMD_SHUTDOWN时停止硬件输出。move_pose只在 IK 收敛且误差 ≤ik_pos_tol时下发,否则返回错误而不动作。目录
License
MulanPSL-2.0