Skip to content

Initial import of the X500 on the parts pipeline - #1

Merged
caguero merged 13 commits into
lyricalfrom
initial-import
Aug 28, 2026
Merged

caguero merged 13 commits into
lyricalfrom
initial-import

Conversation

@caguero

@caguero caguero commented Aug 4, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Initial import of the Holybro X500 V2, built the same way as the BlueBoat in bluerobotics_models: a part library (holybro_parts) where each part declares its inertia, visuals, collisions, slots with accepted options and defaults, frames and, for propellers, a drive table. The default vehicle needs no configuration (four 1345 props, 4S battery, GPS mast); a config only states differences and is checked against the assembly manifest, failing the build or the launch with the reason. x500_gazebo places the motor plugins and the NavSat by the same resolution, generates the bridge from the manifest and supports launch time loadouts (config_file:=, no rebuild). The meshes are BSD 3 placeholders from PX4-gazebo-models; the assembly machinery is copied from bluerobotics_parts and marked for extraction into a shared package. All documentation lives under docs/ on the site.

How to test it?

Pull requests only build the docs, so run them locally and use them as the test script:

pip install -r docs/requirements.txt
sphinx-build -W docs _build/html && python3 -m http.server -d _build/html

Then open http://localhost:8000 and follow:

  • Getting started: build the workspace, launch the default vehicle in Gazebo, echo the IMU and GPS topics, view the model in RViz.
  • Vehicles / X500: the default loadout, the motor command bus (gz.msgs.Actuators, not bridged), the slot table.
  • How to guides: change the loadout (gimbal in, gps out) and launch with config_file:=; try a typo, which must fail naming the problem; generate the artifacts with configure_vehicle.py and check a config with check_assembly.py.
  • Reference and Design: the config schema, the parts catalog and the pipeline description.

colcon test runs 92 tests (unit, headless Gazebo and ROS launch, lint), all green locally.

🤖 Generated with Claude Code

Assisted-by: Claude Fable 5 <noreply@anthropic.com>
Signed-off-by: Carlos Aguero <caguero@honurobotics.com>
@caguero
caguero requested a review from j-rivero August 4, 2026 18:04
caguero added 6 commits August 4, 2026 21:37
Assisted-by: Claude Fable 5 <noreply@anthropic.com>
Signed-off-by: Carlos Aguero <caguero@honurobotics.com>
Assisted-by: Claude Fable 5 <noreply@anthropic.com>
Signed-off-by: Carlos Aguero <caguero@honurobotics.com>
… plumbing, CMake 3.14

Assisted-by: Claude Fable 5 <noreply@anthropic.com>
Signed-off-by: Carlos Aguero <caguero@honurobotics.com>
…acts to the config

Assisted-by: Claude Fable 5 <noreply@anthropic.com>
Signed-off-by: Carlos Aguero <caguero@honurobotics.com>
Assisted-by: Claude Fable 5 <noreply@anthropic.com>
Signed-off-by: Carlos Aguero <caguero@honurobotics.com>
Assisted-by: Claude Fable 5 <noreply@anthropic.com>
Signed-off-by: Carlos Aguero <caguero@honurobotics.com>
… and defaults, manifest checked configs, launch time loadouts and the documentation site

Assisted-by: Claude Fable 5 <noreply@anthropic.com>
Signed-off-by: Carlos Agüero <caguero@honurobotics.com>
(cherry picked from commit b591afcfeca0851594468efffd6faad48c7e730e)
@caguero caguero changed the title Initial import of x500_description and x500_gazebo Initial import of the X500 on the parts pipeline Aug 26, 2026
… self test

Assisted-by: Claude Fable 5 <noreply@anthropic.com>
Signed-off-by: Carlos Agüero <caguero@honurobotics.com>
…or bus autopilot owned

Assisted-by: Claude Fable 5 <noreply@anthropic.com>
Signed-off-by: Carlos Agüero <caguero@honurobotics.com>
Comment thread x500_gazebo/launch/sim.launch.xml Outdated
Comment thread x500_gazebo/launch/sim.launch.xml Outdated
caguero and others added 2 commits August 28, 2026 20:14
Co-authored-by: Alejandro Hernández Cordero <ahcorde@gmail.com>
Co-authored-by: Alejandro Hernández Cordero <ahcorde@gmail.com>
@caguero
caguero requested a review from ahcorde August 28, 2026 18:14
@caguero
caguero merged commit 93e3878 into lyrical Aug 28, 2026
2 checks passed
@caguero
caguero deleted the initial-import branch August 28, 2026 18:26
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.

2 participants