Sensor drivers, state estimation, trajectory generation/publishing, Text User Interface, and acoustic image processing pipeline for navigational purposes utilizing ROS2 Galactic. Master thesis is publicly available here.
Generated Trajectory | Executed Trajectory |
---|---|
Consult separate README's for the usage of respective packages:
- brov2_dvl: Driver for A50 DVL
- brov2_sonar: Driver for OSM Ethernet Sonar System
- brov2_barometer: Driver for Bar30 Pressure Sensor
- brov2_gps: Driver for Ultimate GPS
- brov2_trajectory: Trajectory Generator and Trajectory Publisher
- brov2_qekf: State Estimation using Quaternion based Error-State Kalman Filter
- brov2_sonar_processing: Image Construction Pipeline for Side-Scan Sonar Data
- brov2_tui: WIP
The packages/scripts rely on the following list of libraries and modules to function properly.
Onboard:
- Nlohman Json - JSON for Modern C++
- BlueRobotics MS5837 Python Library
- System Management Bus (SMBus)
- Adafruit_CircuitPython_GPS module
- BNO055 IMU sensor ROS2 library
Locally:
Both:
In order to set up 30fps live stream from camera to PC; run the shell scripts start_video_pc.sh
and start_video_pi.sh
on PC and PI respectively.
The following hardware was used in this project:
- ROV: Blue Robotics BlueROV2 (heavy configuration)
- Embedded Computer: Raspberry Pi 4 Model B
- DVL: Waterlinked A50
- IMU: Adafruit BNO055
- Barometer: Blue Robotics BAR30
- Side-scan sonar: Deepvision OSMEthernet Sonar System, 680 kHz transducers