Skip to content

clydemcqueen/orca5

Repository files navigation

Orca5

Orca5 uses ORB_SLAM3 and a single down-facing underwater camera to provide visual odometry to a BlueRobotics BlueROV2 running ArduSub.

Requirements

See the Dockerfile for details.

Build and Run

Build a docker image, then run it:

cd docker
./build.sh sim
./run.sh sim nvidia

This is a dev container, so the orca5 directory will be mounted inside the container. Finish the build process:

colcon build
source install/local_setup.bash

Launch the simulation:

source venv/bin/activate
ros2 launch orca_bringup sim.launch.py

GAZEBO GUI

This will launch Gazebo, RViz and all the ROS2 nodes. The default simulation has the ROV sitting close to the seafloor. ORB_SLAM3 should initialize and start tracking the seafloor.

Open a second terminal into the container:

docker exec -it orca5_sim /bin/bash

Launch mavproxy as the GCS:

source venv/bin/activate
mavproxy.py --out 127.0.0.1:14550 --out 127.0.0.1:14551 --master tcp:127.0.0.1:5760

ArduSub will initialize and start sending MAVLink messages to the SLAM bridge node. In response, the bridge node will start sending visual odometry messages to ArduSub. Wait for these messages from mavproxy:

AP: EKF3 IMU1 is using external nav data
AP: EKF3 IMU0 is using external nav data

Mavproxy is interactive, so we can execute commands. Arm the motors:

MANUAL> arm throttle
Got COMMAND_ACK: COMPONENT_ARM_DISARM: ACCEPTED
AP: Arming motors
AP: EKF3 IMU0 origin set
AP: EKF3 IMU1 origin set
AP: Using backup location
ARMED
Arming checks disabled

Load a mission:

MANUAL> wp load src/orca5/orca_bringup/missions/box_mission.txt
Loaded 6 waypoints from src/orca5/orca_bringup/missions/box_mission.txt
Loaded 6 waypoints in 0.01s
Sent all 6 waypoints
Got MISSION_ACK: TYPE_MISSION: ACCEPTED
AP: Flight plan received

RVIZ GUI

Go to AUTO mode to run the mission:

MANUAL> mode auto
Got COMMAND_ACK: DO_SET_MODE: ACCEPTED
Mode AUTO
AP: Mission: 1 WP
waypoint 1
AP: Reached command #1
AP: Mission: 2 WP
waypoint 2
AP: Reached command #2
AP: Mission: 3 WP
waypoint 3
AP: Reached command #3
AP: Mission: 4 WP
waypoint 4
AP: Reached command #4
AP: Mission: 5 WP
waypoint 5
AP: Reached command #5

Caveats

This is presented as a simple end-to-end Gazebo simulation. It has not been tested on a real vehicle (yet).

ORB_SLAM3 provides a MonocularIMU mode, but Orca5 currently uses the simpler Monocular mode with a down-facing rangefinder like the BlueRobotics Ping Sonar to provide scale.

About

Visual odometry for the BlueROV2

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published