BlueRobotics Models
Getting started
Requirements
Docker container: drydock
drydock maritime: build, run and join
Installation
From source
From ROS packages (debs)
Installation - Drydock
On Host: Setup workspace, clone drydock source, and build image
On Host: Clone source for this project
On Host: Start bash session within drydock maritime container
In Container: Build the project
First simulation
ArduPilot SITL setup
Prerequisites
Install
Source repo clones
Build the Gazebo plugin
Build the ArduPilot firmware
Verify the Python environment
Environment
Smoke test - Iris UAV
Troubleshooting
Reference
Why a venv, and why not to skip it
Vehicles
BlueBoat
Running the simulation
Launch arguments
Choosing the world
In RViz
Actuators
Available actuators
Actuators ROS API
Thrusters
Gazebo transport API
Sensors
Available sensors
Sensors ROS API
Echosounder
Configuration
Hull displacement
Payload
BlueBoat Parameters
Approach
Set via reference
Drag estimates - open loop
Surge
Estimate
Test - Open-loop surge response
Select in test
Yaw
Estimate
Test - open-loop yaw response
Select in test
The autopilot parameter file
Provenance: three descriptions, and they disagree
Verify the SITL connection (Boat)
Prerequisites
Walkthrough
Verify that the boat drives in the correct directions and polarity.
Tuning of closed-loop response for BlueBoat
Prerequisites
Walkthrough
Test closed-loop response
Surge control
Yaw-rate control
Summary
Commissioning materials for visual assets
blueboat_chassis
datum location
The default vehicle
BlueROV2
Running the simulation
Launch arguments
Choosing the world
In RViz
Actuators
Available actuators
Actuators ROS API
Thrusters
Grippers
Gazebo transport API
Sensors
Available sensors
Sensors ROS API
Camera
Stereo camera
Scanning sonar
DVL
Configuration
Variants
Buoyancy
Payload
Verify the SITL connection (ROV)
Prerequisites
Walkthrough
The simulation
The autopilot (SITL)
Verification - teleop via the autopilot.
The default vehicle
How-to guides
Change the fitted parts
Fit the other propellers
Leave the Ping2 kit off
Add the antenna mast or the payload bracket
Rename the Ping topics
Add a part somewhere specific
Declare your own mount point
See what you got
Configure an installed vehicle
The launch does it for you
Generate the artifacts yourself
Overlay workspace
Add a part
Where a part goes
Add a sensor part
Run in your own world
Include the default model
Spawn at runtime
Use the stock launch with your world
With a custom config
Teleoperate with a gamepad
Configure the gamepad mapping (optional)
Run
BlueBoat
BlueROV2
A named instance, or two
Safety behavior
Troubleshooting
Several vehicles and several simulations
One name per instance
Topic overrides under the name
A second instance in the same world
Several simulations
Troubleshooting / FAQ
xacro fails with “ASSEMBLY ERROR: …”
The boat appears rolled 90 degrees in RViz, parts detached
The boat moves sideways instead of forward
No ranges on /blueboat/ping/range
A part looks rolled 90 degrees in RViz but fine in Gazebo
“Cannot locate rosdep definition”
Two simulations interfere with each other
robot_state_publisher warns about the root link inertia
Reference
Parts catalog and slots
Catalog
Slots
BlueBoat chassis
BlueROV2 chassis
Configuration keys
Frames
Design
Architecture
The pieces
Why it works this way
Parts
The part contract
Meshes
Reviewing parts
Slots and assembly
Resolution
What a slot is in the URDF
Why defaults live in the parts
Where to add a slot
Buoyancy: all up round mass and displacement
USV: hull displacement
UUV: declared trim (BlueROV2)
Marked for any world
Constraints
Gazebo composition
Merge include and lumping
Sensors and thrusters follow their part
The bridge agrees by construction
Build time and launch time
What is in the composed model
Project
Contributing
Build and test
Pre-commit hooks
Conventions
Documentation
BlueRobotics Models
Vehicles
Edit on GitHub
Vehicles
One manual per vehicle: running, driving, sensors and configuration.
BlueBoat
BlueROV2
Other Versions
v: lyrical
Distributions
Lyrical