Reliikki 4/8: Tekoäly puolipalloja keräävälle robotille, 2012
14.11.2015 Tagit: aalto-yliopisto robotiikka
Kaivoin arkistosta tälläisen huvin vuoksi. Harkkatyö fight and space... eiku field and service robotics -kurssille, FSR, eli ympäristöään kartoittava ja sitten seinään ajava keinoäly suunniteltuna tiettyä tehtävää varten. Tätä nykyä tuotakaan mainiota kurssia ei kai ole ainakaan entisessä mainiossa muodossaan, eli projektityöllä jossa sai koodata C++:aa muinaiseen harkkatyöalustaan hupaisalle robotille. Keksittiin projektinimeksi Taistellaas leikkimielisesti tuosta fsr:stä ja killan AS-lyhenteestä.
Projektissa oli lieriönmallinen huojuva robotti akulla sekä jatkuvalla virransyötöllä, koska akun lataaminen unohtuu. Robotissa oli myös mm. laserskanneri ja kamera, sekä liikuttelumoottorin ohjaus. Kyseisen vuoden projektiaiheena oli kerätä autonomisesti leikisti kuun tms. pinnalta jotain esineitä, joita simuloi projektissa puolikkaat värjätyt sählypallot. Vääräksi värjättyjen keräämisestä sai haittapisteitä, sekä siitä, että osui seiniin tai pahvisiin esteisiin. Softa pyöri jollain PC:llä labran nurkassa johon robotti oli yhteydessä wifillä. Infra toimi ihan hyvin kunhan sen sai kääntymään omalla gentoolla kun binäärit oli jotain väärää kirjastoa vasten linkattu.
Meidän robotti olis luonnollisesti voittanut, jos ei oltaisi esim. purkattu vikana iltana kaikkea turhaa mukaan ja esim. unohdettu jättää optimointiflagit osittain pois päältä. Oli miten oli, projekti tuskin edes kääntyy enää missään missä mukana jaettua kirjastoa ja/tai simulaattoria ei ole. Koska ruinasin oheislibbien sorsat, niin sain ton screenshotin talteen koska Gentoo kun käänsin ne taas uusiksi kun joku libjpeg olisi pitänyt olla muinainen.
Robotin itse tunkattavaan touhuun kuului mm. konenäöllä pallukoiden tunnistaminen ja vieminen kotipesään, maailman kartoitus sekä kartan perusteella tehtävä reitinhaku/liikeensuunnittelu, ja kurjien moottorien/renkaiden ohjaaminen haluttuun liikevektoriin. Tälläset projektit ovat parasta mitä uliopistossa voi tehdä. Veivattiin koodia useammankin tyypin kesken ja ihan hyvä tuli. Implementoitiin kaikkea kivaa konenäöstä, SLAMista, navigoinnista ja liikkeensuunnittelusta, sekä kaikenlaisesta muustakin.
Käytin läpällä mm. Boostin graafikirjastoa tollaseen occupancygrid-ruudukkoon A*-hauksi. Tämä osoittautui ihan valtavaksi virheeksi, koska saatiin ensin esim. yli neljä tuhatta riviä oksennusta g++:ltä, niin pitkä funktion prototyyppistringi ettei mahtunut valgrindin neljän kilotavun bufferiin (piti kääntää uusiks), pakotettu "paluuarvo" heittämällä poikkeus koska se oli boostin suositeltu tapa, sekä aika hidas ajoaika yleisesti. En voi suositella. Kaiken tän ois koodannut skrätsistä itse vähemmässä ajassa, mutta oli tota ihan hauska hifistellä.
Kuten yleensä, tätäkin tuli tunkattua vikoina päivinä/öinä aika suurelta osin eli hienosti suunnitelluista järjestelmistä tuli hack-soppaa. Eipä siinä.
0 kommenttia
Oma kommenttisi
Mielipide tämän sivun asiasta? Kirjoita toki. Älä raapusta kuitenkaan ihan asiattomia juttuja.
Jos on yksityisempää asiaa, tarkkaa kysyttävää tai aihetta pidemmälle keskustelulle, käytä yhteydenottolomaketta kommentoinnin sijaan.
Hölmöt kommentit saatetaan moderoida pois jälkikäteen.