ROS2 package for BlueROV/BlueAUV control with PX4 autopilot. Provides EKF state estimation, hardware drivers (barometer, DVL), and offboard controller.
| Module | Description |
|---|---|
ekfNode |
EKF state estimation fusing DVL, IMU, barometer data |
barometer_node |
MS5837 pressure sensor driver (I²C) |
controllerpx4bluerov2 |
PX4 offboard controller for 6DOF control |
i2c |
I²C communication library for sensors |
ms5837 |
Barometer driver wrapper |
This package fuses sensor data from DVL, IMU, and barometers using an Extended Kalman Filter for underwater vehicle navigation. It interfaces with PX4 autopilot for 6DOF control via ROS2.
# Real robot deployment
ros2 launch bluerov2common ekf_robot.launch.py
# Simulation mode
ros2 launch bluerov2common ekf_gazebo.launch.py simulation:=trueros2 launch bluerov2common barometer.launch.py # MS5837 depth sensor
ros2 launch bluerov2common dvl.launch.py # Tritech Micron DVL
ros2 launch bluerov2common imu.launch.py # Xsens MTI IMU| Topic | Type | Description |
|---|---|---|
publisherPoseEkf |
PoseWithCovarianceStamped | Estimated pose from EKF |
desiredStateOfBluerov2 |
DesiredStateForRobot | Control commands to controller |
config/px4_config.yaml- PX4 autopilot parameters (connection, sensors, safety)config/ekfTUHHROS2.yaml- EKF noise covariance tuningconfig/tritech_micron_config.yaml- DVL settingsconfig/xsens_mti_node.yaml- IMU calibration
Enable I²C and start pigpio daemon:
sudo bash scripts/giveRights.sh
./startpigpiod.sh
i2cdetect -y 1Control PX4 offboard mode from Python:
from bluerov2common.scripts.vehicleCommands import OffboardControl
# engage_offboard_mode(), arm(), disarm()