Skip to content

Add collision benchmarking and collision count recording#1

Open
H-M-Ashour wants to merge 10 commits into
jazzyfrom
hussam/data-collection-fixes
Open

Add collision benchmarking and collision count recording#1
H-M-Ashour wants to merge 10 commits into
jazzyfrom
hussam/data-collection-fixes

Conversation

@H-M-Ashour

Copy link
Copy Markdown

No description provided.

H-M-Ashour added 10 commits June 6, 2026 07:36
…o keep track of notes related to data collection. This will help us stay organized and ensure that we have a clear record of our data collection process.

Also, made some modificatoins to ensure running scenarios in sim dowsn't shift the map between episodes to ensure consistency in our data collection. This will help us maintain the integrity of our data and ensure that we can accurately analyze it later on.
…o keep track of notes related to data collection. This will help us stay organized and ensure that we have a clear record of our data collection process.

Also, made some modificatoins to ensure running scenarios in sim dowsn't shift the map between episodes to ensure consistency in our data collection. This will help us maintain the integrity of our data and ensure that we can accurately analyze it later on.
…ection

## Summary
Enhanced benchmark collision data reliability for multi-robot scenarios. Key improvements include:
- Benchmark timeout episodes now write rows to progress.csv instead of just headers
- Launch arguments now preserve explicit 'false' values (e.g., mobile.safety_monitor: false)
- Nav2 can now run in debug 'safety off' mode bypassing collision monitor and velocity smoother
- Passive collision tracker is now attached to all mobile adapters, not just debug adapters
- Collision tracker now detects robot-vs-wall, robot-vs-obstacle, robot-vs-pedestrian, and robot-vs-robot collisions
- collision_events now represents real stop-polygon contacts, not slow-polygon near misses
- Added crowded two-Jackal benchmark scenario and configs for visual collision stress testing
- Hunav is explicitly enabled in benchmark contests to prevent fallback to dummy humans

## Changes Made

1. **arena_evaluation/benchmark/runner.py**
   - Fixed launch arg handling to preserve False values
   - Added timeout episode record generation for progress.csv
   - Tests: test_build_launch_args_false_value_forwarded, test_timeout_episode_record_can_be_written_to_progress

2. **arena_robots/bringup/mobile/nav2.py & launch/adapters/mobile/nav2.launch.py**
   - Added optional safety_monitor parameter (default: true)
   - When false, bypasses both collision_monitor and velocity_smoother

3. **task_generator/tasks/robots/adapters/mobile/__init__.py**
   - Mounted passive CollisionTrackerNode at base MobileAdapter level
   - Now available for all mobile adapters by default

4. **task_generator/tasks/robots/adapters/mobile/rosnav_rl.py & test_collision.py**
   - Removed duplicate collision tracker setup (moved to base adapter)

5. **task_generator/manager/robot_manager/collision_tracker.py**
   - Emit collision_events only from stop-action polygons (not slow polygons)
   - Added robot-vs-robot collision detection with deduplication
   - Subscribe to both robot-local and shared Hunav pedestrian topics
   - Added info logs for dynamic obstacle registration

6. **task_generator/simulators/human/hunav/hunav.py**
   - Added debug logs for Hunav pedestrian registration

7. **arena_evaluation/configs/benchmark/suites/crowded_collision_check.yaml** (NEW)
   - New benchmark suite for two-Jackal collision stress testing

8. **arena_evaluation/configs/benchmark/contests/crowded_collision_check.yaml** (NEW)
9. **arena_evaluation/configs/benchmark/contests/crowded_collision_check_dwb.yaml** (NEW)
   - Contest configs with multiple planners (DWB, MPPI, regulated-pure-pursuit, graceful)
   - Explicit human: hunav configuration

10. **arena_simulation_setup/worlds/map_empty/scenarios/collision_stress/** (NEW)
    - New scenario with two Jackals and dynamic pedestrians
    - Designed for visual collision stress testing

## Verification
- 80 unit tests passed
- arena_robots, task_generator, and arena_evaluation built successfully
- Timeout benchmark runs now write real progress.csv rows
- Live collision topics publish correctly as ROS topics
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.

1 participant