MacRover / Rover

McMaster Mars Rover Faraday (2020-2024)
MIT License
5 stars 1 forks source link

Integration and testing of the SLAM system #16

Open emcauliffe opened 2 years ago

emcauliffe commented 2 years ago

@haashimrehan

Goal: get the intel camera working in conjunction with GPS, LoRa, and encoder data to give the robot the ability to map and navigate its environment.

haashimrehan commented 2 years ago
haashimrehan commented 2 years ago

Uninstalled and reinstalled every package related to the D435 (librealsense2, ros-melodic-librealsense2, ros-melodic-realsense2-camera, ros-melodic-realsense2-description). The camera now publishes at a consistant 30hz on rs-camera.launch and a consistant ~25hz when setting align_depth:=true (needed for rtabmap)

I suspect it could have been a dependency version compatibility issue.

RTAB-Map was tested with these faster camera topics and performed better/faster.

Next steps: Take visual odometry, IMU, and GPS and send it to pose_ekf node to generate a single fused odometry source. Provide this /odom topic to RTAB-Map and test out performance.

haashimrehan commented 2 years ago

Localization Notes:

In my test-base robot I only needed one EKF (Extended Kalman Filter) to fuse my odometry sources since the whole system was confined indoors with the robot using only relative-based sensor data. This changes once we receive absolute data from sensors like the GPS and Visual Odometry Output from RTAB-Map

More info on why we need to implement a dual EKF system here: https://answers.ros.org/question/318328/robot_localization-dual-ekfhow-the-two-ekf-nodes-work-together/

Essentially, relative sources give you data much faster, but is highly prone to drift over time. Absolute sensor sources are slower, but less prone to drift and useful to 'fix' the localisation here and there. This is especially useful for the rover needing to navigate to specific GPS Waypoints.

Notes: IMU publish to /imu/data GPS publish to /gps/fix

EKF Nodes: Local EKF:

Global EKF: