Roboterprojekt/Software: Unterschied zwischen den Versionen

Aus Blumenthal 7 Wiki
Zur Navigation springen Zur Suche springen
(Helferskripte Entwurf)
Zeile 1: Zeile 1:
== SD Karten als Bootlaufwerk ==
=== SD Karten als Bootlaufwerk ===
ultra Sandisk-microSD Karte hat kein USB Boot aktiviert in boot config
ultra Sandisk-microSD Karte hat kein USB Boot aktiviert in boot config


extreme Sandisk-microSD Karte muss für USB Boot im Jetson Nano verbleiben. Bootloader lädt USB Treiber nach und bootet dann von /dev/sda1.
extreme Sandisk-microSD Karte muss für USB Boot im Jetson Nano verbleiben. Bootloader lädt USB Treiber nach und bootet dann von /dev/sda1.


== Helfer Skripte ==
=== Helfer Skripte ===
Start/Select für Motor RPlidar Start/Stop Motor beim ersten mal 2x drücken. Erster Befehl wird verworfen. (TODO)
Start/Select für Motor RPlidar Start/Stop Motor beim ersten mal 2x drücken. Erster Befehl wird verworfen. (TODO)


== Zugriffsrechte USB Peripherie ==
=== Zugriffsrechte USB Peripherie ===
Anstatt eine UDEV Rule für /dev/ttyUSB* anzulegen den Benutzer in die Gruppe dialout adden für RW-Zugriff.
Anstatt eine UDEV Rule für /dev/ttyUSB* anzulegen den Benutzer in die Gruppe dialout adden für RW-Zugriff.


== Autostart beim Einschalten des Nano ==
=== Autostart beim Einschalten des Nano ===
In GNOME Startprogrammen ein Skript zum Starten der Roboter Software zum Starten für Headless Betrieb.
In GNOME Startprogrammen ein Skript zum Starten der Roboter Software zum Starten für Headless Betrieb.


== VNC Server ==
=== VNC Server ===
x11vnc verbindet mit der aktuellen Sitzung und ist daher geeignet. "xrandr --fb 1920x1080" damit headless die Auflösung passt - funktioniert vllt auch mit Vino? "setxkbmap de" damit alle Tastatureingaben von Sonderzeichen über VNC funktionieren (|` usw.)
x11vnc verbindet mit der aktuellen Sitzung und ist daher geeignet. "xrandr --fb 1920x1080" damit headless die Auflösung passt - funktioniert vllt auch mit Vino? "setxkbmap de" damit alle Tastatureingaben von Sonderzeichen über VNC funktionieren (|` usw.)


== Powermodi ==
=== Powermodi ===
MAXN und 5W Modus - 4 vs 2 CPUs. Halbe Leistung. Bei MAXN passieren Spannungsfehler wenn nur mit dem USB Powerbar betrieben und der Nano schaltet sich komplett aus. Für Mobilbetrieb mit dem USB Powerbar anscheinend 5W Modus notwendig. Mit dem Akkupack alleine möglich im MAXN Betrieb, aber Komnination aus Akkupack und Powerbar ideal.
MAXN und 5W Modus - 4 vs 2 CPUs. Halbe Leistung. Bei MAXN passieren Spannungsfehler wenn nur mit dem USB Powerbar betrieben und der Nano schaltet sich komplett aus. Für Mobilbetrieb mit dem USB Powerbar anscheinend 5W Modus notwendig. Mit dem Akkupack alleine möglich im MAXN Betrieb, aber Komnination aus Akkupack und Powerbar ideal.


== Stromverbrauch/Akkubetrieb Laufzeiten ==
=== Stromverbrauch/Akkubetrieb Laufzeiten ===
!!Folgendes vermutlich NUR OHNE das Akkupack mit dem Display!! Der Dienst jetbot_stats zum Befüllen des Displays auf der Akkupack Erweiterung ist ressourcenhungrig. Im 5W Modus frisst er ca. 15% CPU pro Core. Das ist unverhältnismäßig hoch. Zyklisch wird mindestens ein python Skript aufgerufen das für die Last sorgt. Daher folgende Befehle angebracht zum dauerhaften deaktivieren: "systemctl stop jetbot_stats" und "systemctl disable jetbot_stats"
!!Folgendes vermutlich NUR OHNE das Akkupack mit dem Display!! Der Dienst jetbot_stats zum Befüllen des Displays auf der Akkupack Erweiterung ist ressourcenhungrig. Im 5W Modus frisst er ca. 15% CPU pro Core. Das ist unverhältnismäßig hoch. Zyklisch wird mindestens ein python Skript aufgerufen das für die Last sorgt. Daher folgende Befehle angebracht zum dauerhaften deaktivieren: "systemctl stop jetbot_stats" und "systemctl disable jetbot_stats"


== TF Laser ==
=== TF Laser ===
Static transform für Laser immer notwendig damit ein relativer Bezug im Raum zur Hardware errechnet werden kann - Frame "laser"
Static transform für Laser immer notwendig damit ein relativer Bezug im Raum zur Hardware errechnet werden kann - Frame "laser"


== Jetbot Image Einrichtung ==
=== Jetbot Image Einrichtung ===


Automatische Updates abschalten. Die CPU wird sonst zu unvorhergesehen Zeiten komplett beansprucht und erzeugt nicht vorhersehbares Verhalten. Daher Updates nur manuell ausführen.
Automatische Updates abschalten. Die CPU wird sonst zu unvorhergesehen Zeiten komplett beansprucht und erzeugt nicht vorhersehbares Verhalten. Daher Updates nur manuell ausführen.
Zeile 31: Zeile 31:
getty für ttyTHS1 und ttyS0 maskieren "systemctl mask"
getty für ttyTHS1 und ttyS0 maskieren "systemctl mask"


== ToDo ==
=== ToDo ===
#rosservice startet ständig im Hintergrund und verbraucht Ressourcen -> Vermutung das es iwie durch die Bash angetriggert wird (completion?)
#rosservice startet ständig im Hintergrund und verbraucht Ressourcen -> Vermutung das es iwie durch die Bash angetriggert wird (completion?)
#pull down GND wegen statischer Aufladung in der Luft
#pull down GND wegen statischer Aufladung in der Luft
Zeile 42: Zeile 42:
#GPU Aktivierung - welche Jetpack Version läuft auf dem Nano? Wir brauchen [https://forums.developer.nvidia.com/t/jetpack-4-2-1-l4t-r32-2-release-for-jetson-nano-jetson-tx1-tx2-and-jetson-agx-xavier/78315 JetPack 4.2.1]
#GPU Aktivierung - welche Jetpack Version läuft auf dem Nano? Wir brauchen [https://forums.developer.nvidia.com/t/jetpack-4-2-1-l4t-r32-2-release-for-jetson-nano-jetson-tx1-tx2-and-jetson-agx-xavier/78315 JetPack 4.2.1]


== Serielle Verbindung ==
=== Helferskripte ===
/home/jetbot/ROS/.sh <- iwas mit start_carto_rpl_komplett.sh oder so ähnlich
/home/jetbot/ROS/hotspot_start.sh
/home/jetbot/ROS/hotspot_stop.sh
 
=== Serielle Verbindung ===


USARTs Verbindungen müssen RX/TX crossen - Nullmodemverbindung
USARTs Verbindungen müssen RX/TX crossen - Nullmodemverbindung


== Ansteuerung der Motoren ==
=== Ansteuerung der Motoren ===


Ansteuerung der Motoren per PPM https://de.wikipedia.org/wiki/Pulsdauermodulation#Steuerungstechnik
Ansteuerung der Motoren per PPM https://de.wikipedia.org/wiki/Pulsdauermodulation#Steuerungstechnik


== Flashen des Motor Controllers ==
=== Flashen des Motor Controllers ===
Bisher Flashen des Motor Controller Boards vom Jetson Nano, weder mit dem originalen ST-Link Adapter noch mit dem China Flasher möglich -> evtl funktioniert es mit dem st-flash Tool - gemeint ist nicht st-link-gui
Bisher Flashen des Motor Controller Boards vom Jetson Nano, weder mit dem originalen ST-Link Adapter noch mit dem China Flasher möglich -> evtl funktioniert es mit dem st-flash Tool - gemeint ist nicht st-link-gui


== Speichern der Scans ==
=== Speichern der Scans ===
"rosbag record -a" um alle Topics aufzunehmen. Pro Minute etwa 10 MByte für den RPLidar im Boost Modus/8K.
"rosbag record -a" um alle Topics aufzunehmen. Pro Minute etwa 10 MByte für den RPLidar im Boost Modus/8K.
"rosbag play --topics /scan /tf /tf_static /map" funktioniert erstmal. Evtl nicht optimal.
"rosbag play --topics /scan /tf /tf_static /map" funktioniert erstmal. Evtl nicht optimal.




== IMU ==
=== IMU ===


https://github.com/alex-makarov/adafruit_imu - Beim kalibrieren auf Topic achten - muss geremaped werden.
https://github.com/alex-makarov/adafruit_imu - Beim kalibrieren auf Topic achten - muss geremaped werden.

Version vom 26. August 2020, 17:48 Uhr

SD Karten als Bootlaufwerk

ultra Sandisk-microSD Karte hat kein USB Boot aktiviert in boot config

extreme Sandisk-microSD Karte muss für USB Boot im Jetson Nano verbleiben. Bootloader lädt USB Treiber nach und bootet dann von /dev/sda1.

Helfer Skripte

Start/Select für Motor RPlidar Start/Stop Motor beim ersten mal 2x drücken. Erster Befehl wird verworfen. (TODO)

Zugriffsrechte USB Peripherie

Anstatt eine UDEV Rule für /dev/ttyUSB* anzulegen den Benutzer in die Gruppe dialout adden für RW-Zugriff.

Autostart beim Einschalten des Nano

In GNOME Startprogrammen ein Skript zum Starten der Roboter Software zum Starten für Headless Betrieb.

VNC Server

x11vnc verbindet mit der aktuellen Sitzung und ist daher geeignet. "xrandr --fb 1920x1080" damit headless die Auflösung passt - funktioniert vllt auch mit Vino? "setxkbmap de" damit alle Tastatureingaben von Sonderzeichen über VNC funktionieren (|` usw.)

Powermodi

MAXN und 5W Modus - 4 vs 2 CPUs. Halbe Leistung. Bei MAXN passieren Spannungsfehler wenn nur mit dem USB Powerbar betrieben und der Nano schaltet sich komplett aus. Für Mobilbetrieb mit dem USB Powerbar anscheinend 5W Modus notwendig. Mit dem Akkupack alleine möglich im MAXN Betrieb, aber Komnination aus Akkupack und Powerbar ideal.

Stromverbrauch/Akkubetrieb Laufzeiten

!!Folgendes vermutlich NUR OHNE das Akkupack mit dem Display!! Der Dienst jetbot_stats zum Befüllen des Displays auf der Akkupack Erweiterung ist ressourcenhungrig. Im 5W Modus frisst er ca. 15% CPU pro Core. Das ist unverhältnismäßig hoch. Zyklisch wird mindestens ein python Skript aufgerufen das für die Last sorgt. Daher folgende Befehle angebracht zum dauerhaften deaktivieren: "systemctl stop jetbot_stats" und "systemctl disable jetbot_stats"

TF Laser

Static transform für Laser immer notwendig damit ein relativer Bezug im Raum zur Hardware errechnet werden kann - Frame "laser"

Jetbot Image Einrichtung

Automatische Updates abschalten. Die CPU wird sonst zu unvorhergesehen Zeiten komplett beansprucht und erzeugt nicht vorhersehbares Verhalten. Daher Updates nur manuell ausführen.

getty für ttyTHS1 und ttyS0 maskieren "systemctl mask"

ToDo

  1. rosservice startet ständig im Hintergrund und verbraucht Ressourcen -> Vermutung das es iwie durch die Bash angetriggert wird (completion?)
  2. pull down GND wegen statischer Aufladung in der Luft
  3. Störungen des Jetson Nanos und der seriellen Verbindungen evtl. durch größeren räumlichen Abstand vermeidbar
  4. Maschinenmodus Kommunikation zum Motor Controller Board
  5. Bluetooth Steuerung Gamepad und Handy einrichten
  6. (UWEs Gamepad einrichten)
  7. Backup - 2,5" SSD, microSD, USB Stick, mSATA SSD zusammentragen in Cloud/GIT
  8. Dokumentation - SSD
  9. GPU Aktivierung - welche Jetpack Version läuft auf dem Nano? Wir brauchen JetPack 4.2.1

Helferskripte

/home/jetbot/ROS/.sh <- iwas mit start_carto_rpl_komplett.sh oder so ähnlich /home/jetbot/ROS/hotspot_start.sh /home/jetbot/ROS/hotspot_stop.sh

Serielle Verbindung

USARTs Verbindungen müssen RX/TX crossen - Nullmodemverbindung

Ansteuerung der Motoren

Ansteuerung der Motoren per PPM https://de.wikipedia.org/wiki/Pulsdauermodulation#Steuerungstechnik

Flashen des Motor Controllers

Bisher Flashen des Motor Controller Boards vom Jetson Nano, weder mit dem originalen ST-Link Adapter noch mit dem China Flasher möglich -> evtl funktioniert es mit dem st-flash Tool - gemeint ist nicht st-link-gui

Speichern der Scans

"rosbag record -a" um alle Topics aufzunehmen. Pro Minute etwa 10 MByte für den RPLidar im Boost Modus/8K. "rosbag play --topics /scan /tf /tf_static /map" funktioniert erstmal. Evtl nicht optimal.


IMU

https://github.com/alex-makarov/adafruit_imu - Beim kalibrieren auf Topic achten - muss geremaped werden.


Cartographer imu

Cartographer kann mit oder ohne IMU laufen. Ohne IMU in robaka.lua dafür use_imu_data=false und use_online_correlative_scan_matching=true. Ca. 50% CPU Last in MAXN Modus. Mit IMU in robaka.lua dafür use_imu_data=true und use_online_correlative_scan_matching=false. Wichtig ist das remapping von /imu/data_raw nach /imu. Alles in ein Launchfile ist am einfachsten. !Anmerkung! Seperate Launchfiles, sowie die Startreihenfolge als auch die Zeilenreihenfolge in den Launchfiles sind relevant !Anmerkung!