Field Operation Guide - Offset-official/Nautilus-One GitHub Wiki
This guide provides detailed operational instructions for running and managing the Autonomous Underwater Vehicle (AUV) system using the top side laptop. In the current configuration, all nodes except inference nodes are deployed on the AUV.
Ensure the following prerequisites are completed on the top side laptop:
-
Static IP address set to
192.168.2.1/24 -
IP routing to Jetson Nano via Raspberry Pi configured
-
FastDDS configuration completed
-
auv_wsworkspace built withauv_interfacessourced
Run the following command on the top side laptop:
sudo ip route add 192.168.2.4 via 192.168.2.2
On the top side laptop, add the following to each terminal session:
export ROS_DISCOVERY_SERVER=192.168.2.2:11811
export FASTRTPS_DEFAULT_PROFILES_FILE=~/auv_ws/src/auv_ros2/super_client_configuration_file.xml
ros2 daemon stop && ros2 daemon start
| Package | Description |
|---|---|
| auv_bringup | Launch files |
| auv_controller | Control node |
| auv_interfaces | Custom messages, services, actions |
| auv_manipulators | Arm actuation package |
| auv_mav_utils | MAVLink utility nodes |
Default password: raspberry
Start the container:
docker run --rm --network host --name pi-ros-main -it \
--mount type=bind,src=/home/pi/trees,dst=/trees \
ghcr.io/offset-official/pi-ros-full
If a container is already running:
docker container rm --force pi-ros-main
-
The container starts with a
tmuxsession and automatically runspi.launch.pyin the first window. -
Access the first window using
Ctrl + b, then press0.
Refer to docker/README.md for more information.
All code resides in the /auv_ws directory.
To rebuild packages:
cd /auv_ws
colcon build
To source the workspace:
source /auv_ws/install/setup.bash
Default password: nano
Start the container:
sudo docker run --rm --network host --name nano-ros-main -it \
--device=/dev/ttyACM0 \
--device=/dev/video0 \
--device=/dev/video2 \
ghcr.io/offset-official/nano-ros-full
If a container is already running:
sudo docker container rm --force nano-ros-main
-
A
tmuxsession will launch withnano.launch.pyrunning in the first window. -
Access with
Ctrl + b, then press0.
Refer to docker/README.md for details.
Code is located in /auv_ws.
To rebuild:
cd /auv_ws
colcon build
To source:
source /auv_ws/install/setup.bash
Run the inference container:
docker run --rm -it --network host --runtime nvidia \
-v /home/nano/models:/models \
--name jetson-ml-final \
jetson-ml-final:latest
In a different tmux window inside the ROS container:
ros2 launch auv_bringup qualify_inference_launch.py
The top side laptop is responsible for sending commands and monitoring the AUV.
To issue movement commands:
ros2 run auv_controller control_cmd_cli
To check pressure sensor output:
ros2 topic echo /current_depth
To send a depth action (example: descend to -0.3 meters):
ros2 action send_goal /depth_descent auv_interfaces/action/DepthDescent \
'{target_depth: -0.3}' --feedback
To manually arm thrusters:
ros2 service call /mavros/cmd/arming mavros_msgs/srv/CommandBool "{value: true}"
To run heading test with custom parameters:
ros2 run auv_mav_utils heading_test --ros-args \
-p target_depth:=-0.8 \
-p linear_speed:=1.5 \
-p enable_angle_correction:=false \
-p movement_duration:=15.0
To calibrate the depth sensor:
ros2 service call /calibrate_depth_sensor std_srvs/srv/Trigger
To actuate the dropper:
ros2 service call /dropper_trigger auv_interfaces/srv/DropperTrigger "{enable: true}"
Use rqt_image_view:
ros2 run rqt_image_view rqt_image_view
Select the desired camera topic from the GUI.
To change LED color (example: white):
ros2 service call /set_color auv_interfaces/srv/SetColor "{color: '#ffffff'}"
To turn off LEDs:
ros2 service call /set_color auv_interfaces/srv/SetColor "{color: 'off'}"
To run the full communication sequence:
ros2 action send_goal /read_comm_sequence auv_interfaces/action/ReadCommSequence {} --feedback
To run experiment nodes, for example the qualify experiment:
ros2 run auv_experiments qualify