Repository navigation
SerialArm-Core v0.5.1
SerialArm-Core v0.5.1
v0.5.1 是一个以运行安全与分发可用性为核心的维护版本
本次更新重点解决两个问题:一是 RobotSession 在可恢复 FAULT 后可能提前结束 worker,导致 Python 会话生命周期无法继续;二是非 ROS 用户安装 Pinocchio 等依赖和使用 Standalone Core / Python Binding 的门槛过高
RobotSession Online FAULT Recovery
- 可恢复的
FAULT + fault_holding不再结束 C++ worker - worker 会持续调用
maintain_fault_hold(),保持安全反应在线 clear_fault()、enter_fault_compliant_recovery()、return_to_fault_rigid_hold()统一提交给同一个 worker 串行执行- 避免 Python 调用线程与控制线程同时修改 Robot 状态机
- 进入 FAULT 后自动废弃旧
move_to目标、旧阻抗模式请求和未应用的 gravity scale 请求 clear_fault()成功后固定从ACTIVE + RIGID_HOLD恢复- 不会自动继续故障前轨迹,也不会自动重新进入
COMPLIANT_DRAG - FAULT 期间拒绝新的运动请求
- worker 停止或
stop()遇到 FAULT 时使用force_deactivate(),避免留下无人维护的周期 hold
这使拖拽、手眼标定和其他需要长期保持 RobotSession 在线的流程可以在一次可恢复 FAULT 后继续工作,而不需要重启整个会话
Standalone Dependency Management
新增 Conan 2 Standalone 依赖路径
SerialArm-Core
↓
find_package(...)
↓
Conan 2 / CMakeDeps / CMakeToolchain
↓
Pinocchio + Eigen + yaml-cpp + GTest
Core CMake 仍保持 dependency-manager agnostic:
- 不 vendor Pinocchio
- 不使用 git submodule 管理 Pinocchio
- 不在默认 CMake 中通过 FetchContent 编译 Pinocchio
- ROS 2 用户继续使用
rosdep + apt - Standalone Linux 用户使用 Conan 2
Standalone Core Quick Start
python3 -m pip install --user "conan>=2,<3"
export PATH="$HOME/.local/bin:$PATH"
./tools/bootstrap_standalone.sh
source install/standalone/setup.bashbootstrap 会自动完成 Conan profile、依赖安装、Core configure/build、ctest 和 install
DM-Arm One-command Bootstrap
仓库内置 DM-Arm 用户可以直接执行
./tools/bootstrap_standalone.sh --robot dm_arm
source install/standalone/setup.bash
serial_arm_terminal --robot-profile dm_arm_gray该路径会继续安装:
- Damiao USB2CAN Protocol
- Damiao Hardware Backend
- Robot Profiles
- DM-Arm Description / Config / Model resources
并自动生成统一的 install/standalone/setup.bash
Standalone Python Wheel
修复 standalone wheel 在非 ROS 环境下的安装链:
_serial_arm在无 ament 环境下也会进入 wheellibserial_arm_core.so随 wheel 一起安装_serial_arm使用$ORIGINRPATH 查找随包安装的 Core shared library- 补充 Python package README,保证 PEP 621 metadata 路径有效
- standalone wheel 不要求 ROS 2 / ament
构建示例:
conan install . \
--output-folder=build/conan \
--build=missing \
-s build_type=Release
source "$PWD/build/conan/conanrun.sh"
export CMAKE_ARGS="-DCMAKE_TOOLCHAIN_FILE=$PWD/build/conan/conan_toolchain.cmake"
cd src/serial_arm/core/python
python3 -m pip install build
python3 -m build --wheel
python3 -m pip install --force-reinstall dist/serial_arm-*.whl
python3 -c "import serial_arm; print(serial_arm.__version__)"Regression Coverage
新增 / 强化以下回归测试:
serial_arm_robot_session_fault_recovery_contractserial_arm_robot_session_fault_recovery_runtime_testsserial_arm_standalone_dependency_contractserial_arm_bootstrap_standalone_cli
其中 RobotSession runtime test 使用故障注入 Hardware Plugin 在控制周期中制造一次可恢复 READ_FAILED,验证:
ACTIVE + tracking
↓
recoverable FAULT
↓
worker still running
↓
FAULT + RIGID_HOLD
↓
clear_fault()
↓
ACTIVE + RIGID_HOLD
↓
re-enter tracking without new goal
↓
old move_to target is not resumed
Compatibility
- Version:
0.5.1 - C++: C++17
- ROS 2: Humble path remains supported
- Standalone: Linux C++ / Python
- Existing Robot Profile and Hardware Backend interfaces remain unchanged
- v0.6.0 planned task-space capability is not included in this maintenance release