Robokäden takaperinsuunnittelua

Pitkästä aikaa olen taas ihmetellyt robokäden ohjausta. Yksi iso ongelma on pitkään ollut vaikeudet sarjaporttikommunikoinnissa. Käytössä olevan palvelin-PC:n emolevyllä oleva sarjaportti osoittautui viime syksynä epäluotettavaksi, ja tilalle hommasin neljän sarjaportin USB-purkin. Se ratkaisi ongelmat robottikädeltä PC:n suuntaan yhteydessä, ja tekemäni Robot Operating System -integraatio alkoi suurinpiirtein toimia.

Tavallaan lähellä ollaan, mutta ei sitten kuitenkaan – yhä jokin kirjaimellisesti tökkii liikkeiden ohjauksessa. Robotin liikkeet ovat jotenkin nykiviä ROS:n kautta ajettuna. Debuggailun tuloksena päädyin siihen, että käskyjä robottilaitteen päässä vastaanottava koodi pyörii liian hitaasti. Tiedossa on, että C500-robottiohjaimessa on 100MHz:n 486-prosessori, joka ajaa jotain hyvin omaperäistä käyttistä joka vähän muistuttaa Unixia. Purkilla on myös kääntäjä RAPL-3 kielelle. Jo aiemmin olen yrittänyt purkaa käännettyjä ohjelmia, mutta en ole siinä onnistunut. Nyt erinäisillä testailuilla selvisi että esim. kertolasku on käännettynä ”19 F8 F8 F9” ja jakolasku ”1B F8 F8 F9”. Nuo eivät ole millään tavalla x86-käskykannan mukaisia, vaan ilmeisesti jonkinlaista tulkattavaa tavukoodia.

Mielenkiintoisesti suurin osa järjestelmän binääreistä, kuten /bin/cp ovat myös tavukoodilla tehtyjä. Lopulta huomasin /sbin/r3interp binäärin, joka nimen perusteella kuulosti tavukoodin tulkilta. Sille file sanoikin ”FreeBSD/i386 compact demand paged executable”. FreeBSD voisi tulla kyllä kyseeseen 1990-luvun lopussa tehdyssä laitteessa.

Kuitenkin laitteelta löytyvä /kernel binääri ei sisällä mitään mainintaa BSD:stä. Siinä on ylipäätänsä aika vähän stringsin löytämää tekstiä, mutta x86:n keskeytyksille löytyy mm. tekstit ”double fault exception (very bad)” ja ”invalid TSS exception”. Vertasin näitä FreeBSD:n koodiin 26 vuoden takaa, mutta FreeBSD:ssä ne ovat aina olleet muodossa double faultja ”invalid TSS fault”. Tältä pohjalta vaikuttaa ettei kyseessä ainakaan FreeBSD ole, vaikka binääriformaatti siltä vaikuttaakin.

Noh, ristikääntöympäristön virittäminen tuolle olisi luultavasti muutenkin aika työlästä, joten RAPL-3:lla mennään. Tein simppelin for-looppitestin, ja sain 174000 kierrosta sekunnissa, ja yhdessä kierroksessa on n. 6 käskyä. Eli n. 100 kellojaksoa per tavukoodin käsky.

Tähän mennessä olen käyttänyt ROS:n simple_message -protokollaa sarjaliikenteessä, mutta se vaatii jonkin verran konvertointia robottipurkin puolella. Laskin että nyt yhden paketin käsittelyyn menee n. 2000 tavukoodin käskyä, eli n. 2 millisekuntia. Tämä ei ole mitenkään kamalan hidasta kun itse paketin siirtämiseenkin sarjaväylän yli menee 5 millisekuntia.

Yksi mahdollinen syy tökkimiseen on se, että ROS:n simple_message ei lähetä seuraavaa pakettia ennen kuin edelliseen on saatu kuittaus, joka vie joitakin kymmeniä millisekunteja. Ottamalla tämän odotuksen pois liikkeet kyllä muuttuivat vähän tasaisemmiksi, mutta samalla alkoi taas olla ongelmia sarjaliikenteessä.

Ilmeisesti robottipurkin sarjaporttien vuonohjaus ei ole millään tasolla luotettava. Speksien perusteella raudassa on 16 tavun puskuri, ja vaikuttaisi että kernelissä on n. 1.7 kilotavun puskuri. Näistä huolimatta joskus aivan kesken kaiken tipahtaa tavu pois välistä, nyt siis PC->robo suunnassa:

Vuonohjausasetukset eivät muuta paljoakaan. Xon/Xoff aktivoituu kyllä ajoittain, mutta ei riitä estämään tavujen putoilua. RTS/CTS taas ei tunnu aktivoituvan lainkaan.

Täytyy vielä tarkemmin arvioida tuon tehokkuutta. Mahdollista on tehdä jokin oma protokolla, joka olisi mahdollisimman lähellä CROS:n natiiveja tietotyyppejä jotta datat voisi siirtää ilman kummempaa konvertointia robottiajurin puolelle. Täytynee tehdä myös jonkinlainen checksum & uudelleenlähetys siirtovirheiden varalle.

Kokoustamista suuren maailman malliin

Kokouskutsu: Vuosikokous 16.6. klo 18:00

Vihdoinkin koronarajoitukset ovat helpottaneet ja kokousasiakirjatkin valmistuneet. Siispä kutsutaan koolle yhdistyksen vuosikokous! Toimintaa on ollut paljon ja koetamme varata riittävästi aikaa myös tulevasta toiminnasta keskustelemiseen.

Meillä ei ole erillistä hallitus- ja toimihenkilöhakua, joten CV:tä hallitukseen pyrkimiseksi ei tarvita. Riittää että kerrot kokouksessa, että olet käytettävissä. Toki etukäteenkin voi ilmoittaa! Jos olet kiinnostunut hallituspaikasta mutta et pääse kokoukseen, ilmoita aikeistasi jollekin kokoukseen pääsevälle.

Asialistalla olevan sääntömuutosesityksen läpimeno tarkoittaisi sitä, että siirryttäisiin kahden vuosikokouksen käytäntöön. Tämä tarkoittaa sitä, että jatkossa hallituskaudet olisivat lähtökohtaisesti kalenterivuoden mittaisia. Näin ollen valittava hallitus olisi ”tynkähallitus”, joka toimii vuoden 2020 loppuun saakka ja syyskokouksessa valitaan hallitus koko vuodeksi 2021.

Kokousta voi seurata etänä Jitsi-huoneessamme. Käyttäjätunnuksia ei tarvita. Etäosallistujilla ei ole äänioikeutta, mutta puheoikeus voidaan järjestää. Voit siis olla käytännössä osallistua kokoukseen ja olla ehdolla tulevaan hallitukseen, vaikka et pääsisi kokoukseen paikan päälle.

Kokouksen päätyttyä pidetään kerhoilta normaaliin tapaan!

PS. Koronarajoituksista johtuneen kysynnän heikkenemisen vuoksi jääkaapissa pääsi vanhenemaan lavoittain virvoitusjuomaa, joten ”parasta ennen”-tuotteita saa nauttia (omalla riskillä) Huom!täysin ilmaiseksi!

Esityslista

Aika: tiistaina 16.6.2020 klo 18:00
Paikka: Hacklabin kerhotila, Emännäntie 10 O, Jyväskylä

  1. Kokouksen avaus
  2. Kokouksen järjestäytyminen
  3. Kokouksen laillisuuden ja päätösvaltaisuuden toteaminen
  4. Työjärjestyksen hyväksyminen
  5. Kokousvirkailijoiden valinta
    1. puheenjohtaja
    2. sihteeri
    3. pöytäkirjantarkastajat
  6. Asiakirjojen esittely
    1. vuosikertomus 2019–2020
    2. tilinpäätös 2019
    3. toiminnantarkastajan lausunto
    4. toimintasuunnitelma 2020
    5. talousarvio 2020
    6. sääntömuutosesitys
  7. Päätetään tilinpäätöksen vahvistamisesta ja vastuuvapauden myöntämisestä hallitukselle ja muille vastuuvelvollisille
  8. Vahvistetaan toimintasuunnitelma, tulo- ja menoarvio sekä liittymis- ja jäsenmaksun suuruus
  9. Päätetään sääntömuutoksesta
  10. Valitaan hallituksen puheenjohtaja ja muut jäsenet
  11. Valitaan toiminnantarkastajat
  12. Kokouksen päättäminen

Kokousasiakirjoihin on linkit kussakin asiakohdassa. Toiminnantarkastajan lausuntoon ja muiden asiakirjojen paperisiin versioihin voi tutustua ennen kokousta, kun asiasta sopii rahastonhoitaja Henrik Korhosen kanssa.

Höylän tuulettimen korjaus

Kesken oikohöyläyksen alkoi yhtäkkiä kuulumaan metallin kirskuntaa ja kolinaa. Ensimmäinen arvaus oli tietysti että yksi höylän teristä oli lähtenyt irti ja olisi nyt pilalla. Mutta ei kuitenkaan, terät olivat kaikki tukevasti paikallaan eikä välissä ollut mitään.

Seuraavaksi otettiin hihnakotelo auki, mutta sielläkään ei mikään ollut selvästi pielessä. Moottoria käsin pyörittämällä kuitenkin selvisi että ääni tulee sen takaosasta. Seuraavaksi siis moottori irti, ja paljastuikin että muovinen propelli oli lisääntynyt jakautumalla. Tässä höylässä on muutenkin ollut harvinaisen hauraita muoviosia, joissa kyllä lukee ”ABS” mutta käy epäilyttämään onko muottiin mennyt jotain jämämassaa tilalle.

Kaksi osaa sai helpoiten takaisin yhteen pikaliimalla, mutta pelkkä liimaus tuskin pitäisi jo hajonnutta osaa kasassa. Jyrsin CNC:llä polykarbonaatista levyn tukemaan sitä. Levyn keskireikä on sopivan kokoinen että se menee tuulettimen keskiön ympärille ja toivottavasti estää sitä halkeamasta uudelleen. Muovilevyn liimasin epoksilla kiinni tuulettimeen.

Ainakin koekäytöllä tuntui pysyvän kasassa. Antaa epoksin kovettua seuraavaan käyttökertaan saakka niin eiköhän tuo taas jonkin aikaa kestä.

Kokoustamista suuren maailman malliin

Vuosikokous tulossa 16.6. klo 18?

Kutsu vuosikokoukseen on tulossa jäsenistölle sääntöjen mukaan viikkoa ennen kokousta, mutta alustavaa päivää on jo suunniteltu, vaikka ei päätetty. Siispä seuraa hallituslähteisiin nojaava tietovuoto:

Vuosikokous oltaisiin järjestämässä tiistaina 16.6. klo 18.00 alkaen kerhotilassa. Kokouksen jälkeen kerhoilta jatkuu normaalisti. Asialistalla tulisi olemaan normaalit sääntömääräiset asiat ja sen lisäksi sääntömuutosesitys, että siirryttäisiin kahden vuosikokouksen käytäntöön.

Sääntömuutoksesta puhuttiinkin viime tiistain yhteisömiitissä ja asiaan liittyen oli myönteistä hyrinää. Käytännössä sääntömuutoksen hyväksyminen tarkoittaisi, että kokouksessa valittava uusi hallitus toimisi tämän vuoden loppuun saakka ja syksyllä valittaisiin uusi hallitus vuodelle 2021. Tämän jälkeen edettäisiin normaalisti siten, että hallitustehtävä olisi kalenterivuoden mittainen. Muutos helpottaisi esimerkiksi tili- ja vastuuvapauden myöntämistä, mutta myös helpottaisi toiminnan suunnittelua, kun toimintasuunnitelma ja budjetti ovat voimassa selkeästi yhden tilikauden ajan.

Kokouksessa siis valitaan uudet hallituksen jäsenet. Kannattaa jo pohtia, olisiko kiinnostusta. Hallituksessa on pääsääntöisesti varsin leppoisaa, koska kuulumme siihen suomalaisten yhdistysten harvalukuiseen joukkoon, jossa ei ole sisäisiä riitoja. 🙂 Ja hallituksessa pääsee vaikuttamaan yhdistyksen toimintaan ja rahankäyttöön tarkemmin kuin ehkä muuten rivijäsenenä tulisi perehdyttyä.

Nähdään vuosikokouksessa!

Hacklabin kerhoillat avataan taas tiistaina 2.6.2020 alkaen

Suomen hallitus sallii 1.6.2020 alkaen alle 50 henkilön kokoontumiset. Tästä johtuen Hacklabin hallitus on todennut, että kerhoiltoja voidaan jälleen pitää ja päättänyt, että kerhoillat otetaan jälleen käyttöön tiistaina 2.6.2020 alkaen.

  • Kerhoillat avataan tiistaina 2.6.2020 alkaen. Sekä tiistain että lauantain kerhoilta palautetaan, eli ensimmäinen tiistain kerhoilta on 2.6. klo 18:00 alkaen ja ensimmäinen lauantain kerhoilta on 6.6. klo 15:00 alkaen.
  • Ensimmäisessä kerhoillassa 2.6. pidetään myös yhteisömiitti klo 18:00 alkaen. Aiheina korona-asiat, sääntömuutosehdotus, avainkorttien muutokset sekä paikalla/pois-kytkimen käyttö. Yhteisömiittiin on mahdollista osallistua myös etänä.
  • Lauantain kerhoillat pidetään jatkossa klo 15:00 alkaen
  • Lauantain saunaillat ovat toistaiseksi peruttu. Niiden jatkumisesta tiedotetaan erikseen.

Kerhoiltojen avaaminen ja tilan käyttö ylipäätään edellyttää, että kaikki noudattavat epidemia-ajan suosituksia turvaväleistä ja hygieniasta. Älä käytä tilaa sairastaessasi. 
Kerhotilassa tulee ottaa huomioon, että pinnoilla ja työkaluissa voi olla taudinaiheuttajia. Pese siis kätesi vähintään saapuessasi ja lähtiessäsi.