Intersection Manager

Maintained by Pranav Boyapati

Overview

A ROS Node that uses various preprocessed data from the car’s sensors to determine actions to take when driving through an intersection.


In:

  • /traffic_light/detections TrafficLightDetection
    • Receives information about the upcoming traffic light(s).
  • /road_signs/detections RoadSignsDetection
    • Receives information about upcoming road signs
  • /planning/path Path
    • Receives information about the path the car will be following
  • /speed CarlaSpeedometer
    • Receives the speed at which the car is currently traveling
  • /grid/occupancy/current OccupancyGrid
    • Receives information about the current occupancy of the surroundings
  • /lane_types/detections AllLaneDetections
    • Receives information about the types of lanes on the road

Out:

  • /intersection IntersectionBehavior
    • Publishes a string of text about what action to take for proceeding through the intersection.

laneTypeCallback(self, msg: AllLaneDetections)

Takes in a message of type AllLaneDetections and extracts lane type information

occupancyCallback(self, msg: OccupancyGrid)

Takes in a message of type OccupancyGrid and extracts information about the occupancy of the surroundings

trafficLightCallback(self, msg: TrafficLightDetection)

Takes in a message of type TrafficLightDetection and extracts traffic light information

roadSignsCallback(self, msg: RoadSignsDetection)

Takes in a message of type RoadSignsDetection and extracts road sign information

routeCallback(self, msg: Path)

Takes in a message of type Path and extracts information about the route the car will follow

speedCallback(self, msg: CarlaSpeedometer)

Takes in a message of type CarlaSpeedometer and extracts information about the vehicle’s speed

classify_intersection_type(self)

Uses traffic light, road sign, and occupancy grid information to determine whether an intersection is traffic light controlled, stop sign controlled, or is a roundabout

Uses information about the traffic light and current speed to determine behavior to follow at this type of intersection

Uses information about the road signs, speed, and occupancy to determine behavior to follow at this type of intersection

Uses information about the road signs, speed, and occupancy to determine behavior to follow at this type of intersection

This function serves as a control structure that calls other functions as necessary based on various conditions