Lego Mindstorms NXT unter Linux graphisch programmieren

Hallo Andreas,

ich habe Roberta zwar noch nie benutzt, bin aber durch die Diskussion hier darauf aufmerksam geworden.

Beim weiteren recherchieren, habe ich diese Online-Version gefunden. Vielleicht ist das ja was für Dich?!
https://lab.open-roberta.org/

Gruß
Stefan

Hallo Stefan,
die online-Version alleine reicht nicht, man muss zusätzlich ein Programm installieren, das die usb-Verbindung herstellt, und das funktioniert unter Ubuntu 18.04 nicht. Das ist das Problem.

Hallo!
Ich habe viel probiert: Tuxminds, auch deren Boot-CD, lejos…
nichts hat funktioniert, Problem war am Ende immer die USB-Verbindung.
Ich hatte mit dem Tuxminds-Entwickler gemailt, auch bei lejos war ich in Kontakt, der letzte Tipp war dann: Einen anderen PC verwenden, weil zu neue PCs wohl USB-Probleme machen.

Ich verwende also (immer noch) die XP-VM mit dem originalen Mindstorms drauf. Ich finde die Programmierumgebung sehr unschön und unübersichtlich, trotzdem kann man damit programmmieren und die NXTs sind halt da, warum sollte ich die wegschmeißen?

LG
Max

Hallo zusammen

unter der 6.2 und Ubuntu 16.04 lief OpenRoberta einwandfrei. Vorher hatten wir mit dem usb-Anschluss unter lejos auch nur Schwierigkeiten.

In der letzten Ferienwoche werden wir auch testen wie das mit der V7 und Ubu 18.04 läuft.

Didaktisch ist OpenRoberta genial. Die SuS können auch zu Hause daran arbeiten und man erhält einen ersten Einblick in den Quellcode. Und man kann mit einer Oberfläche gemischte Hardware einsetzen.

Evtl ist ein Bluetooth-Dongle als Alternative zum USB-Kabel eine Option?

Grüße Rainer

Ich habe jetzt rausgefunden, warum es mit einem (aktuellen) Ubuntu 18.04 nicht geht.
Erstens ist die Doku veraltet, aber zweitens funktioniert der nxt nicht mit Kerneln neuer als 4.15 . Der 4.15 war bei der ersten 18.04 Release dabei, wurde aber später geupdatet.

Details hier:


(der letzte Post enthält eine Lösung).

Wenn es erst mal läuft ist m.E. von den grafischen Sachen Roberta am besten. Enchanting ist von der Progrmamoberfläche genauso gut, aber der Roboter wird nicht so gut angesteuert.

Für Fortgeschrittene ist das textuelle Programmieren der Roboter natürlich schön, da gibt es (auch für Linux) diverse nxc-Implementationen.

Also werde ich nun wohl extra für die Roboter noch ein eigenes Linux-Image mit einem alten Kernel basteln, seufz …

Immerhin fällt mir dann eigentlich nichts mehr ein, wofür wir Windows brauchen, ich hoffe, meine Kollegen sehen das auch so!

Ich habe jetzt OpenRoberta unter LinuxMint Tina 19.2 zum Laufen gebracht. Notwendig war die hier https://github.com/OpenRoberta/robertalab-usbprogram-nxt/issues/4 beschriebene Lösung: Letztlich eine neue Version des Programms.
Das Install-script ist jedoch sehr kreativ programmiert, man muss es aus dem Verzeichnis starten, in das die Programminstallation erfolgen soll, etwa von /opt.
Zusätzlich musste ich die Gruppe lego in die /etc/security/group.conf eintragen.

Vielen Dank allen hier Beteiligten, eure Hilfe hat die Roboter vor dem Elektroschrott bewahrt.

1 „Gefällt mir“

Hallo frithjof,

was mich interessieren würde: Läuft das Programm bei Dir auch mit Netzwerknutzern?

Ich habe das Skript so geändert, dass in den udev-rules die „users“ gruppe die Rechte bekommt, da sind alle user drin. Aber zusätzlich müssen die Nutzer ja noch in die „dialout“ gruppe. Das Skript macht das ja nur für den Nutzer, der es aufruft. Hast Du das irgendwie hinbekommen, dass da auch die Netzwerknutzer drin sind?

Bei uns läuft Lego jetzt mit einem lokalen Nutzer und einer lokalen Roberta-Installation (letzteres, weil wir Robertalab hinter dem Proxy nicht erreichen), aber immerhin: Es läuft. Das Problem beschäftigt mich insgesamt nun schon seit 3 Jahren, seinerzeit hatten wir Robotik dann entnervt mit Windows gemacht. Issue 4 ist ja von mir, aber die Entwickler haben überhaupt nur reagiert, weil ich eine (recht verzweifelte) Mail ans Fraunhofer-Institut geschrieben habe, dass niemand sich auf Github rührt, und die haben dann wohl die Entwickler angestupst.

Ich habe es mit meinem Account, also als ldap-user der Gruppe teachers ausprobiert. Das hat funktioniert. Ist das deine Frage?

Ich nehme an, du meinst das Installscript. Meiner Meinung nach müssten zwei Wege funktionieren:
1.) Du baust die udev-Regeln des Installscripts so um, dass es eine Gruppe nutzt, in der alle Schülern und Lehrer sind.
2.) Du lässt die udev-Regeln wie sie sind und fügst die notwendigen Gruppen in /etc/security/group.conf auf dem Client ein.
Ich bin den zweiten Weg gegangen. Dort steht - ich glaube für die Arduino-IDE - auch die Dialout-Gruppe

Wenn ich das Installscipt anschaue, bestätigt das meine Meinung, dass die Fraunhofer-Institute auch gerne nur mit Wasser kochen. Am liebsten auch nur mit lauwarmen. Das was ich dort damals als stud. Mitarbeiter gesehen und auch selbst fabriziert habe, könnte jedenfalls wie dieses Installscript aussehen. :slight_smile:

Bist Du unter V6.2 oder V7 unterwegs? Ich bin mir nicht sicher, ob das mit /etc/security/group.conf bei dem V7 Client auch so ist, aber das wäre dann ja sehr einfach, Danke.

noch unter v6.2

Hallo Frithjof,

„Zusätzlich musste ich die Gruppe lego in die /etc/security/group.conf eintragen.“

könntest du die Syntax für diesen Eintrag hier mal posten … bei mit ist die Datei mit „#“ am Zeilenanfang völlig inaktiviert.

Grüße Rainer

hier: https://pastebin.com/YGaUu6EN
Ich musste Pastebin nehmen, weil die * weginterpretiert.

Gruß
Frithjof

Hallo Fridjof!

So geht es hier [code]-Tag

cat /etc/security/group.conf
#[...]
#Dies sollte jeden User in der Zeit von 0-24h (also immer) in die Gruppen lego, dialout,.... eintragen
*;*;*;Al0000-2400;lego,dialout,cdrom,floppy,audio,dip,video,plugdev,scanner,vboxusers,lpadmin
#Administrator kommt noch in diese Gruppen...
*;*;administrator;Al0000-2400;adm,admin,lpadmin
#pgmadmin in diese....
*;*;pgmadmin;Al0000-2400;adm,admin,lpadmin
#alle Admins die im Infrastrukturprojekt sind, dürfen auch alles...
#ich weiß nur nicht, wie der Syntax für eine LDAP-Gruppe war:@Gruppe oder %Gruppe. Aber einer der Einträge geht. 
*;*;@p_infrastruktur;Al0000-2400;adm,admin,lpadmin,activflash,sudo
*;*;%p_infrastruktur;Al0000-2400;adm,admin,lpadmin,activflash,sudo

[/code]-Tag --> -Tag natürlich weg lassen und davor und danach eine Leerzeile

Liebe Gruß

Thorsten

Wenn jetzt für mich noch jemand einen Tipp hätte, wie das mit V7 geht, wäre super!
Bei mir läuft Roberta momentan nur mit einem lokalen User.

Ein paar Monate später.

Ich hatte zwischenzeitlich dringendere Probleme, OpenRoberta funktioniert mit einem Lokalen User im Linuxmuster7 - Netz.

Jetzt habe ich mich intensiv (anderer Faden) mit den Gruppenzugehörigkeiten auseinandergesetzt und es geschafft, dass Domänennutzer in der Gruppe „lego“ und „dialout“ landen.

Aber: Der Domänennutzer kann sich immer noch nicht mit dem Legoroboter verbinden. Auch dann nicht, wenn ich die Proxyvariable ändere.

Der Button bei OpenRoberta bleibt inaktiv, man kann nicht verbinden drücken!

Wenn jemand noch einen Tipp hat, ich bin völlig ratlos … Was ist beim Domänennutzer sonst noch anders als beim lokalen Nutzer?

Ratlose Grüße,
Andreas

Hallo zusammen

  • wie hast du es geschafft, dass Domänenbenutzer der V7 in die Gruppe XY kommen?

  • Die Verbindungsproblematik kenne ich auch: Wenn man die Firewallregel „allow entire Netz“ einschaltet geht alles. Die Software, die die Verbindung zwischen Roboter und Browser herstellt wird offensichtlich vom proxy abgefangen. Ich habe versucht eine Regel einzurichten, die nur *.fraunenhofer.de ohne proxy zulässt bin aber gescheitert. Hat hier jemand einen Vorschlag?

Grüße Rainer

Mit den Tipps von @foer

Nur hat es nichts genützt. Ich brauche auch keine Firewall-Ausnahme, wir verwenden einen lokalen Roberta-Server. Der sch… Button des USB-Programms bleibt schon grau (also genau so wie vor dem Bugfix). Man bekommt erst gar keinen Token.

Gruß, Andreas

Ich habe jetzt auch noch dieses Problem lösen können.

Die Ursache lag diesmal bei mir selbst: Da ich es ja zunächst nicht hinbekommen hatte, die Domänennutzer in lokale Gruppen (vorgesehen von Roberta sind, wie hinlänglich bekannt, die Gruppen „lego“ und „dialout“) einzufügen, habe ich in meiner Not die udev-Rules für den nxt so abgeändert, dass die Gruppe „users“ den nxt benutzen darf, nicht die Gruppe „lego“. Denn jeder Domänenbenutzer ist auch in einer Gruppe „users“, jedenfalls wird das angezeigt, wenn man auf der Konsole „groups“ eingibt.

Offenbar gibt es auf einem Linuxmusterclient mit Domänenanmeldung aber zwei Gruppen „users“, eine aus der Domäne (es muss im LDAP Schema eine Gruppe users geben), eine lokale. Das Verwenden des nxt-Steins per udev-Rule geht aber nur mit einer lokalen Gruppe, nicht mit einer Domänengruppe.

Ich habe also die udev-Rule wieder auf „lego“ zurückgeändert (mitlerweile waren die Domänenuser Dank der Hilfe von Dominik @foer ja in diesen lokalen Gruppen), jetzt gehts.

Wir verwenden allerdings einen lokalen Roberta-Server, das Roberta-USB-Programm kann nicht mit einem Proxyserver umgehen.

Ich habe insgesamt über 2 Jahre daran gebastelt, dass OpenRoberta unter Linux im Schulnetz läuft, ich glaube, da muss ich gelegentlich einen Glühwein drauf trinken!

Zusammenfassung:

  • mit der Anleitung von @foer aus diesem Faden: Grundsätzliche Fragen zu Gruppen am Linuxclient
    dafür sorgen, dass die Domänennutzer in den Gruppen „lego“ und „dialout“ landen
  • einen lokalen Roberta Server installieren (geht gut auf einem Raspi)
  • den neusten Roberta-Code von Github nehmen

Hejsan,
Nachdem wir es auf Mastodon ja davon hatten, habe ich mir für die Sommerferien vorgenommen, OpenRoberta auf unseren Linuxclients (Ubuntu 20.04, in der LMN 7.1) benutzbar zu machen.

Hat sich da seit 2019 etwas vereinfacht? Kommt man inzwischen um den lokalen OpenRoberta-Server herum?

Würde mich über ein kurzes Update zu diesem doch recht furchteinflößenden Thread freuen.

Grüße
Michael

P.S. Hast Du deinen wohlverdienten Glühwein inzwischen gekippt @andreas72 ?

Hi,
wir machen das immer noch so mit dem lokalen Open-Roberta-Server.

Ich denke, die Lösung, die man nehmen könnte, wäre eben keinen Proxyserver zu benutzen. Ich will unbedingt weg von dem Proxyserver, das ist eine der haupt-Fehlerquellen dass irgendein Programm nicht geht (von irgendwelchen Apps, die ich sowieso nicht benutze, mal abgesehen zum beispiel auch Minetest, was ja schön wäre für verschiedenerlei Anwendungen, auch da bräuchte man dann einen eigenen Server).
Off-Topic: Die Firma, die unseren Server mitbetreut, sagt, dass man die Authentifizierung auch direkt über die OpenSense machen könne, auch ohne einen Radius-Server (Radius ginge bei uns aus irgend einem Grund auch nicht). WLAN + Authentifizierung ist nicht meine Baustelle, aber Proxy macht uns alle wahnsinnig.