Archiv verlassen und diese Seite im Standarddesign anzeigen : Robot Operating System (ros.org)
Hi Leute,
Metafrage: gibt es hier Leute, die Erfahrungen mit dem Robot Operating System (www.ros.org) gemacht haben?
Wir sind mit unserem Uni-Projekt aktuell auf dem Stand, jenes Framework für die Steuerung unseres Roboters zu verwenden. Daher meine Neugier, ob's hier eventuell Kenner des Frameworks gibt.
Danke!
Grüße,
Hendrik
Robotniks
09.03.2011, 20:17
Hallo,
Erfahrung leider nicht aber schon öfters angeschaut.
Leider bin ich nicht so fit auf Linux was mich etwas davon abhält.
Es denke aber das ein Erfahrungsbericht oder ein kleines Einsteiger
Turtorial im Wiki für einige User interessant wäre.
Grüße
Günter49
09.03.2011, 21:42
Neben den eigentlichen ROS-Tutorials könnten die Tutorials von pi-Robot ganz hilfreich sein:
http://www.pirobot.org/
http://www.pirobot.org/ros/
Besonders an dem Head Tracking-Tutorial kann man allerdings auch sehen, dass ROS alles andere als trivial ist. Wenn man dazu keine Erfahrung mit Linux hat und wenig C++ oder zumindest Python-Programmierkenntnisse, kann man verstehen, dass die Reaktion auf ROS im Roboternetz eher zurückhaltend ist. Jedenfalls habe ich hier noch keinen Beitrag gesehen, der einen eigenen Roboter, der unter ROS läuft, vorstellt.
Gruß, Günter
Black Dragon
09.03.2011, 23:47
Auch ich habe mich in den vergangenen Tagen mit ROS beschäftigt. Konkret: ich suche eine Roboterplattform für den ER1 von Evolution. ROS ist jedoch definitiv nicht nur für die triviale Steuerung eines Roboters gedacht, es geht vielmehr um autonome Roboter.
Bei ROS sehe ich vor allem zwei Nachteile:
1. es ist ein Sammelsurium an offenen Modulen, ich frage mich bei vielen wie weit sie wirklich entwickelt sind und wie stabil sie laufen.
2. Es gibt keine GUI zur Erstellung von Netzwerken(ich würde mich an dieser Stelle gern irren) und Verwaltung der Module wie z.B. den Behavior-Composer bei Evolution oder den Choreographen von Aldebaran. Für Leute, die sich wenig auskennen oder nicht erst lange einarbeiten wollen, ist das kaum akzeptabel. Selbst versierten Anwendern sollte es erhebliche Probleme bereiten den Überblick über ein komplexes Netzwerk und eine Vielzahl von Modulen zu behalten.
Positiv ist auf jeden Fall der unglaubliche Umfang(z.B. Simulation, Visualisierung, SLAM, Kinect) und das standard Bibliotheken integriert sind(z.b. OpenCV). Und alles läst sich bequem über die Ubuntu Paketverwaltung installieren. Und natürlich die Quelloffenheit!
@SeveQ: um was für ein Projekt geht es?
Grüße
Danke schonmal für die Beiträge. Eure ersten Eindrück decken sich mit meinem. ROS ist wirklich arg kompliziert. Aber da ich jahrelang mit Linux und C++ gearbeitet habe, grundsätzlich diverse Programmiersprachen beherrsche und auch Python zu lernen bereit bin, denke ich, dass das ROS für unser Projekt eine gute Wahl ist. Zumal es, wie erwähnt, bereits diverse mehr oder weniger fertige Module gibt.
Dass beispielsweise das PS3Joy Modul funktioniert, durfte ich bereits erfolgreich testen. Zumindest das Steuern der Schildkröte mit einem Controller der PS3 funktioniert.
Die "GUI" des ROS, sofern man sie so nennen darf, ist lediglich ein Visualisierungstool, das die Vernetzung aller Knoten in einem ROS Package grafisch darstellt. Es ist nicht schlecht, soviel sei gesagt. Aber am bestehenden Netzwerk ändern kann man damit leider nichts.
Auf der anderen Seite wäre ich natürlich froh und überglücklich, gäbe es ähnliche Systeme, die weit ausgereifter sind und eine GUI beinhalten. Gehört habe ich jedoch von noch keinem.
Wir nehmen im Zuge eines Studienprojektes an der diesjährigen eurobot teil, sofern die Kiste bis dahin fertig ist. Nähere Infos dazu findet ihr auf unserer Website (http://www.robotter-club-hamburg.de), in unserer Facebook Gruppe (https://www.facebook.com/pages/RobOtter-Club-Hamburg/170287602994901) und auf der Website des eurobot Wettbewerbs (http://www.eurobot.org/eng/).
Unser Roboter soll autonom gelbe Spielsteine auf einem mit roten und blauen Feldern versehenen "Schachbrett" platzieren, sodass er möglichst viele Punkte kassiert. Nebenbei muss er mit einem Gegner konkurrieren, der die gleiche Aufgabe hat und auf die selben Steine Zugriff hat.
Black Dragon
10.03.2011, 13:40
Hey,
was ihr da macht sieht schon mal gut aus. Zeitlich wird es natürlich sehr eng und offen gesagt: ich glaube nicht an ein konkurrenzfähiges Ergebnis in so extrem kurzer Zeit.
Ich schätze, dass für euch ROS die beste Wahl ist. Leider bin ich für mich selbst nicht so überzeugt, da ich etwas andere Ansprüche habe.
Leider habe ich gerade nicht die Zeit ROS selbst aus zu testen. So wäre auch ich über Erfahrungsberichte erfreut. Insbesondere auf Hinblick der von mir angesprochenen Probleme.
Kann hier jemand den Aufwand abschätzen so einen "Netzwerk-Composer" zu erstellen? Ich schätze dies im Moment als machbar ein, da dieser letztendlich eine XML Datei erzeugen müsste. roslaunch scheint dann den Rest zu bewerkstelligen.
Günter49
10.03.2011, 14:10
@ SeveQ
Da habt ihr bis Juni noch viel zu tun. Jedenfalls wünsche ich viel Erfolg für die rechtzeitige Fertigstellung und natürlich für den Wettbewerb selbst.
Kleine - nicht so ernst gemeinte - Anmerkung zu eurem Team-Bild:
So zwei Tage nach dem Weltfrauentag fällt schon auf, dass es offensichtlich noch reine Männerdomänen gibt.
Gruß, Günter
Also meine ersten Gehversuche mit ROS sehen schon recht vielversprechend aus. Das Erstellen eines eigenen Moduls ist nicht aufwändig. Die Programmierung des Moduls in Python ebenso wenig. Problematisch könnte später die Programmierung der Bilderkennung werden.
Ich bin insgesamt, obwohl normalerweise ein absoluter Optimist, auch eher negativ eingestellt, was das Erreichen der Etappenmarke eurobot im Mai angeht. Aber wir tun unser möglichstes, um dieses Ziel zu erreichen. Zumindest das Lenken des Prototyps über einen PS3 Controller sollte heute funktionieren. Ich bin auf dem besten Wege.
Erschwerend kommt hinzu, dass ich zur Zeit noch alleine im Softwareteam sitze. Irgendwie will keiner der Informatiker an unserer Hochschule bei uns mitmachen, und mir will absolut keine Erklärung dafür einfallen. Genug Werbung haben wir auf jeden Fall gemacht. :(
@ SeveQ
Da habt ihr bis Juni noch viel zu tun. Jedenfalls wünsche ich viel Erfolg für die rechtzeitige Fertigstellung und natürlich für den Wettbewerb selbst.
Kleine - nicht so ernst gemeinte - Anmerkung zu eurem Team-Bild:
So zwei Tage nach dem Weltfrauentag fällt schon auf, dass es offensichtlich noch reine Männerdomänen gibt.
Gruß, Günter
Haha, ja, absolut. Wir wären selbst froh über die eine oder andere Frau im Team... aber irgendwie will auch da keine... Schade!
//EDIT: also wir haben es gestern tatsächlich noch hinbekommen, Otter 1 mit dem PS3 Controller fernzusteuern. Mit dem vorhandenen ps3joy Modul ist das überhaupt kein Problem. Das liefert einem bei Bewegung einer der vielen Achsen oder bei Druck auf einen der vielen Knöpfe ein entsprechendes Signal auf dem "Joy" Kanal, welchen man dann nur noch im eigenen Modul abonnieren muss. Da holt man sich dann die gewünschten Achsen raus und gibt sie als Wert für das PWM an ein weiteres Modul durch, das den Arduino über RS232 ansteuert. Der eine Arduino, den wir auf Otter 1 drauf haben, ist nicht mehr oder weniger als eine RS232/I2C Bridge und der über I2C angeschlossene Motor Controller (von www.enricojoerns.de) macht dann aus den Kommandos und Daten ein schönes PWM für die Motoren. :) Easy as can be! Insgesamt geschätzte 100 - 150 Zeilen selbstverfassten Codes. Nichts weltbewegendes.
Black Dragon
12.03.2011, 00:53
Super. Ich habe heute auch Ubuntu und ROS installiert und mir mal genauer angesehen. Das ging es super schnell, die (Linux-)Paketverwaltung wird vorbildlich genutzt: z.B. wurden automake und g++, aber auch GLUT3 direkt mit installiert. ROS finde ich überraschend sehr gut strukturiert und intuitiv. Die wahren Problemen zeigen sich jedoch erst wenn man versucht etwas ernsthaftes zu implementieren.
Mal sehen, wann ich soweit bin, dass ich den letzten Satz ohne weiteres unterschreibe. :) Ich hoffe, das passiert erst nach dem Wettbewerb.
Vielleicht kann man sich ja irgendwie online zusammenfinden und Erfahrungen austauschen. Ich fänd's super, wenn sich hier noch mehr finden würden, die mit dem ROS mal was auf die Beine stellen.
Alle Neueinsteiger seien allerdings gewarnt: das ROS ist riesig! Mit 8GB Plattenplatz kommt ihr für Ubuntu Desktop und ROS zusammen nicht aus. Daher haben wir Otter 1 auch eine Trekstor SSD mit 32GB spendiert. Die reicht erstmal. Wir werden in der Kategorie Rechenleistung und Plattenplatz auf der eurobot mit Sicherheit den Vogel abschießen. Leider gibt's damit keinen Blumentopf zu gewinnen.
Black Dragon
12.03.2011, 09:59
oh, ich denke da habt ihr etwas falsch gemacht. Auf dem Roboter sollte nicht soviel nötig sein! Nachdem ich Ubuntu drauf hatte, wurden für ROs zusätzlich ca. 2450 MB installiert, da ist schon alles drin was nötig ist. Zudem habe ich die vollständige Desktopvariante installiert wo z.B. auch für den Roboter unnötige GUIs dabei sind. Auf dem Roboter muss letztendlich nur ein Basissystem mit ausgewählten Linux/ROS-Paketen laufen. Z.B. installiert normalerweise Ubuntu OpenOffice mit, das kann natürlich auch weg. Ferner muss der Roboter auch nicht selbst kompilieren. Dies lässt sich durch die Einrichtung eines Netzwerklaufwerks am Desktoprechner oft sehr bequem lösen.
Leider kann ich jetzt nicht nachsehen wie viel meine Installation derzeitig Platz braucht(ich mache das alles in der UNI), werde ich am Montag jedoch nachholen. Aber ein schneller 16 GB USB Stick(z.B. so ein SuperTalent) tut es bestimmt auch.
Ja, das ist schon klar soweit. Das ist ja auch nur der erste Prototyp. Sobald die ROS Module fertig sind, ziehen wir ein kleineres Betriebssystem komplett neu auf. Jedenfalls wenn noch Zeit ist. Aber die 4GB CF Card, die wir vorher hatten, war definitiv zu klein und eine 16GB (8GB gab's nicht) CF Card hätte bei unserem lokalen Medienhöker so viel gekostet, wie die 32GB SSD. Und da hab ich gedacht, mehr ist mehr, lieber haben als brauchen und so weiter...
Zur Zeit entwickeln wir die Software auch direkt auf dem Roboter. Das ist am einfachsten und lässt sich auch am besten debuggen. Die Entscheidung, als Gehirn einen vollwertigen PC zu verwenden, haben wir bis jetzt jedenfalls nicht bereut.
Black Dragon
12.03.2011, 13:51
jo, stimmt, besser zu viel als zu wenig. bei den ER1 hat man ja eh ein Notebook drauf, da muss ich mir nicht soviel Gedanken machen.
Hast du auch die Performance bei der Nachrichtenübertragung mal ausgetestet oder im Internet dazu Informationen gefunden? Der Informationsaustausch zwischen den Knoten bei ROS interessiert mich nämlich sehr. Wie lange braucht eine Nachricht zwischen zwei Knoten auf dem selben Rechner/ über Netzwerk. Wie ist die Verzögerung und welcher Overhead entsteht? Leider konnte ich dazu nicht wirklich was finden.
Darf ich fragen wie euer Projekt in den Hochschulbetrieb eingegliedert ist und finanziert wird?
Über die Performance hab ich mir noch keine Gedanken gemacht. Ich weiß auch nicht, inwieweit das nachher relevant wird, wenn's an den Wettbewerb geht. Wird sich zeigen. Der Arduino ist auf 115200 Baud eingestellt. Darunter fängt er an, herumzuspinnen, wenn er vom Joy die Befehle zu schnell bekommt. Und auch so hat er manchmal noch den einen oder anderen Aussetzer, wenn scheinbar nicht alle Befehle beim Motor Controller ankommen. Da muss noch eine Sicherungsschicht zwischen.
Unser Projekt gliedert sich leider recht oberflächlich in den Hochschulbetrieb ein. Wir haben nur einen Raum dafür bekommen und können die Geräte nutzen, sowie freie Kapazitäten der Dozenten, wenn's mal darum geht, eine Platine zu ätzen oder sowas. Finanziert wird das ganze über eine Studierendenprojektförderung. Details kann ich dir nicht nennen, da ich sie selber nicht weiß. Das macht alles unser Teamleiter.
Black Dragon
13.03.2011, 00:09
Vielleicht kann man sich ja irgendwie online zusammenfinden und Erfahrungen austauschen.
Das sehe ich auch so. Ich finde euer Projekt eine tolle Sache, besonders die umfangreiche Unterstützung durch die Hochschule, ich wusste gar nicht, dass es so was gibt.
Ihr habt ja schon einiges gemacht, wie lange habt ihr dafür gebraucht? Bzw. wie hoch ist der Aufwand(also im Sinne Personen * Zeit)?
Ah, bitte scharfe Bilder;)
Um scharfe Bilder kümmere ich mich bei Gelegenheit. Die aktuellen Fotos sind mit der Handycam aufgenommen. Ich habe aber auch noch eine EOS 350D, die ich dafür mal mitschleppen werde.
Ich persönlich würde hier ja einen gesonderten Bereich für ROS Nutzer und Nutzer, sofern vorhanden, alternativer (Open Source) Roboter Frameworks gut finden. Eventuell auch mit der Möglichkeit, Tutorials zu verfassen.
Black Dragon
29.03.2011, 11:50
hattest du für den Treiber bzw. den Node zur Hardwareansteuerung eine Vorlage? Also etwas woran man sich orientieren kann?
Ich bin nähmlich soweit, dass diese Woche so einen Knoten für den ER1 schreiben werde und so etwas das Gefühl habe, dass ROS nicht so ganz homogen ist.
hattest du für den Treiber bzw. den Node zur Hardwareansteuerung eine Vorlage? Also etwas woran man sich orientieren kann?
Ich bin nähmlich soweit, dass diese Woche so einen Knoten für den ER1 schreiben werde und so etwas das Gefühl habe, dass ROS nicht so ganz homogen ist.
Leider nein. Das ist nichts geringeres als lediglich ein Zugriff auf ein Terminal, konkreter, die RS232 Schnittstelle des Arduino, an die ich die drei für die Motorsteuerung erforderlichen Bytes sende. Sie werden vom Arduino aktuell 1:1 an den I2C Bus weitergereicht. Dank udev-Rules konnte ich darüber hinaus dafür sorgen, dass jeder Arduino einen festen Symlink in /dev bekommt, egal an welchem Port er hängt. Sehr praktisch.
Black Dragon
16.05.2011, 17:52
So ich habe nun Funktionen wie Fahren mit einer bestimmten Geschwindigkeit(incl. Beschleunigung) oder auch eine bestimmte Distanz fahren oder auch einen bestimmten Winkel drehen implementiert. Ferner auch die Möglichkeit die Leistung der Motoren im Betrieb und im Stillstand anzugeben. Und alles kleines extra ist auch eine Kinect drauf.
Funktioniert wirklich super, war aber leider doch mehr Arbeit als gedacht.
Das ROS ist wirklich spitze und bietet sehr viele Möglichkeiten. Für jeden der sich mit intelligenten Robotern beschäftigen möchte definitiv die beste Wahl.
Wie weit seit ihr mit eurem Projekt?
Nicht so weit, wie wir's gerne hätten. Vergangenen Freitag ist uns unser Motorcontroller gestorben, nachdem der Roboter über ein offenes, Spannung führendes Kabel (spontaner Anfall von Dilettantismus) gefahren ist. Plöff, kaputt. Naja, neues IC drauf, dann sollte er wieder tun.
Probleme bereitet noch die Umsetzung von I2C auf dem Motorcontroller. Das ganze ist sehr simpel umgesetzt. Kein Protokoll oder dergleichen. Lediglich drei chars rein: Motorrichtungen A und B in einem Nibble als Bitmaske (die 4 höherwertigen Bits werden ignoriert), danach 2 chars Speed A und Speed B von 0 bis 255. Lediglich die ACKs vom I2C kommen zurück. Die kommen aber auch, wenn sich der Controller verschluckt und evtl. ein char verliert. Das führt dann dazu, dass halt die ganze Kommunikation aus dem Tritt gerät.
Des Weiteren sind noch zahlreiche Punkte bezüglich der Bildverarbeitung offen. Da ich das mit Hilfe von OpenCV komplett selbst implementieren muss, nimmt das aktuell die meiste Zeit in Anspruch. Ich muss halt irgendwie hinkriegen, dass der Roboter unter Zuhilfenahme eines Kinect (geiles Teil) die Position aller Spielsteine und des gegnerischen Roboters auf dem Feld erfasst und speichert.
Naja, und dann muss das alles noch in eine mit ROS kompatible Form gegossen werden. Noch ist das Ding standalone. Aber da es nachher ja in einer vernüftigen und leicht zu wartenden und zu erweiternden Form existieren soll, ist ROS Pflicht. Gerade auch, weil die Dokumentation der Struktur so schön einfach ist. Ein Befehl, fertig. :D
Günter49
18.07.2011, 23:08
Für ROS ist ein Video Tutorial der Uni Gelsenkirchen erschienen (Deutsch !!!!!!!!!!!!!!!:) und Englisch):
http://www.ros.org/wiki/roblab-whge-ros-pkg#Documentation
In den Videos werden viele grundlegende Informationen zu ROS( Installation, nodes, topics, publisher and subscriber, .....) gegeben.
Gruß, Günter
Oh yeah! Geil. Nur die Tonqualität ist überarbeitungswürdig.
Ach ja, um euch mal auf 'nen aktuellen Stand bzgl. unseres Projektes zu bringen. Der eurobot Wettbewerb hat stattgefunden, wir waren dort. Leider haben wir unseren Roboter nicht mehr rechtzeitig fertig bekommen. Aber wir haben viele Erfahrungen sammeln können, viele Tipps bekommen, haben viel Spaß gehabt und waren nach 36 Stunden Non-Stop-Programmiermarathon alle ziemlich am Ende. Zusammen mit einem Haufen Hardware, der uns zwischenzeitlich noch gestorben ist.
Letztendlich sind haben wir zwar die Qualifikation nicht geschafft, aber wir waren alle stolz darauf, als Anfängerteam so weit gekommen zu sein. Wir hatten etwas Vorzeigbares, das sich bewegen konnte. Im nächsten Jahr sind wir wieder mit dabei und dieses Mal werden wir auch einen konkurrenzfähigen Roboter haben. :)
Black Dragon
21.07.2011, 14:30
@Günter: So ein Tutorial ist ganz nett und bietet einen ersten Einstig. Leider sind die Inhalte sehr oberflächlich, auf einem Level wo die Ros Tutorials auch mithalten könne, da muss man aber selbst lesen. Leider gibt es auch Fehler(z.B. in "How to write a launch file" wird behauptet, dass -r bei rostopic für rekursiv steht und dass dann die Nachrichten rekursiv verschickt werden. Da bluten mit die Ohren ).
@SvenQ: Ich habe es mir ja schon gedacht gehabt, dass ihr zu spät dran wart. Ich finde aber gut, dass ihr es versucht habt. Weiter so. Aus Erfahrung muss ich leider sagen, dass sich Aufwand in dem Bereich meist so bestimmt: Gründlich darüber Nachdenken was gemacht werden muss. Dann nochmal gründlich nachdenken oder erste Schritte unternehmen und man wird feststellen, dass man doppelt soviel Aufwand annehmen muss. Und im Nachhinein stellt man sogar fest, dass es am Ende sogar der doppelte, doppelte Aufwand war.
Hallo liebe Leute,bin neu hier und habe gerade diesen Thread über ROS entdeckt.
Da wollte ich fragen:
1)Ob es irgendwelche Skripte,Tutorials oder Papers auf Deutsch gibt?Literatur scheint es zu ROS nicht zu geben.Einzig und allein die ros.org site als Informationsquelle. :(
Ist denn einer von euch gerade am Arbeiten an einem Wiki?Das wäre echt super.
2)Was brauch ich an Wissen bzw.wie kann ich anfangen,wenn ich über ROS Sensordaten(von eienr sensorbestückten Plantine+Mikrocontroller)verarbeiten möchte?ROS selbst sollte auf einem rechenstarkem Einplatinenrechner laufen!
Habt ihr Tipps zu Tutorials oder Literatur zu diesem Thema ?Wie gross ist der Aufwand etwa und welche Voraussetzungen muss ich mitbringen?
Danke und schöne Grüße
Black Dragon
20.10.2011, 17:54
Zu 1) Es gibt ganz viel Tutorials und Papers auf Englisch. Ich würde mir sehr wenig Hoffnung machen etwas brauchbares auf Deutsch zu finden, denn es geht nun mal hauptsächlich um aktuelle Forschung. Im Wesentlichen reicht die Webseite als Informationsquelle(wenn man keine Probleme mit Englisch hat). Ich habe zwar ein paar (Lehrstuhl interne) Wikiseiten zu ROS geschrieben, doch diese sind hauptsächlich auf unsere Arbeitsumgebung bezogen, Allgemeines ist kaum nötig zu schreiben, da man das meiste auf ROS.org findet oder ansonsten direkt dort ergänzen kann.
Zu 2) Der Aufwand hängt sehr stark von deinen Vorkenntnissen (bezüglich deiner Hardware, Ubuntu/Linux, C++, Arbeiten in großen Projekten, usw.) ab. Und noch stärker davon in wie fern deine Hardware bereits von ROS unterstützt wird. Hast du einen Roboter für welchen bereits ein Stack existiert, brauchst du keine Stunde um ihn zum laufen zu bringen. Musst du aber ganz unten anfangen und erst mal eigene Pakete zur Ansteuerung schreiben, dann hast du sehr viel(einige Wochen in Vollzeit) vor dir.
Dies ist auf jeden Fall ein guter Start: http://www.ros.org/wiki/ROS/Tutorials
Ein gut gemeinter Rat: Sollte es bei diesen sehr leicht verständlichen Tutorials Probleme geben, ob sprachliche(selbst wenn es mal was auf deutsch geben sollte, dann bedeutet es nicht, dass man ohne weitere Infos von ROS.org und der englischen Community klar kommt) oder Verständnisprobleme bezüglich C++ oder diverser Konzepte, so ist es dringend notwendig erst mal Grundlagen zu schaffen!
Hey Black Dragon vielen Dank für deine Tipps.
@alle
Frage:wie installiere ich ein stack?
Für das Tutorial: http://www.ros.org/wiki/urdf/Tutorials/Building%20a%20Visual%20Robot%20Model%20with%20URD F%20from%20Scratch
brauchte ich den Stack: urdf_tools
svn quelle: https://wu-ros-pkg.svn.sourceforge.net/svnroot/wu-ros-pkg/stacks/urdf_tools/trunk/
1)und wie gehts jetzt weiter??
2)wohin soll ich den stack installieren, also in welches Verzeichnis?
3)was muss man bei der Installation beachten? versionen ? Pfade?
vielen Dank im voraus
lg
Upps sorry ,hab da eine Anleitung zum Installieren von Stacks gefunden : http://www.ros.org/wiki/ROS/Tutorials/StackInstallation
im Tutorial heisst esl:
first edit your ROS_PACKAGE_PATH in /opt/ros/boxturtle/setup.sh or in your .bashrc:
export ROS_PACKAGE_PATH=~/ros/stacks:/opt/ros/boxturtle/stacks
(Dies ist nur ein Beispiel!! Der Pfad kann, je nach ROS-Distribution anders heißen )
Frage:4) ist es egal ob ich die Umgebungsvariable in der setup.sh oder in der .bashrc Datei editiere? Gibts da keinen Unterschied? meine .bashrc liegt im Homeverzeichnis versteckt(wurde durch ROS da angelegt) , während die setup.sh im eigentlichen ros-installationsverzeichnis liegt(/opt/ros/.../setup.sh
Black Dragon
17.11.2011, 14:36
Hey,
Zu frage 4:
.bashrc: ist vom Betriebssystem angelegt. Diese Datei wird vom Terminal bei jedem Start ausgeführt. Im Allgemeinem gibt es viele Möglichkeiten die notwendigen Einstellungen vorzunehmen, in denem Fall sollte .bashrc perfekt sein.
setup.sh: Ist Teil des ROS-Paket. Diese Datei den Rechner für ROS konfigurieren. Diese Datei muss auch entsprechend von deinem Terminal ausgeführt werden. Deine Lösung sollte sein, sie mit source in deiner .bashrc aufzurufen. setup.sh sollte Einstellungen beinhalten, die alle User eines PC betreffen. Wenn du alleine am Rechner bist, dann würde ich lieber die .bashrc nehmen, da setup.sh Teil eines Paketes ist und wer weiß, was so noch mit dieser Datei passiert(könnte mal zur Fehlerquelle werden).
ahh ich glaub ich habs einigermaßen verstanden jetzt, zur Wiederholung :
im home verzeichnis liegt: .bashrc
in /opt/ros/electric/ liegt unter anderem : setup.sh
erzeugt man nun irgendwo auf dem System ein ROS-Arbeitsverzeichnis, so muss ROS dieses finden können! Dazu muss man dieses Verzeichnis mit dem ROS_PACKAGE_PATH
bekannt machen! Dies kann man in der .bashrc (also im Homeverzeichnis,wo die Shell standardmässig reinschaut) oder in der setup.sh (wo die shell nicht standardmässig reinschaut) . Macht man es im zweitgenannten muss man die setup.sh logischerweise mit der .bashrc noch "bekanntmachen"(hierfür dient dann das source-kommando)
Eigentlich spielt es ja dann keine Rolle,wo die "Bekanntmachung" stattfindet. Die .bashrc braucht so oder so die setup.sh Informationen!
Ist das bisher so richtig?
vielen Dank
Was hat der letzte Ausdruck(Fettschrift) bei folgendem .bashrc Eintrag zu bedeuten ?
export ROS_PACKAGE_PATH=~/ros_workspace:/opt/ros/electric/stacks:$ROS_PACKAGE_PATH
Wieso wird da nochmal $ROS_PACKAGE_PATH angehängt???
Quelle: http://www.ros.org/wiki/ROS/Tutorials/InstallingandConfiguringROSEnvironment
Black Dragon
19.11.2011, 00:26
Eigentlich spielt es ja dann keine Rolle,wo die "Bekanntmachung" stattfindet. Die .bashrc braucht so oder so die setup.sh Informationen!
Ist das bisher so richtig?
Im wesentlichen schon. Wichtigster Unterschied: jeder Benutzer hat eine eigene .bashrc, doch die setup.sh wird von allen geteilt. So richtig spannend wird das alles erst wenn du ganz viele Leute hast und viele Rechner(an denen natürlich das jeweilige Benutzerprofil über das Netzwerk nach Anmeldung geladen werden soll).
export ROS_PACKAGE_PATH=~/ros_workspace:/opt/ros/electric/stacks:$ROS_PACKAGE_PATH
hier wird der neue Wert von ROS_PACKAGE_PATH auf das von dir + den alten Wert gesetzt. So kann man die Suchfade nach und nach ergänzen. z.B. habe ich bei mir verschiedene Einträge in verschiedenen Dateien hinzugefügt. So kann man z.B. auf einem Rechner einen Ordner mit Paketen für alle Benutzer zur Verfügung stellen, dennoch kann sich jeder Benutzer auch eigene Ordner ergänzen(z.B. im eigenem Home-Ordner wo Schreibrechte bestehen).
Kennt sich jemand mit der Fehlermeldung evtl. aus? rviz lässt sich bei mir nicht starten , aber gazebo funktioniert. Grafikkarte on board(intel GMA 4500 MHD)
fehlermeldung bei starten von rviz :
auto-starting new master
process[master]: started with pid [31943]
ROS_MASTER_URI=http://localhost:11311
setting /run_id to 78165382-1e68-11e1-83b3-90004e158d56
process: started with pid [31957]
started core service
process[joint_state_publisher-2]: started with pid [31970]
process[robot_state_publisher-3]: started with pid [31972]
process[rviz-4]: started with pid [31974]
The program 'rviz' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadDrawable (invalid Pixmap or Window parameter)'.
(Details: serial 22 error_code 9 request_code 136 minor_code 3)
(Note to programmers: normally, X errors are reported asynchronously;
that is, you will receive the error a while after causing it.
To debug your program, run it with the --sync command line
option to change this behavior. You can then get a meaningful
backtrace from your debugger if you break on the gdk_x_error() function.)
[rviz-4] process has died [pid 31974, exit code 1].
log files: /home/monk/.ros/log/78165382-1e68-11e1-83b3-90004e158d56/rviz-4*.log
^C[robot_state_publisher-3] killing on exit
[joint_state_publisher-2] killing on exit
[rosout-1] killing on exit
[master] killing on exit
shutting down processing monitor...
... shutting down processing monitor complete
done
Black Dragon
05.12.2011, 00:13
kommt dieser Fehler bei jedem Startversuch? Ich beobachtet leider auch Probleme mit rviz, bisher hatte ich nicht die Zeit nach zuforschen woher die Probleme kommen. Hin und wieder gehen Starts schief.
Hast du in die log geschaut ob da mehr Infos stehen?
Hallo Dragon , ja kommt jedes mal vor wenn ich rviz starte.Ich wollte eigentlich nur das Tutorialbeispiel ausführen aus :http://www.ros.org/wiki/urdf/Tutorials/Building%20a%20Visual%20Robot%20Model%20with%20URD F%20from%20Scratch
Hier nochmal ausführlich meine Terminaleingabe und die folgende Terminalausgaben :
monk@monk-laptop:/opt/ros/electric/stacks/robot_model_tutorials/urdf_tutorial$ roslaunch urdf_tutorial display.launch model:=01-myfirst.urdf
... logging to /home/monk/.ros/log/0201b04e-2294-11e1-bdc9-90004e158d56/roslaunch-monk-laptop-22077.log
Checking log directory for disk usage. This may take awhile.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.
started roslaunch server http://monk-laptop:34503/
SUMMARY
========
PARAMETERS
* /rosversion
* /use_gui
* /rosdistro
* /robot_description
NODES
/
joint_state_publisher (joint_state_publisher/joint_state_publisher)
robot_state_publisher (robot_state_publisher/state_publisher)
rviz (rviz/rviz)
ROS_MASTER_URI=http://localhost:11311
core service [/rosout] found
process[joint_state_publisher-1]: started with pid [22096]
process[robot_state_publisher-2]: started with pid [22098]
process[rviz-3]: started with pid [22100]
The program 'rviz' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadDrawable (invalid Pixmap or Window parameter)'.
(Details: serial 22 error_code 9 request_code 136 minor_code 3)
(Note to programmers: normally, X errors are reported asynchronously;
that is, you will receive the error a while after causing it.
To debug your program, run it with the --sync command line
option to change this behavior. You can then get a meaningful
backtrace from your debugger if you break on the gdk_x_error() function.)
[rviz-3] process has died [pid 22100, exit code 1].
log files: /home/monk/.ros/log/0201b04e-2294-11e1-bdc9-90004e158d56/rviz-3*.log
Und das steht in der logfile drin,woraus ich aber leider nicht schlau werde:
[0m[ INFO] [1323455737.514753698]: rviz revision number 1.6.7[0m
[0m[ INFO] [1323455737.514914263]: ogre_tools revision number 1.6.2[0m
[0m[ INFO] [1323455737.514934867]: compiled against OGRE version 1.7.3 (Cthugha)[0m
[0m[ INFO] [1323455737.728594429]: Loading general config from [/home/monk/.rviz/config][0m
[0m[ INFO] [1323455737.728767635]: Loading display config from [/home/monk/.rviz/display_config][0m
[0m[ INFO] [1323455737.754475093]: RTT Preferred Mode is PBuffer.[0m
Scheint irgendwie beschädigt zu sein ,die logdatei oder? unlesbare Zeichen drin enthalten . ?????
Wodran kann das liegen?
Black Dragon
11.12.2011, 15:00
Hey,
also wegen der Log brauchst du dir keine Sorgen machen, ist nur die Zeichenkodierung. Am besten du benutzt eh rxconsole.
Du kannst dir diese Seite zur Rate ziehen: http://www.ros.org/wiki/rviz/Troubleshooting#Segfault_during_startup.
Vielleicht hilft dir:
export OGRE_RTT_MODE=Copy
Ansonsten hat sich bei rviz in letzter Zeit nichts getan, der Grund wird darin liegen, dass rviz auf QT umgestellt wird und das bestimmt sehr viel Zeit kostet: http://www.ros.org/news/2011/12/rviz-qt-prototype-available-for-testing.html
Das ist zwar noch "experimental", doch vielleicht läuft es bei dir (ich habe es auch schon installiert(als Ubuntu Paket) und gestartet, doch noch nicht ausgetestet).
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.