{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": { "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [ "import glob\n", "import json\n", "import os\n", "import pickle\n", "import re\n", "import sys\n", "\n", "import numpy as np\n", "import pandas as pd\n", "from matplotlib import pyplot as plt\n", "\n", "from misc.utils import ProgressPrinter, cached, parse_as\n", "\n", "%load_ext pyinstrument\n", "%matplotlib inline" ] }, { "cell_type": "code", "execution_count": 43, "metadata": { "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [ "##################################################\n", "# User Settings\n", "##################################################\n", "# Change these to influence the execution of the\n", "# notebook.\n", "# You can override these from the command line\n", "# by defining environment variables with the\n", "# name of the constants below, prefixed with\n", "# \"ANA_NB_\".\n", "# For example, the environment variable\n", "# \"ANA_NB_TR_PATH\" will override the \"TR_PATH\"\n", "# setting below.\n", "##################################################\n", "\n", "# The path to the build folder of a ROS2 workspace that contains the\n", "# tracetools_read and tracetools_analysis folders.\n", "TRACING_WS_BUILD_PATH = \"../src/build\"\n", "\n", "# Path to trace directory (e.g. ~/.ros/my-trace/ust) or to a converted trace file.\n", "# Using the path \"/ust\" at the end is optional but greatly reduces processing time\n", "# if kernel traces are also present.\n", "TR_PATH = \"../sa-tracing-results/140922/01/ust\"\n", "\n", "# Path to the folder all artifacts from this notebook are saved to.\n", "# This entails plots as well as data tables.\n", "OUT_PATH = \"out/\"\n", "\n", "# Whether to annotate topics/publications with bandwidth/message size\n", "BW_ENABLED = False\n", "# Path to a results folder as output by ma-hw-perf-tools/messages/record.bash\n", "# Used to annotate message sizes in E2E latency calculations\n", "BW_PATH = \"../ma-hw-perf-tools/data/results\"\n", "\n", "# Whether to use dependencies extracted by the Clang-tools to supplement\n", "# automatic node-internal data flow annotations.\n", "# If in doubt, set to False.\n", "CL_ENABLED = False\n", "# Path to the output directory of the ROS2 dependency checker.\n", "# Will only be used if CL_ENABLED is True.\n", "CL_PATH = \"~/Projects/llvm-project/clang-tools-extra/ros2-internal-dependency-checker/output\"\n", "\n", "# Whether to compute data flow graphs.\n", "# If you are only interested in E2E latencies, set this to False\n", "DFG_ENABLED = False\n", "# Whether to plot data flow graphs (ignored if DFG_ENABLED is False)\n", "DFG_PLOT = False\n", "\n", "# The maximum node namespace hierarchy level to be plotted.\n", "# Top-level (1): e.g. /sensing, /control, etc.\n", "# Level 3: e.g. /sensing/lidar/pointcloud_processor\n", "DFG_MAX_HIER_LEVEL = 100\n", "\n", "# RegEx pattern for nodes that shall be marked as system inputs\n", "# These will be plotted with a start arrow as known from automata diagrams\n", "DFG_INPUT_NODE_PATTERNS = [r\"^/sensing\"]\n", "# RegEx pattern for nodes that shall be marked as system outputs\n", "# These will be plotted with a double border\n", "DFG_OUTPUT_NODE_PATTERNS = [r\"^/awapi\", r\"^/control/external_cmd_converter\"]\n", "# RegEx for nodes which shall not be plotted in the DFG\n", "DFG_EXCL_NODE_PATTERNS = [r\"^/rviz2\", r\"transform_listener_impl\"]\n", "\n", "# Whether to compute E2E latencies.\n", "E2E_ENABLED = True\n", "# Whether to plot end-to-end latency information (ignored if E2E_ENABLED is False)\n", "E2E_PLOT = False\n", "# The index of the output message that shall be used in plots that visualize a specific\n", "# message dependency tree. This index has to be 0 <= n < #output messages\n", "E2E_PLOT_TIMESTAMP = 200\n", "# E2E latency threshold. Every E2E latency higher than this is discarded.\n", "# Set this as low as comfortably possible to speed up calculations.\n", "# WARNING: If you set this too low (i.e. to E2E latencies that plausibly can happen)\n", "# your results will be wrong)\n", "E2E_TIME_LIMIT_S = 2\n", "\n", "# All topics containing any of these RegEx patterns are considered output topics in E2E latency calculations\n", "# E.g. r\"^/control/\" will cover all control topics\n", "E2E_OUTPUT_TOPIC_PATTERNS = [r\"^/control/command/control_cmd\"]\n", "#E2E_OUTPUT_TOPIC_PATTERNS = [r\"^/system/emergency/control_cmd\"]\n", "# All topics containing any of these RegEx patterns are considered input topics in E2E latency calculations\n", "# E.g. r\"^/sensing/\" will cover all sensing topics\n", "E2E_INPUT_TOPIC_PATTERNS = [\"/vehicle/status/\", \"/perception/\"]\n", "#E2E_INPUT_TOPIC_PATTERNS = [\"/vehicle/\", \"/sensing/\", \"/localization/\", \"planning\"]\n", "\n", "\n", "# This code overrides the above constants with environment variables, do not edit.\n", "for env_key, env_value in os.environ.items():\n", " if env_key.startswith(\"ANA_NB_\"):\n", " key = env_key.removeprefix(\"ANA_NB_\")\n", " if key not in globals().keys():\n", " continue\n", " value = parse_as(type(globals()[key]), env_value)\n", " globals()[key] = value\n", "\n", "# Convert input paths to absolute paths\n", "def _expand_path(path):\n", " return os.path.realpath(os.path.expandvars(os.path.expanduser(path)))\n", "\n", "TRACING_WS_BUILD_PATH = _expand_path(TRACING_WS_BUILD_PATH)\n", "TR_PATH = _expand_path(TR_PATH)\n", "OUT_PATH = _expand_path(OUT_PATH)\n", "BW_PATH = _expand_path(BW_PATH)\n", "CL_PATH = _expand_path(CL_PATH)\n", "\n", "os.makedirs(OUT_PATH, exist_ok=True)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [ "from clang_interop.cl_types import ClContext\n", "from clang_interop.process_clang_output import process_clang_output\n", "\n", "sys.path.append(os.path.join(TRACING_WS_BUILD_PATH, \"tracetools_read/\"))\n", "sys.path.append(os.path.join(TRACING_WS_BUILD_PATH, \"tracetools_analysis/\"))\n", "from tracetools_read.trace import *\n", "from tracetools_analysis.loading import load_file\n", "from tracetools_analysis.processor.ros2 import Ros2Handler\n", "from tracetools_analysis.utils.ros2 import Ros2DataModelUtil\n", "\n", "from tracing_interop.tr_types import TrTimer, TrTopic, TrPublisher, TrPublishInstance, TrCallbackInstance, \\\n", "TrCallbackSymbol, TrCallbackObject, TrSubscriptionObject, TrContext" ] }, { "cell_type": "markdown", "metadata": { "pycharm": { "name": "#%% md\n" } }, "source": [ "# Organize Trace Data" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "pycharm": { "name": "#%%\n" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[CACHE] Found up-to-date cache entry (cache/tr_objects_507fec94db.pkl) for tr_objects, loading.\n", "Done.\n" ] } ], "source": [ "def _load_traces():\n", " file = load_file(TR_PATH)\n", " handler = Ros2Handler.process(file)\n", " return TrContext(handler)\n", "\n", "\n", "_tracing_context = cached(\"tr_objects\", _load_traces, [TR_PATH])\n", "_tr_globals = [\"nodes\", \"publishers\", \"subscriptions\", \"timers\", \"timer_node_links\", \"subscription_objects\",\n", " \"callback_objects\", \"callback_symbols\", \"publish_instances\", \"callback_instances\", \"topics\"]\n", "\n", "# Help the IDE recognize those identifiers\n", "nodes = publishers = subscriptions = timers = timer_node_links = subscription_objects = callback_objects = callback_symbols = publish_instances = callback_instances = topics = None\n", "\n", "for name in _tr_globals:\n", " globals()[name] = getattr(_tracing_context, name)\n", "\n", "print(\"Done.\")" ] }, { "cell_type": "code", "execution_count": 42, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "/control/external_cmd_selector/current_selector_mode\n", "/system/emergency/control_cmd\n", "/control/command/hazard_lights_cmd\n", "/control/command/turn_indicators_cmd\n", "/api/external/set/command/local/control\n", "/control/trajectory_follower/lane_departure_checker_node/debug/deviation/yaw\n", "/control/command/control_cmd\n", "/api/iv_msgs/vehicle/status/control_mode\n", "/control/trajectory_follower/control_cmd\n", "/api/external/set/command/remote/control\n", "/control/trajectory_follower/lateral/diagnostic\n", "/control/trajectory_follower/lane_departure_checker_node/debug/deviation/yaw_deg\n", "/control/trajectory_follower/lane_departure_checker_node/debug/deviation/lateral\n", "/control/vehicle_cmd_gate/operation_mode\n", "/control/trajectory_follower/longitudinal/slope_angle\n", "/vehicle/status/control_mode\n", "/external/selected/external_control_cmd\n", "/control/is_autonomous_available\n", "/control/trajectory_follower/lane_departure_checker_node/debug/processing_time_ms\n", "/control/operation_mode\n", "/control/trajectory_follower/lane_departure_checker_node/debug/marker_array\n", "/external/selected/control_cmd\n", "/control/operation_mode_transition_manager/debug_info\n", "/control/trajectory_follower/lateral/predicted_trajectory\n", "/control/shift_decider/gear_cmd\n", "/control/command/emergency_cmd\n", "/planning/scenario_planning/lane_driving/motion_planning/obstacle_stop_planner/adaptive_cruise_control/debug_values\n", "/control/current_gate_mode\n", "/api/external/get/command/selected/control\n", "/control/command/gear_cmd\n", "/control/gate_mode_cmd\n", "/control/trajectory_follower/longitudinal/diagnostic\n" ] } ], "source": [ "for t in topics:\n", " if \"control\" in t.name:\n", " print(t.name)" ] }, { "cell_type": "markdown", "metadata": { "pycharm": { "name": "#%% md\n" } }, "source": [ "# E2E Latency Calculation" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "pycharm": { "name": "#%%\n" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[CACHE] Found up-to-date cache entry (cache/lat_graph_507fec94db.pkl) for lat_graph, loading.\n" ] } ], "source": [ "from latency_graph import latency_graph as lg\n", "\n", "def _make_latency_graph():\n", " return lg.LatencyGraph(_tracing_context)\n", "\n", "lat_graph = cached(\"lat_graph\", _make_latency_graph, [TR_PATH])" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "pycharm": { "name": "#%%\n" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " Processing INPUT: 1\n", " Processing OUTPUT: 1\n", " Processing simulation: 0\n", " Processing openscenario_visualizer: 2\n", " Processing simple_sensor_simulator: 1\n", " Processing openscenario_interpreter: 19\n", " Processing concealer: 22\n", " Processing system: 0\n", " Processing system_monitor: 0\n", " Processing system_monitor: 0\n", " Processing system_monitor_container: 1\n", " Processing cpu_monitor: 2\n", " Processing hdd_monitor: 3\n", " Processing mem_monitor: 2\n", " Processing net_monitor: 2\n", " Processing ntp_monitor: 2\n", " Processing process_monitor: 3\n", " Processing gpu_monitor: 2\n", " Processing emergency_handler: 7\n", " Processing system_error_monitor: 6\n", " Processing ad_service_state_monitor: 9\n", " Processing transform_listener_impl_5640698e3b70: 3\n", " Processing map: 0\n", " Processing map_container: 1\n", " Processing lanelet2_map_loader: 1\n", " Processing lanelet2_map_visualization: 2\n", " Processing pointcloud_map_loader: 1\n", " Processing vector_map_tf_generator: 2\n", " Processing planning: 0\n", " Processing mission_planning: 0\n", " Processing mission_planning_container: 1\n", " Processing mission_planner: 4\n", " Processing transform_listener_impl_55f81237fb00: 3\n", " Processing goal_pose_visualizer: 2\n", " Processing scenario_planning: 0\n", " Processing lane_driving: 0\n", " Processing behavior_planning: 0\n", " Processing rtc_auto_approver: 13\n", " Processing behavior_planning_container: 1\n", " Processing behavior_path_planner: 9\n", " Processing transform_listener_impl_7ff5980c97d0: 3\n", " Processing behavior_velocity_planner: 13\n", " Processing transform_listener_impl_7ff5705c51f8: 3\n", " Processing motion_planning: 0\n", " Processing motion_planning_container: 1\n", " Processing obstacle_avoidance_planner: 5\n", " Processing transform_listener_impl_7fbc48096dc0: 3\n", " Processing obstacle_stop_planner: 6\n", " Processing transform_listener_impl_7fbc54027818: 3\n", " Processing surround_obstacle_checker: 6\n", " Processing transform_listener_impl_7fbc6000af58: 3\n", " Processing scenario_selector: 8\n", " Processing external_velocity_limit_selector: 4\n", " Processing transform_listener_impl_55de7185f3b8: 3\n", " Processing parking: 0\n", " Processing parking_container: 1\n", " Processing costmap_generator: 6\n", " Processing transform_listener_impl_559279168428: 3\n", " Processing freespace_planner: 6\n", " Processing transform_listener_impl_5592795af670: 3\n", " Processing motion_velocity_smoother: 4\n", " Processing transform_listener_impl_5625d002bd30: 3\n", " Processing planning_diagnostics: 0\n", " Processing planning_error_monitor: 4\n", " Processing aggregator_node: 3\n", " Processing robot_state_publisher: 2\n", " Processing control: 0\n", " Processing control_container: 1\n", " Processing trajectory_follower: 0\n", " Processing controller_node_exe: 5\n", " Processing lane_departure_checker_node: 8\n", " Processing transform_listener_impl_56044e5ef540: 3\n", " Processing transform_listener_impl_56044e64ced0: 3\n", " Processing external_cmd_selector: 11\n", " Processing external_cmd_converter: 8\n", " Processing transform_listener_impl_56044e7e8a60: 3\n", " Processing shift_decider: 3\n", " Processing vehicle_cmd_gate: 21\n", " Processing operation_mode_transition_manager: 7\n", " Processing awapi: 0\n", " Processing awapi_relay_container: 1\n", " Processing awapi_awiv_adapter_node: 28\n", " Processing transform_listener_impl_555fb141cf58: 3\n", " Processing route_relay: 2\n", " Processing predict_object_relay: 2\n", " Processing nearest_traffic_signal_relay: 2\n", " Processing ready_module_relay: 2\n", " Processing force_available_relay: 2\n", " Processing running_modules_relay: 2\n", " Processing autoware_engage_relay: 2\n", " Processing vehicle_engage_relay: 2\n", " Processing put_route_relay: 2\n", " Processing put_goal_relay: 2\n", " Processing lane_change_approval_relay: 2\n", " Processing force_lane_change_relay: 2\n", " Processing external_approval_relay: 2\n", " Processing force_approval_relay: 2\n", " Processing obstacle_avoid_approval_relay: 2\n", " Processing traffic_signal_relay: 2\n", " Processing overwrite_traffic_signals_relay: 2\n", " Processing speed_exceeded_relay: 2\n", " Processing crosswalk_status_relay: 2\n", " Processing intersection_status_relay: 2\n", " Processing expand_stop_range_relay: 2\n", " Processing pose_initialization_request_relay: 2\n", " Processing autoware_api: 0\n", " Processing external: 0\n", " Processing autoware_iv_adaptor: 1\n", " Processing cpu_usage: 2\n", " Processing start: 2\n", " Processing diagnostics: 2\n", " Processing door: 2\n", " Processing emergency: 2\n", " Processing engage: 3\n", " Processing fail_safe_state: 2\n", " Processing initial_pose: 1\n", " Processing map: 2\n", " Processing operator: 3\n", " Processing metadata_packages: 1\n", " Processing route: 3\n", " Processing service: 1\n", " Processing vehicle_status: 8\n", " Processing velocity: 1\n", " Processing version: 1\n", " Processing internal: 0\n", " Processing traffic_signals: 2\n", " Processing autoware_iv_adaptor: 1\n", " Processing intersection_states: 2\n", " Processing initial_pose_2d: 2\n", " Processing crosswalk_states: 2\n", " Processing initial_pose: 1\n", " Processing iv_msgs: 6\n", " Processing operator: 5\n", " Processing route: 2\n", " Processing velocity: 2\n", " Processing initial_pose_2d: 2\n", " Processing fault_injection: 3\n", " Processing perception: 0\n", " Processing object_recognition: 0\n", " Processing tracking: 0\n", " Processing multi_object_tracker: 2\n", " Processing transform_listener_impl_55f0d0d59108: 3\n", " Processing prediction: 0\n", " Processing map_based_prediction: 3\n", " Processing transform_listener_impl_560d413e4c40: 3\n", " Processing rviz2: 56\n", " Processing rosbag2_player: 1\n", " Processing transform_listener_impl_563ba1d22770: 2\n", " Processing transform_listener_impl_563ba1d857c0: 7\n" ] }, { "data": { "image/svg+xml": [ "\n", "\n", "\n", "\n", "\n", "\n", "G\n", "\n", "\n", "cluster___INPUT\n", "\n", "INPUT\n", "\n", "\n", "cluster___OUTPUT\n", "\n", "OUTPUT\n", "\n", "\n", "cluster___simulation\n", "\n", "simulation\n", "\n", "\n", "cluster___simulation__openscenario_visualizer\n", "\n", "openscenario_visualizer\n", "\n", "\n", "cluster___simulation__simple_sensor_simulator\n", "\n", "simple_sensor_simulator\n", "\n", "\n", "cluster___simulation__openscenario_interpreter\n", "\n", "openscenario_interpreter\n", "\n", "\n", "cluster___simulation__concealer\n", "\n", "concealer\n", "\n", "\n", "cluster___system\n", "\n", "system\n", "\n", "\n", "cluster___system__system_monitor\n", "\n", "system_monitor\n", "\n", "\n", "cluster___system__system_monitor__system_monitor\n", "\n", "system_monitor\n", "\n", "\n", "cluster___system__system_monitor__system_monitor__system_monitor_container\n", "\n", "system_monitor_container\n", "\n", "\n", "cluster___system__system_monitor__cpu_monitor\n", "\n", "cpu_monitor\n", "\n", "\n", "cluster___system__system_monitor__hdd_monitor\n", "\n", "hdd_monitor\n", "\n", "\n", "cluster___system__system_monitor__mem_monitor\n", "\n", "mem_monitor\n", "\n", "\n", "cluster___system__system_monitor__net_monitor\n", "\n", "net_monitor\n", "\n", "\n", "cluster___system__system_monitor__ntp_monitor\n", "\n", "ntp_monitor\n", "\n", "\n", "cluster___system__system_monitor__process_monitor\n", "\n", "process_monitor\n", "\n", "\n", "cluster___system__system_monitor__gpu_monitor\n", "\n", "gpu_monitor\n", "\n", "\n", "cluster___system__emergency_handler\n", "\n", "emergency_handler\n", "\n", "\n", "cluster___system__system_error_monitor\n", "\n", "system_error_monitor\n", "\n", "\n", "cluster___system__ad_service_state_monitor\n", "\n", "ad_service_state_monitor\n", "\n", "\n", "cluster___system__transform_listener_impl_5640698e3b70\n", "\n", "transform_listener_impl_5640698e3b70\n", "\n", "\n", "cluster___planning\n", "\n", "planning\n", "\n", "\n", "cluster___planning__mission_planning\n", "\n", "mission_planning\n", "\n", "\n", "cluster___planning__mission_planning__mission_planning_container\n", "\n", "mission_planning_container\n", "\n", "\n", "cluster___planning__mission_planning__mission_planner\n", "\n", "mission_planner\n", "\n", "\n", "cluster___planning__mission_planning__transform_listener_impl_55f81237fb00\n", "\n", "transform_listener_impl_55f81237fb00\n", "\n", "\n", "cluster___planning__mission_planning__goal_pose_visualizer\n", "\n", "goal_pose_visualizer\n", "\n", "\n", "cluster___planning__scenario_planning\n", "\n", "scenario_planning\n", "\n", "\n", "cluster___planning__scenario_planning__lane_driving\n", "\n", "lane_driving\n", "\n", "\n", "cluster___planning__scenario_planning__lane_driving__behavior_planning\n", "\n", "behavior_planning\n", "\n", "\n", "cluster___planning__scenario_planning__lane_driving__behavior_planning__rtc_auto_approver\n", "\n", "rtc_auto_approver\n", "\n", "\n", "cluster___planning__scenario_planning__lane_driving__behavior_planning__behavior_planning_container\n", "\n", "behavior_planning_container\n", "\n", "\n", "cluster___planning__scenario_planning__lane_driving__behavior_planning__behavior_path_planner\n", "\n", "behavior_path_planner\n", "\n", "\n", "cluster___planning__scenario_planning__lane_driving__behavior_planning__transform_listener_impl_7ff5980c97d0\n", "\n", "transform_listener_impl_7ff5980c97d0\n", "\n", "\n", "cluster___planning__scenario_planning__lane_driving__behavior_planning__behavior_velocity_planner\n", "\n", "behavior_velocity_planner\n", "\n", "\n", "cluster___planning__scenario_planning__lane_driving__behavior_planning__transform_listener_impl_7ff5705c51f8\n", "\n", "transform_listener_impl_7ff5705c51f8\n", "\n", "\n", "cluster___planning__scenario_planning__lane_driving__motion_planning\n", "\n", "motion_planning\n", "\n", "\n", "cluster___planning__scenario_planning__lane_driving__motion_planning__motion_planning_container\n", "\n", "motion_planning_container\n", "\n", "\n", "cluster___planning__scenario_planning__lane_driving__motion_planning__obstacle_avoidance_planner\n", "\n", "obstacle_avoidance_planner\n", "\n", "\n", "cluster___planning__scenario_planning__lane_driving__motion_planning__transform_listener_impl_7fbc48096dc0\n", "\n", "transform_listener_impl_7fbc48096dc0\n", "\n", "\n", "cluster___planning__scenario_planning__lane_driving__motion_planning__obstacle_stop_planner\n", "\n", "obstacle_stop_planner\n", "\n", "\n", "cluster___planning__scenario_planning__lane_driving__motion_planning__transform_listener_impl_7fbc54027818\n", "\n", "transform_listener_impl_7fbc54027818\n", "\n", "\n", "cluster___planning__scenario_planning__lane_driving__motion_planning__surround_obstacle_checker\n", "\n", "surround_obstacle_checker\n", "\n", "\n", "cluster___planning__scenario_planning__lane_driving__motion_planning__transform_listener_impl_7fbc6000af58\n", "\n", "transform_listener_impl_7fbc6000af58\n", "\n", "\n", "cluster___planning__scenario_planning__scenario_selector\n", "\n", "scenario_selector\n", "\n", "\n", "cluster___planning__scenario_planning__external_velocity_limit_selector\n", "\n", "external_velocity_limit_selector\n", "\n", "\n", "cluster___planning__scenario_planning__transform_listener_impl_55de7185f3b8\n", "\n", "transform_listener_impl_55de7185f3b8\n", "\n", "\n", "cluster___planning__scenario_planning__parking\n", "\n", "parking\n", "\n", "\n", "cluster___planning__scenario_planning__parking__parking_container\n", "\n", "parking_container\n", "\n", "\n", "cluster___planning__scenario_planning__parking__costmap_generator\n", "\n", "costmap_generator\n", "\n", "\n", "cluster___planning__scenario_planning__parking__transform_listener_impl_559279168428\n", "\n", "transform_listener_impl_559279168428\n", "\n", "\n", "cluster___planning__scenario_planning__parking__freespace_planner\n", "\n", "freespace_planner\n", "\n", "\n", "cluster___planning__scenario_planning__parking__transform_listener_impl_5592795af670\n", "\n", "transform_listener_impl_5592795af670\n", "\n", "\n", "cluster___planning__scenario_planning__motion_velocity_smoother\n", "\n", "motion_velocity_smoother\n", "\n", "\n", "cluster___planning__scenario_planning__transform_listener_impl_5625d002bd30\n", "\n", "transform_listener_impl_5625d002bd30\n", "\n", "\n", "cluster___planning__planning_diagnostics\n", "\n", "planning_diagnostics\n", "\n", "\n", "cluster___planning__planning_diagnostics__planning_error_monitor\n", "\n", "planning_error_monitor\n", "\n", "\n", "cluster___control\n", "\n", "control\n", "\n", "\n", "cluster___control__control_container\n", "\n", "control_container\n", "\n", "\n", "cluster___control__trajectory_follower\n", "\n", "trajectory_follower\n", "\n", "\n", "cluster___control__trajectory_follower__controller_node_exe\n", "\n", "controller_node_exe\n", "\n", "\n", "cluster___control__trajectory_follower__lane_departure_checker_node\n", "\n", "lane_departure_checker_node\n", "\n", "\n", "cluster___control__transform_listener_impl_56044e5ef540\n", "\n", "transform_listener_impl_56044e5ef540\n", "\n", "\n", "cluster___control__transform_listener_impl_56044e64ced0\n", "\n", "transform_listener_impl_56044e64ced0\n", "\n", "\n", "cluster___control__external_cmd_selector\n", "\n", "external_cmd_selector\n", "\n", "\n", "cluster___control__external_cmd_converter\n", "\n", "external_cmd_converter\n", "\n", "\n", "cluster___control__transform_listener_impl_56044e7e8a60\n", "\n", "transform_listener_impl_56044e7e8a60\n", "\n", "\n", "cluster___control__shift_decider\n", "\n", "shift_decider\n", "\n", "\n", "cluster___control__vehicle_cmd_gate\n", "\n", "vehicle_cmd_gate\n", "\n", "\n", "cluster___control__operation_mode_transition_manager\n", "\n", "operation_mode_transition_manager\n", "\n", "\n", "cluster___awapi\n", "\n", "awapi\n", "\n", "\n", "cluster___awapi__awapi_relay_container\n", "\n", "awapi_relay_container\n", "\n", "\n", "cluster___awapi__awapi_awiv_adapter_node\n", "\n", "awapi_awiv_adapter_node\n", "\n", "\n", "cluster___awapi__transform_listener_impl_555fb141cf58\n", "\n", "transform_listener_impl_555fb141cf58\n", "\n", "\n", "cluster___awapi__route_relay\n", "\n", "route_relay\n", "\n", "\n", "cluster___awapi__predict_object_relay\n", "\n", "predict_object_relay\n", "\n", "\n", "cluster___awapi__nearest_traffic_signal_relay\n", "\n", "nearest_traffic_signal_relay\n", "\n", "\n", "cluster___awapi__ready_module_relay\n", "\n", "ready_module_relay\n", "\n", "\n", "cluster___awapi__force_available_relay\n", "\n", "force_available_relay\n", "\n", "\n", "cluster___awapi__running_modules_relay\n", "\n", "running_modules_relay\n", "\n", "\n", "cluster___awapi__autoware_engage_relay\n", "\n", "autoware_engage_relay\n", "\n", "\n", "cluster___awapi__vehicle_engage_relay\n", "\n", "vehicle_engage_relay\n", "\n", "\n", "cluster___awapi__put_route_relay\n", "\n", "put_route_relay\n", "\n", "\n", "cluster___awapi__put_goal_relay\n", "\n", "put_goal_relay\n", "\n", "\n", "cluster___awapi__lane_change_approval_relay\n", "\n", "lane_change_approval_relay\n", "\n", "\n", "cluster___awapi__force_lane_change_relay\n", "\n", "force_lane_change_relay\n", "\n", "\n", "cluster___awapi__external_approval_relay\n", "\n", "external_approval_relay\n", "\n", "\n", "cluster___awapi__force_approval_relay\n", "\n", "force_approval_relay\n", "\n", "\n", "cluster___awapi__obstacle_avoid_approval_relay\n", "\n", "obstacle_avoid_approval_relay\n", "\n", "\n", "cluster___awapi__traffic_signal_relay\n", "\n", "traffic_signal_relay\n", "\n", "\n", "cluster___awapi__overwrite_traffic_signals_relay\n", "\n", "overwrite_traffic_signals_relay\n", "\n", "\n", "cluster___awapi__speed_exceeded_relay\n", "\n", "speed_exceeded_relay\n", "\n", "\n", "cluster___awapi__crosswalk_status_relay\n", "\n", "crosswalk_status_relay\n", "\n", "\n", "cluster___awapi__intersection_status_relay\n", "\n", "intersection_status_relay\n", "\n", "\n", "cluster___awapi__expand_stop_range_relay\n", "\n", "expand_stop_range_relay\n", "\n", "\n", "cluster___awapi__pose_initialization_request_relay\n", "\n", "pose_initialization_request_relay\n", "\n", "\n", "cluster___autoware_api\n", "\n", "autoware_api\n", "\n", "\n", "cluster___autoware_api__external\n", "\n", "external\n", "\n", "\n", "cluster___autoware_api__external__autoware_iv_adaptor\n", "\n", "autoware_iv_adaptor\n", "\n", "\n", "cluster___autoware_api__external__cpu_usage\n", "\n", "cpu_usage\n", "\n", "\n", "cluster___autoware_api__external__start\n", "\n", "start\n", "\n", "\n", "cluster___autoware_api__external__diagnostics\n", "\n", "diagnostics\n", "\n", "\n", "cluster___autoware_api__external__door\n", "\n", "door\n", "\n", "\n", "cluster___autoware_api__external__emergency\n", "\n", "emergency\n", "\n", "\n", "cluster___autoware_api__external__engage\n", "\n", "engage\n", "\n", "\n", "cluster___autoware_api__external__fail_safe_state\n", "\n", "fail_safe_state\n", "\n", "\n", "cluster___autoware_api__external__initial_pose\n", "\n", "initial_pose\n", "\n", "\n", "cluster___autoware_api__external__map\n", "\n", "map\n", "\n", "\n", "cluster___autoware_api__external__operator\n", "\n", "operator\n", "\n", "\n", "cluster___autoware_api__external__metadata_packages\n", "\n", "metadata_packages\n", "\n", "\n", "cluster___autoware_api__external__route\n", "\n", "route\n", "\n", "\n", "cluster___autoware_api__external__service\n", "\n", "service\n", "\n", "\n", "cluster___autoware_api__external__vehicle_status\n", "\n", "vehicle_status\n", "\n", "\n", "cluster___autoware_api__external__velocity\n", "\n", "velocity\n", "\n", "\n", "cluster___autoware_api__external__version\n", "\n", "version\n", "\n", "\n", "cluster___autoware_api__internal\n", "\n", "internal\n", "\n", "\n", "cluster___autoware_api__internal__traffic_signals\n", "\n", "traffic_signals\n", "\n", "\n", "cluster___autoware_api__internal__autoware_iv_adaptor\n", "\n", "autoware_iv_adaptor\n", "\n", "\n", "cluster___autoware_api__internal__intersection_states\n", "\n", "intersection_states\n", "\n", "\n", "cluster___autoware_api__internal__initial_pose_2d\n", "\n", "initial_pose_2d\n", "\n", "\n", "cluster___autoware_api__internal__crosswalk_states\n", "\n", "crosswalk_states\n", "\n", "\n", "cluster___autoware_api__internal__initial_pose\n", "\n", "initial_pose\n", "\n", "\n", "cluster___autoware_api__internal__iv_msgs\n", "\n", "iv_msgs\n", "\n", "\n", "cluster___autoware_api__internal__operator\n", "\n", "operator\n", "\n", "\n", "cluster___autoware_api__internal__route\n", "\n", "route\n", "\n", "\n", "cluster___autoware_api__internal__velocity\n", "\n", "velocity\n", "\n", "\n", "cluster___perception\n", "\n", "perception\n", "\n", "\n", "cluster___perception__object_recognition\n", "\n", "object_recognition\n", "\n", "\n", "cluster___perception__object_recognition__tracking\n", "\n", "tracking\n", "\n", "\n", "cluster___perception__object_recognition__tracking__multi_object_tracker\n", "\n", "multi_object_tracker\n", "\n", "\n", "cluster___perception__object_recognition__tracking__transform_listener_impl_55f0d0d59108\n", "\n", "transform_listener_impl_55f0d0d59108\n", "\n", "\n", "cluster___perception__object_recognition__prediction\n", "\n", "prediction\n", "\n", "\n", "cluster___perception__object_recognition__prediction__map_based_prediction\n", "\n", "map_based_prediction\n", "\n", "\n", "cluster___perception__object_recognition__prediction__transform_listener_impl_560d413e4c40\n", "\n", "transform_listener_impl_560d413e4c40\n", "\n", "\n", "cluster___rviz2\n", "\n", "rviz2\n", "\n", "\n", "cluster___transform_listener_impl_563ba1d22770\n", "\n", "transform_listener_impl_563ba1d22770\n", "\n", "\n", "cluster___transform_listener_impl_563ba1d857c0\n", "\n", "transform_listener_impl_563ba1d857c0\n", "\n", "\n", "cluster___map\n", "\n", "map\n", "\n", "\n", "cluster___map__map_container\n", "\n", "map_container\n", "\n", "\n", "cluster___map__lanelet2_map_loader\n", "\n", "lanelet2_map_loader\n", "\n", "\n", "cluster___map__lanelet2_map_visualization\n", "\n", "lanelet2_map_visualization\n", "\n", "\n", "cluster___map__pointcloud_map_loader\n", "\n", "pointcloud_map_loader\n", "\n", "\n", "cluster___map__vector_map_tf_generator\n", "\n", "vector_map_tf_generator\n", "\n", "\n", "cluster___aggregator_node\n", "\n", "aggregator_node\n", "\n", "\n", "cluster___robot_state_publisher\n", "\n", "robot_state_publisher\n", "\n", "\n", "cluster___initial_pose_2d\n", "\n", "initial_pose_2d\n", "\n", "\n", "cluster___fault_injection\n", "\n", "fault_injection\n", "\n", "\n", "cluster___rosbag2_player\n", "\n", "rosbag2_player\n", "\n", "\n", "\n", "INPUT\n", "\n", "\n", "INPUT\n", "\n", "\n", "\n", "\n", "OUTPUT\n", "\n", "\n", "OUTPUT\n", "\n", "\n", "\n", "\n", "94473947724480\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "94473947831440\n", "\n", "\n", "void(openscenario_visualization::OpenscenarioVisualizationComponent)(traffic_simulator_msgs::msg::EntityStatusWithTrajectoryArray)\n", "\n", "\n", "\n", "\n", "94814122659440\n", "\n", "\n", "void(rviz_common::RosTopicDisplay<visualization_msgs::msg::MarkerArray>subscribe())(visualization_msgs::msg::MarkerArray)\n", "\n", "\n", "\n", "\n", "94473947831440:out->94814122659440:in\n", "\n", "\n", "\n", "\n", "\n", "94197690915808\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "94598985709760\n", "\n", "\n", "void(metrics::OutOfRangeMetric::setEntityManager(traffic_simulator::entity::EntityManager))(tier4_debug_msgs::msg::Float32Stamped)\n", "\n", "\n", "\n", "\n", "94598982005712\n", "\n", "\n", "void(openscenario_interpreter::Interpreter::on_activate(rclcpp_lifecycle::State))()\n", "\n", "\n", "\n", "\n", "94598982005712:out->94473947831440:in\n", "\n", "\n", "\n", "\n", "\n", "140692129590448\n", "\n", "\n", "void(behavior_velocity_planner::BehaviorVelocityPlannerNode)(autoware_auto_perception_msgs::msg::TrafficSignalArray)\n", "\n", "\n", "\n", "\n", "94598982005712:out->140692129590448:in\n", "\n", "\n", "\n", "\n", "\n", "94814100528496\n", "\n", "\n", "void(rviz_common::RosTopicDisplay<visualization_msgs::msg::MarkerArray>subscribe())(visualization_msgs::msg::MarkerArray)\n", "\n", "\n", "\n", "\n", "94598982005712:out->94814100528496:in\n", "\n", "\n", "\n", "\n", "\n", "94814123705504\n", "\n", "\n", "void(rviz_common::RosTopicDisplay<visualization_msgs::msg::MarkerArray>subscribe())(visualization_msgs::msg::MarkerArray)\n", "\n", "\n", "\n", "\n", "94598982005712:out->94814123705504:in\n", "\n", "\n", "\n", "\n", "\n", "94598981506880\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "94598984431232\n", "\n", "\n", "void(concealer::ContinuousTransformBroadcaster<concealer::Autoware>ContinuousTransformBroadcaster())()\n", "\n", "\n", "\n", "\n", "94834649433424\n", "\n", "\n", "void(tf2_ros::TransformListener)(tf2_msgs::msg::TFMessage,bool)\n", "\n", "\n", "\n", "\n", "94598984431232:out->94834649433424:in\n", "\n", "\n", "\n", "\n", "\n", "94523946294432\n", "\n", "\n", "void(tf2_ros::TransformListener)(tf2_msgs::msg::TFMessage,bool)\n", "\n", "\n", "\n", "\n", "94598984431232:out->94523946294432:in\n", "\n", "\n", "\n", "\n", "\n", "140692794740864\n", "\n", "\n", "void(tf2_ros::TransformListener)(tf2_msgs::msg::TFMessage,bool)\n", "\n", "\n", "\n", "\n", "94598984431232:out->140692794740864:in\n", "\n", "\n", "\n", "\n", "\n", "140692129516080\n", "\n", "\n", "void(tf2_ros::TransformListener)(tf2_msgs::msg::TFMessage,bool)\n", "\n", "\n", "\n", "\n", "94598984431232:out->140692129516080:in\n", "\n", "\n", "\n", "\n", "\n", "140446639252448\n", "\n", "\n", "void(tf2_ros::TransformListener)(tf2_msgs::msg::TFMessage,bool)\n", "\n", "\n", "\n", "\n", "94598984431232:out->140446639252448:in\n", "\n", "\n", "\n", "\n", "\n", "140446840502256\n", "\n", "\n", "void(tf2_ros::TransformListener)(tf2_msgs::msg::TFMessage,bool)\n", "\n", "\n", "\n", "\n", "94598984431232:out->140446840502256:in\n", "\n", "\n", "\n", "\n", "\n", "140447041676624\n", "\n", "\n", "void(tf2_ros::TransformListener)(tf2_msgs::msg::TFMessage,bool)\n", "\n", "\n", "\n", "\n", "94598984431232:out->140447041676624:in\n", "\n", "\n", "\n", "\n", "\n", "94413876269008\n", "\n", "\n", "void(tf2_ros::TransformListener)(tf2_msgs::msg::TFMessage,bool)\n", "\n", "\n", "\n", "\n", "94598984431232:out->94413876269008:in\n", "\n", "\n", "\n", "\n", "\n", "94087585629152\n", "\n", "\n", "void(tf2_ros::TransformListener)(tf2_msgs::msg::TFMessage,bool)\n", "\n", "\n", "\n", "\n", "94598984431232:out->94087585629152:in\n", "\n", "\n", "\n", "\n", "\n", "94087589702960\n", "\n", "\n", "void(tf2_ros::TransformListener)(tf2_msgs::msg::TFMessage,bool)\n", "\n", "\n", "\n", "\n", "94598984431232:out->94087589702960:in\n", "\n", "\n", "\n", "\n", "\n", "94720403733744\n", "\n", "\n", "void(tf2_ros::TransformListener)(tf2_msgs::msg::TFMessage,bool)\n", "\n", "\n", "\n", "\n", "94598984431232:out->94720403733744:in\n", "\n", "\n", "\n", "\n", "\n", "94576494818288\n", "\n", "\n", "void(tf2_ros::TransformListener)(tf2_msgs::msg::TFMessage,bool)\n", "\n", "\n", "\n", "\n", "94598984431232:out->94576494818288:in\n", "\n", "\n", "\n", "\n", "\n", "94576495144288\n", "\n", "\n", "void(tf2_ros::TransformListener)(tf2_msgs::msg::TFMessage,bool)\n", "\n", "\n", "\n", "\n", "94598984431232:out->94576495144288:in\n", "\n", "\n", "\n", "\n", "\n", "94576496903968\n", "\n", "\n", "void(tf2_ros::TransformListener)(tf2_msgs::msg::TFMessage,bool)\n", "\n", "\n", "\n", "\n", "94598984431232:out->94576496903968:in\n", "\n", "\n", "\n", "\n", "\n", "93869484701296\n", "\n", "\n", "void(tf2_ros::TransformListener)(tf2_msgs::msg::TFMessage,bool)\n", "\n", "\n", "\n", "\n", "94598984431232:out->93869484701296:in\n", "\n", "\n", "\n", "\n", "\n", "94492784774400\n", "\n", "\n", "void(tf2_ros::TransformListener)(tf2_msgs::msg::TFMessage,bool)\n", "\n", "\n", "\n", "\n", "94598984431232:out->94492784774400:in\n", "\n", "\n", "\n", "\n", "\n", "94614929277376\n", "\n", "\n", "void(tf2_ros::TransformListener)(tf2_msgs::msg::TFMessage,bool)\n", "\n", "\n", "\n", "\n", "94598984431232:out->94614929277376:in\n", "\n", "\n", "\n", "\n", "\n", "94814100635744\n", "\n", "\n", "void(tf2_ros::TransformListener)(tf2_msgs::msg::TFMessage,bool)\n", "\n", "\n", "\n", "\n", "94598984431232:out->94814100635744:in\n", "\n", "\n", "\n", "\n", "\n", "94814118508512\n", "\n", "\n", "void(tf2_ros::TransformListener)(tf2_msgs::msg::TFMessage,bool)\n", "\n", "\n", "\n", "\n", "94598984431232:out->94814118508512:in\n", "\n", "\n", "\n", "\n", "\n", "94598981639200\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "94598985354672\n", "\n", "\n", "void(concealer::AutowareUniverse::AutowareUniverse<std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,char()[26],char()[39]>(std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,char()[26],char()[39]))(autoware_auto_vehicle_msgs::msg::GearCommand)\n", "\n", "\n", "\n", "\n", "94598984774544\n", "\n", "\n", "void(concealer::AutowareUniverse::AutowareUniverse<std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,char()[26],char()[39]>(std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,char()[26],char()[39]))(autoware_auto_control_msgs::msg::AckermannControlCommand)\n", "\n", "\n", "\n", "\n", "94598985041264\n", "\n", "\n", "void(concealer::AutowareUniverse::AutowareUniverse<std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,char()[26],char()[39]>(std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,char()[26],char()[39]))(autoware_auto_system_msgs::msg::AutowareState)\n", "\n", "\n", "\n", "\n", "94598985338896\n", "\n", "\n", "void(concealer::AutowareUniverse::AutowareUniverse<std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,char()[26],char()[39]>(std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,char()[26],char()[39]))(autoware_auto_system_msgs::msg::EmergencyState)\n", "\n", "\n", "\n", "\n", "94598985472048\n", "\n", "\n", "void(concealer::Autoware::resetTimerCallback())()\n", "\n", "\n", "\n", "\n", "94743998025808\n", "\n", "\n", "void(EmergencyHandler)(nav_msgs::msg::Odometry)\n", "\n", "\n", "\n", "\n", "94598985472048:out->94743998025808:in\n", "\n", "\n", "\n", "\n", "\n", "94743998107360\n", "\n", "\n", "void(EmergencyHandler)(autoware_auto_vehicle_msgs::msg::ControlModeReport)\n", "\n", "\n", "\n", "\n", "94598985472048:out->94743998107360:in\n", "\n", "\n", "\n", "\n", "\n", "93905902287008\n", "\n", "\n", "void(AutowareErrorMonitor)(autoware_auto_vehicle_msgs::msg::ControlModeReport)\n", "\n", "\n", "\n", "\n", "94598985472048:out->93905902287008:in\n", "\n", "\n", "\n", "\n", "\n", "94834650106384\n", "\n", "\n", "void(AutowareStateMonitorNode)(autoware_auto_vehicle_msgs::msg::ControlModeReport)\n", "\n", "\n", "\n", "\n", "94598985472048:out->94834650106384:in\n", "\n", "\n", "\n", "\n", "\n", "94834650196512\n", "\n", "\n", "void(AutowareStateMonitorNode)(nav_msgs::msg::Odometry)\n", "\n", "\n", "\n", "\n", "94598985472048:out->94834650196512:in\n", "\n", "\n", "\n", "\n", "\n", "140692795329024\n", "\n", "\n", "void(behavior_path_planner::BehaviorPathPlannerNode)(nav_msgs::msg::Odometry)\n", "\n", "\n", "\n", "\n", "94598985472048:out->140692795329024:in\n", "\n", "\n", "\n", "\n", "\n", "140692129621424\n", "\n", "\n", "void(behavior_velocity_planner::BehaviorVelocityPlannerNode)(nav_msgs::msg::Odometry)\n", "\n", "\n", "\n", "\n", "94598985472048:out->140692129621424:in\n", "\n", "\n", "\n", "\n", "\n", "140446639760464\n", "\n", "\n", "void(ObstacleAvoidancePlanner)(nav_msgs::msg::Odometry)\n", "\n", "\n", "\n", "\n", "94598985472048:out->140446639760464:in\n", "\n", "\n", "\n", "\n", "\n", "140446840970624\n", "\n", "\n", "void(motion_planning::ObstacleStopPlannerNode)(nav_msgs::msg::Odometry)\n", "\n", "\n", "\n", "\n", "94598985472048:out->140446840970624:in\n", "\n", "\n", "\n", "\n", "\n", "140447041936896\n", "\n", "\n", "void(motion_utils::VehicleStopChecker)(nav_msgs::msg::Odometry)\n", "\n", "\n", "\n", "\n", "94598985472048:out->140447041936896:in\n", "\n", "\n", "\n", "\n", "\n", "140447041834480\n", "\n", "\n", "void(surround_obstacle_checker::SurroundObstacleCheckerNode)(nav_msgs::msg::Odometry)\n", "\n", "\n", "\n", "\n", "94598985472048:out->140447041834480:in\n", "\n", "\n", "\n", "\n", "\n", "94413876523344\n", "\n", "\n", "void(ScenarioSelectorNode)(nav_msgs::msg::Odometry)\n", "\n", "\n", "\n", "\n", "94598985472048:out->94413876523344:in\n", "\n", "\n", "\n", "\n", "\n", "94087589186048\n", "\n", "\n", "void(freespace_planner::FreespacePlannerNode)(nav_msgs::msg::Odometry)\n", "\n", "\n", "\n", "\n", "94598985472048:out->94087589186048:in\n", "\n", "\n", "\n", "\n", "\n", "94720404087472\n", "\n", "\n", "void(motion_velocity_smoother::MotionVelocitySmootherNode)(nav_msgs::msg::Odometry)\n", "\n", "\n", "\n", "\n", "94598985472048:out->94720404087472:in\n", "\n", "\n", "\n", "\n", "\n", "94576495400608\n", "\n", "\n", "void(autoware::motion::control::trajectory_follower_nodes::Controller)(autoware_auto_vehicle_msgs::msg::SteeringReport)\n", "\n", "\n", "\n", "\n", "94598985472048:out->94576495400608:in\n", "\n", "\n", "\n", "\n", "\n", "94576495417152\n", "\n", "\n", "void(autoware::motion::control::trajectory_follower_nodes::Controller)(nav_msgs::msg::Odometry)\n", "\n", "\n", "\n", "\n", "94598985472048:out->94576495417152:in\n", "\n", "\n", "\n", "\n", "\n", "94576497098112\n", "\n", "\n", "void(lane_departure_checker::LaneDepartureCheckerNode)(nav_msgs::msg::Odometry)\n", "\n", "\n", "\n", "\n", "94598985472048:out->94576497098112:in\n", "\n", "\n", "\n", "\n", "\n", "94576496320128\n", "\n", "\n", "void(external_cmd_converter::ExternalCmdConverterNode)(nav_msgs::msg::Odometry)\n", "\n", "\n", "\n", "\n", "94598985472048:out->94576496320128:in\n", "\n", "\n", "\n", "\n", "\n", "94576498834368\n", "\n", "\n", "void(vehicle_cmd_gate::VehicleCmdGate)(autoware_auto_vehicle_msgs::msg::SteeringReport)\n", "\n", "\n", "\n", "\n", "94598985472048:out->94576498834368:in\n", "\n", "\n", "\n", "\n", "\n", "94576499522704\n", "\n", "\n", "void(operation_mode_transition_manager::OperationModeTransitionManager::OperationModeTransitionManager(rclcpp::NodeOptions))(autoware_auto_vehicle_msgs::msg::ControlModeReport)\n", "\n", "\n", "\n", "\n", "94598985472048:out->94576499522704:in\n", "\n", "\n", "\n", "\n", "\n", "94576499333872\n", "\n", "\n", "void(operation_mode_transition_manager::OperationModeTransitionManager::OperationModeTransitionManager(rclcpp::NodeOptions))(nav_msgs::msg::Odometry)\n", "\n", "\n", "\n", "\n", "94598985472048:out->94576499333872:in\n", "\n", "\n", "\n", "\n", "\n", "93869485567472\n", "\n", "\n", "void(autoware_api::AutowareIvAdapter)(autoware_auto_vehicle_msgs::msg::GearReport)\n", "\n", "\n", "\n", "\n", "94598985472048:out->93869485567472:in\n", "\n", "\n", "\n", "\n", "\n", "93869484852592\n", "\n", "\n", "void(autoware_api::AutowareIvAdapter)(autoware_auto_vehicle_msgs::msg::SteeringReport)\n", "\n", "\n", "\n", "\n", "94598985472048:out->93869484852592:in\n", "\n", "\n", "\n", "\n", "\n", "93869485852848\n", "\n", "\n", "void(autoware_api::AutowareIvAdapter)(autoware_auto_vehicle_msgs::msg::ControlModeReport)\n", "\n", "\n", "\n", "\n", "94598985472048:out->93869485852848:in\n", "\n", "\n", "\n", "\n", "\n", "93869485495552\n", "\n", "\n", "void(autoware_api::AutowareIvAdapter)(nav_msgs::msg::Odometry)\n", "\n", "\n", "\n", "\n", "94598985472048:out->93869485495552:in\n", "\n", "\n", "\n", "\n", "\n", "93869485440880\n", "\n", "\n", "void(autoware_api::AutowareIvAdapter)(autoware_auto_vehicle_msgs::msg::TurnIndicatorsReport)\n", "\n", "\n", "\n", "\n", "94598985472048:out->93869485440880:in\n", "\n", "\n", "\n", "\n", "\n", "139945805491008\n", "\n", "\n", "void(external_api::VehicleStatus::VehicleStatus(rclcpp::NodeOptions))(autoware_auto_vehicle_msgs::msg::SteeringReport)\n", "\n", "\n", "\n", "\n", "94598985472048:out->139945805491008:in\n", "\n", "\n", "\n", "\n", "\n", "139945805507120\n", "\n", "\n", "void(external_api::VehicleStatus::VehicleStatus(rclcpp::NodeOptions))(autoware_auto_vehicle_msgs::msg::TurnIndicatorsReport)\n", "\n", "\n", "\n", "\n", "94598985472048:out->139945805507120:in\n", "\n", "\n", "\n", "\n", "\n", "139945805524160\n", "\n", "\n", "void(external_api::VehicleStatus::VehicleStatus(rclcpp::NodeOptions))(autoware_auto_vehicle_msgs::msg::GearReport)\n", "\n", "\n", "\n", "\n", "94598985472048:out->139945805524160:in\n", "\n", "\n", "\n", "\n", "\n", "139945805462352\n", "\n", "\n", "void(external_api::VehicleStatus::VehicleStatus(rclcpp::NodeOptions))(autoware_auto_vehicle_msgs::msg::VelocityReport)\n", "\n", "\n", "\n", "\n", "94598985472048:out->139945805462352:in\n", "\n", "\n", "\n", "\n", "\n", "140553811777488\n", "\n", "\n", "void(internal_api::IVMsgs)(autoware_auto_vehicle_msgs::msg::ControlModeReport)\n", "\n", "\n", "\n", "\n", "94598985472048:out->140553811777488:in\n", "\n", "\n", "\n", "\n", "\n", "140553946051728\n", "\n", "\n", "void(internal_api::Operator)(autoware_auto_vehicle_msgs::msg::ControlModeReport)\n", "\n", "\n", "\n", "\n", "94598985472048:out->140553946051728:in\n", "\n", "\n", "\n", "\n", "\n", "94814118554848\n", "\n", "\n", "void(rviz_common::RosTopicDisplay<autoware_auto_vehicle_msgs::msg::TurnIndicatorsReport>subscribe())(autoware_auto_vehicle_msgs::msg::TurnIndicatorsReport)\n", "\n", "\n", "\n", "\n", "94598985472048:out->94814118554848:in\n", "\n", "\n", "\n", "\n", "\n", "94814123761072\n", "\n", "\n", "void(rviz_common::RosTopicDisplay<autoware_auto_vehicle_msgs::msg::VelocityReport>subscribe())(autoware_auto_vehicle_msgs::msg::VelocityReport)\n", "\n", "\n", "\n", "\n", "94598985472048:out->94814123761072:in\n", "\n", "\n", "\n", "\n", "\n", "94814123932656\n", "\n", "\n", "void(rviz_common::RosTopicDisplay<autoware_auto_vehicle_msgs::msg::VelocityReport>subscribe())(autoware_auto_vehicle_msgs::msg::VelocityReport)\n", "\n", "\n", "\n", "\n", "94598985472048:out->94814123932656:in\n", "\n", "\n", "\n", "\n", "\n", "94598985472048:out->94814123932656:in\n", "\n", "\n", "\n", "\n", "\n", "94598985518880\n", "\n", "\n", "void(concealer::AutowareUniverse::AutowareUniverse<std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,char()[26],char()[39]>(std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,char()[26],char()[39]))(autoware_auto_vehicle_msgs::msg::TurnIndicatorsCommand)\n", "\n", "\n", "\n", "\n", "94598985307648\n", "\n", "\n", "void(concealer::AutowareUniverse::AutowareUniverse<std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,char()[26],char()[39]>(std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,char()[26],char()[39]))(tier4_rtc_msgs::msg::CooperateStatusArray)\n", "\n", "\n", "\n", "\n", "94598985473760\n", "\n", "\n", "void(concealer::AutowareUniverse::AutowareUniverse<std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,char()[26],char()[39]>(std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,char()[26],char()[39]))(autoware_auto_planning_msgs::msg::Trajectory)\n", "\n", "\n", "\n", "\n", "94598985371472\n", "\n", "\n", "void(concealer::AutowareUniverse::AutowareUniverse<std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,char()[26],char()[39]>(std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,std::__cxx11::basic_string<char,std::char_traits<char>,>,char()[26],char()[39]))(autoware_auto_planning_msgs::msg::PathWithLaneId)\n", "\n", "\n", "\n", "\n", "93862672689728\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "139948020137856\n", "\n", "\n", "void(diagnostic_updater::Updater)()\n", "\n", "\n", "\n", "\n", "139945939759424\n", "\n", "\n", "void(external_api::CpuUsage::CpuUsage(rclcpp::NodeOptions))(tier4_external_api_msgs::msg::CpuUsage)\n", "\n", "\n", "\n", "\n", "139948020137856:out->139945939759424:in\n", "\n", "\n", "\n", "\n", "\n", "139948020032224\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "139946476448384\n", "\n", "\n", "void(diagnostic_updater::Updater)()\n", "\n", "\n", "\n", "\n", "139946476368736\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "139946476554496\n", "\n", "\n", "void(HDDMonitor)()\n", "\n", "\n", "\n", "\n", "139947617372672\n", "\n", "\n", "void(diagnostic_updater::Updater)()\n", "\n", "\n", "\n", "\n", "139947617205216\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "139948489580768\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "139948489782320\n", "\n", "\n", "void(diagnostic_updater::Updater)()\n", "\n", "\n", "\n", "\n", "139948154237360\n", "\n", "\n", "void(diagnostic_updater::Updater)()\n", "\n", "\n", "\n", "\n", "139948154080112\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "139948154408608\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "139948154549264\n", "\n", "\n", "void(diagnostic_updater::Updater)()\n", "\n", "\n", "\n", "\n", "139948154513040\n", "\n", "\n", "void(ProcessMonitor)()\n", "\n", "\n", "\n", "\n", "139947684147888\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "139947483170896\n", "\n", "\n", "void(diagnostic_updater::Updater)()\n", "\n", "\n", "\n", "\n", "94743997876288\n", "\n", "\n", "void(EmergencyHandler)(autoware_auto_control_msgs::msg::AckermannControlCommand)\n", "\n", "\n", "\n", "\n", "94743998250320\n", "\n", "\n", "void(EmergencyHandler)()\n", "\n", "\n", "\n", "\n", "94743998250320:out->94598985338896:in\n", "\n", "\n", "\n", "\n", "\n", "94576498970688\n", "\n", "\n", "void(vehicle_cmd_gate::VehicleCmdGate)(autoware_auto_control_msgs::msg::AckermannControlCommand)\n", "\n", "\n", "\n", "\n", "94743998250320:out->94576498970688:in\n", "\n", "\n", "\n", "\n", "\n", "94576498971936\n", "\n", "\n", "void(vehicle_cmd_gate::VehicleCmdGate)(autoware_auto_vehicle_msgs::msg::HazardLightsCommand)\n", "\n", "\n", "\n", "\n", "94743998250320:out->94576498971936:in\n", "\n", "\n", "\n", "\n", "\n", "94576499008000\n", "\n", "\n", "void(vehicle_cmd_gate::VehicleCmdGate)(autoware_auto_vehicle_msgs::msg::GearCommand)\n", "\n", "\n", "\n", "\n", "94743998250320:out->94576499008000:in\n", "\n", "\n", "\n", "\n", "\n", "94576498786816\n", "\n", "\n", "void(vehicle_cmd_gate::VehicleCmdGate)(autoware_auto_system_msgs::msg::EmergencyState)\n", "\n", "\n", "\n", "\n", "94743998250320:out->94576498786816:in\n", "\n", "\n", "\n", "\n", "\n", "93869485904720\n", "\n", "\n", "void(autoware_api::AutowareIvAdapter)(autoware_auto_system_msgs::msg::EmergencyState)\n", "\n", "\n", "\n", "\n", "94743998250320:out->93869485904720:in\n", "\n", "\n", "\n", "\n", "\n", "139946275163104\n", "\n", "\n", "void(external_api::FailSafeState::FailSafeState(rclcpp::NodeOptions))(autoware_auto_system_msgs::msg::EmergencyState)\n", "\n", "\n", "\n", "\n", "94743998250320:out->139946275163104:in\n", "\n", "\n", "\n", "\n", "\n", "140553811762592\n", "\n", "\n", "void(internal_api::IVMsgs)(autoware_auto_system_msgs::msg::EmergencyState)\n", "\n", "\n", "\n", "\n", "94743998250320:out->140553811762592:in\n", "\n", "\n", "\n", "\n", "\n", "94743997858064\n", "\n", "\n", "void(EmergencyHandler)(autoware_auto_system_msgs::msg::HazardStatusStamped)\n", "\n", "\n", "\n", "\n", "94743997882272\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "94743998134064\n", "\n", "\n", "void(HeaderlessHeartbeatChecker<autoware_auto_system_msgs::msg::HazardStatusStamped>)(autoware_auto_system_msgs::msg::HazardStatusStamped)\n", "\n", "\n", "\n", "\n", "93905902335488\n", "\n", "\n", "void(AutowareErrorMonitor)()\n", "\n", "\n", "\n", "\n", "93905902335488:out->94743997858064:in\n", "\n", "\n", "\n", "\n", "\n", "93905902335488:out->94743998134064:in\n", "\n", "\n", "\n", "\n", "\n", "93869485925200\n", "\n", "\n", "void(autoware_api::AutowareIvAdapter)(autoware_auto_system_msgs::msg::HazardStatusStamped)\n", "\n", "\n", "\n", "\n", "93905902335488:out->93869485925200:in\n", "\n", "\n", "\n", "\n", "\n", "93905902270864\n", "\n", "\n", "void(AutowareErrorMonitor)(autoware_auto_system_msgs::msg::AutowareState)\n", "\n", "\n", "\n", "\n", "93905902213872\n", "\n", "\n", "void(AutowareErrorMonitor)(diagnostic_msgs::msg::DiagnosticArray)\n", "\n", "\n", "\n", "\n", "93905902160352\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "93905902266960\n", "\n", "\n", "void(AutowareErrorMonitor)(tier4_control_msgs::msg::GateMode)\n", "\n", "\n", "\n", "\n", "94834649665264\n", "\n", "\n", "void(AutowareStateMonitorNode)(autoware_auto_vehicle_msgs::msg::Engage)\n", "\n", "\n", "\n", "\n", "94834650122272\n", "\n", "\n", "void(AutowareStateMonitorNode)(autoware_auto_mapping_msgs::msg::HADMapBin)\n", "\n", "\n", "\n", "\n", "94834650128128\n", "\n", "\n", "void(AutowareStateMonitorNode)(geometry_msgs::msg::PoseStamped)\n", "\n", "\n", "\n", "\n", "94834648894912\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "94834650125648\n", "\n", "\n", "void(AutowareStateMonitorNode)(autoware_auto_planning_msgs::msg::HADMapRoute)\n", "\n", "\n", "\n", "\n", "94834650196464\n", "\n", "\n", "void(AutowareStateMonitorNode)()\n", "\n", "\n", "\n", "\n", "94834650196464:out->94598985041264:in\n", "\n", "\n", "\n", "\n", "\n", "94834650196464:out->93905902270864:in\n", "\n", "\n", "\n", "\n", "\n", "139946946329456\n", "\n", "\n", "void(external_api::Engage)(autoware_auto_system_msgs::msg::AutowareState)\n", "\n", "\n", "\n", "\n", "94834650196464:out->139946946329456:in\n", "\n", "\n", "\n", "\n", "\n", "139945671700736\n", "\n", "\n", "void(external_api::Route)(autoware_auto_system_msgs::msg::AutowareState)\n", "\n", "\n", "\n", "\n", "94834650196464:out->139945671700736:in\n", "\n", "\n", "\n", "\n", "\n", "140553811654896\n", "\n", "\n", "void(internal_api::IVMsgs)(autoware_auto_system_msgs::msg::AutowareState)\n", "\n", "\n", "\n", "\n", "94834650196464:out->140553811654896:in\n", "\n", "\n", "\n", "\n", "\n", "94834649553312\n", "\n", "\n", "void(diagnostic_updater::Updater)()\n", "\n", "\n", "\n", "\n", "94834649325216\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "94834649490352\n", "\n", "\n", "void(tf2_ros::TransformListener)(tf2_msgs::msg::TFMessage,bool)\n", "\n", "\n", "\n", "\n", "94337923764944\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "94337924284192\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "94337925391408\n", "\n", "\n", "void(Lanelet2MapVisualizationNode)(autoware_auto_mapping_msgs::msg::HADMapBin)\n", "\n", "\n", "\n", "\n", "94337925112448\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "94337924523200\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "94337925441248\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "94337924680528\n", "\n", "\n", "void(VectorMapTFGeneratorNode)(autoware_auto_mapping_msgs::msg::HADMapBin)\n", "\n", "\n", "\n", "\n", "94523945608336\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "94523946599520\n", "\n", "\n", "void(mission_planner::MissionPlannerLanelet2)(autoware_auto_mapping_msgs::msg::HADMapBin)\n", "\n", "\n", "\n", "\n", "94523946391696\n", "\n", "\n", "void(mission_planner::MissionPlanner)(geometry_msgs::msg::PoseStamped)\n", "\n", "\n", "\n", "\n", "94523946379184\n", "\n", "\n", "void(mission_planner::MissionPlanner)(geometry_msgs::msg::PoseStamped)\n", "\n", "\n", "\n", "\n", "94523946379184:out->94834650125648:in\n", "\n", "\n", "\n", "\n", "\n", "94523946777776\n", "\n", "\n", "void(mission_planner::GoalPoseVisualizer)(autoware_auto_planning_msgs::msg::HADMapRoute)\n", "\n", "\n", "\n", "\n", "94523946379184:out->94523946777776:in\n", "\n", "\n", "\n", "\n", "\n", "140692795611344\n", "\n", "\n", "void(behavior_path_planner::BehaviorPathPlannerNode)(autoware_auto_planning_msgs::msg::HADMapRoute)\n", "\n", "\n", "\n", "\n", "94523946379184:out->140692795611344:in\n", "\n", "\n", "\n", "\n", "\n", "94413876449088\n", "\n", "\n", "void(ScenarioSelectorNode)(autoware_auto_planning_msgs::msg::HADMapRoute)\n", "\n", "\n", "\n", "\n", "94523946379184:out->94413876449088:in\n", "\n", "\n", "\n", "\n", "\n", "94087586578016\n", "\n", "\n", "void(freespace_planner::FreespacePlannerNode)(autoware_auto_planning_msgs::msg::HADMapRoute)\n", "\n", "\n", "\n", "\n", "94523946379184:out->94087586578016:in\n", "\n", "\n", "\n", "\n", "\n", "94576497008720\n", "\n", "\n", "void(lane_departure_checker::LaneDepartureCheckerNode)(autoware_auto_planning_msgs::msg::HADMapRoute)\n", "\n", "\n", "\n", "\n", "94523946379184:out->94576497008720:in\n", "\n", "\n", "\n", "\n", "\n", "140554617170864\n", "\n", "\n", "void(internal_api::Route)(autoware_auto_planning_msgs::msg::HADMapRoute)\n", "\n", "\n", "\n", "\n", "94523946379184:out->140554617170864:in\n", "\n", "\n", "\n", "\n", "\n", "94523946096816\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "94523946256688\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "94523946356480\n", "\n", "\n", "void(tf2_ros::TransformListener)(tf2_msgs::msg::TFMessage,bool)\n", "\n", "\n", "\n", "\n", "94814100599824\n", "\n", "\n", "void(message_filters::Subscriber<geometry_msgs::msg::PoseStamped>subscribe(rclcpp::Node,std::__cxx11::basic_string<char,std::char_traits<char>,>,rmw_qos_profile_t))(geometry_msgs::msg::PoseStamped)\n", "\n", "\n", "\n", "\n", "94523946777776:out->94814100599824:in\n", "\n", "\n", "\n", "\n", "\n", "94523946777776:out->94814100599824:in\n", "\n", "\n", "\n", "\n", "\n", "94523946777776:out->94814100599824:in\n", "\n", "\n", "\n", "\n", "\n", "94523946777776:out->94814100599824:in\n", "\n", "\n", "\n", "\n", "\n", "94523946824128\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "93880764476416\n", "\n", "\n", "void(rtc_auto_approver::RTCAutoApproverInterface)(tier4_rtc_msgs::msg::CooperateStatusArray)\n", "\n", "\n", "\n", "\n", "93880764524784\n", "\n", "\n", "void(rtc_auto_approver::RTCAutoApproverInterface)(tier4_rtc_msgs::msg::CooperateStatusArray)\n", "\n", "\n", "\n", "\n", "93880764582032\n", "\n", "\n", "void(rtc_auto_approver::RTCAutoApproverInterface)(tier4_rtc_msgs::msg::CooperateStatusArray)\n", "\n", "\n", "\n", "\n", "93880764636784\n", "\n", "\n", "void(rtc_auto_approver::RTCAutoApproverInterface)(tier4_rtc_msgs::msg::CooperateStatusArray)\n", "\n", "\n", "\n", "\n", "93880764693808\n", "\n", "\n", "void(rtc_auto_approver::RTCAutoApproverInterface)(tier4_rtc_msgs::msg::CooperateStatusArray)\n", "\n", "\n", "\n", "\n", "93880764895216\n", "\n", "\n", "void(rtc_auto_approver::RTCAutoApproverInterface)(tier4_rtc_msgs::msg::CooperateStatusArray)\n", "\n", "\n", "\n", "\n", "93880764274192\n", "\n", "\n", "void(rtc_auto_approver::RTCAutoApproverInterface)(tier4_rtc_msgs::msg::CooperateStatusArray)\n", "\n", "\n", "\n", "\n", "93880764204544\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "93880764803984\n", "\n", "\n", "void(rtc_auto_approver::RTCAutoApproverInterface)(tier4_rtc_msgs::msg::CooperateStatusArray)\n", "\n", "\n", "\n", "\n", "93880764352528\n", "\n", "\n", "void(rtc_auto_approver::RTCAutoApproverInterface)(tier4_rtc_msgs::msg::CooperateStatusArray)\n", "\n", "\n", "\n", "\n", "93880764748880\n", "\n", "\n", "void(rtc_auto_approver::RTCAutoApproverInterface)(tier4_rtc_msgs::msg::CooperateStatusArray)\n", "\n", "\n", "\n", "\n", "93880764857008\n", "\n", "\n", "void(rtc_auto_approver::RTCAutoApproverInterface)(tier4_rtc_msgs::msg::CooperateStatusArray)\n", "\n", "\n", "\n", "\n", "93880764418992\n", "\n", "\n", "void(rtc_auto_approver::RTCAutoApproverInterface)(tier4_rtc_msgs::msg::CooperateStatusArray)\n", "\n", "\n", "\n", "\n", "94622270930000\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "140692796654064\n", "\n", "\n", "void(behavior_path_planner::BehaviorPathPlannerNode)()\n", "\n", "\n", "\n", "\n", "140692796654064:out->94598985371472:in\n", "\n", "\n", "\n", "\n", "\n", "140692796654064:out->93880764636784:in\n", "\n", "\n", "\n", "\n", "\n", "140692796654064:out->93880764693808:in\n", "\n", "\n", "\n", "\n", "\n", "140692796654064:out->93880764895216:in\n", "\n", "\n", "\n", "\n", "\n", "140692796654064:out->93880764803984:in\n", "\n", "\n", "\n", "\n", "\n", "140692796654064:out->93880764748880:in\n", "\n", "\n", "\n", "\n", "\n", "140692796654064:out->93880764857008:in\n", "\n", "\n", "\n", "\n", "\n", "140692129572128\n", "\n", "\n", "void(behavior_velocity_planner::BehaviorVelocityPlannerNode)(autoware_auto_planning_msgs::msg::PathWithLaneId)\n", "\n", "\n", "\n", "\n", "140692796654064:out->140692129572128:in\n", "\n", "\n", "\n", "\n", "\n", "94576498861408\n", "\n", "\n", "void(vehicle_cmd_gate::VehicleCmdGate)(autoware_auto_vehicle_msgs::msg::TurnIndicatorsCommand)\n", "\n", "\n", "\n", "\n", "140692796654064:out->94576498861408:in\n", "\n", "\n", "\n", "\n", "\n", "94576498895104\n", "\n", "\n", "void(vehicle_cmd_gate::VehicleCmdGate)(autoware_auto_vehicle_msgs::msg::HazardLightsCommand)\n", "\n", "\n", "\n", "\n", "140692796654064:out->94576498895104:in\n", "\n", "\n", "\n", "\n", "\n", "94814122910048\n", "\n", "\n", "void(message_filters::Subscriber<autoware_auto_planning_msgs::msg::Path>subscribe(rclcpp::Node,std::__cxx11::basic_string<char,std::char_traits<char>,>,rmw_qos_profile_t))(autoware_auto_planning_msgs::msg::Path)\n", "\n", "\n", "\n", "\n", "140692796654064:out->94814122910048:in\n", "\n", "\n", "\n", "\n", "\n", "140692796654064:out->94814122910048:in\n", "\n", "\n", "\n", "\n", "\n", "140692795557280\n", "\n", "\n", "void(behavior_path_planner::BehaviorPathPlannerNode)(autoware_auto_mapping_msgs::msg::HADMapBin)\n", "\n", "\n", "\n", "\n", "140692794565680\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "140692795363744\n", "\n", "\n", "void(behavior_path_planner::BehaviorPathPlannerNode)(autoware_auto_perception_msgs::msg::PredictedObjects)\n", "\n", "\n", "\n", "\n", "140692795763248\n", "\n", "\n", "void(behavior_path_planner::SideShiftModule)(tier4_planning_msgs::msg::LateralOffset)\n", "\n", "\n", "\n", "\n", "140692795509248\n", "\n", "\n", "void(behavior_path_planner::BehaviorPathPlannerNode::BehaviorPathPlannerNode(rclcpp::NodeOptions))(tier4_planning_msgs::msg::Scenario)\n", "\n", "\n", "\n", "\n", "140692795432016\n", "\n", "\n", "void(behavior_path_planner::BehaviorPathPlannerNode)(nav_msgs::msg::OccupancyGrid)\n", "\n", "\n", "\n", "\n", "140692794799472\n", "\n", "\n", "void(tf2_ros::TransformListener)(tf2_msgs::msg::TFMessage,bool)\n", "\n", "\n", "\n", "\n", "140692794689680\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "140692129589536\n", "\n", "\n", "void(behavior_velocity_planner::BehaviorVelocityPlannerNode)(autoware_auto_mapping_msgs::msg::HADMapBin)\n", "\n", "\n", "\n", "\n", "140692129096880\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "140692130158656\n", "\n", "\n", "void(behavior_velocity_planner::BehaviorVelocityPlannerNode)(tier4_v2x_msgs::msg::VirtualTrafficLightStateArray)\n", "\n", "\n", "\n", "\n", "140692129572128:out->93880764476416:in\n", "\n", "\n", "\n", "\n", "\n", "140692129572128:out->93880764524784:in\n", "\n", "\n", "\n", "\n", "\n", "140692129572128:out->93880764582032:in\n", "\n", "\n", "\n", "\n", "\n", "140692129572128:out->93880764274192:in\n", "\n", "\n", "\n", "\n", "\n", "140692129572128:out->93880764352528:in\n", "\n", "\n", "\n", "\n", "\n", "140692129572128:out->93880764418992:in\n", "\n", "\n", "\n", "\n", "\n", "140446639757264\n", "\n", "\n", "void(ObstacleAvoidancePlanner)(autoware_auto_planning_msgs::msg::Path)\n", "\n", "\n", "\n", "\n", "140692129572128:out->140446639757264:in\n", "\n", "\n", "\n", "\n", "\n", "93869485936992\n", "\n", "\n", "void(autoware_api::AutowareIvAdapter)(tier4_planning_msgs::msg::StopReasonArray)\n", "\n", "\n", "\n", "\n", "140692129572128:out->93869485936992:in\n", "\n", "\n", "\n", "\n", "\n", "93869486003728\n", "\n", "\n", "void(autoware_api::AutowareIvAdapter)(tier4_v2x_msgs::msg::InfrastructureCommandArray)\n", "\n", "\n", "\n", "\n", "140692129572128:out->93869486003728:in\n", "\n", "\n", "\n", "\n", "\n", "94814122879664\n", "\n", "\n", "void(rviz_common::RosTopicDisplay<visualization_msgs::msg::MarkerArray>subscribe())(visualization_msgs::msg::MarkerArray)\n", "\n", "\n", "\n", "\n", "140692129572128:out->94814122879664:in\n", "\n", "\n", "\n", "\n", "\n", "94814120037568\n", "\n", "\n", "void(rviz_common::RosTopicDisplay<visualization_msgs::msg::MarkerArray>subscribe())(visualization_msgs::msg::MarkerArray)\n", "\n", "\n", "\n", "\n", "140692129572128:out->94814120037568:in\n", "\n", "\n", "\n", "\n", "\n", "94814130453312\n", "\n", "\n", "void(rviz_common::RosTopicDisplay<visualization_msgs::msg::MarkerArray>subscribe())(visualization_msgs::msg::MarkerArray)\n", "\n", "\n", "\n", "\n", "140692129572128:out->94814130453312:in\n", "\n", "\n", "\n", "\n", "\n", "94814119238352\n", "\n", "\n", "void(rviz_common::RosTopicDisplay<visualization_msgs::msg::MarkerArray>subscribe())(visualization_msgs::msg::MarkerArray)\n", "\n", "\n", "\n", "\n", "140692129572128:out->94814119238352:in\n", "\n", "\n", "\n", "\n", "\n", "94814120058240\n", "\n", "\n", "void(rviz_common::RosTopicDisplay<visualization_msgs::msg::MarkerArray>subscribe())(visualization_msgs::msg::MarkerArray)\n", "\n", "\n", "\n", "\n", "140692129572128:out->94814120058240:in\n", "\n", "\n", "\n", "\n", "\n", "94814119297520\n", "\n", "\n", "void(rviz_common::RosTopicDisplay<visualization_msgs::msg::MarkerArray>subscribe())(visualization_msgs::msg::MarkerArray)\n", "\n", "\n", "\n", "\n", "140692129572128:out->94814119297520:in\n", "\n", "\n", "\n", "\n", "\n", "94814120078144\n", "\n", "\n", "void(rviz_common::RosTopicDisplay<visualization_msgs::msg::MarkerArray>subscribe())(visualization_msgs::msg::MarkerArray)\n", "\n", "\n", "\n", "\n", "140692129572128:out->94814120078144:in\n", "\n", "\n", "\n", "\n", "\n", "94814119341072\n", "\n", "\n", "void(rviz_common::RosTopicDisplay<visualization_msgs::msg::MarkerArray>subscribe())(visualization_msgs::msg::MarkerArray)\n", "\n", "\n", "\n", "\n", "140692129572128:out->94814119341072:in\n", "\n", "\n", "\n", "\n", "\n", "94814119274800\n", "\n", "\n", "void(rviz_common::RosTopicDisplay<visualization_msgs::msg::MarkerArray>subscribe())(visualization_msgs::msg::MarkerArray)\n", "\n", "\n", "\n", "\n", "140692129572128:out->94814119274800:in\n", "\n", "\n", "\n", "\n", "\n", "94814119320064\n", "\n", "\n", "void(rviz_common::RosTopicDisplay<visualization_msgs::msg::MarkerArray>subscribe())(visualization_msgs::msg::MarkerArray)\n", "\n", "\n", "\n", "\n", "140692129572128:out->94814119320064:in\n", "\n", "\n", "\n", "\n", "\n", "140692130161344\n", "\n", "\n", "void(behavior_velocity_planner::BehaviorVelocityPlannerNode)(nav_msgs::msg::OccupancyGrid)\n", "\n", "\n", "\n", "\n", "140692129854128\n", "\n", "\n", "void(behavior_velocity_planner::BehaviorVelocityPlannerNode)(tier4_api_msgs::msg::IntersectionStatus)\n", "\n", "\n", "\n", "\n", "140692130091584\n", "\n", "\n", "void(behavior_velocity_planner::BehaviorVelocityPlannerNode)(tier4_planning_msgs::msg::VelocityLimit)\n", "\n", "\n", "\n", "\n", "140692129592672\n", "\n", "\n", "void(behavior_velocity_planner::BehaviorVelocityPlannerNode)(sensor_msgs::msg::PointCloud2)\n", "\n", "\n", "\n", "\n", "140692129578592\n", "\n", "\n", "void(behavior_velocity_planner::BehaviorVelocityPlannerNode)(autoware_auto_perception_msgs::msg::PredictedObjects)\n", "\n", "\n", "\n", "\n", "140692129834848\n", "\n", "\n", "void(behavior_velocity_planner::BehaviorVelocityPlannerNode)(tier4_api_msgs::msg::CrosswalkStatus)\n", "\n", "\n", "\n", "\n", "140692130119856\n", "\n", "\n", "void(behavior_velocity_planner::BehaviorVelocityPlannerNode)(autoware_auto_perception_msgs::msg::TrafficSignalArray)\n", "\n", "\n", "\n", "\n", "140692129524656\n", "\n", "\n", "void(tf2_ros::TransformListener)(tf2_msgs::msg::TFMessage,bool)\n", "\n", "\n", "\n", "\n", "140692129416048\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "93988891462656\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "140446840903408\n", "\n", "\n", "void(motion_planning::ObstacleStopPlannerNode)(autoware_auto_planning_msgs::msg::Trajectory)\n", "\n", "\n", "\n", "\n", "140446639757264:out->140446840903408:in\n", "\n", "\n", "\n", "\n", "\n", "94814120415824\n", "\n", "\n", "void(rviz_common::RosTopicDisplay<visualization_msgs::msg::MarkerArray>subscribe())(visualization_msgs::msg::MarkerArray)\n", "\n", "\n", "\n", "\n", "140446639757264:out->94814120415824:in\n", "\n", "\n", "\n", "\n", "\n", "140446639052784\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "140446639979536\n", "\n", "\n", "void(ObstacleAvoidancePlanner)(autoware_auto_perception_msgs::msg::PredictedObjects)\n", "\n", "\n", "\n", "\n", "140446639991120\n", "\n", "\n", "void(ObstacleAvoidancePlanner)(tier4_planning_msgs::msg::EnableAvoidance)\n", "\n", "\n", "\n", "\n", "140446639290704\n", "\n", "\n", "void(tf2_ros::TransformListener)(tf2_msgs::msg::TFMessage,bool)\n", "\n", "\n", "\n", "\n", "140446639171744\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "140446840204016\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "140446841061024\n", "\n", "\n", "void(motion_planning::ObstacleStopPlannerNode)(tier4_planning_msgs::msg::ExpandStopRange)\n", "\n", "\n", "\n", "\n", "140446840814400\n", "\n", "\n", "void(motion_planning::ObstacleStopPlannerNode)(sensor_msgs::msg::PointCloud2)\n", "\n", "\n", "\n", "\n", "94413876370576\n", "\n", "\n", "void(ScenarioSelectorNode)(autoware_auto_planning_msgs::msg::Trajectory)\n", "\n", "\n", "\n", "\n", "140446840903408:out->94413876370576:in\n", "\n", "\n", "\n", "\n", "\n", "140446840903408:out->93869485936992:in\n", "\n", "\n", "\n", "\n", "\n", "94814120374816\n", "\n", "\n", "void(rviz_common::RosTopicDisplay<visualization_msgs::msg::MarkerArray>subscribe())(visualization_msgs::msg::MarkerArray)\n", "\n", "\n", "\n", "\n", "140446840903408:out->94814120374816:in\n", "\n", "\n", "\n", "\n", "\n", "140446840925520\n", "\n", "\n", "void(motion_planning::ObstacleStopPlannerNode)(autoware_auto_perception_msgs::msg::PredictedObjects)\n", "\n", "\n", "\n", "\n", "140446840415264\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "140446840516048\n", "\n", "\n", "void(tf2_ros::TransformListener)(tf2_msgs::msg::TFMessage,bool)\n", "\n", "\n", "\n", "\n", "140447041365616\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "140447041703904\n", "\n", "\n", "void(surround_obstacle_checker::SurroundObstacleCheckerNode)(sensor_msgs::msg::PointCloud2)\n", "\n", "\n", "\n", "\n", "140447041837888\n", "\n", "\n", "void(surround_obstacle_checker::SurroundObstacleCheckerNode)(autoware_auto_perception_msgs::msg::PredictedObjects)\n", "\n", "\n", "\n", "\n", "140447041805312\n", "\n", "\n", "void(surround_obstacle_checker::SurroundObstacleCheckerNode)()\n", "\n", "\n", "\n", "\n", "140447041805312:out->93869485936992:in\n", "\n", "\n", "\n", "\n", "\n", "94814120396576\n", "\n", "\n", "void(rviz_common::RosTopicDisplay<visualization_msgs::msg::MarkerArray>subscribe())(visualization_msgs::msg::MarkerArray)\n", "\n", "\n", "\n", "\n", "140447041805312:out->94814120396576:in\n", "\n", "\n", "\n", "\n", "\n", "140447041695440\n", "\n", "\n", "void(tf2_ros::TransformListener)(tf2_msgs::msg::TFMessage,bool)\n", "\n", "\n", "\n", "\n", "140447041585328\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "94413876415536\n", "\n", "\n", "void(ScenarioSelectorNode)(autoware_auto_mapping_msgs::msg::HADMapBin)\n", "\n", "\n", "\n", "\n", "94413876204352\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "94413876660304\n", "\n", "\n", "void(ScenarioSelectorNode)(std_msgs::msg::Bool)\n", "\n", "\n", "\n", "\n", "94413876677760\n", "\n", "\n", "void(ScenarioSelectorNode)()\n", "\n", "\n", "\n", "\n", "94413876677760:out->140692795509248:in\n", "\n", "\n", "\n", "\n", "\n", "94087585819968\n", "\n", "\n", "void(CostmapGenerator)(tier4_planning_msgs::msg::Scenario)\n", "\n", "\n", "\n", "\n", "94413876677760:out->94087585819968:in\n", "\n", "\n", "\n", "\n", "\n", "94087589189536\n", "\n", "\n", "void(freespace_planner::FreespacePlannerNode)(tier4_planning_msgs::msg::Scenario)\n", "\n", "\n", "\n", "\n", "94413876677760:out->94087589189536:in\n", "\n", "\n", "\n", "\n", "\n", "94413876379856\n", "\n", "\n", "void(ScenarioSelectorNode)(autoware_auto_planning_msgs::msg::Trajectory)\n", "\n", "\n", "\n", "\n", "94720404083200\n", "\n", "\n", "void(motion_velocity_smoother::MotionVelocitySmootherNode)(autoware_auto_planning_msgs::msg::Trajectory)\n", "\n", "\n", "\n", "\n", "94413876370576:out->94720404083200:in\n", "\n", "\n", "\n", "\n", "\n", "94256397172496\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "94256397269888\n", "\n", "\n", "void(ExternalVelocityLimitSelectorNode)(tier4_planning_msgs::msg::VelocityLimitClearCommand)\n", "\n", "\n", "\n", "\n", "94256397148208\n", "\n", "\n", "void(ExternalVelocityLimitSelectorNode)(tier4_planning_msgs::msg::VelocityLimit)\n", "\n", "\n", "\n", "\n", "94256397239712\n", "\n", "\n", "void(ExternalVelocityLimitSelectorNode)(tier4_planning_msgs::msg::VelocityLimit)\n", "\n", "\n", "\n", "\n", "94413876344720\n", "\n", "\n", "void(tf2_ros::TransformListener)(tf2_msgs::msg::TFMessage,bool)\n", "\n", "\n", "\n", "\n", "94413876258976\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "94087579105776\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "94087585716976\n", "\n", "\n", "void(CostmapGenerator)(autoware_auto_perception_msgs::msg::PredictedObjects)\n", "\n", "\n", "\n", "\n", "94087585429808\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "94087585727200\n", "\n", "\n", "void(CostmapGenerator)()\n", "\n", "\n", "\n", "\n", "94087585727248\n", "\n", "\n", "void(CostmapGenerator)(sensor_msgs::msg::PointCloud2)\n", "\n", "\n", "\n", "\n", "94087585818592\n", "\n", "\n", "void(CostmapGenerator)(autoware_auto_mapping_msgs::msg::HADMapBin)\n", "\n", "\n", "\n", "\n", "94087585665424\n", "\n", "\n", "void(tf2_ros::TransformListener)(tf2_msgs::msg::TFMessage,bool)\n", "\n", "\n", "\n", "\n", "94087585474992\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "94087586531776\n", "\n", "\n", "void(freespace_planner::FreespacePlannerNode)(nav_msgs::msg::OccupancyGrid)\n", "\n", "\n", "\n", "\n", "94087586345680\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "94087586578016:out->94413876660304:in\n", "\n", "\n", "\n", "\n", "\n", "94087589591040\n", "\n", "\n", "void(freespace_planner::FreespacePlannerNode)()\n", "\n", "\n", "\n", "\n", "94087589603696\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "94087589717632\n", "\n", "\n", "void(tf2_ros::TransformListener)(tf2_msgs::msg::TFMessage,bool)\n", "\n", "\n", "\n", "\n", "94720404185952\n", "\n", "\n", "void(motion_velocity_smoother::MotionVelocitySmootherNode)(tier4_planning_msgs::msg::VelocityLimit)\n", "\n", "\n", "\n", "\n", "94720403648544\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "94720404083200:out->94598985473760:in\n", "\n", "\n", "\n", "\n", "\n", "94425371056704\n", "\n", "\n", "void(planning_diagnostics::PlanningErrorMonitorNode)(autoware_auto_planning_msgs::msg::Trajectory)\n", "\n", "\n", "\n", "\n", "94720404083200:out->94425371056704:in\n", "\n", "\n", "\n", "\n", "\n", "94576495289968\n", "\n", "\n", "void(autoware::motion::control::trajectory_follower_nodes::Controller)(autoware_auto_planning_msgs::msg::Trajectory)\n", "\n", "\n", "\n", "\n", "94720404083200:out->94576495289968:in\n", "\n", "\n", "\n", "\n", "\n", "94576497202176\n", "\n", "\n", "void(lane_departure_checker::LaneDepartureCheckerNode)(autoware_auto_planning_msgs::msg::Trajectory)\n", "\n", "\n", "\n", "\n", "94720404083200:out->94576497202176:in\n", "\n", "\n", "\n", "\n", "\n", "94576499520064\n", "\n", "\n", "void(operation_mode_transition_manager::OperationModeTransitionManager::OperationModeTransitionManager(rclcpp::NodeOptions))(autoware_auto_planning_msgs::msg::Trajectory)\n", "\n", "\n", "\n", "\n", "94720404083200:out->94576499520064:in\n", "\n", "\n", "\n", "\n", "\n", "93869486331440\n", "\n", "\n", "void(autoware_api::AutowareIvAdapter)(autoware_auto_planning_msgs::msg::Trajectory)\n", "\n", "\n", "\n", "\n", "94720404083200:out->93869486331440:in\n", "\n", "\n", "\n", "\n", "\n", "140553811837616\n", "\n", "\n", "void(internal_api::IVMsgs)(autoware_auto_planning_msgs::msg::Trajectory)\n", "\n", "\n", "\n", "\n", "94720404083200:out->140553811837616:in\n", "\n", "\n", "\n", "\n", "\n", "94720403626352\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "94720403791152\n", "\n", "\n", "void(tf2_ros::TransformListener)(tf2_msgs::msg::TFMessage,bool)\n", "\n", "\n", "\n", "\n", "94425370983200\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "94425371053168\n", "\n", "\n", "void(diagnostic_updater::Updater)()\n", "\n", "\n", "\n", "\n", "94425371056560\n", "\n", "\n", "void(planning_diagnostics::PlanningErrorMonitorNode)()\n", "\n", "\n", "\n", "\n", "94039638749680\n", "\n", "\n", "void(diagnostic_aggregator::Aggregator)(diagnostic_msgs::msg::DiagnosticArray)\n", "\n", "\n", "\n", "\n", "94039638350896\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "94039639095760\n", "\n", "\n", "void(diagnostic_aggregator::Aggregator)()\n", "\n", "\n", "\n", "\n", "94327573041584\n", "\n", "\n", "void(robot_state_publisher::RobotStatePublisher)(sensor_msgs::msg::JointState)\n", "\n", "\n", "\n", "\n", "94327572549072\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "94576493948208\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "94576495295680\n", "\n", "\n", "void(autoware::motion::control::trajectory_follower_nodes::Controller)()\n", "\n", "\n", "\n", "\n", "94576497239104\n", "\n", "\n", "void(lane_departure_checker::LaneDepartureCheckerNode)(autoware_auto_planning_msgs::msg::Trajectory)\n", "\n", "\n", "\n", "\n", "94576495295680:out->94576497239104:in\n", "\n", "\n", "\n", "\n", "\n", "94576498299360\n", "\n", "\n", "void(ShiftDecider)(autoware_auto_control_msgs::msg::AckermannControlCommand)\n", "\n", "\n", "\n", "\n", "94576495295680:out->94576498299360:in\n", "\n", "\n", "\n", "\n", "\n", "94576498859152\n", "\n", "\n", "void(vehicle_cmd_gate::VehicleCmdGate)(autoware_auto_control_msgs::msg::AckermannControlCommand)\n", "\n", "\n", "\n", "\n", "94576495295680:out->94576498859152:in\n", "\n", "\n", "\n", "\n", "\n", "94576494526080\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "94576497107744\n", "\n", "\n", "void(lane_departure_checker::LaneDepartureCheckerNode)(autoware_auto_mapping_msgs::msg::HADMapBin)\n", "\n", "\n", "\n", "\n", "94576497238576\n", "\n", "\n", "void(lane_departure_checker::LaneDepartureCheckerNode)()\n", "\n", "\n", "\n", "\n", "94576496990704\n", "\n", "\n", "void(diagnostic_updater::Updater)()\n", "\n", "\n", "\n", "\n", "94576496745488\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "94576494886864\n", "\n", "\n", "void(tf2_ros::TransformListener)(tf2_msgs::msg::TFMessage,bool)\n", "\n", "\n", "\n", "\n", "94576494607808\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "94576495103040\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "94576495189744\n", "\n", "\n", "void(tf2_ros::TransformListener)(tf2_msgs::msg::TFMessage,bool)\n", "\n", "\n", "\n", "\n", "94576495884224\n", "\n", "\n", "void(ExternalCmdSelector)(tier4_external_api_msgs::msg::ControlCommandStamped)\n", "\n", "\n", "\n", "\n", "94576495532496\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "94576495756880\n", "\n", "\n", "void(ExternalCmdSelector)(tier4_external_api_msgs::msg::ControlCommandStamped)\n", "\n", "\n", "\n", "\n", "94576495871472\n", "\n", "\n", "void(ExternalCmdSelector)(tier4_external_api_msgs::msg::Heartbeat)\n", "\n", "\n", "\n", "\n", "94576495834752\n", "\n", "\n", "void(ExternalCmdSelector)(tier4_external_api_msgs::msg::TurnSignalStamped)\n", "\n", "\n", "\n", "\n", "94576495903232\n", "\n", "\n", "void(ExternalCmdSelector)(tier4_external_api_msgs::msg::TurnSignalStamped)\n", "\n", "\n", "\n", "\n", "94576495919520\n", "\n", "\n", "void(ExternalCmdSelector)()\n", "\n", "\n", "\n", "\n", "140553946033728\n", "\n", "\n", "void(internal_api::Operator)(tier4_control_msgs::msg::ExternalCommandSelectorMode)\n", "\n", "\n", "\n", "\n", "94576495919520:out->140553946033728:in\n", "\n", "\n", "\n", "\n", "\n", "94576495932048\n", "\n", "\n", "void(ExternalCmdSelector)(tier4_external_api_msgs::msg::Heartbeat)\n", "\n", "\n", "\n", "\n", "94576495900000\n", "\n", "\n", "void(ExternalCmdSelector)(tier4_external_api_msgs::msg::GearShiftStamped)\n", "\n", "\n", "\n", "\n", "94576495728896\n", "\n", "\n", "void(diagnostic_updater::Updater)()\n", "\n", "\n", "\n", "\n", "94576495838080\n", "\n", "\n", "void(ExternalCmdSelector)(tier4_external_api_msgs::msg::GearShiftStamped)\n", "\n", "\n", "\n", "\n", "94576496144208\n", "\n", "\n", "void(diagnostic_updater::Updater)()\n", "\n", "\n", "\n", "\n", "94576496345792\n", "\n", "\n", "void(external_cmd_converter::ExternalCmdConverterNode)(tier4_external_api_msgs::msg::ControlCommandStamped)\n", "\n", "\n", "\n", "\n", "94576496431376\n", "\n", "\n", "void(external_cmd_converter::ExternalCmdConverterNode)()\n", "\n", "\n", "\n", "\n", "94576496349616\n", "\n", "\n", "void(external_cmd_converter::ExternalCmdConverterNode)(autoware_auto_vehicle_msgs::msg::GearCommand)\n", "\n", "\n", "\n", "\n", "94576496418320\n", "\n", "\n", "void(external_cmd_converter::ExternalCmdConverterNode)(tier4_control_msgs::msg::GateMode)\n", "\n", "\n", "\n", "\n", "94576496425728\n", "\n", "\n", "void(external_cmd_converter::ExternalCmdConverterNode)(tier4_external_api_msgs::msg::Heartbeat)\n", "\n", "\n", "\n", "\n", "94576494160208\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "94576496859152\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "94576496961728\n", "\n", "\n", "void(tf2_ros::TransformListener)(tf2_msgs::msg::TFMessage,bool)\n", "\n", "\n", "\n", "\n", "94576498299312\n", "\n", "\n", "void(ShiftDecider)()\n", "\n", "\n", "\n", "\n", "94576498903856\n", "\n", "\n", "void(vehicle_cmd_gate::VehicleCmdGate)(autoware_auto_vehicle_msgs::msg::GearCommand)\n", "\n", "\n", "\n", "\n", "94576498299312:out->94576498903856:in\n", "\n", "\n", "\n", "\n", "\n", "94576497593920\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "94576498951728\n", "\n", "\n", "void(vehicle_cmd_gate::VehicleCmdGate)(autoware_auto_vehicle_msgs::msg::HazardLightsCommand)\n", "\n", "\n", "\n", "\n", "94576498833056\n", "\n", "\n", "void(vehicle_cmd_gate::VehicleCmdGate)(autoware_auto_vehicle_msgs::msg::Engage)\n", "\n", "\n", "\n", "\n", "94576498802000\n", "\n", "\n", "void(vehicle_cmd_gate::VehicleCmdGate)(tier4_external_api_msgs::msg::Heartbeat)\n", "\n", "\n", "\n", "\n", "94576498537280\n", "\n", "\n", "void(diagnostic_updater::Updater)()\n", "\n", "\n", "\n", "\n", "94576498943952\n", "\n", "\n", "void(vehicle_cmd_gate::VehicleCmdGate)(autoware_auto_vehicle_msgs::msg::TurnIndicatorsCommand)\n", "\n", "\n", "\n", "\n", "94576498961136\n", "\n", "\n", "void(vehicle_cmd_gate::VehicleCmdGate)(autoware_auto_vehicle_msgs::msg::GearCommand)\n", "\n", "\n", "\n", "\n", "94576498523952\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "94576498847712\n", "\n", "\n", "void(vehicle_cmd_gate::VehicleCmdGate::VehicleCmdGate(rclcpp::NodeOptions))(tier4_system_msgs::msg::OperationMode)\n", "\n", "\n", "\n", "\n", "94576498859152:out->94598984774544:in\n", "\n", "\n", "\n", "\n", "\n", "94576498859152:out->94598984774544:in\n", "\n", "\n", "\n", "\n", "\n", "94576498859152:out->94743997876288:in\n", "\n", "\n", "\n", "\n", "\n", "94576499606096\n", "\n", "\n", "void(operation_mode_transition_manager::OperationModeTransitionManager::OperationModeTransitionManager(rclcpp::NodeOptions))(autoware_auto_control_msgs::msg::AckermannControlCommand)\n", "\n", "\n", "\n", "\n", "94576498859152:out->94576499606096:in\n", "\n", "\n", "\n", "\n", "\n", "93869485435456\n", "\n", "\n", "void(autoware_api::AutowareIvAdapter)(autoware_auto_control_msgs::msg::AckermannControlCommand)\n", "\n", "\n", "\n", "\n", "94576498859152:out->93869485435456:in\n", "\n", "\n", "\n", "\n", "\n", "139945805553632\n", "\n", "\n", "void(external_api::VehicleStatus::VehicleStatus(rclcpp::NodeOptions))(autoware_auto_control_msgs::msg::AckermannControlCommand)\n", "\n", "\n", "\n", "\n", "94576498859152:out->139945805553632:in\n", "\n", "\n", "\n", "\n", "\n", "94576498920864\n", "\n", "\n", "void(vehicle_cmd_gate::VehicleCmdGate)(autoware_auto_control_msgs::msg::AckermannControlCommand)\n", "\n", "\n", "\n", "\n", "94576498825568\n", "\n", "\n", "void(vehicle_cmd_gate::VehicleCmdGate)(tier4_control_msgs::msg::GateMode)\n", "\n", "\n", "\n", "\n", "94576499133328\n", "\n", "\n", "void(vehicle_cmd_gate::VehicleCmdGate)()\n", "\n", "\n", "\n", "\n", "94576499133328:out->94598985354672:in\n", "\n", "\n", "\n", "\n", "\n", "94576499133328:out->94598985518880:in\n", "\n", "\n", "\n", "\n", "\n", "94576499133328:out->93905902266960:in\n", "\n", "\n", "\n", "\n", "\n", "94576499133328:out->94576496418320:in\n", "\n", "\n", "\n", "\n", "\n", "93869485892320\n", "\n", "\n", "void(autoware_api::AutowareIvAdapter)(tier4_control_msgs::msg::GateMode)\n", "\n", "\n", "\n", "\n", "94576499133328:out->93869485892320:in\n", "\n", "\n", "\n", "\n", "\n", "140553946042864\n", "\n", "\n", "void(internal_api::Operator)(tier4_control_msgs::msg::GateMode)\n", "\n", "\n", "\n", "\n", "94576499133328:out->140553946042864:in\n", "\n", "\n", "\n", "\n", "\n", "94576498678672\n", "\n", "\n", "void(vehicle_cmd_gate::VehicleCmdGate)()\n", "\n", "\n", "\n", "\n", "94576498678672:out->93905902266960:in\n", "\n", "\n", "\n", "\n", "\n", "94576498678672:out->94834649665264:in\n", "\n", "\n", "\n", "\n", "\n", "94576498678672:out->94576496418320:in\n", "\n", "\n", "\n", "\n", "\n", "94576499878544\n", "\n", "\n", "void(operation_mode_transition_manager::OperationModeTransitionManager::OperationModeTransitionManager(rclcpp::NodeOptions))(tier4_system_msgs::msg::OperationMode)\n", "\n", "\n", "\n", "\n", "94576498678672:out->94576499878544:in\n", "\n", "\n", "\n", "\n", "\n", "94576498678672:out->93869485892320:in\n", "\n", "\n", "\n", "\n", "\n", "139946610756976\n", "\n", "\n", "void(external_api::Emergency)(tier4_external_api_msgs::msg::Emergency)\n", "\n", "\n", "\n", "\n", "94576498678672:out->139946610756976:in\n", "\n", "\n", "\n", "\n", "\n", "94083753966256\n", "\n", "\n", "void(external_api::Engage)(autoware_auto_vehicle_msgs::msg::Engage)\n", "\n", "\n", "\n", "\n", "94576498678672:out->94083753966256:in\n", "\n", "\n", "\n", "\n", "\n", "94576498678672:out->140553946042864:in\n", "\n", "\n", "\n", "\n", "\n", "94576499472976\n", "\n", "\n", "void(operation_mode_transition_manager::OperationModeTransitionManager)()\n", "\n", "\n", "\n", "\n", "94576499472976:out->94576498847712:in\n", "\n", "\n", "\n", "\n", "\n", "94576499294064\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "94439920616960\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "93869485780560\n", "\n", "\n", "void(autoware_api::AutowareIvAdapter)(sensor_msgs::msg::NavSatFix)\n", "\n", "\n", "\n", "\n", "93869484596192\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "93869486324832\n", "\n", "\n", "void(autoware_api::AutowareIvAdapter)(tier4_api_msgs::msg::StopCommand)\n", "\n", "\n", "\n", "\n", "93869486152880\n", "\n", "\n", "void(autoware_api::AutowareIvAdapter)(autoware_auto_planning_msgs::msg::Path)\n", "\n", "\n", "\n", "\n", "93869485796352\n", "\n", "\n", "void(autoware_api::AutowareIvAdapter)(tier4_system_msgs::msg::AutowareState)\n", "\n", "\n", "\n", "\n", "93869485582576\n", "\n", "\n", "void(autoware_api::AutowareIvAdapter)(tier4_vehicle_msgs::msg::BatteryStatus)\n", "\n", "\n", "\n", "\n", "93869486064384\n", "\n", "\n", "void(autoware_api::AutowareIvAdapter)(tier4_v2x_msgs::msg::VirtualTrafficLightStateArray)\n", "\n", "\n", "\n", "\n", "93869486140992\n", "\n", "\n", "void(autoware_api::AutowareIvAdapter)(tier4_planning_msgs::msg::LaneChangeStatus)\n", "\n", "\n", "\n", "\n", "93869486331392\n", "\n", "\n", "void(autoware_api::AutowareIvAdapter)()\n", "\n", "\n", "\n", "\n", "93869486267840\n", "\n", "\n", "void(autoware_api::AutowareIvAdapter)(autoware_auto_planning_msgs::msg::Trajectory)\n", "\n", "\n", "\n", "\n", "93869485482208\n", "\n", "\n", "void(autoware_api::AutowareIvAdapter)(autoware_auto_vehicle_msgs::msg::HazardLightsReport)\n", "\n", "\n", "\n", "\n", "93869486148304\n", "\n", "\n", "void(autoware_api::AutowareIvAdapter)(tier4_planning_msgs::msg::IsAvoidancePossible)\n", "\n", "\n", "\n", "\n", "93869486326384\n", "\n", "\n", "void(autoware_api::AutowareIvAdapter)(tier4_planning_msgs::msg::VelocityLimit)\n", "\n", "\n", "\n", "\n", "93869486083776\n", "\n", "\n", "void(autoware_api::AutowareIvAdapter)(tier4_planning_msgs::msg::LaneChangeStatus)\n", "\n", "\n", "\n", "\n", "93869486266400\n", "\n", "\n", "void(autoware_api::AutowareIvAdapter)(tier4_api_msgs::msg::VelocityLimit)\n", "\n", "\n", "\n", "\n", "93869486082144\n", "\n", "\n", "void(autoware_api::AutowareIvAdapter)(diagnostic_msgs::msg::DiagnosticArray)\n", "\n", "\n", "\n", "\n", "93869484747520\n", "\n", "\n", "void(tf2_ros::TransformListener)(tf2_msgs::msg::TFMessage,bool)\n", "\n", "\n", "\n", "\n", "93869484650448\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "94439921017840\n", "\n", "\n", "void(topic_tools::ToolBaseNode)()\n", "\n", "\n", "\n", "\n", "94439921099376\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "94439921355824\n", "\n", "\n", "void(topic_tools::ToolBaseNode)()\n", "\n", "\n", "\n", "\n", "94439921316960\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "94439921588096\n", "\n", "\n", "void(topic_tools::ToolBaseNode)()\n", "\n", "\n", "\n", "\n", "94439921551152\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "94439921851824\n", "\n", "\n", "void(topic_tools::ToolBaseNode)()\n", "\n", "\n", "\n", "\n", "94439921850752\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "94439922043824\n", "\n", "\n", "void(topic_tools::ToolBaseNode)()\n", "\n", "\n", "\n", "\n", "94439922099872\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "94439922281104\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "94439922353392\n", "\n", "\n", "void(topic_tools::ToolBaseNode)()\n", "\n", "\n", "\n", "\n", "94439922474144\n", "\n", "\n", "void(topic_tools::ToolBaseNode)()\n", "\n", "\n", "\n", "\n", "94439922627408\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "94439922947088\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "94439922811152\n", "\n", "\n", "void(topic_tools::ToolBaseNode)()\n", "\n", "\n", "\n", "\n", "94439923474608\n", "\n", "\n", "void(topic_tools::ToolBaseNode)()\n", "\n", "\n", "\n", "\n", "94439923417440\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "94439921499472\n", "\n", "\n", "void(topic_tools::ToolBaseNode)()\n", "\n", "\n", "\n", "\n", "94439923605328\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "94439923837328\n", "\n", "\n", "void(topic_tools::ToolBaseNode)()\n", "\n", "\n", "\n", "\n", "94439923909600\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "94439924183696\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "94439924232896\n", "\n", "\n", "void(topic_tools::ToolBaseNode)()\n", "\n", "\n", "\n", "\n", "94439924372160\n", "\n", "\n", "void(topic_tools::ToolBaseNode)()\n", "\n", "\n", "\n", "\n", "94439924450208\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "94439924789872\n", "\n", "\n", "void(topic_tools::ToolBaseNode)()\n", "\n", "\n", "\n", "\n", "94439924725200\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "94439923059376\n", "\n", "\n", "void(topic_tools::ToolBaseNode)()\n", "\n", "\n", "\n", "\n", "94439924980944\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "94439925213360\n", "\n", "\n", "void(topic_tools::ToolBaseNode)()\n", "\n", "\n", "\n", "\n", "94439925258224\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "94439925615360\n", "\n", "\n", "void(topic_tools::ToolBaseNode)()\n", "\n", "\n", "\n", "\n", "94439925599232\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "94439925598832\n", "\n", "\n", "void(topic_tools::ToolBaseNode)()\n", "\n", "\n", "\n", "\n", "94439925871568\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "94439926226736\n", "\n", "\n", "void(topic_tools::ToolBaseNode)()\n", "\n", "\n", "\n", "\n", "94439926247904\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "94439926559584\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "94439923593296\n", "\n", "\n", "void(topic_tools::ToolBaseNode)()\n", "\n", "\n", "\n", "\n", "94439926842000\n", "\n", "\n", "void(topic_tools::ToolBaseNode)()\n", "\n", "\n", "\n", "\n", "94439926834496\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "94439926661168\n", "\n", "\n", "void(topic_tools::ToolBaseNode)()\n", "\n", "\n", "\n", "\n", "94439927132912\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "94083753684496\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "139945939636544\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "139946409416624\n", "\n", "\n", "void(external_api::Start)(tier4_external_api_msgs::msg::Operator)\n", "\n", "\n", "\n", "\n", "139946409236656\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "139945536848304\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "139945536992080\n", "\n", "\n", "void(external_api::Diagnostics)()\n", "\n", "\n", "\n", "\n", "139945671206288\n", "\n", "\n", "void(external_api::Door)(tier4_api_msgs::msg::DoorStatus)\n", "\n", "\n", "\n", "\n", "139945671096864\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "139946610601728\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "94083753967344\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "139946275024480\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "139946744707168\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "139945268383952\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "139945268620944\n", "\n", "\n", "void(external_api::Map)(tier4_external_api_msgs::msg::MapHash)\n", "\n", "\n", "\n", "\n", "139946677712976\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "139946677936976\n", "\n", "\n", "void(external_api::Operator)(tier4_external_api_msgs::msg::Observer)\n", "\n", "\n", "\n", "\n", "139946677927472\n", "\n", "\n", "void(external_api::Operator)(tier4_external_api_msgs::msg::Operator)\n", "\n", "\n", "\n", "\n", "139946677927472:out->139946409416624:in\n", "\n", "\n", "\n", "\n", "\n", "139945939977696\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "139945671655152\n", "\n", "\n", "void(external_api::Route)(tier4_external_api_msgs::msg::Route)\n", "\n", "\n", "\n", "\n", "139945671403712\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "94083754080896\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "139945805521168\n", "\n", "\n", "void(external_api::VehicleStatus::VehicleStatus(rclcpp::NodeOptions))(autoware_auto_vehicle_msgs::msg::HazardLightsReport)\n", "\n", "\n", "\n", "\n", "94083754070160\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "139945805463408\n", "\n", "\n", "void(external_api::VehicleStatus)()\n", "\n", "\n", "\n", "\n", "94083754090800\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "139946409439072\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "94543437503904\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "94543437511936\n", "\n", "\n", "void(topic_tools::ToolBaseNode)()\n", "\n", "\n", "\n", "\n", "94100510054896\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "94259289992896\n", "\n", "\n", "void(topic_tools::ToolBaseNode)()\n", "\n", "\n", "\n", "\n", "94259289985056\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "93975133248048\n", "\n", "\n", "void(topic_tools::ToolBaseNode)()\n", "\n", "\n", "\n", "\n", "93975133240208\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "94503361561344\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "94503361569296\n", "\n", "\n", "void(topic_tools::ToolBaseNode)()\n", "\n", "\n", "\n", "\n", "140553006360080\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "140553811937536\n", "\n", "\n", "void(internal_api::IVMsgs)(autoware_auto_perception_msgs::msg::TrackedObjects)\n", "\n", "\n", "\n", "\n", "140553811550112\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "140553811654896:out->93869485796352:in\n", "\n", "\n", "\n", "\n", "\n", "140553945787440\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "140553946051680\n", "\n", "\n", "void(internal_api::Operator)()\n", "\n", "\n", "\n", "\n", "140553946051680:out->139946677936976:in\n", "\n", "\n", "\n", "\n", "\n", "140553946051680:out->139946677927472:in\n", "\n", "\n", "\n", "\n", "\n", "140554617170864:out->139945671655152:in\n", "\n", "\n", "\n", "\n", "\n", "140554616893648\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "140553744693616\n", "\n", "\n", "void(internal_api::Velocity)(tier4_planning_msgs::msg::VelocityLimit)\n", "\n", "\n", "\n", "\n", "140553744489232\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "94583258158560\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "94583258148672\n", "\n", "\n", "void(topic_tools::ToolBaseNode)()\n", "\n", "\n", "\n", "\n", "94009429795472\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "94009429893664\n", "\n", "\n", "void(diagnostic_updater::Updater)()\n", "\n", "\n", "\n", "\n", "94009429894960\n", "\n", "\n", "void(fault_injection::FaultInjectionNode)(tier4_simulation_msgs::msg::SimulationEvents)\n", "\n", "\n", "\n", "\n", "94492784842528\n", "\n", "\n", "void(MultiObjectTracker)(autoware_auto_perception_msgs::msg::DetectedObjects)\n", "\n", "\n", "\n", "\n", "94492784842528:out->140553811937536:in\n", "\n", "\n", "\n", "\n", "\n", "94614929338944\n", "\n", "\n", "void(map_based_prediction::MapBasedPredictionNode)(autoware_auto_perception_msgs::msg::TrackedObjects)\n", "\n", "\n", "\n", "\n", "94492784842528:out->94614929338944:in\n", "\n", "\n", "\n", "\n", "\n", "94492784448400\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "94492784820560\n", "\n", "\n", "void(tf2_ros::TransformListener)(tf2_msgs::msg::TFMessage,bool)\n", "\n", "\n", "\n", "\n", "94492784673024\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "94614929140832\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "94614929344880\n", "\n", "\n", "void(map_based_prediction::MapBasedPredictionNode)(autoware_auto_mapping_msgs::msg::HADMapBin)\n", "\n", "\n", "\n", "\n", "94614929338944:out->140692795363744:in\n", "\n", "\n", "\n", "\n", "\n", "94614929338944:out->140692129578592:in\n", "\n", "\n", "\n", "\n", "\n", "94614929338944:out->140446639979536:in\n", "\n", "\n", "\n", "\n", "\n", "94614929338944:out->140446840925520:in\n", "\n", "\n", "\n", "\n", "\n", "94614929338944:out->140447041837888:in\n", "\n", "\n", "\n", "\n", "\n", "94614929338944:out->94087585716976:in\n", "\n", "\n", "\n", "\n", "\n", "94614929303248\n", "\n", "\n", "void(tf2_ros::TransformListener)(tf2_msgs::msg::TFMessage,bool)\n", "\n", "\n", "\n", "\n", "94614929246448\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "94814130428912\n", "\n", "\n", "void(message_filters::Subscriber<geometry_msgs::msg::PoseArray>subscribe(rclcpp::Node,std::__cxx11::basic_string<char,std::char_traits<char>,>,rmw_qos_profile_t))(geometry_msgs::msg::PoseArray)\n", "\n", "\n", "\n", "\n", "94814123178288\n", "\n", "\n", "void(rviz_common::RosTopicDisplay<visualization_msgs::msg::MarkerArray>subscribe())(visualization_msgs::msg::MarkerArray)\n", "\n", "\n", "\n", "\n", "94814122667936\n", "\n", "\n", "void(rviz_common::RosTopicDisplay<std_msgs::msg::String>subscribe())(std_msgs::msg::String)\n", "\n", "\n", "\n", "\n", "94814100918640\n", "\n", "\n", "void(message_filters::Subscriber<sensor_msgs::msg::PointCloud2>subscribe(rclcpp::Node,std::__cxx11::basic_string<char,std::char_traits<char>,>,rmw_qos_profile_t))(sensor_msgs::msg::PointCloud2)\n", "\n", "\n", "\n", "\n", "94814120599056\n", "\n", "\n", "void(tier4_localization_rviz_plugin::InitialPoseButtonPanel)(geometry_msgs::msg::PoseWithCovarianceStamped)\n", "\n", "\n", "\n", "\n", "94814122599840\n", "\n", "\n", "void(rviz_plugins::MaxVelocityDisplay)(tier4_planning_msgs::msg::VelocityLimit)\n", "\n", "\n", "\n", "\n", "94814120100080\n", "\n", "\n", "void(rviz_common::RosTopicDisplay<visualization_msgs::msg::MarkerArray>subscribe())(visualization_msgs::msg::MarkerArray)\n", "\n", "\n", "\n", "\n", "94814120508896\n", "\n", "\n", "void(message_filters::Subscriber<geometry_msgs::msg::PoseArray>subscribe(rclcpp::Node,std::__cxx11::basic_string<char,std::char_traits<char>,>,rmw_qos_profile_t))(geometry_msgs::msg::PoseArray)\n", "\n", "\n", "\n", "\n", "94814123091072\n", "\n", "\n", "void(rviz_common::RosTopicDisplay<autoware_auto_perception_msgs::msg::DetectedObjects>subscribe())(autoware_auto_perception_msgs::msg::DetectedObjects)\n", "\n", "\n", "\n", "\n", "94814102309904\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "29261792\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "94814101330960\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "94814120350672\n", "\n", "\n", "void(rclcpp::TimeSource)(rcl_interfaces::msg::ParameterEvent)\n", "\n", "\n", "\n", "\n", "94814121031328\n", "\n", "\n", "void(tf2_ros::TransformListener)(tf2_msgs::msg::TFMessage,bool)\n", "\n", "\n", "\n", "\n" ], "text/plain": [ "" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "%%skip_if_false DFG_ENABLED\n", "%%skip_if_false DFG_PLOT\n", "\n", "from matching.subscriptions import sanitize\n", "from typing import Iterable, Sized\n", "from tracing_interop.tr_types import TrNode, TrCallbackObject, TrCallbackSymbol, TrSubscriptionObject\n", "\n", "#################################################\n", "# Plot DFG\n", "#################################################\n", "\n", "# Compare with: https://autowarefoundation.github.io/autoware-documentation/main/design/autoware-architecture/node-diagram/\n", "node_colors = {\n", " \"sensing\": {\"fill\": \"#e1d5e7\", \"stroke\": \"#9673a6\"},\n", " \"localization\": {\"fill\": \"#dae8fc\", \"stroke\": \"#6c8ebf\"},\n", " \"perception\": {\"fill\": \"#d5e8d4\", \"stroke\": \"#82b366\"},\n", " \"planning\": {\"fill\": \"#fff2cc\", \"stroke\": \"#d6b656\"},\n", " \"control\": {\"fill\": \"#ffe6cc\", \"stroke\": \"#d79b00\"},\n", " \"system\": {\"fill\": \"#f8cecc\", \"stroke\": \"#b85450\"},\n", " \"vehicle_interface\": {\"fill\": \"#b0e3e6\", \"stroke\": \"#0e8088\"},\n", " None: {\"fill\": \"#f5f5f5\", \"stroke\": \"#666666\"}\n", "}\n", "\n", "node_namespace_mapping = {\n", " 'perception': 'perception',\n", " 'sensing': 'sensing',\n", " 'planning': 'planning',\n", " 'control': 'control',\n", " 'awapi': None,\n", " 'autoware_api': None,\n", " 'map': None,\n", " 'system': 'system',\n", " 'localization': 'localization',\n", " 'robot_state_publisher': None,\n", " 'aggregator_node': None,\n", " 'pointcloud_container': 'sensing',\n", "}\n", "\n", "import graphviz as gv\n", "\n", "g = gv.Digraph('G', filename=\"latency_graph.gv\",\n", " node_attr={'shape': 'plain'},\n", " graph_attr={'pack': '1'})\n", "g.graph_attr['rankdir'] = 'LR'\n", "\n", "def plot_hierarchy(gv_parent, lg_node: lg.LGHierarchyLevel, **subgraph_kwargs):\n", " if lg_node.name == \"[NONE]\":\n", " return\n", "\n", " print(f\"{' ' * lg_node.full_name.count('/')}Processing {lg_node.name}: {len(lg_node.callbacks)}\")\n", " with gv_parent.subgraph(name=f\"cluster_{lg_node.full_name.replace('/', '__')}\", **subgraph_kwargs) as c:\n", " c.attr(label=lg_node.name)\n", " for cb in lg_node.callbacks:\n", " if isinstance(cb, lg.LGTrCallback):\n", " tr_cb = cb.cb\n", " try:\n", " sym = _tracing_context.callback_symbols.by_id.get(tr_cb.callback_object)\n", " pretty_sym = repr(sanitize(sym.symbol))\n", " except KeyError:\n", " pretty_sym = cb.name\n", " except TypeError:\n", " pretty_sym = cb.name\n", " else:\n", " pretty_sym = cb.name\n", "\n", " pretty_sym = pretty_sym.replace(\"&\", \"&\").replace(\"<\", \"<\").replace(\">\", \">\")\n", "\n", " c.node(cb.id(),\n", " f'<
{pretty_sym}
>')\n", "\n", " for ch in lg_node.children:\n", " plot_hierarchy(c, ch, **subgraph_kwargs)\n", "\n", "def plot_lg(graph: lg.LatencyGraph):\n", " for top_level_node in graph.top_node.children:\n", " colors = node_colors[node_namespace_mapping.get(top_level_node.name)]\n", " plot_hierarchy(g, top_level_node, graph_attr={'bgcolor': colors[\"fill\"], 'pencolor': colors[\"stroke\"]})\n", "\n", " for edge in graph.edges:\n", " g.edge(f\"{edge.start.id()}:out\", f\"{edge.end.id()}:in\")\n", "\n", "plot_lg(lat_graph)\n", "\n", "g.save(\"latency_graph.gv\")\n", "g.render(\"latency_graph.svg\")\n", "\n", "g" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "pycharm": { "name": "#%%\n" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "/control/external_cmd_converter, /awapi/awapi_relay_container, /awapi/awapi_awiv_adapter_node, /awapi/route_relay, /awapi/predict_object_relay, /awapi/nearest_traffic_signal_relay, /awapi/ready_module_relay, /awapi/force_available_relay, /awapi/running_modules_relay, /awapi/autoware_engage_relay, /awapi/vehicle_engage_relay, /awapi/put_route_relay, /awapi/put_goal_relay, /awapi/lane_change_approval_relay, /awapi/force_lane_change_relay, /awapi/external_approval_relay, /awapi/force_approval_relay, /awapi/obstacle_avoid_approval_relay, /awapi/traffic_signal_relay, /awapi/overwrite_traffic_signals_relay, /awapi/speed_exceeded_relay, /awapi/crosswalk_status_relay, /awapi/intersection_status_relay, /awapi/expand_stop_range_relay, /awapi/pose_initialization_request_relay\n", "/INPUT, /OUTPUT, /[NONE], /simulation/openscenario_visualizer, /simulation/simple_sensor_simulator, /simulation/openscenario_interpreter, /simulation/concealer, /system/system_monitor/system_monitor/system_monitor_container, /system/system_monitor/cpu_monitor, /system/system_monitor/hdd_monitor, /system/system_monitor/mem_monitor, /system/system_monitor/net_monitor, /system/system_monitor/ntp_monitor, /system/system_monitor/process_monitor, /system/system_monitor/gpu_monitor, /system/emergency_handler, /system/system_error_monitor, /system/ad_service_state_monitor, /map/map_container, /map/lanelet2_map_loader, /map/lanelet2_map_visualization, /map/pointcloud_map_loader, /map/vector_map_tf_generator, /planning/mission_planning/mission_planning_container, /planning/mission_planning/mission_planner, /planning/mission_planning/goal_pose_visualizer, /planning/scenario_planning/lane_driving/behavior_planning/rtc_auto_approver, /planning/scenario_planning/lane_driving/behavior_planning/behavior_planning_container, /planning/scenario_planning/lane_driving/behavior_planning/behavior_path_planner, /planning/scenario_planning/lane_driving/behavior_planning/behavior_velocity_planner, /planning/scenario_planning/lane_driving/motion_planning/motion_planning_container, /planning/scenario_planning/lane_driving/motion_planning/obstacle_avoidance_planner, /planning/scenario_planning/lane_driving/motion_planning/obstacle_stop_planner, /planning/scenario_planning/lane_driving/motion_planning/surround_obstacle_checker, /planning/scenario_planning/scenario_selector, /planning/scenario_planning/external_velocity_limit_selector, /planning/scenario_planning/parking/parking_container, /planning/scenario_planning/parking/costmap_generator, /planning/scenario_planning/parking/freespace_planner, /planning/scenario_planning/motion_velocity_smoother, /planning/planning_diagnostics/planning_error_monitor, /aggregator_node, /robot_state_publisher, /control/control_container, /control/trajectory_follower/controller_node_exe, /control/trajectory_follower/lane_departure_checker_node, /control/external_cmd_selector, /control/external_cmd_converter, /control/shift_decider, /control/vehicle_cmd_gate, /control/operation_mode_transition_manager, /awapi/awapi_relay_container, /awapi/awapi_awiv_adapter_node, /awapi/route_relay, /awapi/predict_object_relay, /awapi/nearest_traffic_signal_relay, /awapi/ready_module_relay, /awapi/force_available_relay, /awapi/running_modules_relay, /awapi/autoware_engage_relay, /awapi/vehicle_engage_relay, /awapi/put_route_relay, /awapi/put_goal_relay, /awapi/lane_change_approval_relay, /awapi/force_lane_change_relay, /awapi/external_approval_relay, /awapi/force_approval_relay, /awapi/obstacle_avoid_approval_relay, /awapi/traffic_signal_relay, /awapi/overwrite_traffic_signals_relay, /awapi/speed_exceeded_relay, /awapi/crosswalk_status_relay, /awapi/intersection_status_relay, /awapi/expand_stop_range_relay, /awapi/pose_initialization_request_relay, /autoware_api/external/autoware_iv_adaptor, /autoware_api/external/cpu_usage, /autoware_api/external/start, /autoware_api/external/diagnostics, /autoware_api/external/door, /autoware_api/external/emergency, /autoware_api/external/engage, /autoware_api/external/fail_safe_state, /autoware_api/external/initial_pose, /autoware_api/external/map, /autoware_api/external/operator, /autoware_api/external/metadata_packages, /autoware_api/external/route, /autoware_api/external/service, /autoware_api/external/vehicle_status, /autoware_api/external/velocity, /autoware_api/external/version, /autoware_api/internal/traffic_signals, /autoware_api/internal/autoware_iv_adaptor, /autoware_api/internal/intersection_states, /autoware_api/internal/initial_pose_2d, /autoware_api/internal/crosswalk_states, /autoware_api/internal/initial_pose, /autoware_api/internal/iv_msgs, /autoware_api/internal/operator, /autoware_api/internal/route, /autoware_api/internal/velocity, /initial_pose_2d, /fault_injection, /perception/object_recognition/tracking/multi_object_tracker, /perception/object_recognition/prediction/map_based_prediction, /rosbag2_player\n", "/control/vehicle_cmd_gate /autoware_api/external/emergency 1\n", "/system/emergency_handler /control/vehicle_cmd_gate 4\n", "/control/external_cmd_selector /autoware_api/internal/operator 1\n", "/simulation/openscenario_interpreter /simulation/openscenario_visualizer 1\n", "/planning/scenario_planning/lane_driving/behavior_planning/behavior_path_planner /control/vehicle_cmd_gate 2\n", "/planning/scenario_planning/lane_driving/behavior_planning/behavior_velocity_planner /awapi/awapi_awiv_adapter_node 2\n", "/perception/object_recognition/prediction/map_based_prediction /planning/scenario_planning/parking/costmap_generator 1\n", "/perception/object_recognition/prediction/map_based_prediction /planning/scenario_planning/lane_driving/motion_planning/obstacle_stop_planner 1\n", "/perception/object_recognition/prediction/map_based_prediction /planning/scenario_planning/lane_driving/motion_planning/obstacle_avoidance_planner 1\n", "/perception/object_recognition/prediction/map_based_prediction /planning/scenario_planning/lane_driving/behavior_planning/behavior_path_planner 1\n", "/perception/object_recognition/prediction/map_based_prediction /planning/scenario_planning/lane_driving/motion_planning/surround_obstacle_checker 1\n", "/perception/object_recognition/prediction/map_based_prediction /planning/scenario_planning/lane_driving/behavior_planning/behavior_velocity_planner 1\n", "/planning/scenario_planning/lane_driving/behavior_planning/behavior_path_planner /planning/scenario_planning/lane_driving/behavior_planning/rtc_auto_approver 6\n", "/planning/scenario_planning/lane_driving/behavior_planning/behavior_velocity_planner /planning/scenario_planning/lane_driving/behavior_planning/rtc_auto_approver 6\n", "/system/system_monitor/cpu_monitor /autoware_api/external/cpu_usage 1\n", "/autoware_api/internal/operator /autoware_api/external/operator 2\n", "/control/vehicle_cmd_gate /simulation/concealer 4\n", "/simulation/concealer /control/trajectory_follower/controller_node_exe 2\n", "/simulation/concealer /autoware_api/external/vehicle_status 4\n", "/simulation/concealer /awapi/awapi_awiv_adapter_node 5\n", "/simulation/concealer /control/vehicle_cmd_gate 1\n", "/control/vehicle_cmd_gate /system/emergency_handler 1\n", "/control/vehicle_cmd_gate /awapi/awapi_awiv_adapter_node 3\n", "/control/vehicle_cmd_gate /autoware_api/external/vehicle_status 1\n", "/control/vehicle_cmd_gate /control/operation_mode_transition_manager 2\n", "/control/vehicle_cmd_gate /system/ad_service_state_monitor 1\n", "/control/vehicle_cmd_gate /autoware_api/external/engage 1\n", "/perception/object_recognition/tracking/multi_object_tracker /autoware_api/internal/iv_msgs 1\n", "/perception/object_recognition/tracking/multi_object_tracker /perception/object_recognition/prediction/map_based_prediction 1\n", "/control/trajectory_follower/controller_node_exe /control/vehicle_cmd_gate 1\n", "/control/trajectory_follower/controller_node_exe /control/shift_decider 1\n", "/planning/scenario_planning/lane_driving/motion_planning/obstacle_stop_planner /awapi/awapi_awiv_adapter_node 1\n", "/planning/scenario_planning/lane_driving/motion_planning/surround_obstacle_checker /awapi/awapi_awiv_adapter_node 1\n", "/autoware_api/internal/route /autoware_api/external/route 1\n", "/planning/scenario_planning/lane_driving/motion_planning/obstacle_stop_planner /planning/scenario_planning/scenario_selector 1\n", "/planning/scenario_planning/scenario_selector /planning/scenario_planning/lane_driving/behavior_planning/behavior_path_planner 1\n", "/planning/scenario_planning/scenario_selector /planning/scenario_planning/parking/costmap_generator 1\n", "/planning/scenario_planning/scenario_selector /planning/scenario_planning/parking/freespace_planner 1\n", "/system/ad_service_state_monitor /simulation/concealer 1\n", "/system/ad_service_state_monitor /system/system_error_monitor 1\n", "/system/ad_service_state_monitor /autoware_api/external/engage 1\n", "/system/ad_service_state_monitor /autoware_api/internal/iv_msgs 1\n", "/system/ad_service_state_monitor /autoware_api/external/route 1\n", "/planning/scenario_planning/parking/freespace_planner /planning/scenario_planning/scenario_selector 1\n", "/simulation/concealer /system/ad_service_state_monitor 2\n", "/simulation/concealer /autoware_api/internal/operator 1\n", "/simulation/concealer /control/operation_mode_transition_manager 2\n", "/simulation/concealer /system/emergency_handler 2\n", "/simulation/concealer /system/system_error_monitor 1\n", "/simulation/concealer /autoware_api/internal/iv_msgs 1\n", "/simulation/openscenario_interpreter /planning/scenario_planning/lane_driving/behavior_planning/behavior_velocity_planner 1\n", "/simulation/concealer /planning/scenario_planning/lane_driving/motion_planning/obstacle_avoidance_planner 1\n", "/simulation/concealer /control/external_cmd_converter 1\n", "/simulation/concealer /planning/scenario_planning/lane_driving/behavior_planning/behavior_path_planner 1\n", "/simulation/concealer /planning/scenario_planning/lane_driving/motion_planning/surround_obstacle_checker 2\n", "/simulation/concealer /planning/scenario_planning/motion_velocity_smoother 1\n", "/simulation/concealer /planning/scenario_planning/scenario_selector 1\n", "/simulation/concealer /planning/scenario_planning/lane_driving/motion_planning/obstacle_stop_planner 1\n", "/simulation/concealer /control/trajectory_follower/lane_departure_checker_node 1\n", "/simulation/concealer /planning/scenario_planning/lane_driving/behavior_planning/behavior_velocity_planner 1\n", "/simulation/concealer /planning/scenario_planning/parking/freespace_planner 1\n", "/planning/scenario_planning/scenario_selector /planning/scenario_planning/motion_velocity_smoother 1\n", "/control/operation_mode_transition_manager /control/vehicle_cmd_gate 1\n", "/planning/scenario_planning/motion_velocity_smoother /planning/planning_diagnostics/planning_error_monitor 1\n", "/planning/scenario_planning/motion_velocity_smoother /control/trajectory_follower/controller_node_exe 1\n", "/planning/scenario_planning/motion_velocity_smoother /control/trajectory_follower/lane_departure_checker_node 1\n", "/planning/scenario_planning/motion_velocity_smoother /simulation/concealer 1\n", "/planning/scenario_planning/motion_velocity_smoother /control/operation_mode_transition_manager 1\n", "/planning/scenario_planning/motion_velocity_smoother /autoware_api/internal/iv_msgs 1\n", "/planning/scenario_planning/motion_velocity_smoother /awapi/awapi_awiv_adapter_node 1\n", "/planning/mission_planning/mission_planner /planning/scenario_planning/lane_driving/behavior_planning/behavior_path_planner 1\n", "/planning/mission_planning/mission_planner /control/trajectory_follower/lane_departure_checker_node 1\n", "/planning/mission_planning/mission_planner /system/ad_service_state_monitor 1\n", "/planning/mission_planning/mission_planner /planning/scenario_planning/scenario_selector 1\n", "/planning/mission_planning/mission_planner /autoware_api/internal/route 1\n", "/planning/mission_planning/mission_planner /planning/scenario_planning/parking/freespace_planner 1\n", "/planning/mission_planning/mission_planner /planning/mission_planning/goal_pose_visualizer 1\n", "/autoware_api/external/operator /autoware_api/external/start 1\n", "/control/trajectory_follower/controller_node_exe /control/trajectory_follower/lane_departure_checker_node 1\n", "/control/shift_decider /control/vehicle_cmd_gate 1\n", "/control/vehicle_cmd_gate /system/system_error_monitor 2\n", "/control/vehicle_cmd_gate /autoware_api/internal/operator 2\n", "/control/vehicle_cmd_gate /control/external_cmd_converter 2\n", "/planning/scenario_planning/lane_driving/behavior_planning/behavior_velocity_planner /planning/scenario_planning/lane_driving/motion_planning/obstacle_avoidance_planner 1\n", "/planning/scenario_planning/lane_driving/motion_planning/obstacle_avoidance_planner /planning/scenario_planning/lane_driving/motion_planning/obstacle_stop_planner 1\n", "/planning/scenario_planning/lane_driving/behavior_planning/behavior_path_planner /planning/scenario_planning/lane_driving/behavior_planning/behavior_velocity_planner 1\n", "/planning/scenario_planning/lane_driving/behavior_planning/behavior_path_planner /simulation/concealer 1\n", "/system/emergency_handler /simulation/concealer 1\n", "/system/emergency_handler /awapi/awapi_awiv_adapter_node 1\n", "/system/emergency_handler /autoware_api/internal/iv_msgs 1\n", "/system/emergency_handler /autoware_api/external/fail_safe_state 1\n", "/autoware_api/internal/iv_msgs /awapi/awapi_awiv_adapter_node 1\n", "/system/system_error_monitor /system/emergency_handler 2\n", "/system/system_error_monitor /awapi/awapi_awiv_adapter_node 1\n" ] }, { "data": { "image/svg+xml": [ "\n", "\n", "\n", "\n", "\n", "\n", "G\n", "\n", "\n", "\n", "/INPUT\n", "\n", "/INPUT\n", "\n", "\n", "\n", "/OUTPUT\n", "\n", "/OUTPUT\n", "\n", "\n", "\n", "/[NONE]\n", "\n", "/[NONE]\n", "\n", "\n", "\n", "/simulation/openscenario_visualizer\n", "\n", "/simulation/openscenario_visualizer\n", "\n", "\n", "\n", "/simulation/simple_sensor_simulator\n", "\n", "/simulation/simple_sensor_simulator\n", "\n", "\n", "\n", "/simulation/openscenario_interpreter\n", "\n", "/simulation/openscenario_interpreter\n", "\n", "\n", "\n", "/simulation/openscenario_interpreter->/simulation/openscenario_visualizer\n", "\n", "\n", "\n", "\n", "\n", "/planning/scenario_planning/lane_driving/behavior_planning/behavior_velocity_planner\n", "\n", "/planning/scenario_planning/lane_driving/behavior_planning/behavior_velocity_planner\n", "\n", "\n", "\n", "/simulation/openscenario_interpreter->/planning/scenario_planning/lane_driving/behavior_planning/behavior_velocity_planner\n", "\n", "\n", "\n", "\n", "\n", "/simulation/concealer\n", "\n", "/simulation/concealer\n", "\n", "\n", "\n", "/system/emergency_handler\n", "\n", "/system/emergency_handler\n", "\n", "\n", "\n", "/simulation/concealer->/system/emergency_handler\n", "\n", "\n", "\n", "\n", "\n", "/system/system_error_monitor\n", "\n", "/system/system_error_monitor\n", "\n", "\n", "\n", "/simulation/concealer->/system/system_error_monitor\n", "\n", "\n", "\n", "\n", "\n", "/system/ad_service_state_monitor\n", "\n", "/system/ad_service_state_monitor\n", "\n", "\n", "\n", "/simulation/concealer->/system/ad_service_state_monitor\n", "\n", "\n", "\n", "\n", "\n", "/planning/scenario_planning/lane_driving/behavior_planning/behavior_path_planner\n", "\n", "/planning/scenario_planning/lane_driving/behavior_planning/behavior_path_planner\n", "\n", "\n", "\n", "/simulation/concealer->/planning/scenario_planning/lane_driving/behavior_planning/behavior_path_planner\n", "\n", "\n", "\n", "\n", "\n", "/simulation/concealer->/planning/scenario_planning/lane_driving/behavior_planning/behavior_velocity_planner\n", "\n", "\n", "\n", "\n", "\n", "/planning/scenario_planning/lane_driving/motion_planning/obstacle_avoidance_planner\n", "\n", "/planning/scenario_planning/lane_driving/motion_planning/obstacle_avoidance_planner\n", "\n", "\n", "\n", "/simulation/concealer->/planning/scenario_planning/lane_driving/motion_planning/obstacle_avoidance_planner\n", "\n", "\n", "\n", "\n", "\n", "/planning/scenario_planning/lane_driving/motion_planning/obstacle_stop_planner\n", "\n", "/planning/scenario_planning/lane_driving/motion_planning/obstacle_stop_planner\n", "\n", "\n", "\n", "/simulation/concealer->/planning/scenario_planning/lane_driving/motion_planning/obstacle_stop_planner\n", "\n", "\n", "\n", "\n", "\n", "/planning/scenario_planning/lane_driving/motion_planning/surround_obstacle_checker\n", "\n", "/planning/scenario_planning/lane_driving/motion_planning/surround_obstacle_checker\n", "\n", "\n", "\n", "/simulation/concealer->/planning/scenario_planning/lane_driving/motion_planning/surround_obstacle_checker\n", "\n", "\n", "\n", "\n", "\n", "/planning/scenario_planning/scenario_selector\n", "\n", "/planning/scenario_planning/scenario_selector\n", "\n", "\n", "\n", "/simulation/concealer->/planning/scenario_planning/scenario_selector\n", "\n", "\n", "\n", "\n", "\n", "/planning/scenario_planning/parking/freespace_planner\n", "\n", "/planning/scenario_planning/parking/freespace_planner\n", "\n", "\n", "\n", "/simulation/concealer->/planning/scenario_planning/parking/freespace_planner\n", "\n", "\n", "\n", "\n", "\n", "/planning/scenario_planning/motion_velocity_smoother\n", "\n", "/planning/scenario_planning/motion_velocity_smoother\n", "\n", "\n", "\n", "/simulation/concealer->/planning/scenario_planning/motion_velocity_smoother\n", "\n", "\n", "\n", "\n", "\n", "/control/trajectory_follower/controller_node_exe\n", "\n", "/control/trajectory_follower/controller_node_exe\n", "\n", "\n", "\n", "/simulation/concealer->/control/trajectory_follower/controller_node_exe\n", "\n", "\n", "\n", "\n", "\n", "/control/trajectory_follower/lane_departure_checker_node\n", "\n", "/control/trajectory_follower/lane_departure_checker_node\n", "\n", "\n", "\n", "/simulation/concealer->/control/trajectory_follower/lane_departure_checker_node\n", "\n", "\n", "\n", "\n", "\n", "/control/external_cmd_converter\n", "\n", "\n", "/control/external_cmd_converter\n", "\n", "\n", "\n", "/simulation/concealer->/control/external_cmd_converter\n", "\n", "\n", "\n", "\n", "\n", "/control/vehicle_cmd_gate\n", "\n", "/control/vehicle_cmd_gate\n", "\n", "\n", "\n", "/simulation/concealer->/control/vehicle_cmd_gate\n", "\n", "\n", "\n", "\n", "\n", "/control/operation_mode_transition_manager\n", "\n", "/control/operation_mode_transition_manager\n", "\n", "\n", "\n", "/simulation/concealer->/control/operation_mode_transition_manager\n", "\n", "\n", "\n", "\n", "\n", "/awapi/awapi_awiv_adapter_node\n", "\n", "\n", "/awapi/awapi_awiv_adapter_node\n", "\n", "\n", "\n", "/simulation/concealer->/awapi/awapi_awiv_adapter_node\n", "\n", "\n", "\n", "\n", "\n", "/autoware_api/external/vehicle_status\n", "\n", "/autoware_api/external/vehicle_status\n", "\n", "\n", "\n", "/simulation/concealer->/autoware_api/external/vehicle_status\n", "\n", "\n", "\n", "\n", "\n", "/autoware_api/internal/iv_msgs\n", "\n", "/autoware_api/internal/iv_msgs\n", "\n", "\n", "\n", "/simulation/concealer->/autoware_api/internal/iv_msgs\n", "\n", "\n", "\n", "\n", "\n", "/autoware_api/internal/operator\n", "\n", "/autoware_api/internal/operator\n", "\n", "\n", "\n", "/simulation/concealer->/autoware_api/internal/operator\n", "\n", "\n", "\n", "\n", "\n", "/system/system_monitor/system_monitor/system_monitor_container\n", "\n", "/system/system_monitor/system_monitor/system_monitor_container\n", "\n", "\n", "\n", "/system/system_monitor/cpu_monitor\n", "\n", "/system/system_monitor/cpu_monitor\n", "\n", "\n", "\n", "/autoware_api/external/cpu_usage\n", "\n", "/autoware_api/external/cpu_usage\n", "\n", "\n", "\n", "/system/system_monitor/cpu_monitor->/autoware_api/external/cpu_usage\n", "\n", "\n", "\n", "\n", "\n", "/system/system_monitor/hdd_monitor\n", "\n", "/system/system_monitor/hdd_monitor\n", "\n", "\n", "\n", "/system/system_monitor/mem_monitor\n", "\n", "/system/system_monitor/mem_monitor\n", "\n", "\n", "\n", "/system/system_monitor/net_monitor\n", "\n", "/system/system_monitor/net_monitor\n", "\n", "\n", "\n", "/system/system_monitor/ntp_monitor\n", "\n", "/system/system_monitor/ntp_monitor\n", "\n", "\n", "\n", "/system/system_monitor/process_monitor\n", "\n", "/system/system_monitor/process_monitor\n", "\n", "\n", "\n", "/system/system_monitor/gpu_monitor\n", "\n", "/system/system_monitor/gpu_monitor\n", "\n", "\n", "\n", "/system/emergency_handler->/simulation/concealer\n", "\n", "\n", "\n", "\n", "\n", "/system/emergency_handler->/control/vehicle_cmd_gate\n", "\n", "\n", "\n", "\n", "\n", "/system/emergency_handler->/awapi/awapi_awiv_adapter_node\n", "\n", "\n", "\n", "\n", "\n", "/autoware_api/external/fail_safe_state\n", "\n", "/autoware_api/external/fail_safe_state\n", "\n", "\n", "\n", "/system/emergency_handler->/autoware_api/external/fail_safe_state\n", "\n", "\n", "\n", "\n", "\n", "/system/emergency_handler->/autoware_api/internal/iv_msgs\n", "\n", "\n", "\n", "\n", "\n", "/system/system_error_monitor->/system/emergency_handler\n", "\n", "\n", "\n", "\n", "\n", "/system/system_error_monitor->/awapi/awapi_awiv_adapter_node\n", "\n", "\n", "\n", "\n", "\n", "/system/ad_service_state_monitor->/simulation/concealer\n", "\n", "\n", "\n", "\n", "\n", "/system/ad_service_state_monitor->/system/system_error_monitor\n", "\n", "\n", "\n", "\n", "\n", "/autoware_api/external/engage\n", "\n", "/autoware_api/external/engage\n", "\n", "\n", "\n", "/system/ad_service_state_monitor->/autoware_api/external/engage\n", "\n", "\n", "\n", "\n", "\n", "/autoware_api/external/route\n", "\n", "/autoware_api/external/route\n", "\n", "\n", "\n", "/system/ad_service_state_monitor->/autoware_api/external/route\n", "\n", "\n", "\n", "\n", "\n", "/system/ad_service_state_monitor->/autoware_api/internal/iv_msgs\n", "\n", "\n", "\n", "\n", "\n", "/map/map_container\n", "\n", "/map/map_container\n", "\n", "\n", "\n", "/map/lanelet2_map_loader\n", "\n", "/map/lanelet2_map_loader\n", "\n", "\n", "\n", "/map/lanelet2_map_visualization\n", "\n", "/map/lanelet2_map_visualization\n", "\n", "\n", "\n", "/map/pointcloud_map_loader\n", "\n", "/map/pointcloud_map_loader\n", "\n", "\n", "\n", "/map/vector_map_tf_generator\n", "\n", "/map/vector_map_tf_generator\n", "\n", "\n", "\n", "/planning/mission_planning/mission_planning_container\n", "\n", "/planning/mission_planning/mission_planning_container\n", "\n", "\n", "\n", "/planning/mission_planning/mission_planner\n", "\n", "/planning/mission_planning/mission_planner\n", "\n", "\n", "\n", "/planning/mission_planning/mission_planner->/system/ad_service_state_monitor\n", "\n", "\n", "\n", "\n", "\n", "/planning/mission_planning/goal_pose_visualizer\n", "\n", "/planning/mission_planning/goal_pose_visualizer\n", "\n", "\n", "\n", "/planning/mission_planning/mission_planner->/planning/mission_planning/goal_pose_visualizer\n", "\n", "\n", "\n", "\n", "\n", "/planning/mission_planning/mission_planner->/planning/scenario_planning/lane_driving/behavior_planning/behavior_path_planner\n", "\n", "\n", "\n", "\n", "\n", "/planning/mission_planning/mission_planner->/planning/scenario_planning/scenario_selector\n", "\n", "\n", "\n", "\n", "\n", "/planning/mission_planning/mission_planner->/planning/scenario_planning/parking/freespace_planner\n", "\n", "\n", "\n", "\n", "\n", "/planning/mission_planning/mission_planner->/control/trajectory_follower/lane_departure_checker_node\n", "\n", "\n", "\n", "\n", "\n", "/autoware_api/internal/route\n", "\n", "/autoware_api/internal/route\n", "\n", "\n", "\n", "/planning/mission_planning/mission_planner->/autoware_api/internal/route\n", "\n", "\n", "\n", "\n", "\n", "/planning/scenario_planning/lane_driving/behavior_planning/rtc_auto_approver\n", "\n", "/planning/scenario_planning/lane_driving/behavior_planning/rtc_auto_approver\n", "\n", "\n", "\n", "/planning/scenario_planning/lane_driving/behavior_planning/behavior_planning_container\n", "\n", "/planning/scenario_planning/lane_driving/behavior_planning/behavior_planning_container\n", "\n", "\n", "\n", "/planning/scenario_planning/lane_driving/behavior_planning/behavior_path_planner->/simulation/concealer\n", "\n", "\n", "\n", "\n", "\n", "/planning/scenario_planning/lane_driving/behavior_planning/behavior_path_planner->/planning/scenario_planning/lane_driving/behavior_planning/rtc_auto_approver\n", "\n", "\n", "\n", "\n", "\n", "/planning/scenario_planning/lane_driving/behavior_planning/behavior_path_planner->/planning/scenario_planning/lane_driving/behavior_planning/behavior_velocity_planner\n", "\n", "\n", "\n", "\n", "\n", "/planning/scenario_planning/lane_driving/behavior_planning/behavior_path_planner->/control/vehicle_cmd_gate\n", "\n", "\n", "\n", "\n", "\n", "/planning/scenario_planning/lane_driving/behavior_planning/behavior_velocity_planner->/planning/scenario_planning/lane_driving/behavior_planning/rtc_auto_approver\n", "\n", "\n", "\n", "\n", "\n", "/planning/scenario_planning/lane_driving/behavior_planning/behavior_velocity_planner->/planning/scenario_planning/lane_driving/motion_planning/obstacle_avoidance_planner\n", "\n", "\n", "\n", "\n", "\n", "/planning/scenario_planning/lane_driving/behavior_planning/behavior_velocity_planner->/awapi/awapi_awiv_adapter_node\n", "\n", "\n", "\n", "\n", "\n", "/planning/scenario_planning/lane_driving/motion_planning/motion_planning_container\n", "\n", "/planning/scenario_planning/lane_driving/motion_planning/motion_planning_container\n", "\n", "\n", "\n", "/planning/scenario_planning/lane_driving/motion_planning/obstacle_avoidance_planner->/planning/scenario_planning/lane_driving/motion_planning/obstacle_stop_planner\n", "\n", "\n", "\n", "\n", "\n", "/planning/scenario_planning/lane_driving/motion_planning/obstacle_stop_planner->/planning/scenario_planning/scenario_selector\n", "\n", "\n", "\n", "\n", "\n", "/planning/scenario_planning/lane_driving/motion_planning/obstacle_stop_planner->/awapi/awapi_awiv_adapter_node\n", "\n", "\n", "\n", "\n", "\n", "/planning/scenario_planning/lane_driving/motion_planning/surround_obstacle_checker->/awapi/awapi_awiv_adapter_node\n", "\n", "\n", "\n", "\n", "\n", "/planning/scenario_planning/scenario_selector->/planning/scenario_planning/lane_driving/behavior_planning/behavior_path_planner\n", "\n", "\n", "\n", "\n", "\n", "/planning/scenario_planning/parking/costmap_generator\n", "\n", "/planning/scenario_planning/parking/costmap_generator\n", "\n", "\n", "\n", "/planning/scenario_planning/scenario_selector->/planning/scenario_planning/parking/costmap_generator\n", "\n", "\n", "\n", "\n", "\n", "/planning/scenario_planning/scenario_selector->/planning/scenario_planning/parking/freespace_planner\n", "\n", "\n", "\n", "\n", "\n", "/planning/scenario_planning/scenario_selector->/planning/scenario_planning/motion_velocity_smoother\n", "\n", "\n", "\n", "\n", "\n", "/planning/scenario_planning/external_velocity_limit_selector\n", "\n", "/planning/scenario_planning/external_velocity_limit_selector\n", "\n", "\n", "\n", "/planning/scenario_planning/parking/parking_container\n", "\n", "/planning/scenario_planning/parking/parking_container\n", "\n", "\n", "\n", "/planning/scenario_planning/parking/freespace_planner->/planning/scenario_planning/scenario_selector\n", "\n", "\n", "\n", "\n", "\n", "/planning/scenario_planning/motion_velocity_smoother->/simulation/concealer\n", "\n", "\n", "\n", "\n", "\n", "/planning/planning_diagnostics/planning_error_monitor\n", "\n", "/planning/planning_diagnostics/planning_error_monitor\n", "\n", "\n", "\n", "/planning/scenario_planning/motion_velocity_smoother->/planning/planning_diagnostics/planning_error_monitor\n", "\n", "\n", "\n", "\n", "\n", "/planning/scenario_planning/motion_velocity_smoother->/control/trajectory_follower/controller_node_exe\n", "\n", "\n", "\n", "\n", "\n", "/planning/scenario_planning/motion_velocity_smoother->/control/trajectory_follower/lane_departure_checker_node\n", "\n", "\n", "\n", "\n", "\n", "/planning/scenario_planning/motion_velocity_smoother->/control/operation_mode_transition_manager\n", "\n", "\n", "\n", "\n", "\n", "/planning/scenario_planning/motion_velocity_smoother->/awapi/awapi_awiv_adapter_node\n", "\n", "\n", "\n", "\n", "\n", "/planning/scenario_planning/motion_velocity_smoother->/autoware_api/internal/iv_msgs\n", "\n", "\n", "\n", "\n", "\n", "/aggregator_node\n", "\n", "/aggregator_node\n", "\n", "\n", "\n", "/robot_state_publisher\n", "\n", "/robot_state_publisher\n", "\n", "\n", "\n", "/control/control_container\n", "\n", "/control/control_container\n", "\n", "\n", "\n", "/control/trajectory_follower/controller_node_exe->/control/trajectory_follower/lane_departure_checker_node\n", "\n", "\n", "\n", "\n", "\n", "/control/shift_decider\n", "\n", "/control/shift_decider\n", "\n", "\n", "\n", "/control/trajectory_follower/controller_node_exe->/control/shift_decider\n", "\n", "\n", "\n", "\n", "\n", "/control/trajectory_follower/controller_node_exe->/control/vehicle_cmd_gate\n", "\n", "\n", "\n", "\n", "\n", "/control/external_cmd_selector\n", "\n", "/control/external_cmd_selector\n", "\n", "\n", "\n", "/control/external_cmd_selector->/autoware_api/internal/operator\n", "\n", "\n", "\n", "\n", "\n", "/control/shift_decider->/control/vehicle_cmd_gate\n", "\n", "\n", "\n", "\n", "\n", "/control/vehicle_cmd_gate->/simulation/concealer\n", "\n", "\n", "\n", "\n", "\n", "/control/vehicle_cmd_gate->/system/emergency_handler\n", "\n", "\n", "\n", "\n", "\n", "/control/vehicle_cmd_gate->/system/system_error_monitor\n", "\n", "\n", "\n", "\n", "\n", "/control/vehicle_cmd_gate->/system/ad_service_state_monitor\n", "\n", "\n", "\n", "\n", "\n", "/control/vehicle_cmd_gate->/control/external_cmd_converter\n", "\n", "\n", "\n", "\n", "\n", "/control/vehicle_cmd_gate->/control/operation_mode_transition_manager\n", "\n", "\n", "\n", "\n", "\n", "/control/vehicle_cmd_gate->/awapi/awapi_awiv_adapter_node\n", "\n", "\n", "\n", "\n", "\n", "/autoware_api/external/emergency\n", "\n", "/autoware_api/external/emergency\n", "\n", "\n", "\n", "/control/vehicle_cmd_gate->/autoware_api/external/emergency\n", "\n", "\n", "\n", "\n", "\n", "/control/vehicle_cmd_gate->/autoware_api/external/engage\n", "\n", "\n", "\n", "\n", "\n", "/control/vehicle_cmd_gate->/autoware_api/external/vehicle_status\n", "\n", "\n", "\n", "\n", "\n", "/control/vehicle_cmd_gate->/autoware_api/internal/operator\n", "\n", "\n", "\n", "\n", "\n", "/control/operation_mode_transition_manager->/control/vehicle_cmd_gate\n", "\n", "\n", "\n", "\n", "\n", "/awapi/awapi_relay_container\n", "\n", "\n", "/awapi/awapi_relay_container\n", "\n", "\n", "\n", "/awapi/route_relay\n", "\n", "\n", "/awapi/route_relay\n", "\n", "\n", "\n", "/awapi/predict_object_relay\n", "\n", "\n", "/awapi/predict_object_relay\n", "\n", "\n", "\n", "/awapi/nearest_traffic_signal_relay\n", "\n", "\n", "/awapi/nearest_traffic_signal_relay\n", "\n", "\n", "\n", "/awapi/ready_module_relay\n", "\n", "\n", "/awapi/ready_module_relay\n", "\n", "\n", "\n", "/awapi/force_available_relay\n", "\n", "\n", "/awapi/force_available_relay\n", "\n", "\n", "\n", "/awapi/running_modules_relay\n", "\n", "\n", "/awapi/running_modules_relay\n", "\n", "\n", "\n", "/awapi/autoware_engage_relay\n", "\n", "\n", "/awapi/autoware_engage_relay\n", "\n", "\n", "\n", "/awapi/vehicle_engage_relay\n", "\n", "\n", "/awapi/vehicle_engage_relay\n", "\n", "\n", "\n", "/awapi/put_route_relay\n", "\n", "\n", "/awapi/put_route_relay\n", "\n", "\n", "\n", "/awapi/put_goal_relay\n", "\n", "\n", "/awapi/put_goal_relay\n", "\n", "\n", "\n", "/awapi/lane_change_approval_relay\n", "\n", "\n", "/awapi/lane_change_approval_relay\n", "\n", "\n", "\n", "/awapi/force_lane_change_relay\n", "\n", "\n", "/awapi/force_lane_change_relay\n", "\n", "\n", "\n", "/awapi/external_approval_relay\n", "\n", "\n", "/awapi/external_approval_relay\n", "\n", "\n", "\n", "/awapi/force_approval_relay\n", "\n", "\n", "/awapi/force_approval_relay\n", "\n", "\n", "\n", "/awapi/obstacle_avoid_approval_relay\n", "\n", "\n", "/awapi/obstacle_avoid_approval_relay\n", "\n", "\n", "\n", "/awapi/traffic_signal_relay\n", "\n", "\n", "/awapi/traffic_signal_relay\n", "\n", "\n", "\n", "/awapi/overwrite_traffic_signals_relay\n", "\n", "\n", "/awapi/overwrite_traffic_signals_relay\n", "\n", "\n", "\n", "/awapi/speed_exceeded_relay\n", "\n", "\n", "/awapi/speed_exceeded_relay\n", "\n", "\n", "\n", "/awapi/crosswalk_status_relay\n", "\n", "\n", "/awapi/crosswalk_status_relay\n", "\n", "\n", "\n", "/awapi/intersection_status_relay\n", "\n", "\n", "/awapi/intersection_status_relay\n", "\n", "\n", "\n", "/awapi/expand_stop_range_relay\n", "\n", "\n", "/awapi/expand_stop_range_relay\n", "\n", "\n", "\n", "/awapi/pose_initialization_request_relay\n", "\n", "\n", "/awapi/pose_initialization_request_relay\n", "\n", "\n", "\n", "/autoware_api/external/autoware_iv_adaptor\n", "\n", "/autoware_api/external/autoware_iv_adaptor\n", "\n", "\n", "\n", "/autoware_api/external/start\n", "\n", "/autoware_api/external/start\n", "\n", "\n", "\n", "/autoware_api/external/diagnostics\n", "\n", "/autoware_api/external/diagnostics\n", "\n", "\n", "\n", "/autoware_api/external/door\n", "\n", "/autoware_api/external/door\n", "\n", "\n", "\n", "/autoware_api/external/initial_pose\n", "\n", "/autoware_api/external/initial_pose\n", "\n", "\n", "\n", "/autoware_api/external/map\n", "\n", "/autoware_api/external/map\n", "\n", "\n", "\n", "/autoware_api/external/operator\n", "\n", "/autoware_api/external/operator\n", "\n", "\n", "\n", "/autoware_api/external/operator->/autoware_api/external/start\n", "\n", "\n", "\n", "\n", "\n", "/autoware_api/external/metadata_packages\n", "\n", "/autoware_api/external/metadata_packages\n", "\n", "\n", "\n", "/autoware_api/external/service\n", "\n", "/autoware_api/external/service\n", "\n", "\n", "\n", "/autoware_api/external/velocity\n", "\n", "/autoware_api/external/velocity\n", "\n", "\n", "\n", "/autoware_api/external/version\n", "\n", "/autoware_api/external/version\n", "\n", "\n", "\n", "/autoware_api/internal/traffic_signals\n", "\n", "/autoware_api/internal/traffic_signals\n", "\n", "\n", "\n", "/autoware_api/internal/autoware_iv_adaptor\n", "\n", "/autoware_api/internal/autoware_iv_adaptor\n", "\n", "\n", "\n", "/autoware_api/internal/intersection_states\n", "\n", "/autoware_api/internal/intersection_states\n", "\n", "\n", "\n", "/autoware_api/internal/initial_pose_2d\n", "\n", "/autoware_api/internal/initial_pose_2d\n", "\n", "\n", "\n", "/autoware_api/internal/crosswalk_states\n", "\n", "/autoware_api/internal/crosswalk_states\n", "\n", "\n", "\n", "/autoware_api/internal/initial_pose\n", "\n", "/autoware_api/internal/initial_pose\n", "\n", "\n", "\n", "/autoware_api/internal/iv_msgs->/awapi/awapi_awiv_adapter_node\n", "\n", "\n", "\n", "\n", "\n", "/autoware_api/internal/operator->/autoware_api/external/operator\n", "\n", "\n", "\n", "\n", "\n", "/autoware_api/internal/route->/autoware_api/external/route\n", "\n", "\n", "\n", "\n", "\n", "/autoware_api/internal/velocity\n", "\n", "/autoware_api/internal/velocity\n", "\n", "\n", "\n", "/initial_pose_2d\n", "\n", "/initial_pose_2d\n", "\n", "\n", "\n", "/fault_injection\n", "\n", "/fault_injection\n", "\n", "\n", "\n", "/perception/object_recognition/tracking/multi_object_tracker\n", "\n", "/perception/object_recognition/tracking/multi_object_tracker\n", "\n", "\n", "\n", "/perception/object_recognition/tracking/multi_object_tracker->/autoware_api/internal/iv_msgs\n", "\n", "\n", "\n", "\n", "\n", "/perception/object_recognition/prediction/map_based_prediction\n", "\n", "/perception/object_recognition/prediction/map_based_prediction\n", "\n", "\n", "\n", "/perception/object_recognition/tracking/multi_object_tracker->/perception/object_recognition/prediction/map_based_prediction\n", "\n", "\n", "\n", "\n", "\n", "/perception/object_recognition/prediction/map_based_prediction->/planning/scenario_planning/lane_driving/behavior_planning/behavior_path_planner\n", "\n", "\n", "\n", "\n", "\n", "/perception/object_recognition/prediction/map_based_prediction->/planning/scenario_planning/lane_driving/behavior_planning/behavior_velocity_planner\n", "\n", "\n", "\n", "\n", "\n", "/perception/object_recognition/prediction/map_based_prediction->/planning/scenario_planning/lane_driving/motion_planning/obstacle_avoidance_planner\n", "\n", "\n", "\n", "\n", "\n", "/perception/object_recognition/prediction/map_based_prediction->/planning/scenario_planning/lane_driving/motion_planning/obstacle_stop_planner\n", "\n", "\n", "\n", "\n", "\n", "/perception/object_recognition/prediction/map_based_prediction->/planning/scenario_planning/lane_driving/motion_planning/surround_obstacle_checker\n", "\n", "\n", "\n", "\n", "\n", "/perception/object_recognition/prediction/map_based_prediction->/planning/scenario_planning/parking/costmap_generator\n", "\n", "\n", "\n", "\n", "\n", "/rosbag2_player\n", "\n", "/rosbag2_player\n", "\n", "\n", "\n" ], "text/plain": [ "" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "%%skip_if_false DFG_ENABLED\n", "%%skip_if_false DFG_PLOT\n", "\n", "import re\n", "import math\n", "\n", "##################################################\n", "# Compute in/out topics for hierarchy level X\n", "##################################################\n", "\n", "def get_nodes_on_level(lat_graph: lg.LatencyGraph):\n", " def _traverse_node(node: lg.LGHierarchyLevel, cur_lvl=0):\n", " if cur_lvl == DFG_MAX_HIER_LEVEL:\n", " return [node]\n", "\n", " if not node.children and cur_lvl < DFG_MAX_HIER_LEVEL:\n", " return [node]\n", "\n", " collected_nodes = []\n", " for ch in node.children:\n", " collected_nodes += _traverse_node(ch, cur_lvl + 1)\n", " return collected_nodes\n", "\n", " return _traverse_node(lat_graph.top_node)\n", "\n", "lvl_nodes = get_nodes_on_level(lat_graph)\n", "lvl_nodes = [n for n in lvl_nodes if not any(re.search(p, n.full_name) for p in DFG_EXCL_NODE_PATTERNS)]\n", "\n", "input_nodes = [n.full_name for n in lvl_nodes if any(re.search(p, n.full_name) for p in DFG_INPUT_NODE_PATTERNS)]\n", "output_nodes = [n.full_name for n in lvl_nodes if any(re.search(p, n.full_name) for p in DFG_OUTPUT_NODE_PATTERNS)]\n", "\n", "print(', '.join(map(lambda n: n, input_nodes)))\n", "print(', '.join(map(lambda n: n, output_nodes)))\n", "print(', '.join(map(lambda n: n.full_name, lvl_nodes)))\n", "\n", "def _collect_callbacks(n: lg.LGHierarchyLevel):\n", " callbacks = []\n", " callbacks += n.callbacks\n", " for ch in n.children:\n", " callbacks += _collect_callbacks(ch)\n", " return callbacks\n", "\n", "\n", "cb_to_node_map = {}\n", "for n in lvl_nodes:\n", " cbs = _collect_callbacks(n)\n", " for cb in cbs:\n", " cb_to_node_map[cb.id()] = n\n", "\n", "\n", "edges_between_nodes = {}\n", "for edge in lat_graph.edges:\n", " from_node = cb_to_node_map.get(edge.start.id())\n", " to_node = cb_to_node_map.get(edge.end.id())\n", "\n", " if from_node is None or to_node is None:\n", " continue\n", "\n", " if from_node.full_name == to_node.full_name:\n", " continue\n", "\n", " k = (from_node.full_name, to_node.full_name)\n", "\n", " if k not in edges_between_nodes:\n", " edges_between_nodes[k] = []\n", "\n", " edges_between_nodes[k].append(edge)\n", "\n", "g = gv.Digraph('G', filename=\"latency_graph.gv\",\n", " node_attr={'shape': 'plain'},\n", " graph_attr={'pack': '1'})\n", "g.graph_attr['rankdir'] = 'LR'\n", "\n", "for n in lvl_nodes:\n", " colors = node_colors[node_namespace_mapping.get(n.full_name.strip(\"/\").split(\"/\")[0])]\n", " peripheries = \"1\" if n.full_name not in output_nodes else \"2\"\n", " g.node(n.full_name, label=n.full_name, fillcolor=colors[\"fill\"], color=colors[\"stroke\"],\n", " shape=\"box\", style=\"filled\", peripheries=peripheries)\n", "\n", " if n.full_name in input_nodes:\n", " helper_node_name = f\"{n.full_name}__before\"\n", " g.node(helper_node_name, label=\"\", shape=\"none\", height=\"0\", width=\"0\")\n", " g.edge(helper_node_name, n.full_name)\n", "\n", "def compute_e2e_paths(start_nodes, end_nodes, edges):\n", " frontier_paths = [[n] for n in start_nodes]\n", " final_paths = []\n", "\n", " while frontier_paths:\n", " frontier_paths_new = []\n", "\n", " for path in frontier_paths:\n", " head = path[-1]\n", " if head in end_nodes:\n", " final_paths.append(path)\n", " continue\n", "\n", " out_nodes = [n_to for n_from, n_to in edges if n_from == head if n_to not in path]\n", " new_paths = [path + [n] for n in out_nodes]\n", " frontier_paths_new += new_paths\n", "\n", " frontier_paths = frontier_paths_new\n", "\n", " final_paths = [[(n_from, n_to)\n", " for n_from, n_to in zip(path[:-1], path[1:])]\n", " for path in final_paths]\n", " return final_paths\n", "\n", "e2e_paths = compute_e2e_paths(input_nodes, output_nodes, edges_between_nodes)\n", "\n", "for (src_name, dst_name), edges in edges_between_nodes.items():\n", " print(src_name, dst_name, len(edges))\n", " color = \"black\" if any((src_name, dst_name) in path for path in e2e_paths) else \"tomato\"\n", " g.edge(src_name, dst_name, penwidth=str(math.log(len(edges)) * 2 + .2), color=color)\n", "\n", "g.save(\"level_graph.gv\")\n", "g.render(\"level_graph.svg\")\n", "\n", "g" ] }, { "cell_type": "code", "execution_count": 51, "metadata": { "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [ "%%skip_if_false E2E_ENABLED\n", "\n", "from latency_graph.message_tree import DepTree\n", "from tqdm.notebook import tqdm\n", "from bisect import bisect\n", "\n", "\n", "def inst_get_dep_msg(inst: TrCallbackInstance):\n", " if inst.callback_object not in _tracing_context.callback_objects.by_callback_object:\n", " # print(\"Callback not found (2)\")\n", " return None\n", "\n", " if not isinstance(inst.callback_obj.owner, TrSubscriptionObject):\n", " # print(f\"Wrong type: {type(inst.callback_obj.owner)}\")\n", " return None\n", "\n", " sub_obj: TrSubscriptionObject = inst.callback_obj.owner\n", " if sub_obj and sub_obj.subscription and sub_obj.subscription.topic:\n", " # print(f\"Subscription has no topic\")\n", " pubs = sub_obj.subscription.topic.publishers\n", " else:\n", " pubs = []\n", "\n", " def _pub_latest_msg_before(pub: TrPublisher, inst):\n", " i_latest_msg = bisect(pub.instances, inst.timestamp, key=lambda x: x.timestamp) - 1\n", " if i_latest_msg < 0 or i_latest_msg >= len(pub.instances):\n", " return None\n", " latest_msg = pub.instances[i_latest_msg]\n", " if latest_msg.timestamp >= inst.timestamp:\n", " return None\n", "\n", " return latest_msg\n", "\n", " msgs = [_pub_latest_msg_before(pub, inst) for pub in pubs]\n", " msgs = [msg for msg in msgs if msg is not None]\n", " msgs.sort(key=lambda i: i.timestamp, reverse=True)\n", " if msgs:\n", " msg = msgs[0]\n", " return msg\n", "\n", " # print(f\"No messages found for topic {sub_obj.subscription.topic}\")\n", " return None\n", "\n", "def inst_get_dep_insts(inst: TrCallbackInstance):\n", " if inst.callback_object not in _tracing_context.callback_objects.by_callback_object:\n", " # print(\"Callback not found\")\n", " return []\n", " dep_cbs = get_cb_dep_cbs(inst.callback_obj)\n", "\n", " def _cb_to_chronological_inst(cb: TrCallbackObject, inst):\n", " i_inst_latest = bisect(cb.callback_instances, inst.timestamp, key=lambda x: x.timestamp)\n", "\n", " for inst_before in cb.callback_instances[i_inst_latest::-1]:\n", " if lg.inst_runtime_interval(inst_before)[-1] < inst.timestamp:\n", " return inst_before\n", "\n", " return None\n", "\n", " insts = [_cb_to_chronological_inst(cb, inst) for cb in dep_cbs]\n", " insts = [inst for inst in insts if inst is not None]\n", " return insts\n", "\n", "def get_cb_dep_cbs(cb: TrCallbackObject):\n", " match cb.owner:\n", " case TrSubscriptionObject() as sub_obj:\n", " sub_obj: TrSubscriptionObject\n", " owner = sub_obj.subscription.node\n", " case TrTimer() as tmr:\n", " tmr: TrTimer\n", " owner = tmr.node\n", " case _:\n", " raise RuntimeError(f\"Encountered {cb.owner} as callback owner\")\n", "\n", " owner: TrNode\n", " dep_sub_objs = {sub.subscription_object for sub in owner.subscriptions}\n", " dep_cbs = {callback_objects.by_id.get(sub_obj.id) for sub_obj in dep_sub_objs if sub_obj is not None}\n", " dep_cbs |= {callback_objects.by_id.get(tmr.id) for tmr in owner.timers}\n", " dep_cbs.discard(cb)\n", " dep_cbs.discard(None)\n", "\n", " return dep_cbs\n", "\n", "\n", "def get_msg_dep_cb(msg: TrPublishInstance):\n", " \"\"\"\n", " For a given message instance `msg`, find the publishing callback,\n", " as well as the message instances that callback depends on (transitively within its TrNode).\n", " \"\"\"\n", "\n", " # Find CB instance that published msg\n", " # print(f\"PUB {msg.publisher.node.path if msg.publisher.node is not None else '??'} ==> {msg.publisher.topic_name}\")\n", " pub_cbs = lat_graph.pub_cbs.get(msg.publisher)\n", " if pub_cbs is None:\n", " # print(\"Publisher unknown to lat graph. Skipping.\")\n", " return None\n", "\n", " # print(f\"Found {len(pub_cbs)} pub cbs\")\n", " cb_inst_candidates = []\n", " for cb in pub_cbs:\n", " # print(f\" > CB ({len(cb.callback_instances)} instances): {cb.callback_symbol.symbol if cb.callback_symbol else cb.id}\")\n", " i_inst_after = bisect(cb.callback_instances, msg.timestamp, key=lambda x: x.timestamp)\n", "\n", " for inst in cb.callback_instances[:i_inst_after]:\n", " inst_start, inst_end = lg.inst_runtime_interval(inst)\n", " if msg.timestamp > inst_end:\n", " continue\n", "\n", " assert inst_start <= msg.timestamp <= inst_end\n", "\n", " cb_inst_candidates.append(inst)\n", "\n", " if len(cb_inst_candidates) > 1:\n", " # print(\"Found multiple possible callbacks\")\n", " return None\n", " if not cb_inst_candidates:\n", " # print(\"Found no possible callbacks\")\n", " return None\n", "\n", " dep_inst = cb_inst_candidates[0]\n", " return dep_inst\n", "\n", "\n", "def get_dep_tree(inst: TrPublishInstance | TrCallbackInstance, lvl=0, visited_topics=None, is_dep_cb=False, start_time=None):\n", " if visited_topics is None:\n", " visited_topics = set()\n", " \n", " if start_time is None:\n", " start_time = inst.timestamp\n", " \n", " if inst.timestamp - start_time > E2E_TIME_LIMIT_S:\n", " return None\n", " \n", " children_are_dep_cbs = False\n", "\n", " match inst:\n", " case TrPublishInstance(publisher=pub):\n", " if pub.topic_name in visited_topics:\n", " return None\n", " \n", " if pub.node and pub.node.name and \"concealer\" in pub.node.name:\n", " return None\n", "\n", " visited_topics.add(pub.topic_name)\n", " deps = [get_msg_dep_cb(inst)]\n", " case TrCallbackInstance() as cb_inst:\n", " deps = [inst_get_dep_msg(cb_inst)]\n", " if not is_dep_cb:\n", " deps += inst_get_dep_insts(cb_inst)\n", " children_are_dep_cbs = True\n", " match cb_inst.callback_obj.owner:\n", " case TrSubscriptionObject() as sub_obj:\n", " if \"concealer\" in sub_obj.subscription.node.name:\n", " return None\n", " case TrTimer() as tmr_obj:\n", " if \"concealer\" in tmr_obj.node.name:\n", " return None\n", " case _:\n", " return None\n", " raise TypeError(f\"Expected inst to be of type TrPublishInstance or TrCallbackInstance, got {type(inst).__name__}\")\n", " #print(\"Rec level\", lvl)\n", " deps = [dep for dep in deps if dep is not None]\n", " deps = [get_dep_tree(dep, lvl + 1, set(visited_topics), children_are_dep_cbs, start_time) for dep in deps]\n", " deps = [dep for dep in deps if dep is not None]\n", " return DepTree(inst, deps)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "pycharm": { "name": "#%%\n" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[CACHE] Creating cache entry for trees (in cache/trees_507fec94db.pkl).\n" ] }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "572f74ee819445209689768947f4e6fb", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Building message chains for topic /control/command/control_cmd: 0%| | 0/1500 [00:00= 1024**2:\n", " return f\"{bytes/(1024**2):.2f} MiB\"\n", " if bytes >= 1024:\n", " return f\"{bytes/1024:.2f} KiB\"\n", " return f\"{bytes:.0f} B\"\n", "\n", "\n", "bw_files = glob.glob(os.path.join(BW_PATH, \"*.log\"))\n", "msg_sizes = {}\n", "for bw_file in bw_files:\n", " with open(bw_file) as f:\n", " lines = f.readlines()\n", " topic = os.path.splitext(os.path.split(bw_file)[1])[0].replace(\"__\", \"/\")\n", "\n", " if not lines or re.match(f\"^\\s*$\", lines[-1]):\n", " #print(f\"No data for {topic}\")\n", " continue\n", "\n", " line_pattern = re.compile(r\"(?P[0-9.]+ [KM]?)B/s from (?P[0-9.]+) messages --- Message size mean: (?P[0-9.]+ [KM]?)B min: (?P[0-9.]+ [KM]?)B max: (?P[0-9.]+ [KM]?)B\\n\")\n", " m = re.fullmatch(line_pattern, lines[-1])\n", " if m is None:\n", " print(f\"Line could not be parsed in {topic}: '{lines[-1]}'\")\n", " continue\n", "\n", " msg_sizes[topic] = {'bw': parse_bytes(m.group(\"bw\")),\n", " 'min': parse_bytes(m.group(\"min\")),\n", " 'mean': parse_bytes(m.group(\"mean\")),\n", " 'max': parse_bytes(m.group(\"max\"))}\n" ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [ "%%skip_if_false E2E_ENABLED\n", "\n", "\n", "from latency_graph.message_tree import DepTree\n", "\n", "def leaf_topics(tree: DepTree, lvl=0):\n", " ret_list = []\n", " match tree.head:\n", " case TrPublishInstance(publisher=pub):\n", " if pub:\n", " ret_list += [(lvl, pub.topic_name)]\n", " ret_list += [(lvl, None)]\n", "\n", " for dep in tree.deps:\n", " ret_list += leaf_topics(dep, lvl+1)\n", " return ret_list\n", "\n", "\n", "def all_e2es(tree: DepTree, t_start=None):\n", " if t_start is None:\n", " t_start = tree.head.timestamp\n", "\n", " if not tree.deps:\n", " return [t_start - tree.head.timestamp]\n", "\n", " ret_list = []\n", " for dep in tree.deps:\n", " ret_list += all_e2es(dep, t_start)\n", " return ret_list\n", "\n", "\n", "def relevant_e2es(tree: DepTree, input_topic_patterns, t_start=None, path=None):\n", " if t_start is None:\n", " t_start = tree.head.timestamp\n", "\n", " if path is None:\n", " path = []\n", "\n", " latency = t_start - tree.head.timestamp\n", " if latency > E2E_TIME_LIMIT_S:\n", " return []\n", "\n", " new_path = [tree.head] + path\n", "\n", " if not tree.deps:\n", " match tree.head:\n", " case TrPublishInstance(publisher=pub):\n", " if pub and any(re.search(f, pub.topic_name) for f in input_topic_patterns):\n", " return [(latency,new_path)]\n", "\n", " ret_list = []\n", " for dep in tree.deps:\n", " ret_list += relevant_e2es(dep, input_topic_patterns, t_start, new_path)\n", " return ret_list\n", "\n", "\n", "e2ess = []\n", "e2e_pathss = []\n", "for tree in trees:\n", " e2es, e2e_paths = zip(*relevant_e2es(tree, [\"\"]))\n", " e2ess.append(e2es)\n", " e2e_pathss.append(e2e_paths)" ] }, { "cell_type": "code", "execution_count": 30, "metadata": { "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [ "#from matplotlib.animation import FuncAnimation\n", "#from IPython import display\n", "\n", "#fig, ax = plt.subplots(figsize=(16, 9))\n", "#ax: plt.Axes\n", "#ax.set_xlim(0, 4)\n", "\n", "#ax.hist([], bins=200, range=(0, 4), histtype='stepfilled')\n", "#ax.set_title(\"Time: 0.000000s\")\n", "\n", "#def anim(frame):\n", "# print(frame, end='\\r')\n", "# ax.clear()\n", "# ax.hist(e2es[frame], bins=200, range=(0, 4), histtype='stepfilled')\n", "# ax.set_title(f\"Time: {(trees[frame].head.timestamp - trees[0].head.timestamp):.6}s\")\n", "\n", "\n", "#anim_created = FuncAnimation(fig, anim, min(len(trees), 10000), interval=16, repeat_delay=200)\n", "\n", "#video = anim_created.save(\"anim.mp4\", dpi=120)\n", "\n", "#for tree in trees:\n", "# path = tree.critical_path(start_topic_filters)\n", "# for i, inst in enumerate(path[::-1]):\n", "# match inst:\n", "# case TrPublishInstance(publisher=pub):\n", "# print(f\" {i:>3d}: T\", pub.topic_name)\n", "# case TrCallbackInstance(callback_obj=cb):\n", "# match cb.owner:\n", "# case TrSubscriptionObject(subscription=sub):\n", "# node = sub.node\n", "# case TrTimer() as tmr:\n", "# node = tmr.node\n", "# case _:\n", "# raise ValueError(f\"Callback owner type not recognized: {type(cb.owner).__name__}\")\n", "#\n", "# print(f\" {i:>3d}: N\", node.path)\n", "# print(\"==================\")\n" ] }, { "cell_type": "code", "execution_count": 31, "metadata": { "pycharm": { "name": "#%%\n" } }, "outputs": [ { "data": { "text/plain": [ "'Skipped (evaluated E2E_PLOT to False)'" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "%%skip_if_false E2E_ENABLED\n", "%%skip_if_false E2E_PLOT\n", "\n", "\n", "fig, ax = plt.subplots(figsize=(18, 9), num=\"e2e_plot\")\n", "DS=1\n", "times = [tree.head.timestamp - trees[0].head.timestamp for tree in trees[::DS]]\n", "\n", "ax2 = ax.twinx()\n", "ax2.plot(times, list(map(lambda paths: sum(map(len, paths)) / len(paths), e2e_pathss[::DS])), color=\"orange\")\n", "ax2.fill_between(times,\n", " list(map(lambda paths: min(map(len, paths)), e2e_pathss[::DS])),\n", " list(map(lambda paths: max(map(len, paths)), e2e_pathss[::DS])),\n", " alpha=.3, color=\"orange\")\n", "\n", "ax.plot(times, [np.mean(e2es) for e2es in e2ess[::DS]])\n", "ax.fill_between(times, [np.min(e2es) for e2es in e2ess[::DS]], [np.max(e2es) for e2es in e2ess[::DS]], alpha=.3)\n", "\n", "def scatter_topic(topic_name, y=0, **scatter_kwargs):\n", " for pub in topics.by_name[topic_name].publishers:\n", " if not pub:\n", " continue\n", "\n", " inst_timestamps = [inst.timestamp - trees[0].head.timestamp for inst in pub.instances if inst.timestamp >= trees[0].head.timestamp]\n", " scatter_kwargs_default = {\"marker\": \"x\", \"color\": \"indianred\"}\n", " scatter_kwargs_default.update(scatter_kwargs)\n", " ax.scatter(inst_timestamps, np.full(len(inst_timestamps), fill_value=y), **scatter_kwargs_default)\n", "\n", "scatter_topic(\"/autoware/engage\")\n", "scatter_topic(\"/planning/scenario_planning/parking/trajectory\", y=-.04, color=\"cadetblue\")\n", "scatter_topic(\"/planning/scenario_planning/lane_driving/trajectory\", y=-.08, color=\"darkgreen\")\n", "\n", "ax.set_xlabel(\"Simulation time [s]\")\n", "ax.set_ylabel(\"End-to-End latency [s]\")\n", "ax2.set_ylabel(\"End-to-End path length\")\n", "None" ] }, { "cell_type": "code", "execution_count": 32, "metadata": { "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [ "%%skip_if_false E2E_ENABLED\n", "\n", "def critical_path(self):\n", " if not self.deps:\n", " return [self.head]\n", " return [self.head, *min(map(critical_path, self.deps), key=lambda ls: ls[-1].timestamp)]\n", "\n", "\n", "def e2e_lat(self):\n", " return self.head.timestamp - critical_path(self)[-1].timestamp\n", "\n", "\n", "def get_relevant_tree(tree: DepTree, accept_leaf=lambda x: True, root=None):\n", " if root is None:\n", " root = tree.head\n", " if not tree.deps:\n", " if accept_leaf(tree.head, root):\n", " return tree\n", " return None\n", "\n", " relevant_deps = [get_relevant_tree(dep, accept_leaf, root) for dep in tree.deps]\n", " if not any(relevant_deps):\n", " return None\n", "\n", " return DepTree(tree.head, [dep for dep in relevant_deps if dep])\n", "\n", "\n", "def fanout(self):\n", " if not self.deps:\n", " return 1\n", "\n", " return sum(map(fanout, self.deps))\n", "\n", "\n", "def sort_subtree(subtree: DepTree, sort_func=lambda t: t.head.timestamp - e2e_lat(t)):\n", " subtree.deps.sort(key=sort_func)\n", " for dep in subtree.deps:\n", " sort_subtree(dep, sort_func)\n", " return subtree\n", "\n", "def _leaf_filter(inst, root):\n", " if root.timestamp - inst.timestamp > E2E_TIME_LIMIT_S:\n", " return False\n", "\n", " match inst:\n", " case TrPublishInstance(publisher=pub):\n", " return pub and any(f in pub.topic_name for f in E2E_INPUT_TOPIC_PATTERNS)\n", " return False\n", "\n", "\n", "relevant_trees = [get_relevant_tree(tree, _leaf_filter) for tree in trees]\n", "relevant_trees = [t for t in relevant_trees if t]" ] }, { "cell_type": "code", "execution_count": 33, "metadata": { "pycharm": { "name": "#%%\n" } }, "outputs": [ { "data": { "text/plain": [ "'Skipped (evaluated E2E_PLOT to False)'" ] }, "execution_count": 33, "metadata": {}, "output_type": "execute_result" } ], "source": [ "%%skip_if_false E2E_ENABLED\n", "%%skip_if_false E2E_PLOT\n", "\n", "from cycler import cycler\n", "\n", "def dict_safe_append(dictionary, key, value):\n", " if key not in dictionary:\n", " dictionary[key] = []\n", " dictionary[key].append(value)\n", "\n", "\n", "fig, (ax, ax_rel) = plt.subplots(2, 1, sharex=True, figsize=(60, 30), num=\"crit_plot\")\n", "ax.set_prop_cycle(cycler('color', [plt.cm.nipy_spectral(i/4) for i in range(5)]))\n", "ax_rel.set_prop_cycle(cycler('color', [plt.cm.nipy_spectral(i/4) for i in range(5)]))\n", "\n", "critical_paths = [critical_path(tree) for tree in relevant_trees[::DS]]\n", "\n", "time_breakdown = {}\n", "\n", "for path in critical_paths:\n", " tmr_cb_calc_time = 0.0\n", " sub_cb_calc_time = 0.0\n", " tmr_cb_relevant_time = 0.0\n", " sub_cb_relevant_time = 0.0\n", " dds_time = 0.0\n", " idle_time = 0.0\n", "\n", " last_pub_time = None\n", " last_cb_time = None\n", " for inst in path:\n", " match inst:\n", " case TrPublishInstance(timestamp=t):\n", " assert last_pub_time is None, \"Two publication without callback inbetween\"\n", "\n", " if last_cb_time is not None:\n", " dds_time += last_cb_time - t\n", "\n", " last_pub_time = t\n", " last_cb_time = None\n", " case TrCallbackInstance(callback_obj=cb, timestamp=t, duration=d):\n", " if last_pub_time is not None:\n", " assert last_pub_time <= t+d, \"Publication out of CB instance timeframe\"\n", "\n", " match cb.owner:\n", " case TrTimer():\n", " tmr_cb_calc_time += d\n", " tmr_cb_relevant_time += last_pub_time - t\n", " case TrSubscriptionObject():\n", " sub_cb_calc_time += d\n", " sub_cb_relevant_time += last_pub_time - t\n", " elif last_cb_time is not None:\n", " idle_time += last_cb_time - (t + d)\n", " last_pub_time = None\n", " last_cb_time = t\n", "\n", " dict_safe_append(time_breakdown, \"Timer CB\", tmr_cb_relevant_time)\n", " dict_safe_append(time_breakdown, \"Subscription CB\", sub_cb_relevant_time)\n", " dict_safe_append(time_breakdown, \"DDS\", dds_time)\n", " dict_safe_append(time_breakdown, \"Idle\", idle_time)\n", "\n", "time_breakdown = {k: np.array(v) for k, v in time_breakdown.items()}\n", "\n", "timer_cb_times = [sum(inst.duration for inst in path if isinstance(inst, TrCallbackInstance) and isinstance(inst.callback_obj, TrTimer)) for path in critical_paths]\n", "sub_cb_times = [sum(inst.duration for inst in path if isinstance(inst, TrCallbackInstance)) for path in critical_paths]\n", "\n", "labels, values = list(zip(*time_breakdown.items()))\n", "\n", "#ax.plot(range(len(relevant_trees[::DS])), [e2e_lat(tree) for tree in relevant_trees[::DS]], label=\"Total E2E\")\n", "ax.stackplot(range(len(relevant_trees[::DS])), values, labels=labels)\n", "ax.legend()\n", "ax.set_title(\"End-to-End Latency Breakdown\")\n", "ax.set_ylabel(\"End-to-End Latency [s]\")\n", "\n", "timestep_mags = np.array([sum(vs) for vs in zip(*values)])\n", "ax_rel.stackplot(range(len(relevant_trees[::DS])), [val / timestep_mags for val in values], labels=labels)\n", "ax_rel.set_title(\"End-to-End Latency Breakdown (relative)\")\n", "ax_rel.set_ylabel(\"End-to-End Latency Fraction\")\n", "ax_rel.set_xlabel(\"Timestep\")\n", "ax_rel.legend()\n", "\n", "None" ] }, { "cell_type": "code", "execution_count": 34, "metadata": { "pycharm": { "name": "#%%\n" } }, "outputs": [ { "data": { "text/plain": [ "'Skipped (evaluated E2E_PLOT to False)'" ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" } ], "source": [ "%%skip_if_false E2E_ENABLED\n", "%%skip_if_false E2E_PLOT\n", "\n", "from scipy import stats\n", "\n", "fig, ax = plt.subplots(figsize=(60, 15), num=\"crit_pdf\")\n", "ax.set_prop_cycle(cycler('color', [plt.cm.nipy_spectral(i/4) for i in range(5)]))\n", "\n", "#kde = stats.gaussian_kde(timestep_mags)\n", "#xs = np.linspace(timestep_mags.min(), timestep_mags.max(), 1000)\n", "#ax.plot(xs, kde(xs), label=\"End-to-End Latency\")\n", "#perc = 90\n", "#ax.axvline(np.percentile(timestep_mags, perc), label=f\"{perc}th percentile\")\n", "\n", "#ax2 = ax.twinx()\n", "#ax2.hist(timestep_mags, 200)\n", "#ax2.set_ylim(0, ax2.get_ylim()[1])\n", "\n", "ax.set_title(\"Time Distribution for E2E Breakdown\")\n", "ax.set_xlabel(\"Time [s]\")\n", "ax.set_ylabel(\"Frequency\")\n", "ax.set_xlim(0, 2.01)\n", "ax.set_ylim(0, ax.get_ylim()[1])\n", "ax.legend()\n", "\n", "None" ] }, { "cell_type": "code", "execution_count": 35, "metadata": { "pycharm": { "name": "#%%\n" } }, "outputs": [ { "data": { "text/plain": [ "'Skipped (evaluated E2E_PLOT to False)'" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ "%%skip_if_false E2E_ENABLED\n", "%%skip_if_false E2E_PLOT\n", "\n", "from tracing_interop.tr_types import TrSubscription\n", "from matching.subscriptions import sanitize\n", "import matplotlib.patches as mpatch\n", "from matplotlib.text import Text\n", "import math\n", "\n", "tree = trees[E2E_PLOT_TIMESTAMP]\n", "e2es = e2ess[E2E_PLOT_TIMESTAMP]\n", "e2e_paths = e2e_pathss[E2E_PLOT_TIMESTAMP]\n", "margin_y = .2\n", "margin_x=0\n", "arr_width= 1 - margin_y\n", "\n", "def cb_str(inst: TrCallbackInstance):\n", " cb: TrCallbackObject = inst.callback_obj\n", " if not cb:\n", " return None\n", " ret_str = f\"- {inst.duration*1e3:07.3f}ms \"\n", " #if cb.callback_symbol:\n", " # ret_str = repr(sanitize(cb.callback_symbol.symbol))\n", "\n", " match cb.owner:\n", " case TrSubscriptionObject(subscription=sub):\n", " sub: TrSubscription\n", " ret_str = f\"{ret_str}{sub.node.path if sub.node else None} <- {sub.topic_name}\"\n", " case TrTimer(period=p, node=node):\n", " p: int\n", " node: TrNode\n", " ret_str = f\"{ret_str}{node.path if node else None} <- @{1/(p*1e-9):.2f}Hz\"\n", " return ret_str\n", "\n", "\n", "def ts_str(inst, prev):\n", " return f\"{(inst.timestamp - prev)*1e3:+09.3f}ms\"\n", "\n", "def bw_str(bw):\n", " return bytes_str(bw['mean'])\n", "\n", "def trunc_chars(string, w, e2e):\n", " if w < e2e * .005:\n", " return \"\"\n", " n_chars = max(math.floor(w / (e2e * .17) * 65) - 5, 0)\n", " if n_chars < 4:\n", " return \"\"\n", "\n", " return \"...\" + string[-n_chars:] if n_chars < len(string) else string\n", "\n", "#e2e_paths = sorted(e2e_paths, key=lambda path: path[-1].timestamp - path[0].timestamp, reverse=True)\n", "#for y, e2e_path in reversed(list(enumerate(e2e_paths))):\n", "# last_pub_ts = None\n", "# last_cb_end = None\n", "# print(f\"=== {y}:\")\n", "# for inst in e2e_path:\n", "\n", "#tree = sort_subtree(get_relevant_tree(tree, _leaf_filter))\n", "\n", "t_start = tree.head.timestamp\n", "t_min = t_start - e2e_lat(tree)\n", "t_e2e = t_start - t_min\n", "\n", "legend_entries = {}\n", "\n", "def plot_subtree(subtree: DepTree, ax: plt.Axes, y_labels, y=0, next_cb_start=0):\n", " height = fanout(subtree)\n", " inst = subtree.head\n", "\n", " match inst:\n", " case TrCallbackInstance(timestamp=t_cb, duration=d_cb):\n", " is_sub = isinstance(inst.callback_obj.owner, TrSubscriptionObject)\n", "\n", " r_x = t_cb - t_start + margin_x / 2\n", " r_y = y + margin_y / 2\n", " r_w = max(d_cb - margin_x, 0)\n", " r_h = height - margin_y\n", "\n", " r = mpatch.Rectangle((r_x, r_y), r_w, r_h,\n", " ec=\"cadetblue\" if is_sub else \"indianred\", fc=\"lightblue\" if is_sub else \"lightcoral\", zorder=9000)\n", " ax.add_artist(r)\n", "\n", " text = repr(sanitize(inst.callback_obj.callback_symbol.symbol)) if inst.callback_obj and inst.callback_obj.callback_symbol else \"??\"\n", " text = trunc_chars(text, r_w, t_e2e)\n", " if text:\n", " ax.text(r_x + r_w / 2, r_y + r_h / 2, text, ha=\"center\", va=\"center\", backgroundcolor=(1,1,1,.5), zorder=11000)\n", "\n", " if is_sub and \"Subscription CB\" not in legend_entries:\n", " legend_entries[\"Subscription CB\"] = r\n", " elif not is_sub and \"Timer CB\" not in legend_entries:\n", " legend_entries[\"Timer CB\"] = r\n", "\n", " if next_cb_start is not None:\n", " r_x = t_cb - t_start + d_cb - margin_x / 2\n", " r_y = y + .5 - arr_width/2\n", " r_w = next_cb_start - (t_cb + d_cb) + margin_x\n", " r_h = arr_width\n", " r = mpatch.Rectangle((r_x, r_y), r_w, r_h, color=\"orange\")\n", " ax.add_artist(r)\n", "\n", " if is_sub:\n", " node = inst.callback_obj.owner.subscription.node\n", " else:\n", " node = inst.callback_obj.owner.node\n", " text = node.path\n", "\n", " text = trunc_chars(text, r_w, t_e2e)\n", " if text:\n", " ax.text(r_x + r_w / 2, r_y + r_h / 2, text, ha=\"center\", va=\"center\", backgroundcolor=(1,1,1,.5), zorder=11000)\n", "\n", " if \"Idle\" not in legend_entries:\n", " legend_entries[\"Idle\"] = r\n", "\n", " next_cb_start = t_cb\n", " case TrPublishInstance(timestamp=t_pub, publisher=pub):\n", " if not subtree.deps:\n", " y_labels.append(pub.topic_name if pub else None)\n", "\n", " scatter = ax.scatter(t_pub - t_start, y+.5, color=\"cyan\", marker=\".\", zorder=10000)\n", "\n", " if \"Publication\" not in legend_entries:\n", " legend_entries[\"Publication\"] = scatter\n", "\n", " if next_cb_start is not None:\n", " r_x = t_pub - t_start\n", " r_y = y + .5 - arr_width/2\n", " r_w = max(next_cb_start - t_pub + margin_x / 2, 0)\n", " r = mpatch.Rectangle((r_x, r_y), r_w, arr_width, color=\"lightgreen\")\n", " ax.add_artist(r)\n", " if pub:\n", " text = pub.topic_name\n", " text = trunc_chars(text, r_w, t_e2e)\n", " if text:\n", " ax.text(r_x + r_w / 2, r_y + arr_width / 2, text, ha=\"center\", va=\"center\", backgroundcolor=(1,1,1,.5), zorder=11000)\n", "\n", " if \"DDS\" not in legend_entries:\n", " legend_entries[\"DDS\"] = r\n", "\n", " topic_stats = msg_sizes.get(pub.topic_name) if BW_ENABLED else None\n", " if topic_stats:\n", " size_str = bw_str(topic_stats)\n", " ax.text(r_x + r_w / 2, r_y + arr_width + margin_y, size_str, ha=\"center\", backgroundcolor=(1,1,1,.5), zorder=11000)\n", " else:\n", " print(\"[WARN] Tried to publish to another PublishInstance\")\n", " next_cb_start = None\n", "\n", " acc_fanout = 0\n", " for dep in subtree.deps:\n", " acc_fanout += plot_subtree(dep, ax, y_labels, y + acc_fanout, next_cb_start)\n", " return height\n", "\n", "\n", "\n", "fig, ax = plt.subplots(figsize=(36, 20), num=\"path_viz\")\n", "ax.set_ylim(0, len(e2es))\n", "\n", "y_labels = []\n", "plot_subtree(tree, ax, y_labels)\n", "\n", "tree_e2e = e2e_lat(tree)\n", "plot_margin_x = .01 * tree_e2e\n", "ax.set_xlim(-tree_e2e - plot_margin_x, plot_margin_x)\n", "ax.set_yticks(np.array(range(len(y_labels))) + .5, y_labels)\n", "ax.set_title(f\"Timestep {E2E_PLOT_TIMESTAMP}: {(tree.head.timestamp - trees[0].head.timestamp):10.6f}s\")\n", "ax.set_xlabel(\"Time relative to output message [s]\")\n", "ax.set_ylabel(\"Start topic\")\n", "\n", "labels, handles = list(zip(*legend_entries.items()))\n", "ax.legend(handles, labels)\n", "print(len(y_labels))" ] }, { "cell_type": "markdown", "metadata": { "pycharm": { "name": "#%% md\n" } }, "source": [ "# Find Top Critical Paths\n", "\n", "For each message tree, find its critical path and runner-up candidates. Then, for the whole timeseries, find the top critical paths by occurence count.\n", "Critical paths are abstracted by their E2E-latency and a list of passed CBs and topics.\n" ] }, { "cell_type": "code", "execution_count": 36, "metadata": { "pycharm": { "name": "#%%\n" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "100%|█████████████████████████████████████████████| 1/1 [00:00<00:00, 83.44it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "======== 1x: 5092.585ms\n", " -> \u001b[35m101.022ms\u001b[0m /map/vector_map\n", " -> \u001b[33m42.454ms\u001b[0m void(mission_planner::MissionPlannerLanelet2)(autoware_auto_mapping_msgs::msg::HADMapBin)\n", " -> \u001b[32m1.466ms\u001b[0m void(mission_planner::MissionPlanner)(geometry_msgs::msg::PoseStamped)\n", " -> \u001b[32m1.153ms\u001b[0m /planning/mission_planning/route\n", " -> \u001b[32m0.050ms\u001b[0m void(behavior_path_planner::BehaviorPathPlannerNode)(autoware_auto_planning_msgs::msg::HADMapRoute)\n", " -> \u001b[32m3.374ms\u001b[0m void(behavior_path_planner::BehaviorPathPlannerNode)()\n", " -> \u001b[32m2.681ms\u001b[0m /planning/scenario_planning/lane_driving/behavior_planning/path_with_lane_id\n", " -> \u001b[32m8.293ms\u001b[0m void(behavior_velocity_planner::BehaviorVelocityPlannerNode)(autoware_auto_planning_msgs::msg::PathWithLaneId)\n", " -> \u001b[32m2.795ms\u001b[0m /planning/scenario_planning/lane_driving/behavior_planning/path\n", " -> \u001b[32m1.711ms\u001b[0m void(ObstacleAvoidancePlanner)(autoware_auto_planning_msgs::msg::Path)\n", " -> \u001b[32m0.173ms\u001b[0m /planning/scenario_planning/lane_driving/motion_planning/obstacle_avoidance_planner/trajectory\n", " -> \u001b[32m0.580ms\u001b[0m void(motion_planning::ObstacleStopPlannerNode)(autoware_auto_planning_msgs::msg::Trajectory)\n", " -> \u001b[32m0.776ms\u001b[0m /planning/scenario_planning/lane_driving/trajectory\n", " -> \u001b[32m0.005ms\u001b[0m void(ScenarioSelectorNode)(autoware_auto_planning_msgs::msg::Trajectory)\n", " -> \u001b[32m0.877ms\u001b[0m /planning/scenario_planning/scenario_selector/trajectory\n", " -> \u001b[32m11.947ms\u001b[0m void(motion_velocity_smoother::MotionVelocitySmootherNode)(autoware_auto_planning_msgs::msg::Trajectory)\n", " -> \u001b[32m0.248ms\u001b[0m /planning/scenario_planning/trajectory\n", " -> \u001b[32m0.001ms\u001b[0m void(autoware::motion::control::trajectory_follower_nodes::Controller)(autoware_auto_planning_msgs::msg::Trajectory)\n", " -> \u001b[32m2.186ms\u001b[0m void(autoware::motion::control::trajectory_follower_nodes::Controller)()\n", " -> \u001b[32m0.000ms\u001b[0m /control/trajectory_follower/control_cmd\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\n", "/tmp/ipykernel_9555/3745443004.py:37: FutureWarning: The frame.append method is deprecated and will be removed from pandas in a future version. Use pandas.concat instead.\n", " out_df.append(path_records)\n" ] } ], "source": [ "%%skip_if_false E2E_ENABLED\n", "\n", "from termcolor import colored\n", "from tqdm import tqdm\n", "from matching.subscriptions import sanitize\n", "\n", "critical_paths = {}\n", "print(len(relevant_trees))\n", "for tree in tqdm(trees):\n", " crit = critical_path(tree)\n", "\n", " def _owner(inst):\n", " match inst:\n", " case TrCallbackInstance(callback_obj=cb_obj):\n", " cb_obj: TrCallbackObject\n", " if cb_obj and cb_obj.callback_symbol:\n", " sym = repr(sanitize(cb_obj.callback_symbol.symbol))\n", " else:\n", " sym = str(cb_obj.id)\n", " return sym\n", " case TrPublishInstance(publisher=pub):\n", " pub: TrPublisher\n", " topic = pub.topic_name\n", " return topic\n", " case _:\n", " raise ValueError()\n", "\n", " key = tuple(map(_owner, crit[::-1]))\n", " if key not in critical_paths:\n", " critical_paths[key] = []\n", " critical_paths[key].append(crit)\n", "\n", "items = list(critical_paths.items())\n", "items.sort(key=lambda pair: len(pair[1]), reverse=True)\n", "\n", "out_df = pd.DataFrame(columns=[\"path\", \"timestamp\", \"e2e_latency\"])\n", "for key, paths in items:\n", " path_records = [(\" -> \".join(key), p[0].timestamp, p[0].timestamp - p[-1].timestamp) for p in paths]\n", " out_df.append(path_records)\n", " print(f\"======== {len(paths)}x: {sum(map(lambda p: p[0].timestamp - p[-1].timestamp, paths))/len(paths)*1000:.3f}ms\")\n", " paths_durations = []\n", " for path in paths:\n", " next_inst = None\n", " durations = []\n", " for inst in path:\n", " match inst:\n", " case TrCallbackInstance(timestamp=t, duration=d):\n", " if not next_inst:\n", " durations.append(d)\n", " else:\n", " durations.append(min(d, next_inst.timestamp - t))\n", " case TrPublishInstance(timestamp=t):\n", " if not next_inst:\n", " durations.append(0.0)\n", " else:\n", " durations.append(next_inst.timestamp - t)\n", " case _:\n", " raise ValueError()\n", " next_inst = inst\n", " paths_durations.append(durations)\n", "\n", " durations = list(map(lambda l: sum(l) / len(l), zip(*paths_durations)))[::-1]\n", " assert len(durations) == len(key)\n", " perc = np.percentile(durations, [70, 90, 95, 100])\n", " colors = [\"green\", \"yellow\", \"red\", \"magenta\"]\n", " for part, duration in zip(key, durations):\n", " E2E_PLOT_TIMESTAMP = 0\n", " for j, p in enumerate(perc):\n", " if duration < p:\n", " break\n", " E2E_PLOT_TIMESTAMP = j\n", " dur_str = colored(f\"{duration * 1000 :>.3f}ms\", colors[E2E_PLOT_TIMESTAMP])\n", " print(f\" -> {dur_str} {part}\")\n", "\n", "out_df.to_csv(os.path.join(OUT_PATH, \"e2e.csv\"), sep=\"\\t\")" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [] } ], "metadata": { "interpreter": { "hash": "e7370f93d1d0cde622a1f8e1c04877d8463912d04d973331ad4851f04de6915a" }, "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.4" } }, "nbformat": 4, "nbformat_minor": 2 }