No version for distro humble. Known supported distros are highlighted in the buttons above.
No version for distro jazzy. Known supported distros are highlighted in the buttons above.
No version for distro rolling. Known supported distros are highlighted in the buttons above.

reaction_analyzer package from autoware_universe repo

autoware_adapi_specs autoware_agnocast_wrapper autoware_auto_common autoware_component_interface_specs_universe autoware_component_interface_tools autoware_component_interface_utils autoware_cuda_dependency_meta autoware_fake_test_node autoware_glog_component autoware_goal_distance_calculator autoware_grid_map_utils autoware_path_distance_calculator autoware_polar_grid autoware_time_utils autoware_traffic_light_recognition_marker_publisher autoware_traffic_light_utils autoware_universe_utils tier4_api_utils autoware_autonomous_emergency_braking autoware_collision_detector autoware_control_performance_analysis autoware_control_validator autoware_external_cmd_selector autoware_joy_controller autoware_lane_departure_checker autoware_mpc_lateral_controller autoware_obstacle_collision_checker autoware_operation_mode_transition_manager autoware_pid_longitudinal_controller autoware_predicted_path_checker autoware_pure_pursuit autoware_shift_decider autoware_smart_mpc_trajectory_follower autoware_trajectory_follower_base autoware_trajectory_follower_node autoware_vehicle_cmd_gate autoware_control_evaluator autoware_kinematic_evaluator autoware_localization_evaluator autoware_perception_online_evaluator autoware_planning_evaluator autoware_scenario_simulator_v2_adapter tier4_autoware_api_launch tier4_control_launch tier4_localization_launch tier4_map_launch tier4_perception_launch tier4_planning_launch tier4_sensing_launch tier4_simulator_launch tier4_system_launch tier4_vehicle_launch autoware_geo_pose_projector autoware_gyro_odometer autoware_ar_tag_based_localizer autoware_landmark_manager autoware_lidar_marker_localizer autoware_localization_error_monitor autoware_ndt_scan_matcher autoware_pose2twist autoware_pose_covariance_modifier autoware_pose_estimator_arbiter autoware_pose_initializer autoware_pose_instability_detector yabloc_common yabloc_image_processing yabloc_monitor yabloc_particle_filter yabloc_pose_initializer autoware_lanelet2_map_visualizer autoware_map_height_fitter autoware_map_tf_generator autoware_bytetrack autoware_cluster_merger autoware_compare_map_segmentation autoware_crosswalk_traffic_light_estimator autoware_detected_object_feature_remover autoware_detected_object_validation autoware_detection_by_tracker autoware_elevation_map_loader autoware_euclidean_cluster autoware_ground_segmentation autoware_image_projection_based_fusion autoware_lidar_apollo_instance_segmentation autoware_lidar_centerpoint autoware_lidar_transfusion autoware_map_based_prediction autoware_multi_object_tracker autoware_object_merger autoware_object_range_splitter autoware_object_velocity_splitter autoware_occupancy_grid_map_outlier_filter autoware_probabilistic_occupancy_grid_map autoware_radar_crossing_objects_noise_filter autoware_radar_fusion_to_detected_object autoware_radar_object_clustering autoware_radar_object_tracker autoware_radar_tracks_msgs_converter autoware_raindrop_cluster_filter autoware_shape_estimation autoware_simple_object_merger autoware_tensorrt_classifier autoware_tensorrt_common autoware_tensorrt_yolox autoware_tracking_object_merger autoware_traffic_light_arbiter autoware_traffic_light_category_merger autoware_traffic_light_classifier autoware_traffic_light_fine_detector autoware_traffic_light_map_based_detector autoware_traffic_light_multi_camera_fusion autoware_traffic_light_occlusion_predictor autoware_traffic_light_selector autoware_traffic_light_visualization perception_utils autoware_costmap_generator autoware_external_velocity_limit_selector autoware_freespace_planner autoware_freespace_planning_algorithms autoware_mission_planner_universe autoware_obstacle_cruise_planner autoware_obstacle_stop_planner autoware_path_optimizer autoware_path_smoother autoware_planning_validator autoware_remaining_distance_time_calculator autoware_rtc_interface autoware_scenario_selector autoware_surround_obstacle_checker autoware_behavior_path_avoidance_by_lane_change_module autoware_behavior_path_dynamic_obstacle_avoidance_module autoware_behavior_path_external_request_lane_change_module autoware_behavior_path_goal_planner_module autoware_behavior_path_lane_change_module autoware_behavior_path_planner autoware_behavior_path_planner_common autoware_behavior_path_sampling_planner_module autoware_behavior_path_side_shift_module autoware_behavior_path_start_planner_module autoware_behavior_path_static_obstacle_avoidance_module autoware_behavior_velocity_blind_spot_module autoware_behavior_velocity_crosswalk_module autoware_behavior_velocity_detection_area_module autoware_behavior_velocity_intersection_module autoware_behavior_velocity_no_drivable_lane_module autoware_behavior_velocity_no_stopping_area_module autoware_behavior_velocity_occlusion_spot_module autoware_behavior_velocity_rtc_interface autoware_behavior_velocity_run_out_module autoware_behavior_velocity_speed_bump_module autoware_behavior_velocity_template_module autoware_behavior_velocity_traffic_light_module autoware_behavior_velocity_virtual_traffic_light_module autoware_behavior_velocity_walkway_module autoware_motion_velocity_dynamic_obstacle_stop_module autoware_motion_velocity_obstacle_cruise_module autoware_motion_velocity_obstacle_slow_down_module autoware_motion_velocity_obstacle_velocity_limiter_module autoware_motion_velocity_out_of_lane_module autoware_bezier_sampler autoware_frenet_planner autoware_path_sampler autoware_sampler_common autoware_cuda_pointcloud_preprocessor autoware_cuda_utils autoware_image_diagnostics autoware_image_transport_decompressor autoware_imu_corrector autoware_pcl_extensions autoware_pointcloud_preprocessor autoware_radar_scan_to_pointcloud2 autoware_radar_static_pointcloud_filter autoware_radar_threshold_filter autoware_radar_tracks_noise_filter autoware_livox_tag_filter autoware_carla_interface autoware_dummy_perception_publisher autoware_fault_injection autoware_learning_based_vehicle_model autoware_simple_planning_simulator autoware_vehicle_door_simulator tier4_dummy_object_rviz_plugin autoware_bluetooth_monitor autoware_component_monitor autoware_component_state_monitor autoware_default_adapi autoware_adapi_adaptors autoware_adapi_visualizers autoware_automatic_pose_initializer autoware_diagnostic_graph_aggregator autoware_diagnostic_graph_utils autoware_dummy_diag_publisher autoware_dummy_infrastructure autoware_duplicated_node_checker autoware_hazard_status_converter autoware_mrm_comfortable_stop_operator autoware_mrm_emergency_stop_operator autoware_mrm_handler autoware_processing_time_checker autoware_system_diagnostic_monitor autoware_system_monitor autoware_topic_relay_controller autoware_topic_state_monitor autoware_velodyne_monitor reaction_analyzer autoware_accel_brake_map_calibrator autoware_external_cmd_converter autoware_raw_vehicle_cmd_converter autoware_steer_offset_estimator autoware_bag_time_manager_rviz_plugin autoware_mission_details_overlay_rviz_plugin autoware_overlay_rviz_plugin autoware_string_stamped_rviz_plugin autoware_perception_rviz_plugin tier4_adapi_rviz_plugin tier4_camera_view_rviz_plugin tier4_datetime_rviz_plugin tier4_localization_rviz_plugin tier4_planning_factor_rviz_plugin tier4_planning_rviz_plugin tier4_state_rviz_plugin tier4_system_rviz_plugin tier4_traffic_light_rviz_plugin tier4_vehicle_rviz_plugin

Package Summary

Tags No category tags.
Version 0.43.0
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/autowarefoundation/autoware_universe.git
VCS Type git
VCS Version main
Last Updated 2025-04-03
Dev Status UNMAINTAINED
CI status No Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Analyzer that measures reaction times of the nodes

Additional Links

No additional links.

Maintainers

  • Berkay Karaman

Authors

  • Berkay Karaman

Reaction Analyzer

Description

The main purpose of the reaction analyzer package is to measure the reaction times of various nodes within a ROS-based autonomous driving simulation environment by subscribing to pre-determined topics. This tool is particularly useful for evaluating the performance of perception, planning, and control pipelines in response to dynamic changes in the environment, such as sudden obstacles. To be able to measure both control outputs and perception outputs, it was necessary to divide the node into two running_mode: planning_control and perception_planning.

ReactionAnalyzerDesign.png

Planning Control Mode

In this mode, the reaction analyzer creates a dummy publisher for the PredictedObjects and PointCloud2 topics. In the beginning of the test, it publishes the initial position of the ego vehicle and the goal position to set the test environment. Then, it spawns a sudden obstacle in front of the ego vehicle. After the obstacle is spawned, it starts to search reacted messages of the planning and control nodes in the pre-determined topics. When all the topics are reacted, it calculates the reaction time of the nodes and statistics by comparing reacted_times of each of the nodes with spawn_cmd_time, and it creates a csv file to store the results.

Perception Planning Mode

In this mode, the reaction analyzer reads the rosbag files which are recorded from AWSIM, and it creates a topic publisher for each topic inside the rosbag to replay the rosbag. It reads two rosbag files: path_bag_without_object and path_bag_with_object. Firstly, it replays the path_bag_without_object to set the initial position of the ego vehicle and the goal position. After spawn_time_after_init seconds , it replays the path_bag_with_object to spawn a sudden obstacle in front of the ego vehicle. After the obstacle is spawned, it starts to search the reacted messages of the perception and planning nodes in the pre-determined topics. When all the topics are reacted, it calculates the reaction time of the nodes and statistics by comparing reacted_times of each of the nodes with spawn_cmd_time, and it creates a csv file to store the results.

Point Cloud Publisher Type

To get better analyze for Perception & Sensing pipeline, the reaction analyzer can publish the point cloud messages in 3 different ways: async_header_sync_publish, sync_header_sync_publish or async_publish. (T is the period of the lidar’s output)

PointcloudPublisherType.png

  • async_header_sync_publish: It publishes the point cloud messages synchronously with asynchronous header times. It means that each of the lidar’s output will be published at the same time, but the headers of the point cloud messages includes different timestamps because of the phase difference.
  • sync_header_sync_publish: It publishes the point cloud messages synchronously with synchronous header times. It means that each of the lidar’s output will be published at the same time, and the headers of the point cloud messages includes the same timestamps.
  • async_publish: It publishes the point cloud messages asynchronously. It means that each of the lidar’s output will be published at different times.

Usage

The common parameters you need to define for both running modes are output_file_path, test_iteration, and reaction_chain list. output_file_path is the output file path is the path where the results and statistics will be stored. test_iteration defines how many tests will be performed. The reaction_chain list is the list of the pre-defined topics you want to measure their reaction times.

IMPORTANT: Ensure the reaction_chain list is correctly defined:

  • For perception_planning mode, do not define Control nodes.
  • For planning_control mode, do not define Perception nodes.

Prepared Test Environment

  • Download the demonstration test map from the link here. After downloading, extract the zip file and use its path as [MAP_PATH] in the following commands.

Planning Control Mode

  • You need to define only Planning and Control nodes in the reaction_chain list. With the default parameters, you can start to test with the following command:
ros2 launch reaction_analyzer reaction_analyzer.launch.xml running_mode:=planning_control vehicle_model:=sample_vehicle sensor_model:=sample_sensor_kit map_path:=[MAP_PATH]

After the command, the simple_planning_simulator and the reaction_analyzer will be launched. It will automatically start to test. After the test is completed, the results will be stored in the output_file_path you defined.

Perception Planning Mode

  • Download the rosbag files from the Google Drive link here.
  • Extract the zip file and set the path of the .db3 files to parameters path_bag_without_object and path_bag_with_object.
  • You can start to test with the following command:
ros2 launch reaction_analyzer reaction_analyzer.launch.xml running_mode:=perception_planning vehicle_model:=sample_vehicle sensor_model:=awsim_labs_sensor_kit map_path:=[MAP_PATH]

  • On the first run of the tool in perception_planning mode, initialization might take longer than expected. Please allow some time for the process to complete.

After the command, the e2e_simulator and the reaction_analyzer will be launched. It will automatically start to test. After the test is completed, the results will be stored in the output_file_path you defined.

Prepared Test Environment

Scene without object: sc1-awsim.png sc1-rviz.png

Scene object: sc2-awsim.png sc2-rviz.png

Custom Test Environment

If you want to run the reaction analyzer with your custom test environment, you need to redefine some of the parameters. The parameters you need to redefine are initialization_pose, entity_params, goal_pose, and topic_publisher ( for perception_planning mode) parameters.

  • To set initialization_pose, entity_params, goal_pose:
  • Run the AWSIM environment. Tutorial for AWSIM can be found here.
  • Run the e2e_simulator with the following command:
ros2 launch autoware_launch e2e_simulator.launch.xml vehicle_model:=sample_vehicle sensor_model:=awsim_labs_sensor_kit map_path:=[MAP_PATH]

  • After the EGO is initialized, you can position the ego vehicle in the desired location using the 2D Pose Estimate button in RViz.
  • After the EGO located in desired position, please localize the dummy obstacle by using the traffic controller. You can access the traffic control section by pressing the ‘ESC’ key.

After localize EGO and dummy vehicle, we should write the positions of these entities in the map frame in reaction_analyzer.param.yaml. To achieve this:

  • Get initialization pose from /awsim/ground_truth/vehicle/pose topic.
  • Get entity params from /perception/object_recognition/objects topic.
  • Get goal pose from /planning/mission_planning/goal topic.

PS: initialization_pose is only valid for planning_control mode.

  • After the parameters were noted, we should record the rosbags for the test. To record the rosbags, you can use the following command:
ros2 bag record --all

  • You should record two rosbags: one without the object and one with the object. You can use the traffic controller to spawn the object in front of the EGO vehicle or remove it.

NOTE: You should record the rosbags in the same environment with the same position of the EGO vehicle. You don’t need to run Autoware while recording.

  • After you record the rosbags, you can set the path_bag_without_object and path_bag_with_object parameters with the paths of the recorded rosbags.

Results

The results will be stored in the csv file format and written to the output_file_path you defined. It shows each pipeline of the Autoware by using header timestamp of the messages, and it reports Node Latency, Pipeline Latency, and Total Latency for each of the nodes.

  • Node Latency: The time difference between previous and current node’s reaction timestamps. If it is the first node in the pipeline, it is same as Pipeline Latency.
  • Pipeline Latency: The time difference between published time of the message and pipeline header time.
  • Total Latency: The time difference between the message’s published timestamp and the spawn obstacle command sent timestamp.

Parameters

Name Type Description
timer_period double [s] Period for the main processing timer.
test_iteration int Number of iterations for the test.
output_file_path string Directory path where test results and statistics will be stored.
spawn_time_after_init double [s] Time delay after initialization before spawning objects. Only valid perception_planning mode.
spawn_distance_threshold double [m] Distance threshold for spawning objects. Only valid planning_control mode.
poses.initialization_pose struct Initial pose of the vehicle, containing x, y, z, roll, pitch, and yaw fields. Only valid planning_control mode.
poses.entity_params struct Parameters for entities (e.g., obstacles), containing x, y, z, roll, pitch, yaw, x_dimension, y_dimension, and z_dimension.
poses.goal_pose struct Goal pose of the vehicle, containing x, y, z, roll, pitch, and yaw fields.
topic_publisher.path_bag_without_object string Path to the ROS bag file without objects. Only valid perception_planning mode.
topic_publisher.path_bag_with_object string Path to the ROS bag file with objects. Only valid perception_planning mode.
topic_publisher.spawned_pointcloud_sampling_distance double [m] Sampling distance for point clouds of spawned objects. Only valid planning_control mode.
topic_publisher.dummy_perception_publisher_period double [s] Publishing period for the dummy perception data. Only valid planning_control mode.
topic_publisher.pointcloud_publisher.pointcloud_publisher_type string Defines how the PointCloud2 messages are going to be published. Modes explained above.
topic_publisher.pointcloud_publisher.pointcloud_publisher_period double [s] Publishing period of the PointCloud2 messages.
topic_publisher.pointcloud_publisher.publish_only_pointcloud_with_object bool Default false. Publish only the point cloud messages with the object.
reaction_params.first_brake_params.debug_control_commands bool Debug publish flag.
reaction_params.first_brake_params.control_cmd_buffer_time_interval double [s] Time interval for buffering control commands.
reaction_params.first_brake_params.min_number_descending_order_control_cmd int Minimum number of control commands in descending order for triggering brake.
reaction_params.first_brake_params.min_jerk_for_brake_cmd double [m/s³] Minimum jerk value for issuing a brake command.
reaction_params.search_zero_vel_params.max_looking_distance double [m] Maximum looking distance for zero velocity on trajectory
reaction_params.search_entity_params.search_radius double [m] Searching radius for spawned entity. Distance between ego pose and entity pose.
reaction_chain struct List of the nodes with their topics and topic’s message types.

Limitations

  • Reaction analyzer has some limitation like PublisherMessageType, SubscriberMessageType and ReactionType. It is currently supporting following list:

  • Publisher Message Types:

    • sensor_msgs/msg/PointCloud2
    • sensor_msgs/msg/CameraInfo
    • sensor_msgs/msg/Image
    • geometry_msgs/msg/PoseWithCovarianceStamped
    • sensor_msgs/msg/Imu
    • autoware_vehicle_msgs/msg/ControlModeReport
    • autoware_vehicle_msgs/msg/GearReport
    • autoware_vehicle_msgs/msg/HazardLightsReport
    • autoware_vehicle_msgs/msg/SteeringReport
    • autoware_vehicle_msgs/msg/TurnIndicatorsReport
    • autoware_vehicle_msgs/msg/VelocityReport
  • Subscriber Message Types:

    • sensor_msgs/msg/PointCloud2
    • autoware_perception_msgs/msg/DetectedObjects
    • autoware_perception_msgs/msg/TrackedObjects
    • autoware_perception_msgs/msg/PredictedObject
    • autoware_planning_msgs/msg/Trajectory
    • autoware_control_msgs/msg/Control
  • Reaction Types:

    • FIRST_BRAKE
    • SEARCH_ZERO_VEL
    • SEARCH_ENTITY

Future improvements

  • The reaction analyzer can be improved by adding more reaction types. Currently, it is supporting only FIRST_BRAKE, SEARCH_ZERO_VEL, and SEARCH_ENTITY reaction types. It can be extended by adding more reaction types for each of the message types.
CHANGELOG

Changelog for package reaction_analyzer

0.43.0 (2025-03-21)

  • Merge remote-tracking branch 'origin/main' into chore/bump-version-0.43
  • chore: rename from [autoware.universe]{.title-ref} to [autoware_universe]{.title-ref} (#10306)
  • Contributors: Hayato Mizushima, Yutaka Kondo

0.42.0 (2025-03-03)

  • Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
  • feat(autoware_utils): replace autoware_universe_utils with autoware_utils (#10191)
  • fix: add missing includes to autoware_universe_utils (#10091)
  • Contributors: Fumiya Watanabe, Ryohsuke Mitsudome, 心刚

0.41.2 (2025-02-19)

  • chore: bump version to 0.41.1 (#10088)
  • Contributors: Ryohsuke Mitsudome

0.41.1 (2025-02-10)

0.41.0 (2025-01-29)

0.40.0 (2024-12-12)

  • Merge branch 'main' into release-0.40.0
  • Revert "chore(package.xml): bump version to 0.39.0 (#9587)" This reverts commit c9f0f2688c57b0f657f5c1f28f036a970682e7f5.
  • fix: fix ticket links in CHANGELOG.rst (#9588)
  • chore(package.xml): bump version to 0.39.0 (#9587)
    • chore(package.xml): bump version to 0.39.0
    • fix: fix ticket links in CHANGELOG.rst

    * fix: remove unnecessary diff ---------Co-authored-by: Yutaka Kondo <<yutaka.kondo@youtalk.jp>>

  • fix: fix ticket links in CHANGELOG.rst (#9588)
  • fix(cpplint): include what you use - tools (#9574)
  • 0.39.0
  • update changelog
  • fix: fix ticket links to point to https://github.com/autowarefoundation/autoware_universe (#9304)
  • fix: fix ticket links to point to https://github.com/autowarefoundation/autoware_universe (#9304)
  • chore(package.xml): bump version to 0.38.0 (#9266) (#9284)
    • unify package.xml version to 0.37.0
    • remove system_monitor/CHANGELOG.rst
    • add changelog

    * 0.38.0

  • Contributors: Esteve Fernandez, Fumiya Watanabe, M. Fatih Cırıt, Ryohsuke Mitsudome, Yutaka Kondo

0.39.0 (2024-11-25)

0.38.0 (2024-11-08)

  • unify package.xml version to 0.37.0
  • docs(reaction_analyzer): update bag files and the README (#8633)
    • docs(reaction_analyzer): update bag files and the README
  • fix(reaction_analyzer): fix include hierarchy of tf2_eigen (#8663) Fixed include hierarchy of tf2_eigen
  • fix(reaction_analyzer): fix variableScope (#8450)
    • fix:variableScope

    * fix:clang format ---------

  • fix(reaction_analyzer): fix constVariableReference (#8063)
    • fix:constVariableReference
    • fix:constVariableReference
    • fix:constVariableReference

    * fix:suppression constVariableReference ---------

  • refactor(universe_utils/motion_utils)!: add autoware namespace (#7594)
  • refactor(motion_utils)!: add autoware prefix and include dir (#7539) refactor(motion_utils): add autoware prefix and include dir
  • feat(autoware_universe_utils)!: rename from tier4_autoware_utils (#7538) Co-authored-by: kosuke55 <<kosuke.tnp@gmail.com>>
  • feat!: replace autoware_auto_msgs with autoware_msgs for tools (#7250) Co-authored-by: Cynthia Liu <<cynthia.liu@autocore.ai>> Co-authored-by: NorahXiong <<norah.xiong@autocore.ai>> Co-authored-by: beginningfan <<beginning.fan@autocore.ai>>
  • feat(reaction_analyzer): add reaction anaylzer tool to measure end-to-end delay in sudden obstacle braking response (#5954)
    • feat(reaction_analyzer): add reaction anaylzer tool to measure end-to-end delay in sudden obstacle braking response
    • feat: implement message_filters package, clean up
    • feat: update style and readme
    • feat: add predicted path for the PredictedObject and add publish_only_pointcloud_with_object
    • feat: add wrong initialize localization protection, improve code readability
    • feat: launch occupancy_grid_map from reaction analyzer's own launch file
    • feat: update
    • feat: change function names
    • feat: update
    • feat: improve style, change csv output stringstream
    • fix: ci/cd
    • feat: update for new sensor setup, fix bug, optimize code, show pipeline latency, update readme
    • fix: container die problem

    * feat: update stats, check path param, add marker, warn user for wrong reaction_chain ---------

  • Contributors: Batuhan Beytekin, Berkay Karaman, Kosuke Takeuchi, Ryohsuke Mitsudome, SakodaShintaro, Takayuki Murooka, Yutaka Kondo, kobayu858

0.26.0 (2024-04-03)

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

  • launch/reaction_analyzer.launch.xml
      • reaction_analyzer_param_path [default: $(find-pkg-share reaction_analyzer)/param/reaction_analyzer.param.yaml]
      • launch_simulator_perception_modules [default: false]
      • laserscan_based_occupancy_grid_map_param_path [default: $(find-pkg-share autoware_launch)/config/perception/occupancy_grid_map/laserscan_based_occupancy_grid_map.param.yaml]
      • occupancy_grid_map_updater [default: binary_bayes_filter]
      • occupancy_grid_map_updater_param_path [default: $(find-pkg-share autoware_launch)/config/perception/occupancy_grid_map/$(var occupancy_grid_map_updater)_updater.param.yaml]
      • running_mode [default: planning_control]
      • map_path
      • vehicle_model [default: sample_vehicle]
      • sensor_model [default: sample_sensor_kit]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged reaction_analyzer at Robotics Stack Exchange

No version for distro noetic. Known supported distros are highlighted in the buttons above.
No version for distro ardent. Known supported distros are highlighted in the buttons above.
No version for distro bouncy. Known supported distros are highlighted in the buttons above.
No version for distro crystal. Known supported distros are highlighted in the buttons above.
No version for distro eloquent. Known supported distros are highlighted in the buttons above.
No version for distro dashing. Known supported distros are highlighted in the buttons above.
No version for distro galactic. Known supported distros are highlighted in the buttons above.
No version for distro foxy. Known supported distros are highlighted in the buttons above.
No version for distro iron. Known supported distros are highlighted in the buttons above.
No version for distro lunar. Known supported distros are highlighted in the buttons above.
No version for distro jade. Known supported distros are highlighted in the buttons above.
No version for distro indigo. Known supported distros are highlighted in the buttons above.
No version for distro hydro. Known supported distros are highlighted in the buttons above.
No version for distro kinetic. Known supported distros are highlighted in the buttons above.
No version for distro melodic. Known supported distros are highlighted in the buttons above.