Intro: Autonomous Driving Corvette
Autonomous Driving Corvette (CR-1) is the revamping of a Powerwheels
Corvette C4 in order to be autonomous in navigating areas, such as school
hallways or maze-like setups. The name of this project stems from the
Corvette's performance model name, ZR-1. The purpose of this project is to
simulate real world events where cars need to navigate unknown terrain without
colliding with objects in its surrounding environment. In order to achieve this
goal, we needed to create a design for our robot to conform to. By installing
ping sensors at specific locations on the vehicle, programming an Arduino
microcontroller, configuring motor controllers and motors, and other mechanical
and electrical equipment, we were enabled full control of the vehicle. This
includes steering, movement, and navigation through measuring its proximity to surrounding
objects. Some of the data that we have gathered from working on this project
include an understanding of the complex wiring systems, how to set and adjust
sensors, such as ping sensors, for distance detection, and how to control the
motors for steering and movement, based on the interpretation of information
from the sensors. Therefore, after all of our research, we can conclude that
CR-1 parallels real-world studies of autonomous vehicles, and that our research
can be applied to such studies beneficially.
Step 1: ACQUIRE POWER WHEELS VEHICLE
Acquire an RC vehicle (or PowerWheels) big enough to support 6 ping sensors,
electronics, a power source, and a steering system.
Step 2: SENSOR LOCATION DETERMINATION
Determine locations for mounting all required components, including: 6 ping
sensors, 2 h-bridges, 1 microcontroller, 2 power rails, a strobe light, a
steering system, and power sources for driving motors, steering motor, and
Step 3: MOUNT PING SENSORS
Mount the ping sensors and other electronic components. There should be 2 ping
sensors on the rear, 1 on each side, and 2 in the front of the vehicle. The
h-bridges, microcontroller, and power rails should be mounted in a location
where all the sensors and other electronics can easily be wired to it.
Step 4: WIRING ELECTRONIC COMPONENTS
Begin wiring all components. The ping sensors need to be connected to the
microcontroller, as well as any other sensors, particularly the IR sensor for
steering. The motors need to be connected to the h-bridges, and the wiring
needs to go through a rail to distribute power.
Step 5: STEERING MECHANISM
Create a steering system. Figure out how the original system works. Remove any objects, including the steering wheel, which may be attached to the steering column. Attach the end of the column to a gear. Run a chain on the gear and attach the chain to a motor. In order to determine the distance turned, mount a wheel with holes on top of the gear. Then, attach an IR sensor to face the wheel to determine how many holes have passed (each hole to surface change represents a fraction of a turn).
Step 6: TEST STEERING MECHANISM
Connect the steering motor to the h-bridge, and connect the steering sensor to the
Arduino board. Make sure all components are mounted securely, and that the
chain is not too tight or too loose, but is just right (like porridge).
Step 7: TEST PING SENSORS
Begin testing all components with simple code. Make sure all ping sensors turn on and
receive input, make sure the motor(s) power on and turn the driving wheels,
make sure the steering sensor is on and receiving input, and make sure the
steering motor receives input properly. In our case, it helped to treat the
motors as servos in the Arduino code.
Step 8: CODE FOR MOTORS
Begin the actual coding in Arduino. Start by writing code for the motors. Then
integrate the ping sensor input so that the vehicle can know when to stop and
change direction when an obstacle is detected. Then write the code for the
steering system, and integrate that with the ping sensor code, for avoidance.
Step 9: HARDWARE/SOFTWARE TROUBLESHOOTING
Begin testing all systems with the code. Let the vehicle run by itself, and take note
of any errors that occur. Troubleshoot any hardware or software errors and test
again once troubleshooting is complete.
Step 10: Arduino Programming
Using the attached file, CR1_Full_Function_Code.ino, you can program your autonomous vehicle, given that you followed the previous steps and set up the vehicle according to spec.
Should you use this code for your project, please credit the CR-1 Team of the Mechatronics Research Lab.