Skip to content

(#95) feat(hardware): YAML hardware mapping, controllers, launches, and docs#9

Open
charlesmadjeri wants to merge 3 commits intodevfrom
cma/config-pipeline-yaml-config
Open

(#95) feat(hardware): YAML hardware mapping, controllers, launches, and docs#9
charlesmadjeri wants to merge 3 commits intodevfrom
cma/config-pipeline-yaml-config

Conversation

@charlesmadjeri
Copy link
Copy Markdown
Collaborator

@charlesmadjeri charlesmadjeri commented Apr 18, 2026

Issue #95 Sentience-Robotics/lucy_ros2#95

Summary

This PR makes config/hardware/active.yaml the hardware single source of truth, moves controller parameters and control.launch.py into thais_urdf, aligns the tree with the description/ layout, adds validation tests, and documents the schema plus a future InMoov i2 head-actuator appendix. Legacy hardware_config/ xacro is removed.

Motivation

  • Centralize board / actuator / sensor definitions for the upcoming generator (firmware C, ros2_control xacro, controllers).
  • Avoid splitting Thais-specific control defaults across repos when they belong with this description package.
  • Replace deprecated xacro hardware snippets with maintained YAML + docs.

Changes

  • Hardware store: config/hardware/active.yaml, active_meta.yaml, configs/default.yaml, backups/.
  • Controllers: config/controllers.yaml and launch/control.launch.py (default controller_config from this package).
  • Launches: rviz.launch.py / gazebo.launch.py (and related) use description/ share paths and current URDF entrypoint.
  • Install: CMakeLists.txt installs launch/, config/, description/, docs/ (no hardware_config/).
  • Tests: test_hardware_yaml.py (schema, pins, URDF joint cross-check via xacro), existing xacro smoke tests; BUILD_TESTING pytest wiring updated.
  • Docs: doc/docs/; docs/hardware_mapping.md, docs/inmoov_i2.md, updated docs/DEVELOPER.md, README.md, CONTRIBUTING.md; short pointer in config/hardware/README.md.
  • Removed: hardware_config/*.xacro (superseded by YAML + docs).

Add config/hardware/active.yaml (boards, actuators with shoulder Y on torso, sensors), config store (active_meta, configs/default, backups), and schema README. Install config/controllers.yaml and launch/control.launch.py; point gazebo/rviz and xacro tests at package controllers; remove broken inmoov_actuators_config_ros2_control include from hardware_config. Add pytest hardware validation, URDF cross-check, and invalid YAML fixtures.

Arm servo_min/max/default align with micro_ros firmware config_left_arm.c and config_right_arm.c; 270° servos use 0..270° hardware stroke; document calibration (offset_deg, scale, direction) and parity notes.

Refs: #95
@charlesmadjeri charlesmadjeri self-assigned this Apr 18, 2026
@charlesmadjeri charlesmadjeri changed the title feat(hardware): YAML hardware mapping, controllers, launches, and docs (#95) (#95) feat(hardware): YAML hardware mapping, controllers, launches, and docs Apr 18, 2026
Comment thread config/hardware/active.yaml Outdated
…idation

Relocate hardware docs under docs/, add hardware_mapping and InMoov i2 notes, remove legacy hardware_config xacros.

Align active.yaml and presets with lucy_config_generator (board_class, serial_id, physical_pin as INTERNAL_SERVO_N, topics).

Rename hardware config test to test_hardware_yaml and tighten fixtures for the current schema.

Refs: #96
@sentience-jetson sentience-jetson force-pushed the cma/config-pipeline-yaml-config branch from 3ae7c47 to 6682d38 Compare April 18, 2026 21:23
@charlesmadjeri charlesmadjeri requested a review from m-brl April 18, 2026 22:13
Mael-RABOT
Mael-RABOT previously approved these changes Apr 19, 2026
Base automatically changed from cma/evol-architecture-description-folder to dev April 25, 2026 12:49
@charlesmadjeri charlesmadjeri dismissed Mael-RABOT’s stale review April 25, 2026 12:49

The base branch was changed.

… robot_description for RViz

- Add config/control.launch.yaml defaults for urdf/controllers paths
- control.launch: spawn controllers from controllers.yaml; fix /robot_description for RViz + ros2_control subscription
- rviz.launch: include control.launch only; drop duplicate ros2_control/spawners
- controllers.yaml: explicit trajectory end velocity; regen-aligned joint lists
- hardware YAML: internal_servo_slots per board; doc + fixture + test updates
- URDF: declare white/black materials for base/stand visuals

Refs: #95
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants