Hardware Configs¶
Which setup are you?¶
Pick the row that matches your sensors. Everything else follows from there.
| My sensors | Use case | Start here |
|---|---|---|
| IMU + wheel odometry | Indoor, no GPS: warehouse, home robot, lab | wheels_indoor.yaml |
| IMU + LiDAR ICP | Indoor, no wheel odom: using KISS-ICP or rtabmap | icp_indoor.yaml |
| IMU + wheel odom + LiDAR ICP | Indoor, both velocity sources for redundancy | wheels_indoor.yaml + uncomment encoder2.topic |
| IMU + wheel odom + GPS | Outdoor, field robots, GPS navigation | bno085_custom.yaml or clearpath_husky.yaml |
Variations within each setup: one-line changes, not separate configs:
| Variation | Parameter to change |
|---|---|
| Standard GPS → RTK float | gnss.base_noise_xy: 0.5, gnss.min_fix_type: 3 |
| Standard GPS → RTK fixed | gnss.base_noise_xy: 0.015, gnss.min_fix_type: 4 |
| 6-axis IMU → 9-axis (BNO085, VectorNav) | imu.has_magnetometer: true |
| Add dual GPS antenna heading | gnss.heading_topic: "/gnss/heading" |
| Add Nav2 | Use fusioncore_nav2.launch.py instead of fusioncore.launch.py |
| Urban vs open sky GPS noise | Layer an environment preset on top |
All config files¶
| Config | Setup | Platform | IMU | GPS |
|---|---|---|---|---|
wheels_indoor.yaml |
IMU + wheels | Any differential drive (generic) | Any 6-axis MEMS | none |
icp_indoor.yaml |
IMU + LiDAR ICP | Any indoor robot with LiDAR | Any 6-axis MEMS | none |
bno085_custom.yaml |
IMU + wheels + GPS | Any differential drive (DIY) | Bosch BNO085 | u-blox M8N class |
clearpath_husky.yaml |
IMU + wheels + GPS | Clearpath Husky A200 | Microstrain 3DM-GX5-25 | u-blox F9P |
duatic_mecanum.yaml |
IMU + wheels | Duatic mecanum platform | BNO085 | none |
Using a config¶
ros2 launch fusioncore_ros fusioncore.launch.py \
fusioncore_config:=$(ros2 pkg prefix fusioncore_ros)/share/fusioncore_ros/config/wheels_indoor.yaml
Add remaps if your topics differ from the defaults:
ros2 launch fusioncore_ros fusioncore.launch.py \
fusioncore_config:=$(ros2 pkg prefix fusioncore_ros)/share/fusioncore_ros/config/wheels_indoor.yaml \
--ros-args \
-r /odom/wheels:=/diff_controller/odom \
-r /imu/data:=/imu
Indoor / GPS-denied robots¶
See Indoor / LiDAR ICP for detailed setup instructions: KISS-ICP, rtabmap, OAK-D IMU remaps, SLAM integration.
Layering environment presets¶
See Environment Presets to tune GPS noise for your operating conditions without editing the hardware config.
Don't see your hardware?¶
Open a Hardware Config Request with your sensor datasheets and the community will help put one together.