A digital twin of Marina Punat and the MARINERO robotic platform — built in ROS 2, Gazebo, RViz, and MapViz — for developing and evaluating autonomous driving, perception, and vessel inspection.
Deploying autonomous robots in dynamic, safety-critical places like a working marina demands a feasibility study first. MARINERO provides that environment: a high-fidelity digital twin of the marina and of the robot itself, so autonomous driving algorithms and platform efficiency can be evaluated in simulation before they ever touch the water's edge.
The project pairs a digital twin of Marina Punat (island of Krk) with a digital replica of the MARINERO patrol platform and its full sensor suite. Together they form an evaluation testbed for autonomous patrolling — including vessel detection, identification, state monitoring, and raising marina security standards.
The marina was captured as a 3D point cloud by UAV (lab. Avyonx, FER, Croatia) and converted to SDF using CloudCompare. With five million points, it reproduces the real-world returns of the 2D and 3D LiDARs mounted on MARINERO — and is visualized in RViz and simulated in Gazebo.
Gazebo world
Structural parts (docks, pathways) were modeled in AutoCAD, Blender, and the Gazebo Editor; vessels came from CAD models routed through Blender; people, trees, and vehicles from the Gazebo model library; and dockside electrical and water cabinets from Inventor and Blender.


GPS georeferencing
A marina GPS map is correlated with Gazebo and RViz for precise tracking of the platform in a global coordinate system. A GPS plugin plus the mapviz package visualizes GPS data in real time against the reference satellite map and the other sensors.

The four-wheel independent steering, four-wheel independent drive (4WIS4WID) chassis enables lateral movement, in-place rotation, and navigation through the narrow spaces of a marina.

Control & navigation
An optimal control–based algorithm, with a time-varying Linear Quadratic controller for trajectory tracking.
A Model Predictive Path Integral controller configured for Ackermann geometry, with the DWB local planner over costmaps from the 3D marina model.
In-phase steering, opposite-phase steering, and pivot turn — selected for the maneuver at hand.
Synchronous communication links the RViz visualizer, the Gazebo simulator, and MapViz. The platform's position is shown in both RViz and Gazebo, with markers for the current robot location (/odom), heading, and PTZ camera direction. Simulated GPS is overlaid on the satellite image of Marina Punat.
A custom YOLOv8 model — trained on 400 images split 80:10:10 (train:test:val) — detects people, vehicles, vessels, and electrical and water cabinets within the simulated marina. On a detected vessel, the PTZ camera centers the target and captures an inspection image.



A complete mission flow, from a staff request to a returned inspection report.
The owner or marina staff requests an inspection at specific GPS coordinates.
Using MapViz, the GPS coordinates are transformed to a pose on the marina map.
The robot plans a path to the pose derived from those coordinates.
The robot executes the mission with online obstacle avoidance.
Vision sensors detect the target vessel and capture inspection images.
The inspection report is sent back to the owner or marina staff.
The open-source stack
The implementation ships as ROS 2 packages in the marinero_stack meta-repository.
Gazebo digital twin, robot description, and the Marina Punat world.
4WIS4WID and differential-drive controllers on ros2_control.
Sensor-fusion localization across odometry, IMU, and GPS.
LiDAR point-cloud processing for perception and mapping.
Autonomous navigation: MPPI control and DWB local planning.
Waypoint goals, including requests from the companion app.
Georeferenced GPS and telemetry visualization.
Run the simulation
ros2_control.xacro)ros2 launch marinero_simulations gazebo_simulation.launch.py
ros2 launch marinero_navigation localization_navigation.launch.py
ros2 launch goals.launch.py
Slide 19 is the live demo — click it to jump to the video.
A full run inside the digital twin — navigation, localization, and detection together.