Robolab

Hei å hå folkens,
Ser rundt omkring på nett (lugnet spesielt) at folk bruker Robolab for å lage program til LEGO Mindstorm. Har selv ikke brukt dette programmet i det hele tatt, men det ser interesant ut.
Har en veldig gammel versjon av LabView (som jo Robolab bygger på) som jeg har brukt litt fo ren del år tilbake.
Har i forbindelse med jobben min begynt å programere en god del, men da i spesielle programmer som er avarter av C-programering (CUE og Crestron), så jeg lærer nå litt etterhvert.
Men inntill nå har jeg brukt enten det medfølgende Mindstorm programmet eller NQC for å lage programmer til mine LEGO roboter. Men kunne tenke meg å forsøke på annet vis. Er ikke særlig god i C-programmering og får ikke helt dreisen på NQC.
Så da er spørsmålet HVOR får jeg tak i Robolab?
Mener jeg spurte Thomas for lenge siden, men husker ikke svaret da.
Ser iallefall at Mikroverkstedet har dette, men det ser ut at de leverer bare til skoler… (eller?)
Eventuelt pris hadde jo også vært greit å få informasjon om.

Hei!
Har prøvd Lego sitt eget program, NQC og RoboLAB. RoboLAB er uten tvil det absolutt beste programmet.Lego sitt er som leketøy til sammenligning,og NQC er for spessielt intereserte programmerere. Tror ikke det mange begrensinger i RoboLAB, Robolab er jo et grafisk programmeringsspråk (G). Jeg har kjøpt RoboLAB hos Per Jørgen på Mikroverkstedet. Tror nok han selger til alle som vil kjøpe, men det er jo litt dyrere der enn i leketøysbutikkene. Han har et RoboLAB sett (7993) som er en startkasse med 5 lisenser av RoboLAB til kr 4485.- Tilleggskasse uten program koster 3168,-. Tror ikke han selger enkeltlisenser, men du kan jo spørre. Innholdet i kassen er nesten likt RIS (2.0) settet med noen enkle deler i tillegg. Det er for eksempel 2 lyssensorer med. En annen fordel er at det er ordntelige kasser med “sorteringsbrett” med i pakka!
Hvis du ikke er spesielt interesert i C, men heller vil lage sofistikere og avanserte programmer vil jeg uten tvil bruke RoboLAB.
Jeg bruker kun RoboLAB (versjon 2.5.4) Very Happy

Robolab suger! Liker det like lite som LabView. Nå er jeg programmerer og kan C/C++, så jeg foretrekker NQC. Smile Håper NQC blir portet til NXTen. Jeg har så vidt testet brickOS (tidligere legOS). Det er enda kraftigere og bruker egen firmware. Har også så vidt kikket litt på leJOS, men jeg er ingen Java-programmerer. Ut fra min forståelse av programmering og hvordan jeg programmerer, så har jeg foretrukket RIS 2.0 fremfor Robolab, men RIS 2.0 har sine svakheter (og bugs). Confused
Mikroverkstedet selger enkeltlisenser av Robolab-programvaren. Mener Robolab 2.5 (engelsk) hadde varenummer 2000062 og kosta kr 1375,-. Ser at i 2005-prislista er den priset til kr 754,-. Har kanskje kommet nyere versjon nå? Ellers er prisene til Mikroverkstedet dessverre ganske hårete. Kr 4.485,- for en Robolab-startkasse er mye når RIS 2.0 veiledende koster 2.499,-.

Siden jeg også er programmerer, bruker jeg bare brickOS og er helt fornøyd med det (har ikke giddi å prøve de andre, though).

Så kansje dere egentlig anbefaler meg å bare blit litt bedre til å programmere i C++ og heller fortsette å bruke NQC ?
Er det noen store fordeler med NQC kontra Robolab (sett bort fra at det ene er tekstbasert og det andre er grafisk)?
Er programering i NQC mer “fleksibelt” enn i Robolab?
Tenker på om det er flere funksjoner tilgjengelig i NQC, eller at man kan finne en annen firmware og da få nye funksjoner tilgjengelig i NQC? Eller blir det hip-som-hap hvilket software man programerer i?
Har sett at Robolab har noen muligheter for å lage programsnutter med video kamera tilkoblet (LEGO-Cam eller annet kamera). Er det vanskeligere i NQC?
Og ja, er jo selvsagt flott å være klar til NXT, men jeg tipper LEGO lager sitt eget programeringspråk til den som helt sikkert ikke er kompatibel med RCX’en… (/pessimistmodus av)

Thomas wrote:
Robolab suger!
Kan du uttype dette nærmere? Hvilke fordeler har NQC i forhold til RoboLAB? (osv) De fleste som programmerer RCXer er i likhet med meg ikke utdannet programmerere, og da mener jeg RoboLAB er best. I skolesammenheng ser jeg ikke hvordan NQC kan brukes. Klart at Robolab har sine begrensinger, men har enda ikke sett et NQC program som ikke kan programmeres i RoboLAB. For alle "ikke programerere" vil jeg anbefale Robolab på det varmeste. Mitt utgangspunkt er å få funkjonelle maskiner og roboter som virker, det å få "bra" programmer ser jeg som "mindre" viktig...
Anonymous wrote:
Thomas wrote:
Robolab suger!
Kan du uttype dette nærmere?
Hehe... En slik uttalelse bygger selvfølgelig på en total subjektiv vurdering og ikke på noen grundig vitenskaplig analyse. Smile Jeg liker ikke boksene og strekene man må tegne i Robolab, og av en eller annen grunn finner jeg det ikke så intuitivt som enkelte påstår at det er. Men som sagt jeg er vant med, og foretrekker, å skrive kode. Robolab (og RIS) egner seg best for sekvensielle programmer. Task- og event-håndtering ser for meg ut til å fungere mye bedre med NQC. Og antagelig enda bedre med brickOS. Når det er sagt... For elever som skal ha en enkel introduksjon til roboter og programmering, så fungerer Robolab greit. Jeg har brukt det i slike sammenhenger selv. Smile Bruk av NQC i skolesammenheng avhenger av elevenes alder og hvor grundig man ønsker å gå inn på programmering. Selv hadde jeg EDB som valgfag, på ungdomsskolen, og den gangen lærte vi BASIC. Wink

[quote=“Thomas”]

Anonymous wrote:
Thomas wrote:
Robolab suger!
Kan du uttype dette nærmere?
Hehe... En slik uttalelse bygger selvfølgelig på en total subjektiv vurdering og ikke på noen grundig vitenskaplig analyse. Smile quote] Hei! Kan du gi meg en utfordring? Kan du sette opp "hva en enheten skal gjøre" for eksempel med 2 RCXer (6 utganger / 6 innganger) lage et NQC program, og så skal jeg lage det samme programmet i RoboLAB. Deretter kan vi sammenligne. Du må da notere deg hvor lang tid du bruker å programmere det hele i NQC (inkl debug)- (utenom tiden til å lage kravspesifikasjonen. Det blir da litt mer en ren subjektiv "synsing" Birger

Avansert jernbaneovergang:
Motor A er toget, motor B er en bil, motor C er bommen på jernbaneovergangen. Utgang D er rødt lys, utgang E er grønt lys, utgang F er signal lys til toget.
Sensor 1 er når toget nermer seg jernbaneovergangen. Sensor 2 er når toget har forlatt jernbaneovergangen på andre siden. Sensor 3 og 4 er montert på bommen, en for når den er oppe og den andre for når den er nede.
Situasjon:
Ingen tog nær overgangen: motor A går og motor B går og det lyser kun grønt.
Når toget (motorA) nermer seg overgangen (sensor 1 trykkes inn) skal det først blinke rødt for bilen mens bommen (motorC) går ned. Bilen (motorB) skal bremse opp (ikke bråstoppe), og motoren skal stå stille når bommen er nede samt at det røde lyset skal lyse fast. MotorC skal da selvsagt stoppe når bommen er registret nede.
Toget passerer sensor 2, og først når sensor 2 er ute i normal stilling igjen skal rødt lys blinke mens bommen heves. Når bommen er oppe skal rødt lys slukkes og grønt lys tennes og bilen (motorB) akselerer opp til maks fart.
Signal lyset til toget skal lyse så fra sensor 1 er blitt trykkt inn til sensor 2 har blitt trykkt inn og så sluppet igjen. Skal ikke slukke før sensor 2 er ute igjen.
Toget stoppes dersom sensor 2 trykkes inn en gang før sensor 1 har blitt trykket inn. Altså noen er å går på skinnegangen Smile
Og da skal signal lyset til toget blinke.
Dette skjer helt til sensor 2 er sluppet. Eventuelt man kan ha en egen sensor for at det er noe på overgangen mellom sensor 1 og 2. Er vel egentlig sikkerhetsmessig bedre…
Hjelp meg å lage denne i RoboLab og i NQC Smile
(var vel noe ala dette min PLS-tentamen på teknisk fagskole var)

F0NIX wrote:
Avansert jernbaneovergang:
Ja! Denne vil jeg gjøre noe ut av! Har ganske hektisk program fremover, men gi meg 2 - 3 uker, og jeg skal prøve å komme med noe. Birger
Tekno wrote:
Kan du gi meg en utfordring? Vel, nå har du jo fått en. Smile ... men den belyser vel neppe poenget.
Tekno skrev:
Deretter kan vi sammenligne. Du må da notere deg hvor lang tid du bruker å programmere det hele i NQC (inkl debug)- (utenom tiden til å lage kravspesifikasjonen. Det blir da litt mer en ren subjektiv "synsing" Sammenligne hva? Hvor lang tid du bruker på å lage en løsning i Robolab vs hvor lang tid jeg bruker på å lage en løsning med NQC? Hva sier det? Neppe noe sensorene ved en PLS-tentamen på en teknisk fagskole ville vurdert. Hvis du er interessert i å finne ut mer om Robolab vs NQC, så søk litt på nettet. Det finnes flere diskusjoner, og som vanlig når verktøy, språk, OS, o.l. diskuteres, så blir diskusjonen fort temmelig relgiøs. Confused Jeg skal prøve å finne noen illustrerende eksempler på ting jeg gjør i NQC, som i bestefall er vanskelig å gjøre eller blir grisete i Robolab, men jeg har ikke tid akkurat nå. Smile
Thomas wrote:
Jeg skal prøve å finne noen illustrerende eksempler på ting jeg gjør i NQC, som i bestefall er vanskelig å gjøre eller blir grisete i Robolab, men jeg har ikke tid akkurat nå. Smile
Fint. Det var noe slikt jeg tengte på. Ta deg den tiden du trenger (etter 20 mars er helt greit, har det ikke travelt) Et kriterie: Bruk kun standard Lego komponenter (Sensorer og motorer)
Tekno wrote:
Et kriterie: Bruk kun standard Lego komponenter (Sensorer og motorer) Hadde ikke tenkt til å være så spesifikk. Mere gi litt pseudokode eller NQC-kode. Har forøvrig funnet et par fine eksempler på Lugnet. Smile En av de tingene jeg synes er klønete i Robolab er if-setninger, en ganske viktig del av et program. Spesielt gjelder det testing på flere kondisjoner samtidig. Dvs logiske AND og OR.
Kode:
  if ((rotationAmount < 50 && loopCount >= 4) ||       ambientTemp < 32 ||       Message() == 13)   {     PlaySound(SOUND_DOUBLE_BEEP);     Wait(200);   }   else   {     PlaySound(SOUND_CLICK);     Wait(400);   }
Forklaring i ord for ikke programmerere: Hvis enten rotationAmount er mindre enn 50 og loopCount er større eller lik 4 eller ambientTemp er mindre enn 32 eller verdien av sist mottatte melding er 13, lag en dobbel pipelyd og vent i 2 sekunder. Hvis ikke, lag en klikkelyd og vent i 4 sekunder. Her er to ting som neppe går an i Robolab: Compile-time kodedifferanser og midlertidig utkommentering av kode.
Kode:
      PlaySound(SOUND_DOUBLE_BEEP); /* #ifdef __SPY     Wait(200); #else     Wait(100); #endif */     PlaySound(SOUND_DOWN); Forklaring: Ved å sette flagget __SPY (gjøres med #define __SPY) vil kodelinjen Wait(200) settes inn når programmet kompileres. Hvis __SPY ikke er satt, brukes Wait(100). Man kan bruke /* og */ til å kommentere ut deler av et program. Kodelinjene som er kommentert ut vil dermed ikke bli kompilert. Noen slik form for midlertidig utkommentering av kode går vel ikke an i Robolab?