* updated
09.07.15 - Update: What needs to be done
Currently there is a big blocker in our way to success - we cannot fly, until the rotor protectors have been printed and the 3D printer is not printing due to an unknown error. Last stabilization approaches have been more or less successful but without any protectors we will ruin another motor, as we have already.
This is a small overview over the current tasks and their dependencies:
Print: 4 x blade-protectors/sensor-holders, 1 x sensor-holder for bottom sensor | blocker, waiting for repair |
→ Work on: stabilized flight | difficult, but possible |
Discuss: Interfaces:
| doable with all project members. waiting for lan to convalensce |
Discuss: Connection of SCCharts on the Arduino | doable with fma and lan, waiting for better SCCharts |
Implement: | |
| easy, simple function setting throttle to specified value |
| quite easy, just manipulate the intended balancing position |
| quite easy, some try and error, but usual communication |
09.07.15 - Progress Simulation and Emergency Systems
Today, an important part of the simulation was added: The Distance Sensors!
Though...they are quite poor. I used a lot of approximations and simplifications, but they are still usable. It should be possible to effectively test the quadcopter to avoid crashing into walls. Hopefully. I won't go into detail of what I approximated here, but will go into that at a later date, when I explain the whole simulation in greater detail (soon! I promise).
On the other hand the communication has been updated and should work properly (haven't really tested it yet, but I see no reason why it shouldn't work anyways). I will have to implement everything into the Arduino code soon, but I will need more help with the interfacing (as posted above).
30.06.15 - Added Direction Control
Today the current code was updated in the way the bluetooth commands were added so it is possible to give the quadcopter commands to fly in a given direction.
Command | Behavior |
---|---|
'a' | Copter turns CCW by 1 degree |
'd' | Copter turns CW by 1 degree |
'i' | Copter tilts front by 1 dregree |
'k' | Copter tilts back by one degree |
'j' | Copter tilts left by one degree |
'l' | Copter tilts right by one degree |
These commands require a fully functional PID controlling for all three axis.
Further I have found the Problem with the Bluetooth connection via smartphone. if the screen blacks out the bluetooth connection gets killed with the string Bluetooth Terminal disconnected. The 'e' character in this string ends the motors. Solution for this has to be found.
26.06.15 - Current Situation
Today we worked on the balancing of the quadcopter. It worked rather well (I think), and after some testing, we got values of about P = 0.055 and D = 0.057. The I-value is currently at 0.05, but we have no idea how to properly adjust the I-parameter. The quadcopter is flying rather stable, but is drifting to the sides quite heavily (probably I-parameter?).
We have not yet touched the yaw-values, since we were quite paranoid about crashing the copter and Steven wanted us to be more careful with the copter. He offered us to maybe try and fly the copter in more open spaces (i.e. the lobby), but only after 6 and with his (or Christians) supervision. Before doing that he wants us to have a safe landing mechanism though (as in: not complete shut off of the motors, but a slow descend - values of about 180-182 should be sufficient, dont know if Steven wants exactly that, but that is what I collected from talking to him).
Steven also emphasizes again, that we need more spare parts, if something goes awry! Maybe we should order more Motors or a new Frame for Steven. He also had the idea of soft buffers for the feet so the landing isn't as hard.
25.06.15 - Meeting
Start: | 16:00 | Attendees: | ||||
End: | 17:30 | apo | fma | lan | lpe | |
Protocol: | fma |
10.06.15 - Simulation: Problems with variables
There were unknown variables for a few weeks in the simulation. Namely the drag coefficient, the lift coefficient and the inertia of the quadcopter body. No real solution has been found as of yet.
One the other hand, the simulation is pretty much finished. The movement of the quadcopter works as intended (if the unknown variables would be known). There is still uncertainty about the output though. It is important to know, if the output of the acceleration has to be in the direction of the body frame of the quadcopter or the direction of the inertial frame (in the direction the copter is nudged or the xyz-direction of the room the copter is in).
A missing feature is some form of object distance measurement (putting the copter into a virtual room and outputting the distances to the walls). This will hopefully be acomplished within the next week.
As for the missing variables, here is some information gathered which might help:
Inertia:
"What do you think of reducing the quadcopter to a spheric point mass with 4 point masses located distance l from the centre. So basically Ixx=(2m(r^2)/5)+2m(l^2),Iyy=(2m(r^2)/5)+2m(l^2) and Izz=(2m(r^2)/5)+4m(l^2). I was suggested a paper written by Randal Beard. This is how he calculates its. I cant actually do it experimentally because I need to simulate it before building."
-> http://www.engr.colostate.edu/~dga/mech324/Labs/Lab%2010/images/moment%20of%20inertia%20table.jpg
-> http://de.wikipedia.org/wiki/Tr%C3%A4gheitsmoment
Lift Coefficient & Drag Coefficient:
C= (L/Al)/(0,5*p*V²)
mit L = Lift Force
Al = cross sectional area of the airfoil
p = Air density
V = wind speed
D = (D/Ad)/(0,5*p*V²)
mit D = Drag Force
Ad = effective area of the airfoil in the drag direction
Source: http://mragheb.com/NPRE%20475%20Wind%20Power%20Systems/Aeorodynamics%20of%20Rotor%20Blades.pdf
Another nice read: http://www.technik-consulting.eu/Analyse/Quadrocopter.html
Yet these two formulas might not even help since both papers I'm currently working with say that the constants in their simulations are only dependent on the lift coefficient and the drag coefficient.
Theses my work is based on: http://num.math.uni-bayreuth.de/de/thesis/2014/Hoeger_Matthias/BA_Matthias_Hoeger.pdf and http://sal.aalto.fi/publications/pdf-files/eluu11_public.pdf
03.06.15 - Update: The Ultrasonic Problem
Measuring distances with an ultrasonic sensor poses an unexpected challenge - dealing with the speed of sonic.
02.06.15 - Update: First Movements
28.05.15 - Meeting
Start: | 16:00 | Attendees: | ||||
End: | 17:00 | apo | fma | lan | lpe | |
Protocol: | fma |
21.05.15 - Meeting
Start: | 16:00 | Attendees: | ||||
End: | 17:00 | apo | fma | lan | lpe | |
Protocol: | apo |
13.05.15 - Update*
For providing the ability of using the real sensors and actuators as well as the simulation to test the quadcopter, we decided to use some interface, which can both, communicate with the hardware or with the simulation.
Update (16.05.15):
A basic Arduino Sketch with description is published under the Software section, outlining all current challenges of the projects code.
12.05.15 - Update
Since the components are shipped with an unknown arrival date and for testing the interaction of the different sensors and actuators we will build an Arduino Lego Mindstorms setup on three wheels.
The NXT will therefor provide some basic navigation functions like goForwards, goBackwards, rotateRight, etc., as the software for basic flight is going to do later, too, and control the motors accordingly. The Arduino will be connected to the rest of existing components as usual.
An NXT block is generally able to communicate over I2C as master to any slave device, for instance the Arduino. Via simple looped polling the NXT can ask the Arduino for drive commands.
To connect the Lego block to the Arduino a Mindstorms NXT cable is ordered, which will be cut open and linked to the microcontroller. For further understanding about wiring and I2C the LEGO MINDSTORMS NXT Hardware Developer Kit.pdf gives a good start. In addition the webpages of leJOS News and Dexter Industries seem to be quite helpful and even give some basic code example. Further information following...
11.05.15 - Update*
Ultrasonic sensors and bluetooth bridge have been delivered. Communication with Arduino is working.
Code:
The bluetooth module is found on the MacBook Pro as HC-06 in the list of available bluetooth devices. A connection can be established with Code '1234'.
Unfortunately the MacBook does not reconnect automatically after reset of the Arduino. The bluetooth module has to be unpaired and paired again to be usable again. Hopefully this will can be fixed somehow...
Update:
A much easier way of connecting via bluetooth is to use the Arduino Serial Monitor (Tools -> Serial Monitor).
It is now clear, how the module is handled by the MacBook Pro. Once paired, the HC-06 is always shown in the list of bluetooth devices as 'Not connected', unless an explicit connection is established. Establish a connection with a screen or the Serial Monitor. Once the connection is closed, HC-06 will be shown as 'Not connected' again. It is important to notice that the previous screen method has to be killed explicitly, not only closed, since there can only be one serial connection at once.
08.05.15 - Proposal Presentation
07.05.15 - Meeting
Start: | 16:00 | Attendees: | ||||
End: | 18:00 | apo | fma | lan | lpe | |
Protocol: | lan |
30.04.15 - Meeting
Start: | 16:00 | Attendees: | ||||
End: | 16:40 | apo | fma | lan | lpe | |
Protocol: | lpe |
26.04.15 - Meeting
Start: | 17:30 | Attendees: | ||||
End: | 21:00 | apo | fma | lan | lpe | |
Protocol: | fma |
23.04.15 - Meeting
Start: | 17:30 | Attendees: | ||||
End: | 18:30 | apo | fma | lan | lpe | |
Protocol: | lpe |
23.04.15 - Meeting
Start: | 16:00 | Attendees: | ||||
End: | 17:30 | apo | fma | lan | lpe | |
Protocol: | lpe |