tum_rtc_handler is a ROS 2 node that connects vehicle lane-change assist signals with Autoware RTC (Request To Cooperate) lane-change requests.
It automatically approves safe RTC lane-change requests when the corresponding assist signal is inactive. When needed, it can also force manual behavior by disabling RTC auto mode per lane-change module.
- Uses CAN-based lane-change assist states with Autoware RTC handling.
- Auto-approves safe lane-change requests when policy allows it.
- Supports a manual override mode for stricter operation.
- Simple launch and parameter-based integration.
At runtime, the node:
- Listens to RTC status messages from Autoware.
- Listens to left and right lane-change assist state topics.
- Checks each safe lane-change RTC request.
- Optionally disables RTC auto mode when configured.
- Sends an approval command unless the matching assist signal is active.
In short, this package acts as a policy layer that decides when lane-change RTC requests should be approved automatically.
Use this package as part of the TUM Autoware stack to integrate EDGAR CAN lane-change assist states into RTC decision handling.
This package can also be adapted for other Autoware projects if equivalent interfaces are available:
- RTC status topic: tier4_rtc_msgs/msg/CooperateStatusArray
- RTC command service: tier4_rtc_msgs/srv/CooperateCommands
- RTC auto mode service: tier4_rtc_msgs/srv/AutoModeWithModule
- Left/right lane-change assist topics: std_msgs/msg/Bool
If your topic or service names differ, remap them in your launch setup.
This node has been tested and validated within the TUM Autoware fork based on Autoware version 0.41.
Using it with other Autoware versions or custom forks may require additional interface or behavior validation.
- /api/external/get/rtc_status (tier4_rtc_msgs/msg/CooperateStatusArray)
- /edgar/can/lane_change_assist_left_state (std_msgs/msg/Bool)
- /edgar/can/lane_change_assist_right_state (std_msgs/msg/Bool)
- /api/external/set/rtc_commands (tier4_rtc_msgs/srv/CooperateCommands)
- /api/external/set/rtc_auto_mode (tier4_rtc_msgs/srv/AutoModeWithModule)
The current implementation interprets RTC module type values as:
- 1: lane change left
- 2: lane change right
All other module types are ignored currently.
Parameter definitions are generated from param/tum_rtc_handler_parameters.yaml.
- enable_debug (bool, default: false)
- Enables detailed debug and info logging.
- force_manual_mode (bool, default: false)
- If true, disables RTC auto mode for lane-change modules before approval.
The runtime parameter file used by the launch file is:
- config/tum_rtc_handler.param.yaml
From the Autoware workspace root:
colcon build --packages-select tum_rtc_handlerros2 launch tum_rtc_handler tum_rtc_handler.launch.pyLaunch arguments:
- node_name (default: tum_rtc_handler)
- tum_rtc_handler_param_path (default: package config file)
Example with a custom parameter file:
ros2 launch tum_rtc_handler tum_rtc_handler.launch.py \
tum_rtc_handler_param_path:=/path/to/your.param.yamlFor each incoming RTC status entry, the node:
- skips entries that are not marked safe,
- processes only lane-change module types (1 left, 2 right),
- optionally disables auto mode when configured,
- skips approval when the corresponding lane-change assist state is true,
- sends an ALLOW cooperate command otherwise.
Before deployment, verify the following:
- Topic and service names match your system or are remapped correctly.
- Lane-change module type IDs match your RTC configuration.
- force_manual_mode is set according to your operational policy.
- QoS settings are compatible with your RTC and CAN bridge publishers/subscribers.
Core ROS dependencies:
- rclcpp
- std_msgs
- geometry_msgs
- tier4_rtc_msgs
- generate_parameter_library
- Marvin Seegert (@marvsee)
- Christian Oefinger (@coefinger)
- Korbinian Moller (@korbinianmoller)
- David Brecht (@David-Brecht)
Contact: marvin.seegert@tum.de
MIT License - Copyright 2026 TU Munich
