![]() |
---|
Running Instructions |
In this project, we'll be writing ROS nodes to implement core functionality of the autonomous vehicle system, including traffic light detection, control, and waypoint following! We will test our code using a simulator that mimics the functionality on Carla.
This package contains the traffic light detection node: tl_detector.py
. This node takes in data from the /image_color
, /current_pose
, and /base_waypoints
topics and publishes the locations to stop for red traffic lights to the /traffic_waypoint
topic.
The /current_pose
topic provides the vehicle's current position, and /base_waypoints
provides a complete list of waypoints the car will be following.
This package contains the waypoint updater node: waypoint_updater.py
. The purpose of this node is to update the target velocity property of each waypoint based on traffic light and obstacle detection data. This node will subscribe to the /base_waypoints
, /current_pose
, /obstacle_waypoint
, and /traffic_waypoint
topics, and publish a list of waypoints ahead of the car with target velocities to the /final_waypoints
topic.
Carla is equipped with a drive-by-wire (dbw) system, meaning the throttle, brake, and steering have electronic control. This package contains the files that are responsible for control of the vehicle: the node dbw_node.py
and the file twist_controller.py
, along with a pid and lowpass filter that you can use in our implementation. The dbw_node subscribes to the /current_velocity
topic along with the /twist_cmd
topic to receive target linear and angular velocities.
Additionally, this node will subscribe to /vehicle/dbw_enabled
, which indicates if the car is under dbw or driver control. This node will publish throttle, brake, and steering commands to the /vehicle/throttle_cmd
, /vehicle/brake_cmd
, and /vehicle/steering_cmd
topics.
A package that contains a server for communicating with the simulator, and a bridge to translate and publish simulator messages to ROS topics.
A package which includes definitions of the custom ROS message types used in the project.
A package which loads the static waypoint data and publishes to /base_waypoints
.
A package containing code from Autoware which subscribes to /final_waypoints
and publishes target vehicle linear and angular velocities in the form of twist commands to the /twist_cmd
topic.
- https://www.udacity.com/course/self-driving-car-engineer-nanodegree--nd013
- http://ais.informatik.uni-freiburg.de/teaching/ss18/robotics/index_en.php
- https://github.com/snandasena/path-plnaning-n-localization
- https://thinkautonomous.medium.com/
- http://wiki.ros.org/kinetic/Installation
- https://github.com/gabfec/CarND-Capstone
- https://rsl.ethz.ch/education-students/lectures/ros.html
Big thank you to Udacity for providing the template code and simulator for this project.