Skip to content
This repository was archived by the owner on Nov 16, 2023. It is now read-only.

Latest commit

 

History

History
326 lines (221 loc) · 19.9 KB

File metadata and controls

326 lines (221 loc) · 19.9 KB

Planned architecture of vehicle agent

Summary: This page gives an overview over the planned general architecture of the vehicle agent. The document contains an overview over all nodes and topics.


Authors

Marco Riedenauer, Simon Erlbacher, Julian Graf

Date

25.11.2022


Overview

The vehicle agent is split into three major components: Perception, Planning and Acting. A separate node is responsible for the visualization. The topics published by the Carla bridge can be found here. The msgs necessary to control the vehicle via the Carla bridge can be found here

Architecture overview The miro-board can be found here.

Perception

The perception is responsible for the efficient conversion of raw sensor and map data into a useful environment representation that can be used by the Planning for further processing.

Further information regarding the perception can be found here.

Obstacle Detection and Classification

Evaluates sensor data to detect and classify objects around the ego vehicle. Other road users and objects blocking the vehicle's path are recognized. The node classifies objects into static and dynamic objects. In the case of dynamic objects, an attempt is made to recognize the direction and speed of movement.

Subscriptions:

Publishes:

Lane detection

Detects the lane the ego vehicle is currently in and the lanes around the ego vehicle. This data can be used for lane keeping, to identify which lanes other road users are in, and to plan and execute lane changes.

Subscriptions:

Traffic Light Detection

Recognizes traffic lights and what they are showing at the moment. In particular traffic lights that are relevant for the correct traffic behavior of the ego vehicle, are recognized early and reliably.

Subscriptions:

Publishes:

Traffic Signs Detection

Recognizes traffic signs. In particular traffic signs that are relevant for the correct traffic behavior of the ego vehicle, are recognized early and reliably.

Subscriptions:

Publishes:

Prediction

Tries to predict the movement of dynamic objects recognized in the Obstacle Detection and Classification.

Subscriptions:

Publishes:

Localization

Provides corrected accurate position, direction and speed of the ego vehicle

Subscriptions:

Publishes:

Planning

The planning uses the data from the Perception to find a path on which the ego vehicle can safely reach its destination

Further information regarding the planning can be found here.

Preplanning

Uses information from the map and the path specified by CARLA to find a first concrete path to the next intermediate point. Information from Obstacle Detection, Prediction etc. is not yet taken into account.

Subscriptions:

Publishes:

Decision Making

Checks whether the path from Preplanning actually can be taken. If the data from the Perception indicates that the path needs to be adjusted, this node decides which actions to take. Based on this decision, the Local path planning plans a new path accordingly.

Subscriptions:

Publishes:

Local path planning

Translates the decisions made by the Decision Making into a concrete path. Can publish the distance to the vehicle in front to use the Path following's adaptive cruise control.

Subscriptions:

Publishes:

Acting

The job of this component is to translate the trajectory planned by the Planning component into steering controls for the vehicle. This node only takes on tasks that have lower computing time, so that a fast response of the component is ensured.

Further information regarding the acting can be found here.

Path following

Calculates steering angles that keep the ego vehicle on the path given by the Local path planning.

Subscriptions:

Publishes:

Velocity control

Calculates velocity inputs to drive the velocity given by the Local path planning. If the node is given the distance to a car to follow, it reduces the velocity of the ego vehicle to hold a reasonable distance to the vehicle in front.

Subscriptions:

Publishes:

Vehicle controller

Decides which steering controller to use and assembles CarlaEgoVehicleControl.msg.

Subscriptions:

  • throttle, brake, reverse
  • steer

Publishes:

Emergency

Initiates emergency braking if an emergency-msg is received and notifies all notes when emergency braking is over.

Subscriptions:

Publishes:

Visualization

Visualizes outputs of certain nodes to provide a basis for debugging.

Subscriptions:

  • all data that's needed

Topics

The topics published by the Carla bridge can be found here. The msgs necessary to control the vehicle via the Carla bridge can be found here

Intern topics published by vehicle agent:

Topic Description Published by Msg type
obstacles Obstacles and their classifications Obstacle Detection Custom msg: obstacle (vision_msgs/Detection3DArray Message) and its classification (std_msgs/String Message)
lanes Lanes surrounding vehicle Lane detection derived_object_msgs/LaneModels Message
traffic_lights Traffic lights and their status Traffic Light Detection Custom msg: state (std_msgs/UInt8 Message), position (geometry_msgs/Pose Message), distance_to_stop_line (std_msgs/Float64 Message)
predictions Expected future movement of dynamic obstacles Prediction node Custom msg: array of vehicle_id (std_msgs/UInt16 Message) and vehicle_path (nav_msgs/Path Message)
ego_position Corrected accurate position, direction and speed of the ego vehicle Localization nav_msgs/Odometry Message
provisional_path First concrete path to the next intermediate point Preplanning nav_msgs/Path Message
decision Decision to alter provisional_path Decision Making std_msgs/String
path Improved provisional_path path for the ego vehicle to follow Local path planning nav_msgs/Path Message
max_velocity Maximal velocity the ego vehicle should drive in m/s Local path planning std_msgs/Float64 Message
distance_to_next_vehicle Distance to the vehicle the Velocity control should keep a certain distance to (in m) Local path planning std_msgs/Float64 Message
emergency True if emergency is triggered; false indicates that emergency is over any note std_msgs/Bool Message