This repository contains code for an autonomous smallscale truck with wireless inductive charging. It is part of our autonomous vehicle project and contains code for three different path following methods:
- SLAM with Pure Pursuit (and Stanley steering) steering controller
- Supervised Deep Learning steering controller with OpenCV
- Lane Detector with steering controller (PID) and OpenCV
- Ackermann Messages
The system is based on Ubuntu 16.04 with ROS Kinetic running on a Nvidia Jetson TX2. The truck itself is controlled by a Teensy 3.2 microcontroller. Other components used are the RPlidar A2M8 lidar and the Logitech C922 webcam.
To start the autonomous system, type:
$ roslaunch car_cmd run.launch | Folder | Functionality |
|---|---|
| Teensy | Contains the code for the Teensy microcontroller |
| ackermann_odom | Estimates odometry for Ackermann vehicle with IMU |
| aruco_detector | For detecting ArUco markers with camera, also contains generator |
| can_charger_node | ROS CAN bus interface for Jetson TX2 |
| car_cmd | Central node for publishing car commands to microcontroller |
| car_gui | Graphical User Interface for status overviews |
| car_setup_tf | TF broadcaster (base_link to laser) |
| cv_lanetracker | OpenCV Lane Detector for center offset measure |
| dnn_simulator | Deep Learning controller for Udacity Simulator, with trainer |
| dnn_steering_node | Deep Learning steering controller, also contains trainer and data logger |
| esc_vel_pub | Estimates velocity from controller command (sensorless) |
| heartbeat_broadcaster | Publishes alive msgs to microcontroller |
| path_trackers | Pure Pursuit and Stanley steering controllers |
| rosbag_resampler | Script for resampling a rosbag that has topics publishing at different sample rates |
| rplidar_pwm_ros | Modified RPlidar ROS node with PWM motor control (https://github.com/davidbsp/rplidar_ros) |
| waypoint_logger | ROS node for recording a new path |
| Name | Link |
|---|---|
| ROS Kinetic | https://www.ros.org/ |
| Hector SLAM | http://wiki.ros.org/hector_slam |
| Joy | http://wiki.ros.org/joy |
| ROS Serial | http://wiki.ros.org/rosserial |
| Udacity Self-Driving Car Simulator (Term 1, v2) | https://github.com/udacity/self-driving-car-sim |
A modified version of Hector SLAM is attached as a zip.