NVIDIA Jetson Nano Developer Kit Auf der Suche nach einem Kleinstrechner für den Einsatz in kompakten Systemen oder Robotern viel mir endlich ein Jetson Nano in die Hände. Vor einigen Jahren ist man erst gar nicht an ein Jetson Nano rangekommen bzw. nur durch einen aufwendigen Registrierungsprozess und einem Wohnsitz […]
In diesem Beitrag möchte ich mein Jetson Nano B01 mit DeepLearning-Algorithmen ausreizen. Bisher habe ich ein Custom Image mit XUBUNTU auf dem Jetson Nano verwendet. Leider wird das genannte Image von NVIDA offiziell nicht unterstützt. Dabei entstehen Kompatibilitätsprobleme mit anderen Software-Bibliotheken. Beispielsweise verhindert eine ROS Noetic-Installation auf einem Custom Image […]
Die Migration der Robotermodelle A/B nach ROS Noetic ist etwas aufwendiger als die vergangenen ROS Distributionen. Der größte Sprung ist hier eindeutig von Python 2.7 zu Python 3. Deshalb dauert es auch bei Drittanbietern von ROS-Software etwas länger, ihre Programme umzustellen. Wer den Sprung aber erst Mal gemacht hat, ist auch für ROS 2 besser vorbereitet, da dort die Python-Version 3 Standard ist.
In der folgenden Abbildung sind die rot eingerahmten Stromversorgungskabel falsch verkabelt. Auf dem Steckbrett von Fritzing verlaufen die Verbindungen intern horizontal, nicht vertikal. In Wirklichkeit gibt es Steckbretter, deren interne Verbindungen entweder vertikal oder horizontal verlaufen. Es ist ratsam, zuvor den Verlauf der internen Verbindungen zu prüfen, bevor man die Kabel aufsteckt. Ein LED-Test ist ein einfaches Beispiel, um die richtige Verkabelung herauszufinden.
In RViz können Sensordaten visualisiert werden. Als 3D-Modell soll der Bioloid Robotor in URDF - Unified Robot Description Format erstellt werden. URDF ist ein XML-Format wobei die Endung .xml einfach in .urdf umbenannt wird, die Umbenennung jedoch nicht zwingend ist, wenn man mit .launch-Dateien oder RViz arbeitet. XML ist eine Beschreibungssprache ähnlich HTML aus der SGML-Familie. Das Hauptmerkmal von XML ist die Fehlerfreiheit im Gegensatz zu HTML, wo Fehler erlaubt sind und aufwendig vom Browser korrigiert werden. Ein XML-Dokument ist wohlgeformt, wenn jedes öffnende "Tag" ein schließendes "Tag" hat. Es kann nur ein einzelnes Wurzelelement in einem XML-Baum geben.
März 2013. Ubuntu 12.04 LTS - Raspberry Pi. Die Programmierarbeit gestaltet sich auf einem ausgewachsenen Desktop-PC komfortabler als auf einem Embedded-PC. Für umfangreiche Projekte bietet es sich also an, eine Entwicklungsumgebung einzurichten, die alles bietet, was ein Entwickler bei der täglichen Arbeit benötigt. In diesem Beitrag wird die Eclipse IDE in Ubuntu als Editor, Debugger, Versionssystem und Kompiler eingerichtet.
Eclipse Juno
Quellennachweis:
http://www.eclipse.org/
http://wiki.eclipse.org/
http://www.ros.org/wiki/IDEs
Voraussetzung:
-Ubuntu 12.04 LTS, ROS, OpenCV, ffmpeg
-Grundkenntnisse in Linux, Eclipse und rosmake
Installation
apt-get update
apt-get install eclipse
Hier sind, Erfahrungen mit der Installation von ROS-Fuerte auf einem Raspberry Pi Modell B mit 512MByte Arbeitsspeicher. Eine Installationsanleitung auf www.ros.org für ROS-Fuerte auf einem Raspberry Pi war zu der Zeit nicht verfügbar. Die Installation basiert auf der Anleitung für Debian-Systeme. Ein grober Fehler, der passiert ist, war das Überspringen eines gesamten Installationsschrittes. Trotzdem habe ich das Installations-Protokoll nicht korrigiert, denn Fehler passieren, und es ist trotzdem möglich, ein ROS-Desktop (ohne rviz, PCL) + ffmpeg0.6.6 + OpenCV 2.4.3 auf einen Raspberry Pi zu kompilieren. Die Gesamt-Installation und -Konfiguration dauert Tage...
Nach der Einrichtung einer Entwicklungsumgebung soll mit PyPose eine Verbindung zu den AX-12A-Motoren hergestellt werden, um die Position der Motoren zu lesen/schreiben. PyPose ist ein Python-Programm mit dessen Hilfe man Posen eines Roboters aufzeichnen und für AVR als *.h-Dateien speichern kann. Für die Kommunikation zwischen PyPose <-> Arboitx <-> AX-12A-Motoren wird eine serielle Verbindung mittels FTDI oder einer XBEE-Funkbrücke benötigt. In diesem Artikel wird eine kabelgebundene FTDI-Schnittstelle verwendet.
Arduino-Installation - http://www.arduino.cc/playground/Learning/Linux
Arbotix-Installation - https://code.google.com/p/arbotix/wiki/GettingSetup
Arduino IDE
Die Arduino-Entwicklungsumgebung ab Version 1.0 enthält gcc, avr-gcc,
Java VM, und nötige Bibliotheken für die Arbeit mit
AVR-Mikrocontrollern. Seit der Version Arduino 1.0 wurden viele
syntaktische Änderungen vorgenommen, so dass Sketchbook-Dateien (*.pde)
von ehemaligen Arduino-IDEs nicht zwangsläufig unter den neuen Versionen ab Arduino 1.0
laufen. In diesem Artikel wird die aktuelle Arduino-Version 1.0.1 auf einem Raspberry Pi geladen und eingerichtet.
Voraussetzung: root-Rechte oder sudo-Eintrag in /etc/sudoers
Download/Installation Arduino IDE
http://www.arduino.cc/playground/Learning/LinuxDieser Artikel beschreibt die Einrichtung einer Entwicklungsumgebung in Linux und Windows für die Programmierung eines Arbotix-RoboControllers. Leider ist der Arbotix-RoboController nur in Amerika verfügbar und muss importiert werden. Vertrieben wird er von der Firma Vanadiumlabs. Voraussetzung ist ein Arbotix-Controller von Vanadiumlabs und ein AVR-ISP-Programmer (DIAMEX ALL-AVR in diesem Beispiel). Eine FTDI- oder eine XBEE-Wireless-Verbindung ist Voraussetzung für die spätere serielle Bus-Kommunikation. Der Arbotix-Controller ist ausgelegt für die Steuerung von Dynamixel Motoren - in diesem Fall AX-12A mit 15kg/cm Haltekraft. Ein Bioloid Roboter hat AX-12A Motoren verbaut und bietet 18 Freiheitsgrade (DOF - Degrees Of Freedom). Am Ende dieses Artikels wir der Bioloid-Premium-Roboter von seinem Robotis-Controllerboard CM-530 befreit und mit einem Arbotix-RoboController bestückt. Der Vorteil des Arbotix gegenüber dem CM-530 ist, dass man später ROS verwenden kann.
Quellennachweis:
Arbotix - http://vanadiumlabs.com/arbotix.html
Arduino - http://http://www.arduino.cc/
Arduino-Installation - http://www.arduino.cc/playground/Learning/Linux
Arbotix-Installation - https://code.google.com/p/arbotix/wiki/GettingSetup
Kommunikationsschnittstelle, um einen Computer mit externen Mikrocontrollern zu verbinden und Daten bidirektional auszutauschen.
Bus-Topologie, Master-Slave-Architektur (Master-Slave-Slave-Slave...).
Stand 01.11.2011
Geschwindigkeit:
Bidirektional:
Standard-Mode: 100 KBit/s
Fast-Mode: 400 KBit/s
Fast-Mode-Plus: 1 MBit/s
High-Speed-Mode: 3.4 MBit/s
Plattform:
Linux: Debian 5, eclipse 3.3 CDT, gcc 4+
Windows: Windows XP 32-Bit SP 3, AVR-Studio, eclipse 3.2 CDT, MinGW, PonyProg
Voraussetzung:
-Computer mit USB-Schnittstelle
-externe Hardware mit Mikrocontroller und Unterstützung für Two-Wire-Interface TWI(AVR) oder
Inter-Integrated Circuit I2C(Philips).
-Programmierkenntnisse Linux und Windows.
-Programmierkenntnisse AVR-Mikrocontroller.
-Lötkenntnisse(Basis).