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

  1. 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
    
  2. Klonen Sie neo_msgs in den source-Ordner Ihres Catkin Workspace:

    git clone https://github.com/neobotix/neo_msgs2.git
    
  3. Laden Sie die benötigten Submodule: vnx-base, pilot-base und pilot-usboard:

    cd neo_usboard_v2-2
    git submodule update --init
    
  4. 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
      
  5. 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.