Tuesday, August 9, 2016

Road Map Going Forward

Now that we have simulated the basics of flight in MATLAB it is time to think about translating this functionality into real life. With that in mind, there is an entirely new set of problems to deal with now that hardware is in the picture. Normally you would buy a prefabricated quad copter for up $1k or buy each piece separately and get a flight controller and build the quad like a Lego set. What we will do is obtain raw hardware such as Arduino, Raspberry Pi and other sensors, combine them into a working flight controller and eventually a fully functional quad copter. After the hardware is built, we will program autonomous behavior so multiple quad copters can function together as a group and complete designated goals.

With such an ambitious goal, it is imperative we have a road map to keep us focused and provide some structure as we move forward. This project will follow multiple phases that separate various concerns and provide milestones that will guide us to the end goal; a fully functional autonomous robot.

Phase 1: Acquire Hardware

Before we can even begin to program the PID controller or buy the motors, we need to know how much our quad copter will weigh. In order to know what sensors to buy, we must decide the quad's capability. The quad we are building in this blog will be a general purpose with the ability to navigate in and outside. Through research, the below items were selected to compliment each other in order to maximize power (MHz and Watts) and quality relative to cost ($$ and time).

Ultrasonic Range Finder
WiFi
Frame

Phase 2: Assemble and Test

After the hardware is purchased it is time to assemble and ensure the readings are accurate. This process will be iterative and consist of trial and error. Arduino's IDE makes uploading programs and monitoring the output very easy. We will also begin to layout the framework of how we want the sensors to communicate with each other which will also dictate the physical layout of the electronics. The more sensors added to the quad the more data that needs to be interpreted. In order to manage the massive amount of data, we will create programs to parse the data in order to gain meaningful information and run relevant tests.

Phase 3: Software

PID Controller
Flight Controller
Linear Movement
Non-Linear Movement
Quaternions (Stretch goal for the flight controller)

Once the quad copter is actually built, it is time to start programming the software used in the electronics. We will do this by using the knowledge we gained during the Coursera class for Arial Robotics, extra research, and a little intuition. The first part is the PID controller, this will control the stability of the quad copter during flight and orientation so the quad can move. The flight controller will send commands to the quad which will be interpreted by the PID controller causing the quad to move to desired locations. At the start, we assume all our movements are linear. When linear motion is completely implemented and tested we will move to non-linear movement sans cubic splines. If we want to test our skills we can add quaternions to the flight controller as an extra feature.

Phase 4: Automate

After we build one quad copter, we need to build a few more and make them work together. We implement swarm logic and goal oriented behavior to control each individual quad. There are a few simple rules we can implement when paired with sensors and libraries to provide the quad copters with a framework for cooperating with neighbors. We will use something similar to a Kalman Filter to help the quad autonomously decide from which sensors to pull data. In order for the quad copter to move within boundaries and reach goals, it needs to be able to localize itself.

Thoughts

This is a rough sketch of what I would like to accomplish and is neither complete nor comprehensive. Throughout these blog posts this road map will be refined and details will emerge at the appropriate times. There are a few programs we will need to install in order to simulate and test our sensors such as ROS, RVIZ and Unbuntu; we will go over these later.


No comments:

Post a Comment