Assisted Highway Lane Changing with RASCL

Todd Sullivan, Rich Frankel, Olafur Gudmundsson, Brett Miller, Jordan Potter, Salik Syed
Stanford Department of Computer Science

Doreen Hoang, Jae min John, Ki-Shui Liao, Pasha Nahass, Amanda Schwab, Jessica Yuan
Stanford Department of Communication

Robotic Assistance System for Changing Lanes (RASCL) is a system built on top of the Junior platform (Stanford's entry into the 2007 DARPA Urban Challenge). It is designed to assist drivers in changing lanes on highways. It uses cutting-edge technology in localization and perception to identify and track cars at high speeds, determine if changing lanes to either side is safe, and communicate this information to the driver using a variety of audio and visual interfaces. RASCL can also provide speed change recommendations that are likely to turn an unsafe lane change situation into a safe situation and can automatically control the turn signal when the driver forgets to use it.

RASCL was developed as part of Stanford's research project course CS 294A, Robotic Cars for Real People. I led the team of engineers, was the sole architect/developer of the car detection and tracking module, and played a significant role in most other parts of the system. Our work was published in the Proceedings of the AAAI 2010 Spring Symposium.

Technical Report

Member Contributions

The Computer Science Member Contributions PDF above lists the primary contributions of each CS member of the team. These contributions were not the original tasks assigned to each group member, but were the end result due to each member's abilities and other issues. The list of primary contributions is reproduced below:

  • Rich Frankel

    • Situation Model for final demo. (100%)
      • Includes speed change recommendations and a fix to the “two lanes over problem”. These are not present in the earlier situation models.
    • For his joint CS 221 project:
      • LaneChangePredictor: Uses Salik’s ExtractFeatures to generate features for each car in a given frame. Uses OpenCV to train various classifiers for predicting a lane change. Includes all testing routines for evaluating classifier performance.
    • Took the final technical report, submitted it for the AAAI 2010 Spring Symposium, responded to reviewers' comments, and gave the presentation at the symposium. (100%)
  • Olafur Gudmundsson

    • lc_control_turn_signal: Created the program for autonomous turn signal control when the driver forgets to use the turn signal. (100%)
    • CarPerspective: Takes a list of cars as input and allows you to see the situation relative to any car in the list. Primarily for extracting features for lane change predictions. (100%)
    • RNDFManagerMT (50%)
  • Brett Miller

    • lc_new_sound: Created the program that plays sounds out of one or both speaker channels. Allows sound playback requests to define repeat rates and the number of repetitions for the sound. (100%)
    • lc_control: Created the program that displays everything on the LCD screen and takes input from the control wheel. The program rocked so hard that the steering group copied it. =) (100%)
    • RNDFManagerMT (50%)
    • Situation Model for first demo (33%)
    • lc_can for outputting the turn signal message (100%), lc_logger for logging the turn signal message (10%), soldered the LEDs to the wires (100%)
  • Jordan Potter

    • lc_hci, lc_sound, lc_led: Created the programs for turning the LEDs on/off and sending the sound messages to the sound controller. (100%)
    • lc_playback (50%), lc_logger (30%)
    • lc_woz: The “wizard of oz” program for the Comm students. Allows the user to manually set the turn signal and safety status for each side. Outputs the messages on IPC as if it is happening on the car. (100%)
    • Situation Model for first demo (33%)
    • Bought LEDs and assembled LED system. (100%)
  • Todd Sullivan

    • Car detection and tracking (100%)
    • Situation Model for first demo (33%), Situation Model for midterm demo (100%)
    • Created helper classes used by almost all programs such as ApplanixHistory, LocalizeHistory, CoordinateSystems, LaneMapper, and RNDFManagerST. The history classes keep track of applanix/localize histories and will return the pose closest to any given timestamp. CoordinateSystems will convert points between the three coordinate systems relative to any given timestamp. LaneMapper will return a lane ID relative to an origin point where the same lane has an ID of 0, lanes to the left are positive starting at 1, and lanes to the right are negative starting at -1. (100%)
    • Ran the system for all of the user studies and extracted metrics from all user study logs. (100%)
    • Ported Anya’s code to the new system (100%), all visualizations in lc_perception_view (100%), lc_playback (50%), lc_logger (60%), lc_log_analyzer (100%), and countless other things. =)
  • Salik Syed

    • lc_localize: Modified localize_rndf to work better on the highway. (100%)
    • For his joint CS 221 project:
      • lc_logcar_behavior: For each car list published when playing back a log file, writes a history frame to a file. The history frame contains the car list, applanix/localize poses closest to the timestamp, and for each car in the car list, the number of seconds into the future of the car’s next lane change.
      • ExtractFeatures: Reads history frames from a file and uses Olafur’s CarPerspective to create a set of features for each car in each frame.
  • Pasha Nahass

    • Built a simulator course for testing people’s lane changing using the STISIM programming language. (100%)
    • Created a Java program that allows “wizard of ozzing” for the simulator course. So the tester can sit behind the user and change the safety status, etc. (100%)
    • Ran all the pilot studies on the simulator doing the actual wizard of ozzing. (100%)
    • Ran 75% of the subjects on the in-Junior user study.
    • Performed the user study statistical analyses jointly with Cliff, Jae min, and Jessica. Wrote 20% of the user test/study plan and 50% of the questionnaires, patent disclosure for the Protocol Chief, and Comm paper.