ROS 2 Node¶
Dieser Node übernimmt die Kommunikation des Neobotix USBoard-USS5.
Der USBoard-USS5-Node wurde getestet mit:
- ROS 2 Foxy auf Ubuntu 20.04, Rolling und Humble auf Ubuntu 22.04
Sie finden den Quelltext der ROS-Node unter https://github.com/neobotix/neo_usboard_v2-2.
Bemerkung
Wir unterstützen inzwischen auch die Distributionen Galactic und Humble. Bitte checken Sie bei Bedarf den entsprechended Branch aus.
Installation¶
Klonen Sie das
neo_usboard_v2-2
-Repository in den source-Ordner Ihres ROS2 Workspace:cd your_ros2_workspace/src git clone https://github.com/neobotix/neo_usboard_v2-2.git
Klonen Sie
neo_msgs
in den source-Ordner Ihres Catkin Workspace:git clone https://github.com/neobotix/neo_msgs2.git
Laden Sie die benötigten Submodule:
vnx-base
,pilot-base
undpilot-usboard
:cd neo_usboard_v2-2 git submodule update --init
Installieren Sie
vnx-base
.ROS Foxy:
sudo dpkg -i vnx-base/x86_64/vnx-base-1.9.3-x86_64-ubuntu-20.04.deb
ROS Humble:
sudo dpkg -i vnx-base/x86_64/vnx-base-1.9.6-x86_64-ubuntu-22.04.deb
Kompilieren Sie Ihren Workspace:
cd your_ros2_workspace colcon build --symlink-install . install/setup.bash
Starten¶
Wenn CAN verwendet wird muss der Bus zuerst konfiguriert werden:
sudo ip link set can0 down
sudo ip link set can0 type can bitrate 1000000
sudo ip link set can0 up
Um den USBoard-USS5 ROS Node zu starten, verwenden Sie:
ros2 launch neo_usboard_v2 neo_usboard_v2.launch.py
Parameter¶
Die folgenden Parameter können Sie in neo_usboard_v2.yaml
an Ihre Bedürfnisse anpassen:
Parameter | Wert | Hinweis |
---|---|---|
can_id | 1024 | Muss ein Vielfaches von 32 sein. |
can_device | Nichts oder can0 | |
serial_port | /dev/ttyUSB0 | |
can_baud_rate | 1000000 (bit/s) | Muss dem auf dem Board konfigurierten Wert entsprechen. |
update_rate | 5 (Hz) | Nur im „Request“-Sendemodus relevant. |
Bemerkung
Falls can_device
ein Wert zugewiesen wird, wird der CAN-Bus zur Kommunikation verwendet, andernfalls die mit serial_port
spezifizierte serielle Schnittstelle.
Die folgenden Parameter können über den Parameterserver gesetzt werden, während die ROS2-Node läuft.
Parameter | Wert | Hinweis |
---|---|---|
low_pass_gain | 1 | Verstärkung des Tiefpassfilters (1 = kein Filter) |
enable_analog_input | false | Aanalogeingänge auslesen ein/aus |
enable_legacy_format | false | Altes Nachrichtenformat benutzen (bei automatischem Senden) |
enable_can_termination | false | CAN-Bus-Terminierung aktivieren |
relay_warn_blocked_invert | false | Warn-Relay invertieren, wenn ein Sensor blockiert ist |
relay_alarm_blocked_invert | false | Alarm-Relay invertieren, wenn ein Sensor blockiert ist |
active_sensors(0 to 15) | true | Aktive Sensoren |
warn_distance(0 to 15) | 100 cm | Warndistanz pro Sensor |
alarm_distance(0 to 15) | 30 cm | Alarmdistanz pro Sensor |
enable_transmission(0 to 4) | true | Gruppe in automatischem Modus aktiviert |
fire_interval_ms | 20 ms | Zeit zwischen zwei Impulsen |
sending_sensor | 0 | Index des Sensors der im Kreuzechomodus den Impuls sendet |
cross_echo_mode | false | Kreuzechomodus an/aus |
Topics¶
Die folgenden ROS Topics sind verfügbar:
Name | Typ |
---|---|
/usboard_v2/measurements | neo_msgs/msg/USBoardV2 |
/usboard_v2/sensor1 | sensor_msgs/msg/Range |
/usboard_v2/sensor2 | sensor_msgs/msg/Range |
… | |
/usboard_v2/sensor16 | sensor_msgs/msg/Range |
Hilfe¶
Wenn Sie den Fehler unable to connect to port /dev/ttyUSB0
erhalten, führen Sie folgenden Befehl aus:
sudo usermod -a -G dialout $USER
und starten Sie Ihren PC neu.