Project Proposal - RC Car
Subsystem | Name | NetID | Section |
---|---|---|---|
Hardware | Katherine Carder | kcarder2 | ECE 110 |
Mihir Vardhan | mihirv2 | ECE 120 | |
Anish Sabnis | anishks | ECE 120 |
Project Proposal - RC Car
Introduction
Statement of Purpose
Create a robot that is able to move using a remote control from one point to another. Our goal as a group is to have the robot be able to carry a load internally to it's designated drop point. We think this project will be useful because it will eliminate time wasted doing basic errands. In addition, it is useful right now in a global pandemic social distancing is important. Robots that can bring us essentials like food, groceries, tools. We can help alleviate some of the necessary social interaction in a time when it's better off for us to stay safe at home. Preferably, the control will be from your cell phone or keyboard. The car should be wifi controlled.
Background Research
Starship Technologies developed and operates the last mile delivery robots.
The electric-powered robots ride on sidewalks at a pedestrian speed, with a max speed of 3.7 mph, can be remote-controlled if autonomous operation fails, and will only be used for relatively short-range local delivery. The robot weighs 55 pounds unloaded, and can hold up to 20 pounds of deliveries. We want to make a similar robot but likely make it lighter to make it faster.
Remote Control
Remote control works due to a remote or a transmitter that communicates radio wave signals, which essentially instructs the car what to do. You need a transmitter and receiver which work together to send and receive the signals. In this case, the pi will act as the receiver and the inputs into raspberry pi will be the transmitter.
https://projects.raspberrypi.org/en/projects/build-a-buggy
Software
Python IDE, shouldn’t need third party
Wifi Connection
The goal is to create a robot that can be controlled from anywhere in the world using a website - The pi and the control device being on different networks. This can get very complicated very fast and so the project is broken down into steps, each progressively harder than the last. The minimum goal is to control a robot over the same network.
Step 1: Controlling the Pi through SSH over the same network: We will write a simple program in python that uses the WiringPi library to control 4 GPIO pins depending on the terminal input of the user. To control the robot, PuTTY/any other SSH software will be used to SSH into the pi and run the program. The aim of this part of the project is to control the robot through the command line but depending on how comfortable we are with our first interaction with the Pi, we may use pyGame to develop a simple board with buttons/register keystrokes instead of pressing keys and hitting enter.
Step 1.5: Port Forwarding: This is half a step as it again involves our comfort with the pi. Port Forwarding seems to be one of the easiest ways to SSH into a pi from a different network but may not be feasible on IllinoisNet. At this stage, we may experiment with VNC connect that comes with Rasbian to connect over different networks - the same process as using PuTTY but allows us to connect over different networks.
Step 2: Using Socket communication we will set up a server on the Raspberry Pi. Socket will establish a protocol for communication of any serialised data between the pi and the connected computer (We will need to assign the pi a static IP on illinoisnet but only once). We can use this stream of data to control the robot's GPIO.
Step 3: It is unlikely we will get here in time but if we do, we will compile opencv on the raspberry pi to send a video stream back to the connected computer allowing us to drive the robot anywhere on campus. For a real world application if the raspberry pi has a hotspot connection to the internet, we will have to establish a static IP for the pi or manually check the IP each time we use the robot (only on power on to establish the connection) but this should not be a concern on campus where we have a uniform network over campus.
Design Details
Block Diagram / Flow Chart
System Overview
Raspberry Pi: Will use the programming features on the pi to tell the robot to move. The Pi is where the software and the hardware interact. The pi will update information over the wifi network to control the robot from the computer
Battery (for motors)-Provides power to the motors and allows the robot to move without being plugged into an external power source. This is different to the 5v battery bank that will power the pi.
Motor controller: Turns the digital input given to the Pi into electrical output to the motors at 12V.
Motors and wheels- The motors receive instructions from the motor control and allow the wheels to move and therefore the robot, as a whole, can move
5V battery bank (for pi) - is the battery for the raspberry pi. It provides the power.
Wifi Dongle-Allows us to connect to the raspberry pi over wifi. The reason we are choosing to use a wifi dongle rather than a bluetooth connection is because we will have the ability to connect from much further distances and develop the car to have more control options.
BOM
Raspberry Pi 4b
With OS, or give us an SD card as well
Motor Controller (L298N)
Motors
Raspberry Pi WiFi Wireless Adapter
Wifi Dongle
Battery pack one for pi( 3A, 5V)
Chassis: Plywood (self made)
Just a box for now
Possible Challenges.
Part limitations, having to adapt and change our initial design won't be the hardest challenge but it will definitely take time away from us.
Cable Management, especially in a custom chassis
Debugging, this is our first time working in python and many of us haven't used a Raspberry Pi before so if we face any issues with our code it’ll be somewhat of a nightmare :).
Babich, N., 2020. What Is Computer Vision & How Does It Work? An Introduction | Adobe XD Ideas. [online] Ideas. Available at: <https://xd.adobe.com/ideas/principles/emerging-technology/what-is-computer-vision-how-does-it-work/#:~:text=The%20concept%20of%20computer%20vision%20is%20based%20on%20teaching%20computers,results%20through%20special%20software%20algorithms.> [Accessed 16 September 2020].
Babich, N., 2020. What Is Computer Vision & How Does It Work? An Introduction | Adobe XD Ideas. [online] Ideas. Available at: <https://xd.adobe.com/ideas/principles/emerging-technology/what-is-computer-vision-how-does-it-work/#:~:text=The%20concept%20of%20computer%20vision%20is%20based%20on%20teaching%20computers,results%20through%20special%20software%20algorithms.> [Accessed 16 September 2020].
Babich, N., 2020. What Is Computer Vision & How Does It Work? An Introduction | Adobe XD Ideas. [online] Ideas. Available at: <https://xd.adobe.com/ideas/principles/emerging-technology/what-is-computer-vision-how-does-it-work/#:~:text=The%20concept%20of%20computer%20vision%20is%20based%20on%20teaching%20computers,results%20through%20special%20software%20algorithms.> [Accessed 16 September 2020].
Starship Technology "Inside The Mind Of An Autonomous Delivery Robot | Digital Trends". Digital Trends, 2020,
Monk, Simon. "Computer Vision With The Raspberry Pi". O’Reilly Media, 2020, https://www.oreilly.com/content/raspberry-pi-cookbook-computer-vision/.
Landoni, Boris. "Computer Vision With Raspberry Pi And The Camera Pi Module - Open Electronics". Open Electronics, 2020, https://www.open-electronics.org/computer-vision-with-raspberry-pi-and-the-camera-pi-module/.
Wade, Bob. “How Do RC Cars Work? Science Behind Remote Controlled Vehicles”. RCReboot, 2020, https://rcreboot.com/how-rc-cars-w