Sunday 22 October 2017

Glidande medelvärde filter labview


EDFbrowser En gratis, öppen källkod, multiplatform, universell visningsprogram och verktygslåda avsedd för, men inte begränsat till, tidsrymder lagringsfiler som EEG, EMG, EKG, BioImpedance etc. - Lätt att installera, bara en körbar, inga speciella krav, ingen oktav eller Matlab behövs - EDFbrowser är en av de snabbaste, om inte den snabbaste EDF-tittaren är tillgänglig. - Stödda filformat: EDF, EDF, BDF, BDF - Nihon Kohden (.eeg) till EDF-omvandlare (inklusive anteckningar) - Unisens till EDF-omvandlare - MIT till EDF-omvandlare (inklusive anteckningar) för physionet. orgphysiobankdatabase - Manscan Microamps (.mbi. mb2) till EDF-omvandlare (inklusive anteckningar) - SCP-ECG (.scp, EN 1064) till EDF-omvandlare - Videouppspelning synkroniserad med EDFBDF-fil (endast Linux) - Emsa (.PLG) till EDF-omvandlare (inklusive anteckningar) - ASCII till EDFBDF-omvandlare - Finometer (Beatscope) till EDF-omvandlare - Bmeye Nexfin (FrameInspector) till EDF-omvandlare - WAV till EDF-omvandlare - läser Biosemis trigger-ingångar från BDF-statussignalen - Annotationsredigerare - Header-editor, fixar också många olika formatfel - 1: e till 8: e order Butterworth, Chebyshev, Bessel och glidande medelfilter - Notchfilter med justerbar Q-faktor - Spike filter tar bort spikar, glitches, snabba transienter eller pacemakerimpulser. - Powerspectrum (FFT) - EKG-hjärtfrekvensdetektering (rå EKG-vågform - gt slag per minut) med möjlighet att exportera RR-intervall (beat to beat) - FM-modulerad EKG-inspelning till EDF-omvandlare - Z-EEG-mätning - Medelvärde med hjälp av triggar , händelser eller anteckningar - Stödjer montage - Annotationsevents export - Annotationsevents import - Fil reducererkropperdecimator - Downsampling signaler - Exakta mätningar med hjälp av crosshairs - Zoomfunktion genom att rita en rektangel med musen - Visar signaler från olika filer samtidigt - EDFEDFBDFBDF till ASCII-omvandlare - EDFEDFBDFBDF-kompatibilitetskontroll - EDFD till EDFC-omvandlare - BDF () till EDF () - omvandlare - Skriver ut till en skrivare, bild eller PDF - Kombinera flera filer och exportera den till en ny EDF-fil - Exportera en del av en fil till en ny fil - Läser från en streaming-fil (övervakning) - Tillgänglig för Linux och Windows (källan kan sammanställas på Mac OS X) Detta är fri programvara, den är experimentell och tillgänglig under GPL-licensversionen 3. Ingen avgift, ingen garanti, ingen skatter, inga underhållsavgifter, ingen reklam, ingen adware, inga automatiska uppdateringar, inga försäljningsanrop, ingen spam. Även om det här programmet är gratis är det inte billigt. Många ansträngningar gick till att göra detta program användbart, så om du hittar ett problem, använd den e-postadress som anges i programmen om menyn för att rapportera det. Ansvarsbegränsning: Trots att den här programvaran är avsedd att vara användbar, finns det ingen garanti, använd den här programvaran på egen risk. EDFbrowser får INTE användas i säkerhetskritiska tillämpningar, t. ex. livsuppehållande medicinska system. Författaren ansvarar inte för några konsekvenser. Endast för forskning och utbildning. Eftersom det är väldigt lätt att kompilera EDFbrowser är det det rekommenderade sättet. Se hur du går vidare på den här sidan. Instruktioner hur man sammanställer EDFbrowser på Mac kan hittas här och här. Traditionellt träspår för ditt hem kommer alltid att vara det bästa valet i alla sidospår. Men du behöver rätt siding entreprenör för att hjälpa dig att välja den bästa trä siding med minst antal sidor underhåll. Det finns många olika typer av träskärning skapad med hjälp av underparmaterial. Don8217t låt din nexthellip Läs mer Professionella taktjänster och takreparationer till överkomliga priser Om du har takläckageproblem, vänta don8217t att kontakta en takentreprenör. Långa takläckor verkar ofarligt i början, men kan förvandlas till allvarliga problem snabbt. Med långvarig takläckage kan det orsaka mögelväxt, skadade tak, möbler. Ring oss idag om du behöver hjälp med att läsa Läs mer När du försöker minska din home8217s värmekylningsräkning, finns det inga bättre sätt att spara pengar än att ha nya Windows - eller träutbytesfönster installerade. Framför allt, med den nya federala skatteavdraget på upp till 1500 där8217s ingen anledning att inte. Att ha en vacker däck kommer alltid att ha en positiv avkastning på ditt fastighetsvärde. Att lägga ett däck är ett billigt sätt att utöka ditt bostadsutrymme. Den genomsnittliga kostnaden för att bygga ett däck är ungefär 7 000 och ger en avkastning på cirka 15 000 när du säljer ditt hem 8211 Inte till dåligt, rätt Så överväga att ha ahellip Läs mer Att välja rätt siding entreprenör är avgörande för alla sidospår. Oavsett om det går att installera vinylfasad över sidospår eller helt avlägsna din befintliga sidospår för ny sidospår. Att ha en professionell siding entreprenör som kan ge dig den bästa lösningen för den smidigare siding installerar kommer att spara mycket huvudvärk, tid andhellip Läs mer Vad våra kunder säger Mycket glad Jag ville bara uttrycka hur nöjd var med vårt nya tak och sömlösa takrännor. Mike och hans arbetare är mycket trevliga och välmana att vara runt. Jag kunde inte tro hur snabbt de slutade takläggning vårt hem och garage. De lämnade platsen renare än när de startade och skyddade våra buskar, växter som lovade. Var så nöjda med takinstallationen, att vi vill ha dem tillbaka för fönsterbyten. Tack Mike Visa sitt hem: takläggning Melrose MA mdash Robert Patricia Quinn, Melrose, MA MBM Construction är betygsatt 5 5 baserat på 3 recensioner. Att hitta rätt entreprenör ska inte vara smärtsam Att göra rätt bostadsförbättring eller ombyggnadsprojekt kan lägga till verkligt värde till någon typ av hem, om det görs korrekt och effektivt av en licensierad och försäkrad professionell. Använda högkvalitativa material som är energieffektiva, tilltalande och viktigast, tillförlitliga, till exempel lågviktigt vinylfönster. fönsterbyten. singeltak och anpassade däck kommer att lägga till verkligt värde. I de flesta fall kan du förvänta dig och omedelbar avkastning på din investering efter att ha gjort dessa hemförbättringar. Välj en entreprenör som kommer att få jobbet, gå igenom varje steg i projektet från början till slut utan några dolda extrafunktioner. Våra hemförbättringstjänster har gett oss en fördel över andra bostadsbyggnadsföretag. Att vara en av de bästa serviceleverantörerna inom sidospår, takläggning, utbytesfönster och rumtillägg. ger oss stor köpkraft genom våra leverantörer och kan i gengäld passera besparingarna till dig Så varför välja oss som ditt hembyggnadsentreprenör Vi lyssnar på era behov. Vi använder inte högtrycksförsäljning, eller försöker sälja dig något du inte behöver eller vill ha. Kommunikation är nyckeln till alla typer av renoveringsprojekt och vi vill att ditt projekt ska få det bästa möjliga resultatet. Du får ett detaljerat projekt beräknat slutförd - utan huvudvärk Du kommer också att få en av de bästa garantierna i hemförbättringsföretaget, om du någonsin behöver använda den. Vilken typ av hemförsörjningstjänster letar du efter Välj en takentreprenör som kommer att arbeta i ditt bästa intresse och inte i hur mycket vinst han kan göra genom att klippa hörn. Som takentreprenörer tror vi på att använda de bästa takbjälkarna och underlaget för att ge våra kunder sinnesro. För mer information om taktjänster, besök: Commercial Flat Roofing eller Residential Roofing Inte alla vinyl och trä sidospår är desamma. Välj en professionell siding entreprenör som kommer att hjälpa dig att förstå vilken typ av vinyl siding att undvika, och vad kommer att ge dig bästa valet för din pengar på lång sikt. Från en standard tryckbehandlad däck, mahagony däck, eller en komposit däck - vi har fått dig täckt. Läs mer om Decks and Porches Deck buildersHTWay 8211 En Segway-typrobot Introducerar HTWay, en Segway-typ självbalanseringsrobot. Denna robot använder HiTechnic Gyro Sensor samt HiTechnic IRReceiver. Gyro-sensorn används för att upprätthålla balans medan IR-mottagaren gör det möjligt att styra den med en LEGO Power Functions-fjärrkontroll. Uppdatering (8 november 2010): NXC-versionen uppdaterades för att fixa en bugg som orsakade programmet att krascha när optimeringsnivån var inställd utöver 1. Uppdatering (28 juli 2010): NXT-G-programmet i hämtningen ovan har uppdaterats för att använda det nya 2.0 Gyro-sensorblocket som kan hämtas från sidan Nedladdningar. Om du använder det ursprungliga 1.0 Gyro-sensorblocket måste du uppdatera det till det nya 2.0-blocket för användning med detta program. Både NXC - och NXT-G-programmen arbetar väsentligen på samma sätt. Programmen utnyttjar flytande punktmatematik som är nytt med LEGO Mindstorms NXT 2.0. Den ursprungliga 1.0 NXT stödde bara heltalmatematik. Medan man använder flytande punkt är matematik inte nödvändigt när man programmerar en Segway-typrobot, det gör programmet mycket lättare att förstå och att arbeta med. Uppdatering för NXT-G: För NXT-G-programmet, se till att du också hämtar och installerar Gyro och IR Receiver-blocken från LEGO Mindstorms-programvaran. Du hittar dem på Mindstorms NXT-G Blocks nedladdnings sida. Om du vanligtvis programmerar i NXT-G med LEGO Mindstorms 1.0 eller 1.1, är det här en utmärkt möjlighet att ge NXC ett försök. Om du installerar utvecklingsmiljön BricxCC. du kommer att få NXC som en del av paketet. För HTWay behöver du också LEGO firmware 1.26 eller högre. Jag rekommenderar LEGO Firmware 1.29. Denna firmware är helt kompatibel med den tidigare versionen och kommer fortfarande att fungera med din LEGO Mindstorms 1.0 och 1.1-programvara. Du kan till och med använda BricxCC för att ladda ner firmware till NXT från Verktyg-menyn, välj Download Firmware. Du måste också göra NXC-kompilatorn riktad mot 2.0-firmware för att dra nytta av den flytande punktmatematiken. Du kan göra det genom att gå till Redigera-Inställningar, klicka sedan på fliken Kompilator och sedan på NBCNXC-underfliken. Kontrollera nu alternativet 8220NXT 2.0 kompatibelt firmware8221. Uppdatering för NXC: För att kunna dra nytta av den flytande punkten matematisk support behöver du också ladda ner och installera den senaste testutgåvan av BricxCC. När du har hämtat zip-filen i testversionen kopierar du innehållet över din befintliga BricxCC-installation. Detta kommer sannolikt att vara c: Program FilesBricxCC. När du kör programmet, är det första du gör det möjligt att välja vilken hjulstorlek du använder. Det finns tre alternativ: Small (NXT 2.0), Medium (NXT 1.0) och Large (RCX). Använd piltangenterna för att välja och Orange Enter-knappen för att välja. Roboten behöver nu få en första gyroförskjutning. Du kan tänka på detta som en Gyro Sensor-kalibrering. För att få en bra gyroförskjutning måste roboten vara noggrann. Om du håller roboten i din hand väntar den tills du sätter ner roboten och den rör sig inte innan den kommer att få gyroförskjutningen och fortsätta. HTWay börjar nu pipa och indikerar att du har fem sekunder att få roboten vertikal och så balanserad som möjligt. Släpp i slutet av den långa pipen. Roboten ska nu balansera och är redo att köras med LEGO PF fjärrkontrollen. Du kan styra det som om du skulle ha en tank. Båda spakarna går framåt och roboten kör framåt. Båda spaken tillbaka och den vrider sig. En enda hävarm och det vrider runt ett stoppat hjul och båda hävstångarna i motsatta riktningar och det kommer att vrida på plats. Bakgrund Detta är ett klassiskt problem i kontrollteori. Före Segway Personal Transporter. det var mer allmänt känt som det inverterade pendelproblemet. Normalt när man tänker på en pendel, som på klockan, hänger den ner under svängpunkten där den är stabil. Den inverterade pendeln är en där tyngdpunkten ligger ovanför svängpunkten i en position som är iboende instabil. För att hålla upp det måste pivotpunkten flytta för att fånga den när den börjar falla. Det är i huvudsak samma problem som att skapa en segwayrobots balans. Med LEGO-robotiken har denna utmaning tagits upp många gånger. Först kom Steve Hassenplug8217s LegWay med RCX och två EOPD-sensorer. Dessa RCX EOPD-sensorer var tidiga HiTechnic-produkter som fungerade väsentligen samma som nuvarande NXT EOPD-sensorer. Dessa sensorer användes för att berätta avståndet till golvet. Om roboten lutade framåt, då skulle sensorerna vara närmare golvet så RCX kunde säga att det lutade framåt. Om det lutade sig tillbaka, skulle sensorerna vara längre bort från ytan. Detta var en fantastisk skapelse och Steve fick en plats på kabel-TV berömmelse med den här fantastiska roboten. Det kunde inte bara balansera exceptionellt bra, det kunde spåra och till och med snurra i cirklar för att imponera på folkmassorna. Med NXT byggde Philippe E. Hurbain NXTWay med hjälp av NXT Light Sensor på ett sätt som liknar Steve Hassenplug8217s LegWay. Under kontrollerade förhållanden kan LEGO Light-sensorn också användas för att berätta avstånd. Så länge belysningen och ytan är konsekvent kan roboten berätta om den lutar framåt eller bakåt baserat på ljussensorvärdet. Med tanke på den dåliga upplösningen av ljussensorn var detta en imponerande prestation. Den första gyrosensorbaserade NXT Segway-roboten kom från Ryo Watanabe vid Waseda University i Japan. Den ursprungliga HiTechnic YouTube-videon av en balansrobot var faktiskt Ryo Watanabe8217s väldigt imponerande robot som vid det tillfället använde en prototyp HiTechnic Gyro Sensor. Ryo gjorde ett fantastiskt jobb för att beskriva fysiken och hans lösning som var mycket värdefull för skapandet av den nuvarande HTWay-modellen. Senare skapade Dave Parker på nxtprogrammer en fantastisk NXT 2.0 One Kit Segway med ryttrobot med LEGO Color-sensorn på samma sätt som Philo8217s NXTWay. Dave Parker kom med den ursprungliga tanken på att använda den tredje motorn för att kompensera balansen och använda den för att få roboten att gå framåt eller bakåt, på ett sätt som liknar den verkliga Segway PT som också styrs av den mänskliga ryttaren som lutar framåt eller bakåt. Mycket cool Laurens Valk har också nyligen publicerat en Segway-typrobot som använder HiTechnic Gyro Sensor. Han kallar sin skapelse AnyWay. Liksom HTWay är hans program också skrivet i NXT-G. Laurens8217s projekt inspirerade några idéer som användes vid skapandet av HTWay, inklusive tanken att låta användaren välja hjulstorlek med knappgränssnittet i början av programmet. Hur det fungerar Först och främst måste du förstå exakt hur det fungerar för att göra den här roboten. Du kan bygga den och lägga NXC eller NXT-G-programmet på det och ha kul med det även om du inte fullt ut får matematiken som balanserar den. Både NXC - och NXT-G-programmen är skrivna så att kontrollkoden är skild från balanskoden. Om du vill använda andra sensorer, t. ex. ultraljuds - eller ljussensorn, förutom Gyro-sensorn som är nödvändig för balansering, kan du göra det. Allt du behöver göra är att ha din egen kontrollkod som i sin tur kan driva roboten genom att ändra två globala variabler, motorControlDrive och motorControlSteer i NXC och controlDrive och controlSteer i NXT-G. Båda dessa variabler är i grader per sekund. Styrreglaget är baserat på önskad skillnad i motorkodare. Ovan hittar du nedladdningslänkarna för både NXC och NXT-G-program. Dessa program har skrivits så att de fungerar så mycket som möjligt på samma sätt. Nedan ger jag några kodfragment från NXC-programmet. Om du är en NXT-G-programmerare, försök följa med. Du kan också titta på den faktiska NXT-G-koden i LEGO Mindstorms-programvaran och följa med där. Eftersom några av matematikekvationerna blir ganska stora i NXT-G, kan det vara lättare att förstå NXC-programmet. För att balansera har roboten en styrslinga som tar hänsyn till fyra delar av informationen och bestämmer sedan hur mycket motorkraft som behövs för att stanna upprätt. I en förenklad form ser NXC-koden för huvudbalansslingan ut så här: Observera att det verkliga NXC-programmet är lite mer komplicerat eftersom det tar hänsyn till några fler saker, såsom körning, styrning och det faktum att motorn behöver ström att vara begränsad till ett - 100 sortiment. I detta kodfragment kan du se att varje gång genom balansöglan erhålls fyra data: gyroSpeed. gyroAngle. motorhastighet. och motorPos. Det här är de statliga variabler som beskriver vad som för närvarande händer med roboten. är från Gyrosensorn och är robotens vinkelhastighet. Om roboten är mitt i fallet framåt kommer det här värdet att vara positivt. Enheterna är ungefär i grader per sekund. är vinkeln på roboten. Detta värde är positivt om roboten lutar framåt och negativ om den lutar bakåt. (Detta är inte exakt sant som kommer att förklaras senare) Enheterna för gyroAngle är grader. är robotens position i motorns grader. För HTWay är detta faktiskt summan av de två motorkodarna. Detta är termen som håller roboten på en viss plats. är motorns varvtal. Detta nummer är också i degreessecond och är också baserat på summan av de två motorkodarna. Denna term är vad som hindrar roboten från att oscillera fram och tillbaka och effektivt sakta ner det. För att beräkna effekten multipliceras dessa variabler med respektive konstanter i en fyrtids linjär ekvation, resultatet är den effekt som behövs för roboten att hålla sig balanserad. Tricket att göra allt detta är att hitta rätt konstanter. För att ge dig en uppfattning om varje terms roll i balansräkningen, kommer jag att prata om varje termin en i taget med ett försök att isolera vad varje gör. Först och främst, Imagaine att roboten är perfekt balanserad och precis vid önskad målposition. I så fall kommer alla fyra variablerna att vara noll. Med andra ord är roboten perfekt vertikal så gyroAngle är noll, roboten faller inte framåt eller bakåt, roboten rör sig inte och den är exakt i önskad position. Eftersom alla fyra variablerna är noll är resultatet av effektekvationen också noll. Så, om alla villkoren är noll förutom att roboten lutar framåt, till exempel är gyroAngle 5 grader. Vad gör du Tja om roboten lutar framåt är det nödvändigt att köra framåt för att försöka fånga roboten. Det vill säga är KGYROANGLE-konstantens roll. När multiplicerat med gyroAngle. det kommer att ge den kraft som behövs för att driva framåt för att få höst att återfå balansen. Återigen, föreställ dig att alla termer är noll förutom att den här gången gyroSpeed ​​är positiv, kanske är det 10 grader. Så roboten är upprätt och rör sig inte, men den har på något sätt blivit sig själv i en situation där den faller framåt. På ett sätt kan man tänka på detta som ett huvud så att saker går på vilse. Även om det är upprätt nu, är det på väg att luta sig framåt. Den här termen låter roboten svara även innan den faller framåt. Det spelar också en roll när roboten lutar men är på väg att bli upprätt, i så fall kommer denna term att förhindra att gyroAngle termen gör att roboten svarar när det är i själva verket okej. Så vad sägs om de två motorvillkoren Tja om roboten är perfekt upprätt och inte faller men roboten är 100 grader längre framåt så önskas, i så fall kommer motorPos att vara 100. Kom ihåg att motorPos i HTWay-programmet är summan av de två motorerna kodare. Det faktiska avståndet hur långt framåt det är kommer också att bero på hjulets storlek. Även om det skulle vara trevligt att bara köra tillbaka till nollpositionen, fungerar det inte. Om du försöker bara köra bakåt tillbaka till nollställning, så skulle roboten faktiskt falla framåt. Lösningen är faktiskt att köra framåt, för att du ska kunna gå bakåt måste du först få roboten att falla bakåt. För att göra det kör du framåt. Motor Speed-termen fungerar på samma sätt som motorPos. Om roboten är mitt i körning framåt, då behöver du först och främst tillräckligt med kraft för att behålla hastigheten och därigenom balansen, och då behöver du lite mer för att få roboten att luta sig bakåt för att göra det långsamt ner. I NXC-programmet ställs de fyra konstanterna på dessa värden nära programmets övre del: En anteckning om hjulstorlek som gör det möjligt I HTWay-programmet kan du välja hjulstorleken du använder med ett tre-knapps gränssnitt. Vad det här gör är det en global variabel som kallas ratioWheel till antingen 0,8, 1,0 eller 1,4 för respektive små NXT 2.0 hjul, medelstora NXT 1.0 hjul och eller de stora RCX-hjulen. Så vad gör det egentligen bra Den faktiska balansekvationen är lite annorlunda än vad som visades ovan, här är det fullständiga uttrycket som används i programmet: Det visar sig att hjulstorleken bara behöver spela en roll med de två gyrosensormen och inte motorvillkoren. Anledningen till att hjulstorleken är viktig är att större hjul behöver mindre kraft för att kompensera för att de inte är i balans. Eftersom större hjul går vidare, med viss inmatning behöver du mindre av det för att uppnå samma rörelse. Så varför inte ta hänsyn till hjulets storlek på motorvillkoren. Anledningen är att dessa termer är effektivt självrelaterade. Om roboten är till exempel en tum för långt framåt kommer den att representeras av ett högre motorPos-värde för små hjul än för stora hjul. Effektivt för den lilla hjulroboten kommer detta att resultera i ett högre inflytande på motoreffekten än vad som kommer att hända för samma avstånd med de större hjulen. I koden ovan ser du också att MotorControlDrive också spelar en roll i balansräkningen, det är inte det som driver roboten. Den här termen används för att hjälpa roboten att gå och sakta ner det när terminen mot MotorControlDrive ändras. När du börjar köra roboten kommer den här termen att göra att roboten först kör bakåt lite för att snabbt komma, då när du slutar kommer det att ge roboten lite extra boost för att hjälpa det luta sig tillbaka för att sakta ner. Den faktiska körningen kommer från denna linje precis ovanför effektbalansekvationen: Varje gång genom slingan justeras motorPos-variabeln proportionellt till den globala variabeln motorControlDrive. MotorControlDrive är i degreessecond så genom att multiplicera den med intervalltiden, justerar vi motorPos med det belopp som roboten ska flytta varje gång genom styrslingan. Detta flyttar målpositionen längs vilket är det som gör robotenheten. Integration Om du är en ung robotbyggare har du nog aldrig hört talas om integration. Om du är äldre önskar du förmodligen att du aldrig haft det. Det visar sig att integrationen är väldigt användbar och nödvändig för detta projekt. Och faktiskt inte så svårt att förstå. Problemet är att Gyro Sensorn inte ger dig en verklig vinkel. Du kan bara läsa Gyrosensorn och berätta om roboten lutar framåt eller bakåt. Allt du kan säga är vinkelhastigheten, med andra ord hur snabbt det faller. Så om du vet vinkelhastigheten, hur kan du få en vinkel Tja that8217s vilken integration gör det. Integration är helt enkelt en uppgift att lägga till en oändlig serie av värden över tiden. Let8217s säger att vid en given tidpunkt du känner till robotvinkeln, behåller vi det i en variabel som heter gyroAngle. Varje gång genom slingan får vi från Gyro Sensorn vinkelhastigheten i degreessecond. Så om vi känner till slingans intervall kan vi uppdatera vår gyroAngle med det belopp som vi vet att vinkeln har ändrats. Eftersom vår slinga körs cirka 100 gånger per sekund är intervalltiden 0,01 sekunder. För att uppdatera gyroAngle. vi lägger enkelt till gyroSpeed ​​gånger intervalltiden (0,01 sekunder) i gyroAngle för att få ett nytt värde. That8217s det här Här är NXC-funktionen för att få gyrodata som gör det här: Den här funktionen tar också hand om ytterligare ett hushållstycke som vi bör diskutera: gyroförskjutningen. På grund av gyrosensorelementets teknik är det sannolikt att det råa sensorns värde inte är noll, även om sensorn inte har någon faktisk vinkelhastighet. Eftersom vi behöver ett nollvärde när sensorn inte vrider, måste vi behålla ett gyroförskjutningsvärde som vi kan använda för att justera sensorvärdet för att få en exakt vinkelhastighet. För att upprätthålla en gyroförskjutning gör programmet två saker. Innan roboten börjar balansera blir det en första gyroförskjutning genom att medeltala 100 prov av sensorns värde medan roboten ligger på marken. Men det här värdet blir bara den första gyroförskjutningen. Medan roboten körs måste vi också ständigt justera detta offsetvärde för att hålla värdet från drift med tiden (och som ett resultat kommer hela roboten att svänga i läge om den inte korrigeras). I HTWay-programmet görs detta genom att upprätthålla ett långsiktigt medel som kallas exponentiellt rörande medelvärde. Eftersom det långsiktiga genomsnittet av vinkelhastigheten, förutsatt att roboten balanserar, borde vara noll, kan det långsiktiga medelvärdet av sensorvärdet användas som gyroförskjutning. I koden ovan är EMAOFFSET mycket liten, 0.0005, så även om roboten rör sig fram och tillbaka under balansering, kommer det inte att ha en stor omedelbar effekt på gOffset-värdet. Endast om offset är avstängd under en betydande tidsperiod kommer offsetvärdet märkbart att ändras. Detta sätt att använda ett exponentiellt rörligt medelvärde är också känt som ett lågpassfilter. gyroAngle och motorPos 8230 inte exakt noll När roboten börjar balansera antar programmet att roboten är vertikal. Tja, även om du är väldigt bra när du släpper på roboten kanske det inte är sant. Du kommer sannolikt att vara av med en grad eller två. Även om programmet upprätthåller en gyrooffset och kontinuerligt integrerar vinkelhastigheten för att upprätthålla gyroAngle. Det här kanske inte är perfekt och gyroAngle kan fortfarande driva lite med tiden. Låter som en katastrof, nej Det visar sig inte vara ett problem. Verkligheten är att när du inte kör och roboten oscillerar fram och tillbaka och håller balans, kan gyroAngle och motorPos vara proportionellt borta från noll. Anledningen till att det fungerar är att de två termerna har nått en jämvikt där man förskjuter den andra. Roboten kan till exempel vara snyggt balanserad runt ett gyroAngle-värde på 1 grad, för att kompensera, motorPos kan vara cirka -107 grader. När dessa två värden multipliceras med sina respektive konstanter i balansekvationen, kommer de att avbryta varandra. Referenser Ryo Watanabe gjorde ett utmärkt jobb för att förklara både problemets fysik och den linjära ekvationen som möjliggör en lösning på NXT. Här är översikten. En annan bra hemsida med information om LEGO Segways programmering är techbricks. nl. Erkännanden Jag vill tacka Laurens Valk och Xander Soldaat som hjälpte mig med det här projektet. Xander granskade byggnadsinstruktionen och testade roboten. Laurens och jag diskuterade olika aspekter av programmet som påverkade vissa funktioner som hur gyroförskjutningen upprätthålls samt funktionen att låta användaren välja hjulstorleken i början av programmet. 8220Segway8221 är ett registrerat varumärke som tillhör Segway, Inc. Kontrollern tar hänsyn till fyra saker för att balansera roboten: gyrohastigheten (frekvensen av fallet i degsec), vinkeln (hastighetens integral), motorhastigheten och motorns position. Dessa fyra villkor, tillsammans med ytterligare bearbetning för att hantera körning och styrning, används då för att ställa in en proportionell effektmängd till motorerna. Hej ledsen, för det långsamma svaret. Saker har varit ganska upptagen på sistone. Du kan använda accelerationssensorn tillsammans med trig-funktioner för att få en lutningsvinkel. Problemet med det är att det bara fungerar när sensorn är stationär. Om du flyttar sensorn runt får du också acceleration på grund av rörelse och då kan du inte få en vinkel på ett tillförlitligt sätt. I värsta fall kommer en sensor monterad på en fallande robot att väsentligen falla på grund av gravitationen. I det här fallet kommer det inte att upptäcka att något är fel tills det träffar marken. Du behöver en gyrosensor för att göra en balansrobot. Jag har aldrig sett det gjort med en accelerationssensor. Gus Jag köpte också en gyrosensor och IR-mottagare från ditt företag. I8217d gillar att göra en 8220Segway8221 LEGO robot, men I8217m gör min programmering med RobotC. Jag var på Robotics Academy och frågade experterna om detta men ett sådant projekt de inte kunde ge mycket hjälp. Kan du peka mig i rätt riktning Har du en RobotC-version av ditt program Tack jag don8217t har en RobotC-version men jag vet att RobotC-versioner finns någonstans på nätet. Jag föreslår att du tar NXC-versionen som också är tillgänglig från det här blogginlägget och konverterar det till RobotC. Dessa språk är lite annorlunda men det borde vara genomförbart. Hej, jag letar efter den exakta matematiska modellen för denna lego segway, kan sombady hjälpa mig att jag hittade flera modeller, i statlig rymdrepresentation, men dessa modeller är faklan inte hastigheten och ingången är hastighet, hjulets acceleration, vinkelhastighet , pendelns vinklacceleration och inte positionen, hjulets hastighet och vinkel, pendelens vinkelhastighet. Tack på förhand. Hej Gus, och jag gillar att programmera NXT (NXTway-gs) kit med LabView. Det är lite svårt för mig. Kan du skicka mig LV-versionen av vägen för att hjälpa mig att tacka dig väldigt mycket. Hallå där. Jag har kämpat för att ändra nxc-koden för denna HTWay. Även omodifierad kod fungerar inte. Jag kör den nedladdade filen på BricxCC, kompilera och ladda ner bara bra. men då, när jag körde programmet på NXT, efter pipen står det File Error. Vänligen råd. I8217ve följde anvisningarna noggrant. Senaste testutgåvan, kryssrutan nxt 2.0 och allt det där. Tack jag misstänker att du inte har IRReceiver ansluten som programmet förutsätter. Om du inte har IRReceiver-sensorn, kan du kommentera koden som initierar sensorn och försöker läsa den. Roboten borde balansera och hålla sig på plats om du tar bort den här koden. Om du vill göra robotenheten och vänd, kan du ersätta den här uppgiften med din egen kod som anger samma globala variabler som används av kontrolluppgiften att köra och styra roboten. Skicka mig ett mail till support på hitechnic dot com och jag hittar den LabVIEW version jag har av HTWay. Jag har en LV 2009-version men jag behöver fortfarande göra en ny LV för LEGO Mindstorms version av programmet. Nej, sensorn 8220Tilt8221 är en accelerometer. Accelerometern kan mäta lutningen eftersom tyngdkraften uppfattas som acceleration men det fungerar bara om sensorn inte rör sig. Eftersom HTWay ständigt är i rörelse kan den här sensorn inte användas för att upprätthålla balans. För HTWay behöver du Gyrosensorn. Gyrosensorn ger ett värde baserat på vinkelhastighet men påverkas inte annars av robotens rörelse. Vad är fördel med gyrosensorn vs eopd Jag har just börjat ett LegWay-projekt och det verkar lättare för mig att översätta avståndsförändringen, som avkänns av EOPD, till en speedpower nivå för motor än för att hantera gyrosensorn. Jag använder ett äldre RCX-kit (med HiTech NXT-EOPD) 8230 kommer det här arbetet (jag har konverterad kabel) behöver jag två EOPDs (ala Hassenplug) Ska glömma detta och bara gå gyro Vad är dina tankar Tack. Verdonko, först och främst kommer NXT EOPD och Gyro-sensorerna inte att fungera med den äldre LEGO RCX, även med en omvandlingskabel. Kabeln gör att RCX-sensorerna och motorerna kan användas med NXT men inte tvärtom. (Faktiskt fungerar NXT-motorerna). En NXT LegWay-typrobot som använder EOPD-sensorerna kan byggas på samma sätt som Hassenplug gjorde med RCX. Problemet med EOPD-sensorn är att det kommer att vara känsligt för ytan på den yta som den körs på. Om du försöker köra roboten på olika färgytor eller något som mattan, kommer det inte att fungera eller kräva omkalibrering till den ytan. Vissa ytor fungerar inte alls som en mörk matta som absorberar nästan all ljus. Det kommer inte heller att hantera backar eftersom balansen kräver en annan vinkel mot ytan när du är på en sluttning. Hej, jag försöker också bygga en självbalansande robot som HTWay. I8217m med LabView 2009. Men jag har några problem med vinkeln (drift) och hur det fungerar med motorpositionen. Kan du hjälpa mig med en LabView-version av HTway I8217ve byggde din HTWay noggrant och det verkar fungera, till viss del. Det balanserar, det vänder, men så länge jag trycker båda PF-fjärrhandtagen i samma riktning (framåt eller bakåt), börjar roboten att röra sig framåt eller bakåt, men nästan omedelbart förlorar den balansen och faller fram respektive bak . Inget som du visar på din video. I8217m med NXT firmware 1.31, rätt hjulstorlek etc. Jag upplever samma problem, både med NXT-G och NXC. Min NXC Compiler är inriktad på 2,0 firmware och optimeringsnivåer är 2. Har du någon aning om vad som kan gå fel med min robot Tack så mycket på förhand. Genom att läsa igenom alla kommentarer visade det sig att jag också använde mitt uppladdningsbara batteri, för lågt. 7,4V trots att barindikatorn fortfarande låg över halvvägs. Efter full laddning (nu 8,3V) fungerar det perfekt Bra modell Tack Tack för den här samlingen av länkar, information och förklaring, it8217s är verkligen användbar och uppmuntrande. It8217s gjort det8217s jobb, I8217m av nu för att beställa min egen HiTechnic Gyro-sensor så att jag kan bygga en HTway-variant myself8230 tack Hej Gus, jag har köpt en gyrosensor och IR-sensorn för att bygga din robotrobot och jag gillar att programmera den med NXC. Men jag tror att din programm har en bugg När jag laddar ner din NXC Programm startar den men hjulvalet körs inte. Jag hör några ljudsignaler och NXT hänger upp. NXT-G-programmet fungerade väldigt bra, men jag vill göra det med NXC 8211-programmet och Brixc. Tack för din hjälp Först och främst är I8217m inte säker på vad problemet är men jag verkar komma ihåg det kan vara ett problem som orsakas av NXC-kompilatorns optimeringsnivåanvändning. Med hjälp av dialogrutan Rediger gt-inställningar ändrar du optimeringsnivån som används under Compiler gt NBCNXC till nivå 1. Det kan göra tricket.

No comments:

Post a Comment