Skip to content

Enhance Docker support and update deformable infantry configurations#67

Merged
ZGZ713912 merged 17 commits intorefactor/deformable-infantryfrom
deformable-infantry-v2
May 3, 2026
Merged

Enhance Docker support and update deformable infantry configurations#67
ZGZ713912 merged 17 commits intorefactor/deformable-infantryfrom
deformable-infantry-v2

Conversation

@ZGZ713912
Copy link
Copy Markdown
Member

@coderabbitai summary

ZGZ713912 and others added 15 commits April 29, 2026 23:47
feat(config): update deformable infantry parameters in YAML configuration

fix(chassis_power_controller): set excess power limit to zero

fix(deformable_chassis): increase maximum angular velocity limit

chore(wheel-demo): remove unused encoder outputs from wheel demo

feat(deformable-infantry-v2): implement RmcsBoardLiteCompat for hardware compatibility
- Add rmcs-develop:latest-full with opposite-architecture sysroots, cross toolchains, and a build-rmcs-cross entrypoint for local cross compilation.
- Update the image publishing workflow to build per-arch digests, smoke test cross builds, and promote multi-arch manifests for base, develop, develop-full, and runtime images.

(cherry picked from commit 23d3469)
…ld outputs

- Introduced `--link-default` option in `build-rmcs-cross` to create symlinks for build, install, and log directories pointing to their respective cross build outputs.
- Updated documentation to reflect the new linking feature.
- Added checks to ensure the target directories are valid before linking.
- Modified the default serial filter in the configuration for deformable infantry.
Enhance Docker support and update deformable-infantry-v2 configurations
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 3, 2026

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 582dd33d-87db-4f97-8ade-5cec835ded1c

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Walkthrough

此PR引入了多架构容器构建管线、交叉编译工具链与脚本支持,移除了devcontainer设置,并更新了ROS配置参数和控制器实现以适配新的硬件/执行器配置。

Changes

容器和多架构构建基础设施

Layer / File(s) Summary
容器镜像参数化
Dockerfile
添加 SYSROOT_IMAGE_* 构建参数,引入 TARGETARCH 感知逻辑以条件化安装OpenVINO(仅amd64)、Unison源码构建、Neovim多架构下载和CMake多架构安装。
交叉编译sysroot阶段
Dockerfile
定义 rmcs-sysroot-amd64/arm64 阶段和 rmcs-develop-full 阶段,在后者中安装反向架构的GCC/G++工具链并挂载对应架构的sysroot文件系统到 /opt/sysroots
NodeJS工具安装
Dockerfile
在dev镜像中添加NodeSource apt仓库并全局安装 @openai/codex
devcontainer移除和清理
.devcontainer/Dockerfile, .devcontainer/bootstrap-agent-state.sh, .devcontainer/state/*/.gitignore
完全移除.devcontainer目录下的Dockerfile镜像配置和bootstrap脚本,清空state目录下所有.gitignore文件。
多架构CI管线重构
.github/workflows/update-image.yml
将单作业tag标签构建替换为多作业管线:build_base为两种架构生成摘要、build_images依赖摘要并为三个目标构建推送、verify_images运行交叉编译验证、promote创建并推送多架构清单列表。
构建目录忽略规则
.gitignore
添加 log-cross-*/, build-cross-*/, install-cross-*/, .venv 到忽略列表。

交叉编译工具链和构建脚本

Layer / File(s) Summary
本地构建链接恢复
.script/build-rmcs
添加 check_default_dir_restorable()restore_default_dir() 辅助函数,在构建前验证并恢复 build, install, log 符号链接,支持与交叉构建共存。
交叉编译入口脚本
.script/build-rmcs-cross
新增完整交叉编译脚本,支持 --target-arch arm64/amd64, --link-default 选项,验证工具链/sysroot,隔离主机环境变量,导出交叉编译CMake/colcon配置,运行per-arch构建并可选创建symlink。
Zsh命令补全
.script/complete/_build-rmcs-cross
为build-rmcs-cross添加补全配置,支持 --target-arch 选项值和额外colcon参数。
CMake交叉编译工具链
rmcs_ws/toolchain.cmake
新增170行CMake工具链配置,导入 RMCS_TARGET_ARCH/SYSROOT/TARGET_TRIPLET 变量,配置系统/处理器/sysroot路径,定义 rmcs_find_host_program() 定位主机工具,设置交叉编译器和pkg-config环境。
Neovim路径更新
.script/host/rmcs
NVIM_PATH/opt/nvim-linux-x86_64/bin/nvim 更新为 /opt/nvim/bin/nvim

ROS工作空间配置和控制逻辑更新

Layer / File(s) Summary
deformable-infantry-omni配置调优
rmcs_ws/src/rmcs_bringup/config/deformable-infantry-omni.yaml
禁用 AutoAimComponent,添加 serial_filter_imu,更新 chassis_controller.spin_ratio 从0.45到1.0并移除关节限位参数,为 gimbal_controller 添加 inertia/frictionuse_encoder_pitch 并更新yaw增益。
deformable-infantry-v2配置重构
rmcs_ws/src/rmcs_bringup/config/deformable-infantry-v2.yaml
替换执行器组件映射(SteeringWheelController代替WheelDemoController),更新硬件串行过滤器和零点参数,将底盘控制从主动悬挂几何参数改为姿态矫正PID,为四个关节控制器添加ADRC饱和限制和悬挂模式参数,更新 gimbal_controller 的惯性/摩擦和控制增益。
deformable-infantry.yaml增强
rmcs_ws/src/rmcs_bringup/config/deformable-infantry.yaml
gimbal_controller 中添加 use_encoder_pitch: false
底盘最大角速度调整
rmcs_ws/src/rmcs_core/src/controller/chassis/deformable_chassis.cpp
angular_velocity_max_ 从25.0增加到30.0。
移除WheelDemoController输出接口
rmcs_ws/src/rmcs_core/src/controller/chassis/wheel-demo.cpp
移除 /chassis/encoder/alpha, /chassis/encoder/alpha_dot, /chassis/radius 输出接口及其更新逻辑。
万向节控制器yaw前馈
rmcs_ws/src/rmcs_core/src/controller/gimbal/deformable_infantry_gimbal_controller.cpp
添加 inertiafriction 参数读取,实现yaw速度导数低通滤波估计加速度,计算前馈扭矩 inertia * filtered_accel + friction * velocity 与PID反馈叠加。
万向节solver移除pitch融合
rmcs_ws/src/rmcs_core/src/controller/gimbal/two_axis_gimbal_solver.hpp
移除ROS参数驱动的pitch融合初始化和所有融合计算路径,直接从编码器角度推导pitch三角函数。
deformable-infantry-omni硬件驱动重构
rmcs_ws/src/rmcs_core/src/hardware/deformable-infantry-omni.cpp
添加专用ImuBoard实例读取IMU并发布 /gimbal/pitch/velocity_imu,硬同步快照从TopBoard改为ImuBoard的BMI088,TopBoard移除pitch链接TF更新,BottomBoard直接继承RmcsBoardLite。
deformable-infantry-v2硬件驱动更新
rmcs_ws/src/rmcs_core/src/hardware/deformable-infantry-v2.cpp
切换到 rmcs_board_lite 成员,BottomBoard添加底盘IMU pitch/roll输出并新增debug日志,扩展CAN接收处理以追踪轮/关节电机状态,TopBoard改用RmcsBoardLite并重路由gimbal pitch电机至can0。

子模块和文档更新

Layer / File(s) Summary
子模块指针更新
rmcs_ws/src/hikcamera, rmcs_ws/src/rmcs_auto_aim_v2, rmcs_ws/src/serial, rmcs_ws/src/ros2-hikcamera
更新四个子模块的commit引用指针至新版本。
Docker构建文档重构
docs/zh-cn/build_docker_image.md
将基础构建命令移入fenced代码块,重新组织latest-full和代理构建章节格式,添加明确的代理参数示例。
README交叉编译指引
README.md
在"获取镜像"段添加 qzhhhi/rmcs-develop:latest-full 说明,在"构建"段添加 build-rmcs-cross --target-arch arm64/amd64 使用示例和文档链接。
交叉编译使用文档
docs/zh-cn/cross_build.md
新增111行中文文档,详细说明 latest-full 镜像语义、cross toolchain.cmake和build-rmcs-cross脚本、输出目录约定、参数使用、环境隔离行为、默认install模式、本地验证步骤和CI维护规范。

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Possibly related PRs

Suggested reviewers

  • qzhhhi
  • creeper5820

Poem

🐰 交叉编译的梦想起飞了,
多架构容器在云端闪耀,
sysroot工具链整整齐齐排列,
从amd64到arm64,没有遗漏,
RMCS在新天地翱翔!

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch deformable-infantry-v2

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@ZGZ713912
Copy link
Copy Markdown
Member Author

@coderabbitai summary

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 3, 2026

✅ Actions performed

Summary regeneration triggered.

@ZGZ713912
Copy link
Copy Markdown
Member Author

@coderabbitai summary

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 3, 2026

✅ Actions performed

Summary regeneration triggered.

@ZGZ713912 ZGZ713912 merged commit 73306f4 into refactor/deformable-infantry May 3, 2026
1 check passed
@github-project-automation github-project-automation Bot moved this from Todo to Done in RMCS May 3, 2026
This was referenced May 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

3 participants