Skip to content

MiniSub Architecture

Local setup (test rig)

Local is easiest to use when testing locally as it only requires a single computer, and communicates with the vehicle over the ESP32's WiFi directly.

flowchart LR
    joystick[USB Joystick]-->joy_node
    subgraph base [Laptop / other computer]
        joy_node[ROS2 Joy Node]
        joy_teleop_node[ROS2 Joy Teleop Node]
        agent_node[MicroROS Agent Node]
    end
    esp32node-->agent_node
    subgraph esp32node [ESP32 Node]
        motor_sub[Motor PWM Control Subscriber]
        imu_pub[IMU Publisher]
    end

Remote setup (MicroSub)

The Remote setup is more robust and intended to allow the vehicle to perform autonomously while providing various methods to connect to the vehicle over long distances.

flowchart LR
    joystick[USB Joystick]-->joy_node
    subgraph laptop [Shore Laptop / other computer]
        joy_node[ROS2 Joy Node]
        joy_teleop_node[ROS2 Joy Teleop Node]
    end

    subgraph controller [RasPI Controlller on Vessel]
        agent_node[MicroROS Agent Node]
        metric_exporter_node[Metric Exporter Node]
        prometheus[Prometheus TSDB]

        prometheus-->metric_exporter_node
    end

    laptop<-- wifi -->controller

    subgraph thruster_node [ESP32 Thruster Nodes]
        thruster_twist_sub[Motor Control PWM Twist Subscriber]
        thruster_power_pub[Power Consumption Data Publisher]
    end
    subgraph imu_node [ESP32 IMU Node]
        imu_pub[IMU Publisher]
    end

    thruster_node-->agent_node
    imu_node-->agent_node