How nezih-niegu/auv_ftc_ws works
This ROS 2/Gazebo stack simulates fault-tolerant control of an AUV, from vehicle setup and reference generation through fuzzy control and actuator allocation to simulated motion. Operators can track trajectories, inject actuator faults, view live signals, and reproduce paper scenarios with rosbag-based plots. The controller excerpt shows its internal control sequence; README statements support the broader launch, dashboard, and analysis workflows. Several package implementations were not sampled, so their connections are included only where documented.
Main entry points: auv_controller_node.cpp Controller node · full_simulation.launch.py Stack launch · reproduce_paper.launch.py Paper replay launch · dashboard.html Live dashboard
Components 18
Simulation
- Stack launch
src/auv_bringup/launch/full_simulation.launch.py - Gazebo world
src/auv_gazebo/launch/gazebo.launch.py - AUV model
src/auv_description/urdf
Control
- Controller node
src/auv_control/src/auv_controller_node.cpp - Reference generator
src/auv_control/src/reference_generator_node.cpp - Trajectory tracking
src/auv_control/src/auv_controller_node.cpp - T-S fuzzy control
src/auv_control/src/ts_fuzzy.cpp - Thrust allocation
src/auv_control/src/thrust_allocator.cpp - Vehicle parameters
src/auv_control/include/auv_control/auv_params.hpp
Operations
- Fault CLI
src/auv_control/scripts/inject_fault_cli.py - Scenario runner
src/auv_control/scripts/scenario_runner.py - Paper replay launch
src/auv_bringup/launch/reproduce_paper.launch.py
Observability
- Dashboard launch
src/auv_dashboard/launch/dashboard.launch.py - Live dashboard
src/auv_dashboard/web/dashboard.html - ROS bridge
- Signal recording
src/auv_bringup/launch/reproduce_paper.launch.py - Bag plotting
src/auv_control/scripts/plot_from_bag.py
Other components
- Operator
Connections 20
- Operator → Stack launch: starts simulation
README.md - Stack launch → Gazebo world: launches
README.md - Gazebo world → AUV model: spawns model
src/auv_gazebo/launch/gazebo.launch.py - Stack launch → Controller node: starts control
README.md - Stack launch → Reference generator: starts generator
README.md - Reference generator → Controller node: publishes references
README.md - Controller node → Trajectory tracking: updates reference
src/auv_control/src/auv_controller_node.cpp - Controller node → T-S fuzzy control: computes command
src/auv_control/src/auv_controller_node.cpp - Controller node → Thrust allocation: allocates wrench
src/auv_control/src/auv_controller_node.cpp - Thrust allocation → Vehicle parameters: uses geometry
- Operator → Fault CLI: requests fault
README.md - Fault CLI → Controller node: calls fault service
README.md - Paper replay launch → Scenario runner: starts scenario
src/auv_bringup/launch/reproduce_paper.launch.py - Scenario runner → Controller node: injects fault
README.md - Paper replay launch → Signal recording: records signals
src/auv_bringup/launch/reproduce_paper.launch.py - Signal recording → Bag plotting: supplies bag
README.md - Operator → Dashboard launch: opens dashboard
README.md - Dashboard launch → ROS bridge: starts bridge
src/auv_dashboard/launch/dashboard.launch.py - Live dashboard → ROS bridge: streams ROS data
README.md - Live dashboard → Controller node: injects faults
README.md