Recent Developments

For the past week, we have been working on getting the Arduino to respond to motor commands sent from the Raspberry Pi. Since we do not have SLAM (Simultaneous Localization and Mapping) and Nav2 implemented yet, we have had to create and send the commands manually. Our initial tests of these commands to simply move the wheels of the car worked pretty well. However, we ran into some issues when trying to implement the wheel encoder data along with these motor commands.

The first issue we came across was that the Raspberry Pi’s GPIO (General Purpose Input Output) pins were unable to keep up with the stream of data coming from the wheel encoder. Large quantities of data were being left out. We solved this by instead connecting the encoder to the Arduino’s GPIO pins because they’re able to achieve faster and more predictable real-time performance due to the lack of an operating system slowing down other processes. While this did solve the problem of the loss of data from the encoder, it also caused other issues to arise.

The next issue we ran into was the drive and steering motors seeming to have a mind of their own. When testing the manual commands after wiring the encoder to the Arduino, the motors began to completely ignore any and all commands that were sent and would instead go full throttle while turning left and right uncontrollably. The reason behind this was because after we wired the encoder to the Arduino, we had too much current being pulled through the serial cable from the Pi. To solve this problem, we wired the power to the steering motor to come from the motor controller rather than the Arduino.

We have since gotten control of the car and are now trying to test the conversion between velocity commands (mm/s) from the Pi and the PWM (pulse-width modulation) values on the Arduino that actually signal the motors to drive.

Another, slightly less notable development is that we redesigned the electronics housing per the advice from our technical advisor, Dr. Adegbege. He brought up the possibility of the inside of the housing getting to hot from all the electronics running. We reprinted the housing with openings in the top to hopefully vent out any hot air that accumulates.

The new design can be found on the Progress page.

Leave a Reply

Your email address will not be published. Required fields are marked *