It is currently Wed May 22, 2013 9:57 pm
       


All times are UTC + 1 hour




Post new topic Reply to topic  [ 16 posts ]  Go to page 1, 2  Next
Author Message
 Post subject: RobotLoader Debian Pakete
PostPosted: Thu Dec 29, 2011 11:46 pm 
Offline
arexx.com user
User avatar

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/robotloader
http://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
 Profile E-mail  
 
 Post subject: Re: RobotLoader Debian Pakete
PostPosted: Fri Dec 30, 2011 1:43 pm 
Offline
Administrator
User avatar

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
 Profile E-mail  
 
 Post subject: Re: RobotLoader Debian Pakete
PostPosted: Fri Dec 30, 2011 11:24 pm 
Offline
arexx.com user
User avatar

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
 Profile E-mail  
 
 Post subject: Re: RobotLoader Debian Pakete
PostPosted: Sat Dec 31, 2011 3:09 pm 
Offline
Administrator
User avatar

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
 Profile E-mail  
 
 Post subject: Re: RobotLoader Debian Pakete
PostPosted: Sun Jan 01, 2012 11:03 pm 
Offline
arexx.com user
User avatar

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.html
Was 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
 Profile E-mail  
 
 Post subject: Re: RobotLoader Debian Pakete
PostPosted: Mon Jan 02, 2012 12:38 pm 
Offline
Administrator
User avatar

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
 Profile E-mail  
 
 Post subject: Re: RobotLoader Debian Pakete
PostPosted: Sun Jan 08, 2012 9:43 pm 
Offline
arexx.com user
User avatar

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
 Profile E-mail  
 
 Post subject: Re: RobotLoader Debian Pakete
PostPosted: Mon Jan 09, 2012 10:40 am 
Offline
Administrator
User avatar

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
 Profile E-mail  
 
 Post subject: Re: RobotLoader Debian Pakete
PostPosted: Mon Jan 09, 2012 8:26 pm 
Offline
arexx.com user
User avatar

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
 Profile E-mail  
 
 Post subject: Re: RobotLoader Debian Pakete
PostPosted: Tue Jan 10, 2012 11:17 am 
Offline
Administrator
User avatar

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
 Profile E-mail  
 
 Post subject: Re: RobotLoader Debian Pakete
PostPosted: Wed Jan 18, 2012 9:56 pm 
Offline
arexx.com user
User avatar

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.4

Ich 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.


Attachments:
RobotArmUart.h [3.69 KiB]
Downloaded 45 times
RobotArmBaseLib.h [7.08 KiB]
Downloaded 54 times
Top
 Profile E-mail  
 
 Post subject: Re: RobotLoader Debian Pakete
PostPosted: Thu Jan 19, 2012 2:43 pm 
Offline
Administrator
User avatar

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
 Profile E-mail  
 
 Post subject: Re: RobotLoader Debian Pakete
PostPosted: Wed Feb 15, 2012 10:29 pm 
Offline
arexx.com user
User avatar

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
 Profile E-mail  
 
 Post subject: Re: RobotLoader Debian Pakete
PostPosted: Mon Feb 20, 2012 1:35 pm 
Offline
Administrator
User avatar

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
 Profile E-mail  
 
 Post subject: Re: RobotLoader Debian Pakete
PostPosted: Thu Feb 23, 2012 2:40 pm 
Offline
Administrator
User avatar

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.zip

Die 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
 Profile E-mail  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 16 posts ]  Go to page 1, 2  Next

All times are UTC + 1 hour


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

Search for:
Jump to:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group