Sida 4 av 14

Re: Quadrocopter med egendesignat styrsystem.

Postat: 10 november 2010, 00:14:21
av toffie
Smart?
Jag hajar ingenting vad ni pratar om capture moduler hit och dit :P

LHelge, var det dsPIC du skulle köra? Vilket programspråk?
Borde inte en 8-bitars AVR egentligen klara samma saker? Kanske inte precis lika fort, men tillräckligt iaf?

Jag säger inte att du ska byta till AVR, bara undrar om du tror att en AVR skulle fixa det?
Iofs.. det borde den väl.. KKMulticopter är ju baserad på AVR..

http://www.kkmulticopter.com/index.php/ ... b-assembly

Kanske kan ta idéer därifrån, visserligen AVR nu, men om du kör C så är det väl C som C.. borde väl gå att fixa till för PIC också?

Edit..
Kanske skulle lägga in länken till där firmwares finns :P
http://www.kkmulticopter.com/index.php/ ... -downloads

Re: Quadrocopter med egendesignat styrsystem.

Postat: 10 november 2010, 00:40:58
av LHelge
Tills vidare kör jag dsPIC men det kan hända att jag byter till STM32. Inte på grund av att dsPICen inte klarar av det, utan för att jag vill testa en ARM också.

Jag tror säkert att avr-en klarar av att köra koden om man lägger ned lite jobb på att porta den. Går det inte lika fort så får man väl bygga en större quad och på så sätt få betydligt långsammare dynamik.

Med tanke på att det går att uppdatera ESC:erna med 50 Hz och jag för tillfället KAN köra kontrollsnurran närmare 600 Hz så finns det lite marginal innan man börjar märka av att det går långsamt.

Att det går på KK-multicopter behöver inte säga speciellt mycket. Vad jag förstår använder han en annan metod för att filtrera pitch/roll än vad jag gör.

Re: Quadrocopter med egendesignat styrsystem.

Postat: 10 november 2010, 00:45:35
av toffie
Ah okej, tack för förklaringen! :D
Jag tvivlar inte på din kodning eller nånting sånt, tänkte bara man kunde ge tips om du inte sett det förut :)

STM32 kör ju jesper med också :)

Hur som så kommer det bli grymt skoj att se när du är klar :D

Re: Quadrocopter med egendesignat styrsystem.

Postat: 10 november 2010, 10:33:16
av hubben
KKmulticopter använder bara 3st gyron, inga accelerometrar. Dessutom finns det ingen fullt implementerad PID-loop i den. KK-controllern är ungefär så enkel som en quad-controller kan vara men fungerar riktigt bra ändå. Dock kan du aldrig få ut en exakt vinkel relativt horisont med den vilket du kan med LHelges kort...

Re: Quadrocopter med egendesignat styrsystem.

Postat: 10 november 2010, 13:17:40
av toffie
Ah okej, jag hade inte fördjupat mig så mycket i KKmulticopter :P
Då borde väl LHelge's bli ganska så väldigt stabil då?

Jag är inte så insatt i PID, men den tar alltså tre värden och beräknar ett nytt för att kontrollera vardera motor vilket
resulterar i att farkosten håller den vinkel som man skickar ut från handkontrollern? Mer eller mindre..
Va svårt, eftersom jag bara läst lite grann och sett någon bild på uppbyggnaden så kan jag ju inte förklara :P

Men vad för värden är det som en PID tar in i detta fall? X, Y, Z från accelerometer/gyro?
Eller är det helt andra värden?

Re: Quadrocopter med egendesignat styrsystem.

Postat: 10 november 2010, 13:37:59
av hubben
Här har du en bra förklaring om hur PID fungerar
http://igor.chudov.com/manuals/Servo-Tu ... -a-PhD.pdf

Re: Quadrocopter med egendesignat styrsystem.

Postat: 10 november 2010, 13:39:16
av LHelge
PID-kontrollen har egentligen inget att göra med hur man styr varje individuell motor för att till exempel få quaden att flyga uppåt, framåt osv det får man lösa på annat sätt. Det PID-loopen gör är att den försöker kompensera för ett fel i till exempel pitch.

Enkelt förklarat:
om vi har en uppmätt pitch (från gyro & accelerometer) och en önskad pitch (från radiostyrningen) som inte är exakt lika får vi ett fel e
e = önskad pitch - uppmätt pitch

PID står för Proportionell, Integrerande och Derriverande vilket betyder att styrningen är uppdelad i tre delar som reagerar på felet på olika sätt. Styrsignalen u byggs på så sätt upp av tre delar
u = Kp*e + Ki*integral(e) + Kd*derrivata(e)

Kp bestämmer hur den ska kompensera för ett fel som finns just nu
Ki bestämmer hur den ska kompensera för ett fel som funnits en längre tid
Kd bestämmer hur den ska kompensera för ett ökande/minskande fel.
Att sedan välja rätt värden på dessa är en hel vetenskap, men ofta kan man försöka sig fram och skruva på ett i taget tills man får den dynamik man vill ha.

När man sedan räknat ut u så får man hitta på något annat smart sätt att bestämma hur detta ska påverka de fyra motorerna. Till exempel sänka hastigheten på den främre och öka på den bakre om det är pitch det gäller.

Re: Quadrocopter med egendesignat styrsystem.

Postat: 10 november 2010, 13:43:08
av hubben
... och då gäller det att uppmätt pitch är så nära verklig pitch som möjligt för att få det att fungera bra. Något som det verkar som att du lyckas bra med. ;-)

Re: Quadrocopter med egendesignat styrsystem.

Postat: 10 november 2010, 13:49:50
av LHelge
Precis, med ett brusfritt och korrekt mätvärde så har man mycket bättre möjligheter att få till en bra reglering.

enkelt förklarat kan man säga:
stora värden på Kp & Ki ger en snabb reglering men stor översläng dvs man uppnår och passerar det önskade värdet för att sedan gå tillbaka. Större Kd minskar denna översläng men förstärker också brus från mätsignalen. Så med en bra filtrerad mätsignal kan man få en snabbare reglering med samma översläng vilket leder till en mer responsiv och stabil plattform.

Re: Quadrocopter med egendesignat styrsystem.

Postat: 10 november 2010, 13:52:51
av DupeS
bra förklarat, tror tillomed jag fattar nu :o
Spännande projekt förresten, skall bli intressant att se denna i luften!

Re: Quadrocopter med egendesignat styrsystem.

Postat: 10 november 2010, 14:32:54
av toffie
Ja du, du har inte funderat på att bli lärare LHelge? :D
Väldigt bra förklarat! :D

Skulle jag nån gång bli miljonär skulle jag lätt kunna hyra nån som förklarar så bra som du gjorde! :D

Re: Quadrocopter med egendesignat styrsystem.

Postat: 10 november 2010, 14:50:07
av LHelge
Vänta bara tills jag skrivit klart min otroligt pedagogiska beskrivning av hur jag gjort filtreringen! :D

Som jag skrivit tidigare så har jag letat en hel del utan att hitta någon enkel men komplett beskrivning på nätet. Så jag får väl göra ett försök att bidra med en egen.

Den har kommit lite åt sidan nu, lagt tid på mjukvaran istället men förr eller senare kommer jag lägga upp den här. Jag hoppas det finns någon som vill ställa upp som korrekturläsare och pedagogisk försökskanin.

Vad gäller att byta karriär till lärare så känns det väldigt avlägset.

Re: Quadrocopter med egendesignat styrsystem.

Postat: 10 november 2010, 19:54:20
av LHelge
Nu har jag fått tag på motorer och fartreglage (tack hubben) så det enda som saknas i hårdvaruväg är två propellrar som är påväg från kina.

Har caddat lite på ett kretskort också, men det är väl inte 100% klart än. Det får väl kanske också räknas till hårdvara. Jag vet inte alls vart jag ska beställa det ifrån men BatchPCB verkar ju ha bra priser om man kan vänta en månad på kortet. Vad tror ni det kan kosta att beställa 5-10 dubbelsidiga 70x70 mm kort från sverige?

När det jag tror det är klart för produktion så lägger jag ut det här först så kanske någon vänlig person kan hjälpa mig att kolla igenom så det ser vettigt ut.

Re: Quadrocopter med egendesignat styrsystem.

Postat: 10 november 2010, 20:22:22
av pyne
Seeedstudio är ett alternativ när det gäller mindre kretskort.

http://www.seeedstudio.com/depot/fusion ... Path=64_12

Re: Quadrocopter med egendesignat styrsystem.

Postat: 17 november 2010, 01:05:39
av LHelge
Arbetet med denna fortgår men det är inget som är speciellt kul att skriva om, mest kodknackande och dokumentation. Mjukvaran är i stora drag färdig men alla delar är inte testade än. Näst på tur att testa står avläsning och generering av servosignaler. Eftersom jag tänkte driva radiomottagaren med 5 V så behövs en spänningsdelare ned till de 3,3 V processorn arbetar på. så jag gjorde en sådan för att kunna koppla mottagaren till labbplattan på ett smidigt sätt. På det färdiga styrkortet kommer detta givetvis vara integrerat.
level_converter_1.jpg
level_converter_2.jpg
level_converter_3.jpg
level_converter_4.jpg
level_converter_5.jpg
level_converter_6.jpg
level_converter_7.jpg
(Bättre med för mycket bilder än inga alls?)

Tyvärr kom jag inte att tänka på förrän efteråt att det kanske går att driva mottagaren på 3.3 V. I alla fall när jag testar systemet med sändaren max 1 meter därifrån.

För utsignalen till ESC:erna kommer jag använda en trissa med pull-up från 3,3 V till 5 V. Styrkortet kommer att drivas från BEC-utgången på någon av ESC:erna och spänning till processor och sensorer tas via en linjärregulator därifrån.