Modified 2018-09-30 by GarrettWarren
In this assignment, you’ll briefly research control algorithms that are used on quadrotors, and then you will fly an airplane and a quadrotor in simulation to get a feel for what these control algorithms are doing.
Modified 2018-09-30 by GarrettWarren
For the first part of this assigment, read up to 3.2 of this article, and then pick two other control algorithms to compare and contrast with a PID controller (what we use on our drones). Identify the major advantages and disadvantages of each algorithm. Do not worry about understanding all of the math derived in the article; we have asked you to read it once to be exposed to it, but such a model it is not required for the PID controller. If one wished to implement a more advanced algorithm, then a model such as the one described in the article would need to be created.
Modified 2018-10-09 by Sophie Yang
In this part, you will fly an airplane and a quadcopter in simulation using an RC controller. Doing so will give you an intuitive sense for roll, pitch, and yaw, as well as how they affect the dynamics of aerial vehicles.
You will be using the RealFlight 7.5 simulator along with the associated RC controller, which are the same controls used to fly a real physical aircraft over RC.
Go to the 8th Floor SciLi RealFlight workstation and fly using the RC controller and the flight simulator! The workstation is located at the monitor next to the Baxter. We only have one workstation for the class, so you can reserve a time here to use it.
The simulator is installed on the computer at the workstation. If it is not open already, open the RealFlight7.5 Launcher (on the Desktop) and click Run RealFlight.
The controls you will be using are:
Create a file called answers.md
in your RC Flying Github repo (see section
1.7 Handin for the link to generate your repo). Write all answers to the
following questions in this file.
Modified 2018-09-29 by Theo Guerin
Flying an RC airplane is nice because it gives an intuitive sense for the controls and roll, pitch, and yaw since the airplane’s body is asymmetric. Choose one of the planes and fly in the sim using the controls to get a feel for the system.
Modified 2018-09-29 by Theo Guerin
Go to the airport “Joe’s Garage HD” in the “Sierra Nevada” section. From the bar at the top choose Aircraft then Select Aircraft and choose the Quadcopter X (Classic). On the controller, flip switch number 7 (they’re labeled) to the B position. In this mode, the aircraft has a gyroscope to hold its angle, but it does not have an accelerometer for automatic leveling. You will be controlling the throttle and the angular velocities directly.
Use the throttle to take off. Describe in words what this does to each of the four motors. What effect does this action have on the drone?
Now take off. Fly around a bit and try to land back on the target. Try to do a loop-de-loop. Don’t worry if you crash a lot; that’s part of the point of a simulator; you can take off again just by hitting the red “reset” button. Report on your experience. Is this easy or hard? Why?
Modified 2018-09-29 by Theo Guerin
Now select Quadcopter X from the Aircraft menu. Flip switch number 8 to position B. In this mode the aircraft uses its accelerometer for automatic leveling, just like our Skyline. In fact, you can plug an RC antennae into the skyline and control it with an RC controller in just this way.
Fly around in a circle and land back on the target. Is this easier or harder than the previous mode? Why?
Why might this mode require an accelerometer, if the previous mode only required a gyro?
Modified 2018-09-29 by Theo Guerin
Flip switch 8 to position A to enable pos-hold. Fly around to get a sense of the aircraft dynamics. Try flying in a direction quickly and then stopping; observe the differing behavior between modes A and B on switch 8.
Fly around in a circle and land back on the target. Is this easier or harder than the previous mode? Why?
Try to fly in a loop-de-loop. Can you do it? Why or why not?
If you were to write a controller algorithm that passed commands to a quadcopter in stabilized mode (B) to make it behave like a quadcopter in pos-hold mode (A), what information would you need? What sensors could you use to obtain that information?
Modified 2018-09-29 by Theo Guerin
To get familiar with flying, first just practice getting the quad to hover using only throttle (up/down on the left stick). Now experiment with roll and pitch (up/down left/right on the right stick). Finally, try using yaw (left/right on the left stick). Note that the roll and pitch commands are relative to the orientation of the drone. If you crash and need to reset the simulator, press the spacebar, or you can push the reset button on the controller.
Modified 2018-09-29 by Theo Guerin
Feel free to play with the simulator as long as you like and try out some of the other aircraft.
Modified 2018-10-09 by Josh Roy
Use this link to create your RC Flying Github Repo. After finishing the
assignment, commit and push answers.md
to this repo before the deadline.
Keywords: image fusion;image motion analysis;Kalman filters;nonlinear filters;inertial sensor data fusion;extended Kalman filter;3D camera tracking;3D egomotion estimation;EKF framework;camera measurements;correction stage;prediction stage;accelerometer data;gyroscope data;3D pose error;3D position tracking accuracy;3D orientation tracking accuracy;simulated data generation method;inertial measurement unit;Cameras;Gyroscopes;Accelerometers;Mathematical model;Equations;Three-dimensional displays;Jacobian matrices;Inertial sensor fusion;Extended Kalman Filter;3D camera tracking;inertial measurement unit;accelerometer;gyroscope;Inertial sensor fusion;extended Kalman filter;3D camera tracking;inertial measurement unit;accelerometer;gyroscopeSebastian Thrun, Wolfram Burgard, and Dieter Fox. Probabilistic Robotics (Intelligent Robotics and Autonomous Agents). The MIT Press, 2005. First-hand: The unscented transform. Engineering and Technology History Wiki. Contributions from Uhlmann, Jeffrey. Accessed August 31, 2018. http S. Tellex, A. Brown, and S. Lupashin. Estimation for Quadrotors. ArXiv e-prints, August 2018. arXiv
Keywords: Computer Science - Robotics, Computer Science - Systems and ControlRudolph Van Der Merwe and Eric Wan. Sigma-point kalman filters for probabilistic inference in dynamic state-space models. In In Proceedings of the Workshop on Advances in Machine Learning, 2003. Roger R Labbe Jr. Kalman and bayesian filters in python. Published as a Jupyter Notebook hosted on GitHub at https://github.com/rlabbe/Kalman-and-Bayesian-Filters-in-Python and in PDF form at https://drive.google.com/file/d/0By_SW19c1BfhSVFzNHc0SjduNzg/view?usp=sharing (accessed August 29, 2018), May 2018. James Diebel. Representing attitude: Euler angles, unit quaternions, and rotation vectors. Matrix, 58(15-16):1–35, 2006.