|
View unanswered posts | View active topics
| Author |
Message |
|
ulrichard
|
Post subject: RobotLoader Debian Pakete Posted: Thu Dec 29, 2011 11:46 pm |
|
Joined: Thu Dec 29, 2011 9:57 pm Posts: 27 Location: Brunnen (Zentralschweiz)
|
Hallo, ich bin gerade dran, den RobotLoader zu debianisieren. (Packete für ubuntu zu machen) Mein Fortschritt ist hier : https://github.com/ulrichard/robotloaderhttp://jenkins.ulrichard.ch/job/arexx-robot-arm/Mit folgenden Befehlen kann man es installieren : Code: sudo apt-add-repository ppa:richi-paraeasy/ppa sudo apt-get update sudo apt-get install arexx-robotloader arexx-robotarm-examples arexx-robotarm-racsqt
Achtung: Das letzte packet arexx-robotarm-racsqt ist keine arexx Originalsoftware! Da RACS nur für Windows verfügbar ist, habe ich angefangen, etwas kleines nachzubauen. Das ist noch absolut experimentell. Ich übernehme keine Haftung, wenn dabei die Servos kapput gehen. Ein paar Dinge habe ich noch nicht herausgefunden wie ich das machen kann. Vielleicht kann mir da jemand helfen: 1) Sind die Java sourcen in einem öffentlichen Versionskontrollsystem verfügbar? 2) Was muss ich machen, damit die Logdatei nicht ins Applikationsverzeichnis geschrieben wird, sondern nach /var/log/ 3) Was muss ich machen, damit die Konfigurationsdateien entweder nach /etc oder pro Benutzer nach ~/.robotloader/ geschrieben und von da gelesen werden? 4) Ich habe auf meinem System librxtx-java aus dem Repository installiert, aber der RobotLoader läuft trotzdem nur, wenn ich den lib Ordner mitinstalliere. Ich habe es mit setzen des classpath oder mit "java -Djava.library.path="/usr/share/java" -jar RobotLoader_lib.jar" versucht. Sehe ich das richtig, dass es das RACS Programm nur für Windows gibt. Das scheint ja keine Riesen-Sache zu sein. Gibt es den Quellcode dazu, damit eine Portierung etwas einfacher wäre? Gruss Richi Edit by Admin: Da dies nicht viel mit dem Thread von 2009 zu tun hatte, habe ich den Beitrag mal in ein eigenes Thema abgetrennt.
Last edited by ulrichard on Sun Jan 08, 2012 9:38 pm, edited 4 times in total.
|
|
| Top |
|
 |
|
SlyD
|
Post subject: Re: RobotLoader Debian Pakete Posted: Fri Dec 30, 2011 1:43 pm |
|
Joined: Fri Mar 25, 2005 6:19 pm Posts: 1378 Location: NRW
|
|
Hallo,
zu 1) Nein der Quellcode ist leider nicht verfügbar.
zu 2 und 3) Das kann zur Zeit nicht geändert werden, ich könnte aber eine Kommandozeilenoption einbauen... die nächste Version wird vermutlich irgendwann im Februar erscheinen da könnte ich das vorsehen.
Der RobotLoader ist ja für Windows und Linux identisch und muss nicht installiert werden, daher ist eben alles so angelegt das alles im eigenen Programmverzeichnis liegt.
zu 4) -Djava.library.path="/usr/share/java" liegt da auch wirklich die librxtxSerial.so drin? Das ist nur die option für die shared libraries. Du musst auch zusätzlich noch den Classpath setzen mit der -cp Option da muss der Pfad zu RXTXcomm.jar drin stehen (also z.B. -cp .;/usr/share/java/RXTXcomm.jar (nicht getestet) )
Zu RACS kann ich leider nicht viel sagen - sieht aber wirklich nicht sonderlich komplex aus dürfte ne Sache von drei vier Tagen sein sowas from scratch selbst zu schreiben.
MfG, SlyD
|
|
| Top |
|
 |
|
ulrichard
|
Post subject: Re: RobotLoader Debian Pakete Posted: Fri Dec 30, 2011 11:24 pm |
|
Joined: Thu Dec 29, 2011 9:57 pm Posts: 27 Location: Brunnen (Zentralschweiz)
|
Hallo SlyD 2) und 3) Ja, das klingt gut. 4) Code: #cd /usr/share/robotloader # sudo mv lib lib_ # robotloader -> java.lang.ClassNotFoundException: gnu.io.SerialPortEventListener
# dpkg -L librxtx-java | grep '\.jar' /usr/share/java/RXTXcomm-2.2pre2.jar /usr/share/java/RXTXcomm.jar
# dpkg -L librxtx-java | grep '\.so' /usr/lib/jni/librxtxSerial-2.2pre1.so /usr/lib/jni/librxtxParallel-2.2pre1.so /usr/lib/jni/librxtxI2C-2.2pre1.so /usr/lib/jni/librxtxRaw-2.2pre1.so /usr/lib/jni/librxtxRS485-2.2pre1.so /usr/lib/jni/librxtxSerial.so /usr/lib/jni/librxtxParallel.so /usr/lib/jni/librxtxI2C.so /usr/lib/jni/librxtxRaw.so /usr/lib/jni/librxtxRS485.so
#java -cp /usr/share/java/RXTXcomm.jar -Djava.library.path="/usr/lib/jni" -jar RobotLoader_lib.jar -> java.lang.ClassNotFoundException: gnu.io.SerialPortEventListener
#apt-file search SerialPortEventListener librxtx-java: /usr/share/doc/librxtx-java/api/gnu/io/SerialPortEventListener.html
#CLASSPATH="${CLASSPATH}:/usr/share/java/RXTXcomm.jar" #export CLASSPATH #LD_LIBRARY_PATH="/usr/lib/jni${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}" #export LD_LIBRARY_PATH #java -cp /usr/share/java/RXTXcomm.jar -Djava.library.path="/usr/lib/jni" -jar RobotLoader_lib.jar -> java.lang.ClassNotFoundException: gnu.io.SerialPortEventListener #java -jar RobotLoader_lib.jar -> java.lang.ClassNotFoundException: gnu.io.SerialPortEventListener
# sudo mv lib_ lib #java -jar RobotLoader_lib.jar -> dann geht's wieder ...
Ich muss zugeben, ich mache sehr wenig mit Java... RACS : Ist das UART Protokoll bekannt? Ich habe gerade gesehen, dass zur hex Datei auch kein Quellcode dabei ist. Und ich hab keinen Windows PC um das Protokoll zu reverse engineeren. Gruss Richi
|
|
| Top |
|
 |
|
SlyD
|
Post subject: Re: RobotLoader Debian Pakete Posted: Sat Dec 31, 2011 3:09 pm |
|
Joined: Fri Mar 25, 2005 6:19 pm Posts: 1378 Location: NRW
|
|
Hallo,
tjo - ich hatte auch schon länger keinen Bedarf mich mit den Kommandozeilenoptionen zu beschäftigen. Habs mir gerade nochmal angeschaut, -cp klappt hier auch nicht richtig also nimm einfach: -Djava.ext.dirs="/usr/share/java"
Das müsste gehen - jedenfalls tut es das hier.
Guten Rutsch ins neue Jahr, SlyD
|
|
| Top |
|
 |
|
ulrichard
|
Post subject: Re: RobotLoader Debian Pakete Posted: Sun Jan 01, 2012 11:03 pm |
|
Joined: Thu Dec 29, 2011 9:57 pm Posts: 27 Location: Brunnen (Zentralschweiz)
|
Hallo SlyD, bei mir leider nicht : Code: java -Djava.ext.dirs="/usr/share/java" -Djava.library.path="/usr/lib/jni" -jar RobotLoader_lib.jar -> java.lang.ClassNotFoundException: javax.comm.SerialPortEventListener java -Djava.ext.dirs="/usr/share/java" -cp /usr/share/java/RXTXcomm.jar -Djava.library.path="/usr/lib/jni" -jar RobotLoader_lib.jar -> java.lang.ClassNotFoundException: javax.comm.SerialPortEventListener
Jetzt findet er eine andere Klasse nicht: javax.comm.SerialPortEventListener Die ist in der mitgelieferten lib/comm.jar, aber im Repository kommt nur folgendes: Code: apt-file search comm.jar arduino: /usr/share/arduino/lib/RXTXcomm.jar kompozer-data: /usr/share/kompozer/chrome/comm.jar librxtx-java: /usr/share/java/RXTXcomm.jar seamonkey-browser: /usr/lib/seamonkey-2.0.13/chrome/comm.jar
java -Djava.ext.dirs="/usr/share/java;/usr/lib/seamonkey-2.0.13/chrome" -cp ".;/usr/share/java/RXTXcomm.jar;/usr/lib/seamonkey-2.0.13/chrome/comm.jar" -Djava.library.path="/usr/lib/jni" -jar RobotLoader_lib.jar -> java.lang.ClassNotFoundException: gnu.io.SerialPortEventListener
Das macht fast den Eindruck dass comm.jar nicht richtig gepackt im Repository ist. Auch der folgende Thread klingt danach: http://ubuntuforums.org/archive/index.php/t-194427.htmlWas hat es mit dieser Bibliothek wirklich auf sich? Code: mv lib lib_ mkdir lib cp lib_/comm.jar lib/ java -Djava.ext.dirs="/usr/share/java" -Djava.library.path="/usr/lib/jni" -jar RobotLoader_lib.jar -> java.lang.ClassNotFoundException: jd2xx.JD2XXEventListener cp lib_/jd2xx.jar lib/ java -Djava.ext.dirs="/usr/share/java" -Djava.library.path="/usr/lib/jni" -jar RobotLoader_lib.jar -> dann geht's wieder apt-cache search jd2xx -> kommt nix ...
Braucht man jd2xx auf linux? Da wird beim einstecken automatisch ein virtueller serial port bereitgestellt, wenn ein FTDI chip erkannt wird. Gruss Richi
|
|
| Top |
|
 |
|
SlyD
|
Post subject: Re: RobotLoader Debian Pakete Posted: Mon Jan 02, 2012 12:38 pm |
|
Joined: Fri Mar 25, 2005 6:19 pm Posts: 1378 Location: NRW
|
|
Hallo,
JD2XX wird unter Linux zwar nicht verwendet (da zumindest als ich das vor ein paar Jahren überprüft hatte der passende Treiber üblicherweise nicht im Kernel enthalten war - und das wollte ich niemandem zumuten das dafür zu bauen... ), die Klassen werden aber dennoch geladen. Aber nur die Java Klassen aus dem JAR - die native lib wird nicht verwendet.
comm.jar war die Version direkt von Sun. Könnte ich aber eigentlich mal komplett rauswerfen. Lösung: comm.jar und jd2xx.jar einfach im RobotLoader Verzeichnis lassen (entweder ein anderes Unterverzeichnis oder direkt im Programmverzeichnis) und .:/usr/share/java angeben also das .: ist wichtig damit das eigene Verzeichnis mit durchsucht wird.
MfG, SlyD
|
|
| Top |
|
 |
|
ulrichard
|
Post subject: Re: RobotLoader Debian Pakete Posted: Sun Jan 08, 2012 9:43 pm |
|
Joined: Thu Dec 29, 2011 9:57 pm Posts: 27 Location: Brunnen (Zentralschweiz)
|
So, jetzt sollten die Packete brauchbar sein. Bei aktuellen Ubuntu Versionen mit Unity kommt zwar im Haupt Launcher noch kein Eintrag, aber bei älteren Versionen mit Gnome2 erscheint es im Startmenü. Von der Konsole aus kann man es ganz einfach starten: Code: robotloader
Ich habe die Befehle zur Installation im ersten Post angepasst. Falls jemand die Packate schon ausprobiert hat, bitte zuerst die alten Versionen manuell deinstallieren, da ich die packetnamen angepasst habe. Ich hab's auch geschafft, den uc Teil für meinen RACS Nachbau mit cmake zu kompilieren. Dabei wird gegen die arexx_robot_arm.a gelinkt. Die CMakeLists.txt sieht so einfach aus: Code: CMAKE_MINIMUM_REQUIRED(VERSION 2.8) PROJECT(RobotArm_RACSQT_uc) FIND_PACKAGE(ArexxRobotArm REQUIRED) INCLUDE(arexx_robot_arm_crosscompile.cmake)
ADD_ROBOT_ARM_EXECUTABLE(RobotArm_RACSQT RobotArm_RACSQT.c )
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/RobotArm_RACSQT.hex DESTINATION ${CMAKE_INSTALL_PREFIX}/share/robotloader/examples/racsqt)
Damit lassen sich auch gleich Projekte für CodeBlocks, Eclipse, KDevelop oder VisualStudio generieren.
|
|
| Top |
|
 |
|
SlyD
|
Post subject: Re: RobotLoader Debian Pakete Posted: Mon Jan 09, 2012 10:40 am |
|
Joined: Fri Mar 25, 2005 6:19 pm Posts: 1378 Location: NRW
|
Sieht schonmal gut aus! Kleiner Verbesserungsvorschlag: Code: Package: arexx-robotloader Architecture: all Essential: no Depends: ${misc:Depends}, default-jre | java6-runtime, librxtx-java, gcc-avr, avrdude, avr-libc, libftdi1 Replaces: robotloader Description: GUI program to upload programs to the arexx robot arm.
Sollte eher so aussehen: Code: Package: arexx-robotloader Architecture: all Essential: no Depends: ${misc:Depends}, default-jre | java6-runtime, librxtx-java Replaces: robotloader Description: GUI program to upload programs to several AREXX Robots
gcc-avr, avrdude, avr-libc, Haben rein gar nichts mit dem Robotloader zu tun und gehören daher auch nicht in die Abhängigkeitsliste... und to the arexx robot arm. --> to several AREXX Robots MfG, SlyD PS: libftdi1 sollte eigentlich auch nicht benötigt werden. Wie schon gesagt ist der D2XX Modus bislang nur für Windows implementiert.
|
|
| Top |
|
 |
|
ulrichard
|
Post subject: Re: RobotLoader Debian Pakete Posted: Mon Jan 09, 2012 8:26 pm |
|
Joined: Thu Dec 29, 2011 9:57 pm Posts: 27 Location: Brunnen (Zentralschweiz)
|
|
Hallo SlyD,
ja, das stimmt. Das habe ich angepasst. Der Grund warum ich diese Abhängigkeiten gemacht habe, ist dass die Wahrscheinlichkeit dass man den compiler auch benutzt wenn man den Robotloader installiert relativ gross ist. Mit der Abhänigkeit muss sich der Benutzer dann nicht selber darum kümmern. Es stimmt aber natürlich dass es keine Abhängigkeit im eigentlichen Sinne ist. Ich habe die Abhängigkeit beim arexx-robotarm-examples mal dringelassen. Ich denke das ist ein guter Kompromiss.
Gruss Richi
|
|
| Top |
|
 |
|
SlyD
|
Post subject: Re: RobotLoader Debian Pakete Posted: Tue Jan 10, 2012 11:17 am |
|
Joined: Fri Mar 25, 2005 6:19 pm Posts: 1378 Location: NRW
|
> ist dass die Wahrscheinlichkeit dass man den compiler auch benutzt wenn man den Robotloader installiert relativ gross ist. Ja das stimmt - aber gerade den Compiler könnten sich einige auch selbst übersetzen oder eine andere Version verwenden wollen als die in den Paketquellen enthaltene... Das sollte man schon dem Anwender überlassen MfG, SlyD
|
|
| Top |
|
 |
|
ulrichard
|
Post subject: Re: RobotLoader Debian Pakete Posted: Wed Jan 18, 2012 9:56 pm |
|
Joined: Thu Dec 29, 2011 9:57 pm Posts: 27 Location: Brunnen (Zentralschweiz)
|
Hallo SlyD, gibt es einen Grund, warum die RobotArmBaseLib.h keinen include guard hat? Als ich es aus versehen doppelt inkludiert habe kam ein Error, dass stopwatches_t doppelt definiert sei. Folgendes wäre auch noch schön in der Datei: Code: #ifdef __cplusplus extern "C" { #endif
http://www.parashift.com/c++-faq-lite/m ... l#faq-32.4Ich hab die modifizierten Dateien angehängt. Soll ich die bei mir für die Packete separat verwalten, oder hat das eine Chance in die ofizielle zip Datei integriert zu werden? Gruss Richi Edit: Auch die variabeln deklarationen in der RobotArmBaseLib.h bereiten mir etwas Probleme, wenn ich die Datei in mehreren cpp's inkludiere. (Current_1 .. Current_6 .. Start_Position ) Ich denke die sollten in der RobotArmBaseLib.c auch deklariert sein, und im header ein external erhalten.
|
|
| Top |
|
 |
|
SlyD
|
Post subject: Re: RobotLoader Debian Pakete Posted: Thu Jan 19, 2012 2:43 pm |
|
Joined: Fri Mar 25, 2005 6:19 pm Posts: 1378 Location: NRW
|
Hallo Richi, > gibt es einen Grund, warum die RobotArmBaseLib.h keinen include guard hat? Nö gibt es nicht Da normalerweise kein C++ Code für den Mikrocontroller benötigt wird, wurde das weggelassen und auch nicht auf Kompatibilität getestet. Das ist ja nur ein kleiner 8 Bit Mikrocontroller da kommt man i.d.R. sehr gut mit dem C Sprachumfang aus. Wer doch C++ benötigt, darf es natürlich gerne entsprechend anpassen! Die Roboter Arm Lib (die übrigens von den Autoren teilweise vom RP6 Code übernommen wurde, da gilt das gleiche) ist auch nur als Startpunkt gedacht, nicht als die optimale Lösung. MfG, SlyD
|
|
| Top |
|
 |
|
ulrichard
|
Post subject: Re: RobotLoader Debian Pakete Posted: Wed Feb 15, 2012 10:29 pm |
|
Joined: Thu Dec 29, 2011 9:57 pm Posts: 27 Location: Brunnen (Zentralschweiz)
|
>> die nächste Version wird vermutlich irgendwann im Februar erscheinen da könnte ich das vorsehen. Wie sieht's mit dern neuen Version aus? Wird man damit von der Kommandozeile aus flashen können? Ich bin mir am überlegen, den RobotArm mit einem Bifferboard ( http://bifferos.co.uk/) direkt zu vernetzen. Da wär's natürlich cool, wenn ich da auch direkt per ssh flashen könnte. Noch cooler wär's wenn das ohne grosse Abhängigkeiten ginge. Wenn's nicht anders geht, probier ich es dann mal über socat. Gruss Richi
|
|
| Top |
|
 |
|
SlyD
|
Post subject: Re: RobotLoader Debian Pakete Posted: Mon Feb 20, 2012 1:35 pm |
|
Joined: Fri Mar 25, 2005 6:19 pm Posts: 1378 Location: NRW
|
> Wie sieht's mit dern neuen Version aus? Kommt bald - dauert noch etwas da gerade ein paar größere Erweiterungen vorgenommen werden. Kommandozeilenoption kommt leider noch nicht da keine Zeit - sorry MfG, SlyD
|
|
| Top |
|
 |
|
SlyD
|
Post subject: Re: RobotLoader Debian Pakete Posted: Thu Feb 23, 2012 2:40 pm |
|
Joined: Fri Mar 25, 2005 6:19 pm Posts: 1378 Location: NRW
|
Hi Richi, habe gerade mal eine erste Version des neuen RobotLoader 2.0 hochgeladen. http://www.arexx.com/rp6/downloads/Robo ... 120223.zipDie Neuerungen die den 2.0 Versionssprung rechtfertigen betreffen ein anderes Produkt (Netzwerk Kram  ). Code: java -Xmx256m -Djava.library.path="./lib" -jar RobotLoader_lib.jar -logdir=/tmp -configdir=./config2 Neu ist -logdir=/tmp -configdir=./config2 ohne Anführungszeichen - zusammenhängender Pfad ohne Leerzeichen. Achtung: Der RobotLoader braucht für BEIDE Verzeichnisse Schreibrechte sonst funktionierts nicht! Berichte bitte mal ob das bei Dir so funktioniert. Eine für Dich evtl. nützliche neue Funktion ist, dass man nun das Terminal in ein eigenes Fenster abdocken kann. Wenn man mal mehr Platz braucht oder die Liste mit Programmen gleichzeitig darstellen möchte... View->Detach Serial Terminal MfG, SlyD
|
|
| Top |
|
 |
Who is online |
Users browsing this forum: No registered users and 1 guest |
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot post attachments in this forum
|

|
|