Skip to content

Summit playground: parking garage world - #6

Merged
fmrico merged 1 commit into
rollingfrom
parking_garage_world
Oct 15, 2026
Merged

fmrico merged 1 commit into
rollingfrom
parking_garage_world

Conversation

@fmrico

@fmrico fmrico commented Oct 14, 2026

Copy link
Copy Markdown
Contributor

Fixes #5

A third Summit XL world: a parking garage with three floors over the same footprint, linked by ramps. It is the first playground where the robot plans and drives between floors.

ros2 launch easynav_playground_summit easynav_parking_garage.launch.yaml

Contents

  • World and models. worlds/parking_garage.world (plus the .sdf and _mapping variants), models/parking_garage, models/parking_garage_ground_plane and the *_cube models, from parking-garage-world.
    • Its license file is GPL-3.0, now in models/parking_garage/LICENSE and declared in package.xml.
    • The garage model is based on a model by michaelwjl on free3d.com, credited in the README. Please check the license of that original model before merging.
  • Maps. They come from simulated 3D lidar scans of the collision mesh (a VLP-16 0.8 m above the ground every 2 m on floors 0–2), so faces hidden inside the model never enter them.
    • maps/parking_garage.pcd: 8.4 MB, one point per 0.1 m voxel (centroid), map frame.
    • maps/parking_garage.navmap: from_points at 0.4 m. Floors 0–2 and the ramps are one surface that overlaps itself in XY; the roof is a separate surface, unreachable in the model.
    • maps/parking_garage_bonxai.pcd: one point per occupied 0.3 m voxel.
  • Launch and parameters. easynav_parking_garage.launch.yaml and params/parking_garage.amcl.params.yaml. The parameters are the warehouse's (indoor RPP, NavMap AMCL with Bonxai, A* over the NavMap): obstacles only within 3 m and below 1.2 m, so the ceiling of each floor is not an obstacle.
  • READMEs. Both document the world, how its maps were built and the launch file.

Depends on

Validation

Headless simulation, goal (5, 0) on another floor:

Goal Result Time Path driven Climb
Floor 1 (z 2.35) FINISHED 62 s 45 m 2.35 m
Floor 2 (z 4.70) FINISHED 129 s 102 m 4.70 m

The robot goes up the north ramp 0→1, crosses floor 1 and goes up the ramp 1→2. EasyNav's z estimate follows the real one all the way.

Known limits.

  • With the 0.7 m inscribed radius the ramps leave about 0.9 m of clearance at 0.4 m cells, and less at other resolutions. The real Summit is about 0.62 m wide.
  • The final goal error (~0.6 m) comes from the localization (AMCL against Bonxai).

Adds the parking garage world from parking-garage-world (GPL-3.0, license
file in models/parking_garage/) and a launcher to navigate it with the
NavMap stack: easynav_parking_garage.launch.yaml.

Its maps come from simulated 3D lidar scans of the collision mesh on
floors 0-2. The NavMap (from_points, 0.4 m) is one surface whose floors
overlap in XY and connect through the ramps, so A* plans between floors.
The Bonxai cloud keeps the occupied 0.3 m voxels. The parameters are the
warehouse's (indoor): obstacles only within 3 m and below 1.2 m, so the
ceiling of each floor is not one.

Fixes #5

Signed-off-by: Francisco Martín Rico <fmrico@gmail.com>
@fmrico
fmrico force-pushed the parking_garage_world branch from 2c6a974 to 477a003 Compare October 15, 2026 04:29
@fmrico
fmrico merged commit d860c49 into rolling Oct 15, 2026
@fmrico
fmrico deleted the parking_garage_world branch October 15, 2026 04:32
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.

Summit playground: parking garage world with multi-level navigation

1 participant