49 lines
1.9 KiB
Markdown
49 lines
1.9 KiB
Markdown
# saltybot_tests — Integration Test Suite (Issue #504)
|
|
|
|
Complete ROS2 system integration testing for SaltyBot full-stack bringup.
|
|
|
|
## Test Files
|
|
|
|
| File | Description |
|
|
|------|-------------|
|
|
| `test_launch.py` | launch_testing: full stack in follow mode, 30s stability |
|
|
| `test_subsystems.py` | Sensor health, perception, navigation, rosbridge |
|
|
| `test_slam_nav2.py` | SLAM (RTAB-Map) + Nav2 lifecycle nodes (indoor mode) |
|
|
| `test_controls_pipeline.py` | cmd_vel_mux, motor protection, accel limiter, e-stop |
|
|
| `test_audio_monitoring.py` | Audio pipeline, VAD, health monitor, diagnostics, docking |
|
|
|
|
## Coverage
|
|
|
|
| Subsystem | Nodes | Topics | Services |
|
|
|-----------|-------|--------|----------|
|
|
| Sensors | LIDAR, RealSense, IMU | /scan, /camera/*, /odom | — |
|
|
| SLAM | rtabmap | /rtabmap/map, /rtabmap/odom | /saltybot/save_map |
|
|
| Nav2 | planner, controller, bt_navigator | /global_costmap, /plan | /compute_path_to_pose |
|
|
| Perception | yolo_node | /person/detections | — |
|
|
| Controls | mux, accel_limiter, smoother | /cmd_vel, /e_stop | — |
|
|
| Audio | audio_pipeline, vad | /audio/state, /audio_level | — |
|
|
| Monitoring | health_monitor, watchdog | /system_health, /diagnostics | — |
|
|
| Docking | docking_node | /docking_status | /saltybot/dock, /undock |
|
|
| Comms | rosbridge_websocket | /tf, /odom bridged | — |
|
|
|
|
## Running
|
|
|
|
```bash
|
|
# Build
|
|
colcon build --packages-select saltybot_tests
|
|
source install/setup.bash
|
|
|
|
# Follow mode tests (no hardware)
|
|
ros2 launch saltybot_bringup full_stack.launch.py mode:=follow enable_bridge:=false &
|
|
sleep 15
|
|
pytest test/ -v --ignore=test/test_slam_nav2.py --tb=short
|
|
|
|
# Indoor mode tests (SLAM + Nav2)
|
|
ros2 launch saltybot_bringup full_stack.launch.py mode:=indoor enable_bridge:=false &
|
|
sleep 25
|
|
pytest test/test_slam_nav2.py -v --tb=short
|
|
|
|
# Full launch_testing suite
|
|
ros2 launch launch_testing launch_test.py test/test_launch.py
|
|
```
|