@startuml
object ros_simulator {
package: ros_simulators
}
object controller_node {
package: ros_estimators
}
object car_track_visualizer_node {
package: car_track_visualizer
}
object estimation_node {
package: estimation_node
}
object crash_detector_node {
package: crash_detector_node
}
object backtracker_node {
package: backtracker_node
}
object input_filter_node {
package: input_filter_node
}
object estimation_node {
package: estimation_node
}
ros_simulator -> estimation_node: ros_simulator/vicon
estimation_node -> controller_node: estimation_node/best_state
ros_simulator ..> car_track_visualizer_node: ros_simulator/gt_state
estimation_node ..> car_track_visualizer_node: estimation_node/best_state
estimation_node -> crash_detector_node: estimation_node/best_state
estimation_node -> backtracker_node: estimation_node/best_state
controller_node -> input_filter_node: control_input
crash_detector_node --> backtracker_node: collision
backtracker_node --> input_filter_node: emergency_input
input_filter_node -> ros_simulator: ros_simulator/control_input
@enduml
mainframe Car Namespace
object ros_simulator {
package: ros_simulators
}
object controller_node {
package: ros_estimators
}
object car_track_visualizer_node {
package: car_track_visualizer
}
object estimation_node {
package: estimation_node
}
ros_simulator --> estimation_node: ros_simulator/vicon
controller_node --> ros_simulator: ros_simulator/control_input
estimation_node --> controller_node: estimation_node/best_state
ros_simulator --> car_track_visualizer_node: ros_simulator/gt_state
estimation_node --> car_track_visualizer_node: estimation_node/best_state