Welcome to RC PiCar Home page.

A convenient location for information regarding our senior design project.


Student Members

Alejandro Acevedo Guillot
BA Mathematics, BS Systems Science and Engineering, & MS Data Analysist and Statistics

Ishan Gauli
BA Applied Physics, BA Mathematics, & BS Electrical Engineering

William Zachary Vernon
BS Physics & BS Systems Science and Engineering

Advisors

Yunjing (Dorothy) Wang, PhD
Lecturer, Electrical and Systems Engineering

James Feher, PhD
Teaching Professor, Electrical and Systems Engineering

Overview of the Project

Goals

Our plan for senior design is to provide a car with functional sensors and control algorithms capable of autonomous driving. We are building this car in hopes of replacing the current car, Adeept Smart Car, for ESE 205. Our car will be improving on the pitfalls of the current car like providing better grip, powerful motor driver, multithreaded computer architecture, and so on.

Hardware

We chose to build our car completely from starch on a commercially available Remote Control (RC) car. We chose to go with a Traxxas Rustler because of its market dominance in the RC community, compact design, and chassis space.

The electrical components that came stock with the car were left intact and the raspberry pi implementation was done around it. We have the capability of using both the remote controller and Raspberry Pi.

Software

In hopes of using a convenient method to implement multi threading, we are programming all the control algorithms in Python 3 with ROS as middleware.

Raspbian: Complete (Raspberry Pi OS)

Ubuntu: Complete (Linux OS)

ROS: In Progress (Linus Based, optimized of robotics projects)


Stages of Progress

Initial we set out with a very ambitious project of building the hardware and software elements of the car from scratch. Our most ambitious leap will have to be implementing ROS as the middleware since we did not have any prior work to build of off nor did anyone of us have experience working with it. However, we broke this project into multiple stage implementation so that we progress forward with something to show for.

  • Stage 1: Build the hardware and implement sequential programming with Raspbian using Python 3. Car is capable of autonomous driving without ROS.
  • Stage 2: Stage 1 with SQLite as a data management system for centralized data collection and analysis for controller tuning for a throttle PID controller.
  • Stage 3a: Modify the car hardware and write all the ROS classes for individual sensors. Have the sensor nodes publishing to the master node with realistic sensor readings. 
  • Stage 3b: Stage 3a with ROS nodes publishing simultaneously (multi-threaded) and object avoidance control algorithms implemented to move the vehicle autonomously. 

*completed stages in red