R11

5Wiki
Versioiden väliset erot
Loikkaa: valikkoon, hakuun
Rivi 3: Rivi 3:
 
Rakenne ja vähän muutakin 03/2011:.
 
Rakenne ja vähän muutakin 03/2011:.
  
[kuva] R10 @ 27.3.2011
+
[Kuva] R10 @ 27.3.2011
 
+
+
  
 
Runko on rakennettu pääosin 4mm polyeteenistä ja pyörät sorvattiin polyaselaalista. Kaksi vetävää pyörää on kytketty askelmoottoreihin ja kolmas, vapaasti pyörivä ja kääntyvä pyörä seuraa takana.
 
Runko on rakennettu pääosin 4mm polyeteenistä ja pyörät sorvattiin polyaselaalista. Kaksi vetävää pyörää on kytketty askelmoottoreihin ja kolmas, vapaasti pyörivä ja kääntyvä pyörä seuraa takana.

Versio 28. maaliskuuta 2011 kello 09.30

Sekalaiseen harrasteluun rakennettu robotti, joka osaa navigoida ja kartoittaa. Kiinnitettynä on tällä hetkellä ainoastaan navigointiin käytettävä web-kamera, mutta lähiaikoina robottiin on tarkoitus lisätä myös Kinect ja ultraäänianturi. Aiemmin robottissa oli myös viivanseurausanturi ja sillä osallistuttiin robosodan viivanseurauskisoihin. Sijoitus kaikissa kilpailuissa oli kolmas.

Rakenne ja vähän muutakin 03/2011:.

[Kuva] R10 @ 27.3.2011

Runko on rakennettu pääosin 4mm polyeteenistä ja pyörät sorvattiin polyaselaalista. Kaksi vetävää pyörää on kytketty askelmoottoreihin ja kolmas, vapaasti pyörivä ja kääntyvä pyörä seuraa takana.

Kumpaakin askelmoottoria ohjataan omalla moottoriohjaimellaan, joissa on myös säädettävä virranrajoitustoiminto. Käytännössä toteutus on L297 + L298-piirien referenssikytkentä kasattuna itsetehdylle piirilevylle. Moottorien ohjaimet ovat erillisiä yksiköitä ja ne ovat yhdistetty lattakaapelilla mikroprosessorilevylle.

Mikroprosessorilevy paitsi ohjaa askelmoottoreita, on myös yhteydessä ylemmällä tasolla olevaan fit-pc 2:een RS-232-väylällä. Vapaita I/O-pinnejä on ~20. Mikroprosessorissa suoritettavana ohjelman pääsilmukka on varattu sekalaisille toiminnoille, kuten sarjaporttin anturien tiedon lukuun/kirjoitukseen. Askelmoottorien ohjaukset ovat omissa kellokeskeytyksissään. Moottorien pyörimisnopeutta muutetaan keskeytysnopeutta muuttamalla (aina keskeytyksen tultua muutetaan moottorin ohjaussignaalin tilaa). Sarjaporttiin on määritelty kevytrakenteinen prototokolla, jonka päällä varsinainen tieto siirretään. Jokaisen viestin alkuun on määritelty aloitusmerkki., jonka jälkeen tulee moottorinohjaukseen tarvittavat 5 tavua dataa, loput paketin sisällöstä voidaan määritellä tarpeen mukaan. Paketti voi olla periaatteessa rajoittamattoman pituinen, kunhan sekä lähetys- että vastaanottopää käyttävät samaa paketin rakennetta. Minkäänlaisia tarkistuksia virheiden varalle ei siis ole.

PC:ssä on tällä hetkellä Windows XP, joka on valikoitunut käyttöön lähinnä paremman hardistuen (logitechin webbikamera, Fit-pc 2:n näytönohjain, Kinectin Python wrapperi) takia. PC:ssä pyörivät prosessit on koodattu Pythonilla, ja prosessien keskinäiseen kommunikointiin käytetään Python Remote Objects (Pyro)-kirjastoa. Kirjaston ansiosta varsinaisissa prosesseissa ei tarvitse kiinnittää suuresti huomiota prosessien välisen kommunikoinnin turvaamiseen ja datan eheyden tarkistamiseen.

Tällä hetkellä Robotin PC:llä (Fit-pc 2) pyörii kolme python-prosessia: Nimiserveri, Dataserveri ja varsinainen ohjausprosessi. Nimiserveriä tarvitaan prosessien yhdistämiseen, kun ne käynnistyvät. Dataserveri lukee tietokoneeseen kiinnitettyjä anturia (Kinectiä ja webkameraa), parsii niiden datan ja tarjoaa sitä tarvittaessa muille prosesseille. Lisäksi dataserveri ylläpitää tietoa mm. robotin tilasta, sijainnista ja manuaali-/teleoperointitilassa moottorien ohjenopeuksista. Ohjausprosessi on sarjaportin kautta yhteydessä alemmalle tasolle, ja lisäksi se tekee tarvittavat päätökset moottorien nopeuksista. Autonomisessa tilassa se hakee taskeja dataserveriltä ja toimii niiden mukaan (toteutus vaiheessa). Manuaali- ja teleoperointitilassa ohjausprosessi ainastaan reitittää moottorien pyydetyt pyörimisnopeuksista dataserveriltä mikroprosessorille ja vastaavasti toteutuneen askelluksen toiseen suuntaan.

Varsinainen ohjaus tehdään toisella Acer:N kannettavalla/tabletilla (1825PT), joka on WLAN:lla yhteydessä robottiin. GUI on itse tehty käyttäen Pythonia PyGamea, kommunikointiin robotin kanssa käytetään edelleen pyro:a, jonka välityksellä clientillä annetut komennot siirretään dataserverille.

[kuva] Käyttöliittymä viivanseurausajoilta

Kuvan alalaidassa näkyy kosketusnäytöllä käytettävä rulla ja joypadi. Edellä manittujen lisäksi vihreitä/punaisia painikkeita voidaan käyttää näytöltä painamalla. Muut kentät ovat ainastaan datan esittämistä varten.

Uusi käyttöliittymä (vaiheessa) lainaa joitakin elementtejä vanhasta GUI:sta, mutta kirjoitetaan pääosin uudestaan. Tärkeimmäksi elementiksi tulee karttanäyttö, jonka avulla robotille voidaan antaa taskeja, ja lisäksi sen avulla nähdään robotin ympärillä olevat esteet. lisäksi molempien kameroiden videokuvaa on mahdollisuus esittää käyttöliittymässä (tällä hetkellä webkamera toimii, kinect ei).

Navigointi versio 1.0:

Kaikessa yksinkertaisuudessaan robotissa oleva kamera kuvaa suoraan ylöspäin ja koittaa tunnistaa kattoon kiinnitettäviä merkkejä (visual servoing). Merkit ovat laadittu niin että niiden tunnistaminen kuvasta on mahdollisimman helppoa ja luotettavaa.

[kuva] Näkymä navigointiin käytetystä kamerasta

Merkkien paikka on sidottu tilan koordinaatteihin, ja näin robotin koordinaatit voidaan laskea, jos tiedetään oma siirtymä suhteessa johonkin merkkiin. Jos oletetaan että kalibroinnit on suoritettu oikein ja tiedetään kameran katselukulmat, oma etäisyys merkistä (r) laskettua trikonomertialla kun tiedetään merkin etäisyys pikseleinä kuvan keskipisteestä ja huonekorkeus. Edellä mainittu laskutoimitus antaa vasta etäisyyden merkistä, toisin sanottuna robotti voi sijaita r-säteiden ympyrän kaarella missä pisteessä tahansa ja lisäksi sen suuntakulma ei ole tunnettu.

Merkin sisällä olevan koodauksen ansiosta sen suuntakulma (heading) voidaan tunnistaa, sillä koodaus on joka suuntaan epäsymmetrinen. Lisäksi koodaus yksilöi jokaisen merkin ja erottaa sen luonnollisista objekteista, jotka saattavat olla sopivan kokoisia ja neliömäisiä. Merkin orientaatiosta saadaan suuntakulman ero robottiin ja sitä kautta edelleen robotin suuntakulma. Tämän jälkeen oma paikka ympyrän kaarella on yksiselitteinen piste. Näin ollen selville saadaan sekä x ja y, että suuntakulma.

Kameranavigoinnin lisäksi robotti laskee paikkaansa merkintälaskua (odometry)

Henkilökohtaiset työkalut
Nimiavaruudet

Kirjoitusjärjestelmät
Toiminnot
Valikko
mode 5w
Työkalut