Navigation eines FTF mit ROS2: Unterschied zwischen den Versionen
Zeile 52: | Zeile 52: | ||
Mit <code> cocomm "<node> <r/w> <index> <subindex> <datatype> <value>"</code> können Befehle gesendet/ausgelesen werden. <br> | Mit <code> cocomm "<node> <r/w> <index> <subindex> <datatype> <value>"</code> können Befehle gesendet/ausgelesen werden. <br> | ||
<br> | |||
==== Nützliche Befehle ==== | |||
'''0x6040 ControlWord''' <br> | |||
Das ControlWord dient zur Bewegungssteuerung <br> | |||
* Data Type: UNSIGNED16 | |||
* Access Type: write only | |||
{| class="wikitable" | |||
|+ ControlWord Bits | |||
! 15 !! 11 !! 10 !! 9 !! 8 !! 7 !! 6 !! 4 !! 3 !! 2 !! 1 !! 0 | |||
|- | |||
|colspan="2"| Manufacturer Specific | |||
|colspan="2"| Reserved | |||
| Halt | |||
| Fault Reset | |||
|colspan="2"| Operation Mode Specific | |||
| Enable Operation | |||
| Quick Stop | |||
| Enable Voltage | |||
| Switch on | |||
|- | |||
|} | |||
<br> | |||
'''0x6060 Modes_of_operation''' | |||
Schalter zur Auswahl des Operationsmodus.<br> | |||
* Data Type: INTEGER8 | |||
* Access Type: write only | |||
{| class="wikitable" | |||
! Mode of Operation !! Action | |||
|- | |||
| -2 || SYNC Q Mode | |||
|- | |||
| -1 || Normal Q Mode | |||
|- | |||
| 1 || Profile Position Mode | |||
|- | |||
| 3 || Profile Velocity Mode | |||
|- | |||
| 4 || Torque Profile Mode | |||
|- | |||
| 6 || Homing Mode | |||
|} | |||
Der Operationsmodus steht in '''0x6061'''. <br> | |||
'''0x6064 Position_value_calculated''' <br> | |||
Zeigt die Motorposition.<br> | |||
* Data Type: INTEGER32 | |||
* Access Type: read only | |||
<br> | |||
'''0x607A target_position''' | |||
Zielposition für den Profile Position Mode.<br> | |||
* Data Type: INTEGER32 | |||
* Access Type: read/write | |||
'''ControlWord''' Bit 6 setzen: | |||
* 0 für absolute Position | |||
* 1 für relative Position | |||
<br> | |||
'''0x6081 P2P_profile_velocity''' | |||
Maximale Geschwindigkeit.<br> | |||
* Data Type: UNSIGNED32 | |||
* Access Type: read/write | |||
<br> | |||
'''0x6083/0x6084 profile_acceleration/deceleration''' | |||
Profil Beschleunigungs/Verzögerungsgeschwindigkeit in 100 rps/s.<br> | |||
* Data Type: UNSIGNED32 | |||
* Access Type: read/write | |||
== Ergebnis == | == Ergebnis == |
Version vom 22. Juni 2022, 12:28 Uhr
Autor: Yannick Schmidt
Art: Projektarbeit
Dauer: April - September 2022
Betreuer: Prof. Schneider
Thema
Das Thema der Projektarbeit ist es das Fahrerlose Transportfahrzeug mit ROS2 zu navigieren
Aufgabenstellung
- Einarbeitung in ROS 2 und die FTF Hardware
- Optimierung der Navigation in der WeBots Simulation
- Inbetriebnahme der FTF Sensoren
- Sicherer Betriebszustand und Notaus
- Ansteuerung der FTF Aktoren
- Schnittstelle ROS2 zum FTF herstellen
- Navigation des FTF in einer realen Umgebung
- Ausblick auf Optimierungspotential
- Dokumentation der Erkenntnisse in einem Wiki Artikel
Anforderungen an die Projektarbeit
Projektplan
Inbetriebnahme der FTF Sensoren
Lidar
- RPLidar mit rplidar_ros2 package ansteuerbar
6-Achsen Gyroskop
Ansteuerung der FTF Aktoren
Motoren
CANopenLinux
Zur Ansteuerung der Motoren wird eine CANopen Node mit der ID=3 eröffnet.
Um den PCAN Treiber zu laden muss folgender Befehl ausgeführt werden:
sudo modprobe pcan
Dazu muss zunächst die CAN Schnittstelle zugewiesen werden:
sudo ip link set up can0 type can bitrate 250000
Anschließend wird die Node erstellt:
canopend can0 -i 3 -c "local-/tmp/CO_command_socket"
Der CANBus kann mit candump can0
ausgelesen werden.
Mit cocomm "<node> <r/w> <index> <subindex> <datatype> <value>"
können Befehle gesendet/ausgelesen werden.
Nützliche Befehle
0x6040 ControlWord
Das ControlWord dient zur Bewegungssteuerung
- Data Type: UNSIGNED16
- Access Type: write only
15 | 11 | 10 | 9 | 8 | 7 | 6 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|---|---|---|---|
Manufacturer Specific | Reserved | Halt | Fault Reset | Operation Mode Specific | Enable Operation | Quick Stop | Enable Voltage | Switch on |
0x6060 Modes_of_operation
Schalter zur Auswahl des Operationsmodus.
- Data Type: INTEGER8
- Access Type: write only
Mode of Operation | Action |
---|---|
-2 | SYNC Q Mode |
-1 | Normal Q Mode |
1 | Profile Position Mode |
3 | Profile Velocity Mode |
4 | Torque Profile Mode |
6 | Homing Mode |
Der Operationsmodus steht in 0x6061.
0x6064 Position_value_calculated
Zeigt die Motorposition.
- Data Type: INTEGER32
- Access Type: read only
0x607A target_position
Zielposition für den Profile Position Mode.
- Data Type: INTEGER32
- Access Type: read/write
ControlWord Bit 6 setzen:
- 0 für absolute Position
- 1 für relative Position
0x6081 P2P_profile_velocity
Maximale Geschwindigkeit.
- Data Type: UNSIGNED32
- Access Type: read/write
0x6083/0x6084 profile_acceleration/deceleration
Profil Beschleunigungs/Verzögerungsgeschwindigkeit in 100 rps/s.
- Data Type: UNSIGNED32
- Access Type: read/write
Ergebnis
Zusammenfassung
Lessons Learned
Projektunterlagen
Link zu dem SVN_Ordner des Projekt.
YouTube Video
Das Video von diesem Projekt finden Sie auf Youtube unter dem Link:
Weblinks
Literatur
→ zurück zum Hauptartikel: Studentische Arbeiten