RB2 rinnande rutor.
Låter inte som en "stor sak"?
Tja, för att vara ärlig, för mig visade det sig vara ganska svårt arbete. -0)
Liksom i tidigare Bloggar jag siktar inte på en vetenskaplig uppsats, men jag ska försöka att avslöja fakta jag var tvungen att samlas för att göra detta arbete, på ett snygg sätt. Hoppas det kommer att hjälpa andra som arbetar med samma frågor.
Hittills jag hade min robotar kör mot ett mål, att hålla det i sikte och justera riktningen av bot enligt förändringen i kamerabilden. Enkel och effektiv när man kan använda target-objekt för att sikta på. De skript som jag använde resulterade i fina böjda rör sig mot markörer jag placerade upfront.
Men funderar på kontrollerade rörelser utan att använda en kamera och kör banor i en rak linje med en viss hastighet för ett visst avstånd, jag var tvungen att gräva i teorierna av odometry: användning av data från rörelse sensorer att uppskatta förändras i position över tid.
Idén är enkel och lika gammal som antika navigering av sjömän. Metoden de använde kallas "Dead reckoning", där 'De (a) d' står för "sluta sig". Sjömännen uppskattade deras position i förhållande till en startande läge med hjälp av hastighet och rubrik. När nya uppgifter om den verkliga positionen hämtats (t.ex. genom mätning av sextanten), gjordes en ny, rättad, uppskattning. För att bli effektiv snabb och noggrann data krävs insamling, utrustning kalibrering och bearbetning i de flesta fall.
Så, för att göra en robotbil rör sig i en rak linje för en viss distans med en viss hastighet, bör man uppskatta där det kommer att vara i ett kort ögonblick av tid, sedan läsa manöverdonen, Bestäm korrigeringar utifrån fel mellan skattning och avläsningar och beräkna en ny uppskattning. Låter som ett typiskt jobb för en dator!
Men det finns mycket mer engagerade än kala kodning. Maskinvaruegenskaper är viktigt (storleken på bilen och hjul), styrka av motorer, maximal hastighet och acceleration av bot och upplösningen på manöverdonen.
Och så finns det fortfarande mycket mer som påverkar effektiviteten, ledande till (ibland) frustrerande resultat. Men jag kommer till allt som sedermera.
Jag ska ta itu med den skattning delen, kontrollerar kretsar (förklara användningen av PID'S), kännetecken för donen och vissa praktiska delar av teorier om död räkenskap med robotar. Python-skript kan hittas på:
https://bitbucket.org/RoboBasics/Raspberry-Robo-ca...
Du kommer inte hitta mycket sofistikerad kodning där. Den är skriven rakt fram med en hel del kommentarer att göra det så lättläst som möjligt för dem som just har börjat (som mig). Detsamma gäller för filmen. Det är inte en kommersiell video. Skott med min Blackberry smartphone och bara avsedda för illustration av vad skriptet antyder.