Skip to main content

carolo-cup

Software Architecture​

CC Software Architecture

This slide contains an overview over all nodes in our vehicle.

The nodes can be roughly divided using the "sense-plan-act" paradigm, where the sense nodes are responsible for perceiving the environment, the planning nodes plan our reference trajectory and parking maneuvers and our act node, turns the reference trajectory into a driven path.

Not all nodes are active all the time, the grey marked nodes are for example not active in certain disciplines during the competition and this allows us to save the resources that these nodes might consume.

Folderstructure​

.
├── docs # Documentations and third-party documentation tool configuration files
├── messages # ROS2 GalaXIs custom messages
├── nodes # GalaXIs ROS2 nodes (Autopilot, Controller Node, ...)
├── scripts # Useful scripts (start development environment, clang format, ...)
├── simulation_adapter_messages # ROS2 custom messages for simulation integration
├── test # Unit tests (disabled)
├── tools # Useful self-implemented programs for Map Plotting, ...
├── utilities # GalaXIs Library supporting the nodes
├── ...
└── README.md # This README

Documentation​

The current doxygen documentation of our C++ code can be found here.

Further useful docs​

Marvelmind GPS​

Motor Parameter Identification​

WICHTIG!! Niemals Kabel abstecken solange die Batterie angeschlossen ist, dies kann dazu führen dass die FOC Einstellungen verloren gehen. Sollte dies passieren die folgenden Schritte ausführen!

  1. Motor muss im Leerlauf sein -> Karre aufbocken
  2. Batterie verbinden
  3. Motorcontroller mit PC verbinden -> Micro-USB auf USB-Kabel -> VESC Tool starten
  4. In der Seitenleiste unter "Motor Settings" General öffnen

WhatsApp_Image_2023-04-27_at_21.46.06

  • Read Motor configuration WhatsApp_Image_2023-04-27_at_21.55.04
  • Fahrtrichtungen überprüfen (mit der Fernbedienung) ggf. invertieren
  • Motor Type -> FOC
  • Sensor Port Mode -> ABI (A,B, Index Pulse) Encoder
  • Write Motor Configuration WhatsApp_Image_2023-04-27_at_21.55.04__1_
  1. In der Seitenleiste unter "Motor Settings" FOC öffnen
    • Sensor Mode -> Encoder
    • Im Tab Encoder unten bei Detect Encoder 1,00A einstellen und Start detection ausführen WhatsApp_Image_2023-04-27_at_22.03.52
    • Ratio muss 7 sein -> 14 poliger Motor -> 7 Polpaare
    • dann auf "Apply" klicken -> setzt die neuen Einstellungen
    • Im Tab General:
    • RL Button klicken (-> Misst Widerstand und Induktivität)
    • R und L sollten grün werden
    • wenn weiterhin rot I um 0,5A positiv oder negativ anpassen bis grün
    • Lamda Button klicken (Misst Flux Linkage)
    • Lamda sollte grün werden
    • wenn weiterhin rot Alpha um +500 erhöhen und erneut messen
    • wenn alle Parameter grün sind (bis auf Lq-Ld, ich weiß nicht genau was das sein soll, vielleicht bekomme ich das noch raus) auf Apply klicken
  2. Write Motor Configuration
  3. Jetzt könnte man über den Punkt Experiments einige Werte testen dabei kann man sich Ergebnisse Plotten lassen hier der Graph für die aktuellen Einstellungen: WhatsApp_Image_2023-04-27_at_22.23.18
  4. In der Seitenleiste unter "App Settings" General öffnen
    • APP to use sollte UART sein
  5. In der Seitenleiste unter "App Settings" UART öffnen
    • Baudrate sollte 115200 sein
  6. Write App Configuration (unterhalb von Write Motor Configuration)
  7. Karre Auswerfen über den "Disconnect" Button oberhalb von "Read Motor Confiduration" danach Kabelverbindung mit PC trennen

Jetson AGX Xavier​

NVIDIA Linux Tegra​

STM32​

Car​

  • 18 Zähne kleines Ritzel
  • 33 Zähne Achsritzel
  • 38 Zähne große Riemenscheibe (vermutl.)
  • 20 Zähne kleine Riemenscheibe (vermutl.)
  • Übersetzung Vges= 0.0595*Nmotor

ROS 2​

ROS2 Buildtool​

SSH/VNC​

  • ssh -p 8001 galaxis@137.226.8.100
  • Klick here for AGX
  • systemctl start vncserver to start the vnc server
  • vncviewer -quality 5 -encodings "copyrect tight hextile zlib corre rre raw" -compresslevel 5 137.226.8.100:9002 with password i********

SSH/RQT​

  • ssh <ip> -XYC -c aes128-ctr

Git Stuff​

Jetson TX2​

update time on ubuntu system​

  • sudo date -s "$(wget -qSO- --max-redirect=0 google.com 2>&1 | grep Date: | cut -d' ' -f5-8)Z"
  • from update time & date from internet
  • simply change ntp server settings to ntp1.rwth-aachen.de and ntp2.rwth-aachen.de

Format Code​

Automatically​

$ ./scripts/clang-format.sh /path/to/dir/to/format

Manually​

  • install clang-format (>=9.0.0) and check if .clang-format file is in root folder of this git repo
  • to format your code run clang-format -i filename.xyz

RealSense​

  • Filter application order: There are no software-imposed constrains that mandate the order in which the filters shall be applied
    • Order used by realsense library/demos: ```Depth Frame >> Decimation Filter

      Depth2Disparity Transform** -> Spatial Filter >> Temporal Filter >> Disparity2Depth Transform** >> Hole Filling Filter >> Filtered Depth```

KITCAR GAZEBO SIMULATION​

  • Clone galaxis-simulation Repo
  • Build and Start Simulation and Bridge (See README.md of galaxis-simulation repo)
  • Start SimulationAdapter
  • Start RemoteControl (have fun)