Partial-Autonomous ROS-enabled Ackermann Vehicle

Autonomous Systems Course

Few days ago, we presented our partially automated 1:16 model-scale Ackermann vehicle. Our vehicle was an RC car that we hacked to put some sensors, an actuatot and a Processor to control the vehicle both longitudinally and laterally.

To compute the velocity, we implemented our own encoder which is made of an IR sensor and some white pieces of paper glued to the interior facing part of a tire.

We used a Raspberry Pi 3B+ as our on-board processor, where as an Arduino Nano RP2040 was used to deliver the sensors and actuators signals.

The Arduino Nano contained an IMU which was used, along with a complementary filter to accurately get the heading angle of the vehicle.

A servo motor was used to actuate the steering mechanism, while an H-bridge was utilised to control the longitudinal motion.

For the control, a simple PID controller was used of the longitudinal control, while for the lateral control (steering), a Stanley controller was implemented.

For the communication of all data between the different modules, Robot Operating System (ROS) was used. Multiple scenarios were then tested in simulation to assess the performance of our system.

Team Members:

Course Instructors:

Team Picture at Exhibition Day (Right to Left): Hadi Elnemr, Kareem Okasha, Mohamed Shaban, Dr. Omar Shehata (Course Instructor), Mohammed Tawfiq, Abdelrahman Hany, Mohamed Shaaban (Course Teaching Assistant)
Lane Keeping Test Drifting "Amazing" Mistake
Error explanation: After the vehicle exceeded the goal, the difference between current position and the goal became negative. This difference was sent to the arduino which is read as a 2-complement number (starting with 1.....), hence, a very large number was sent as an input to the motors, getting max speed for the motors and hence the drifting. Error was fixed after a couple of accidents :)
Lane Changing scenario Simulation
Lane Keeping scenario successful test
Lane Changing scenario successful test
Lane Keeping scenario
Lane Changing scenario

Semi Autonomous Vehicle (Toyota Camry :) ) image