Lab07-LiDAR-Hardware

Nowoczesne Sensory w Robotyce

Politechnika Poznańska, Instytut Robotyki i Inteligencji Maszynowej

Laboratorium 7: LiDAR - Hardware

Powrót do wyboru zajęć ## Ważne uwagi organizacyjne

Ze sprzętem laboratoryjnym należy obchodzić się ostrożnie. Nie odłączać kabli sieciowych od komputerów.

Nie należy dotykać soczewki LiDARa, ani innych elementów optycznych. Uwage skaner może się nagrzewać podczas pracy.

Cel zajęć

Uruchomienie sensora LiDAR, przy pomocy drivera w ROS 2. Zapoznanie się z danymi, które dostarcza sensor LiDAR.

Tutaj znajduje się dokumentacja, model używany na zajęciach to OS0-32-U oraz OS0-64-U.

Porównanie LiDARów z oferty Ouster można znaleźć tutaj

Sensor zasilamy napięciem 24V, a do komunikacji używamy interfejsu Ethernet. Z powodu braku wolnego portu Ethernet w komputerze, używamy adaptera USB-Ethernet.

Środowisko pracy

Proszę pobrać docker image

docker pull stanislawkuczma/ros2-humble
Skrypt uruchamiający kontener
IMAGE_NAME="stanislawkuczma/ros2-humble:latest"
CONTAINER_NAME="<your_index>"

DOMAIN=${CONTAINER_NAME: -2}

xhost +local:root
XAUTH=/tmp/.docker.xauth
if [ ! -f $XAUTH ]
then
    xauth_list=$(xauth nlist :0 | sed -e 's/^..../ffff/')
    if [ ! -z "$xauth_list" ]
    then
        echo $xauth_list | xauth -f $XAUTH nmerge -
    else
        touch $XAUTH
    fi
    chmod a+r $XAUTH
fi
docker stop $CONTAINER_NAME || true && docker rm $CONTAINER_NAME || true
docker run -it \
    --env="DISPLAY=$DISPLAY" \
    --env="QT_X11_NO_MITSHM=1" \
    --env="ROS_DOMAIN_ID=$DOMAIN" \
    --volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" \
    --env="XAUTHORITY=$XAUTH" \
    --volume="$XAUTH:$XAUTH" \
    --volume="/dev:/dev" \
    --volume="$PWD:/root/ros2_ws" \
    --privileged \
    --network=host \
    --name="$CONTAINER_NAME" \
    $IMAGE_NAME \
    /bin/bash

Note: jest to czysty ROS 2 Humble, bez dodatkowego oprogramowania. Więc bez problemu można użyć obrazów z poprzednich zajęć.

Konfiguracja sieciowa

To jest sensor który komunikuje się przez sieć Ethernet, więc musimy skonfigurować naszą kartę sieciową, aby znajdowała się w tej samej podsieci co LiDAR.

Ale jaka to jest?

Z dokumentacji wynika, że domyślny adres IP LiDARa to 192.0.2.100 Ale jest bardzo duża szansa, że został on zmieniony przez poprzedniego użytkownika.

Jest też opcja znalezienia go za pomocą numeru seryjnego zapisanego na obudowie

http://os-122128001185.local

lub 

http://os-122040000090.local

Note: Tutaj można tak zmodyfikować ustawienia, że możemy uszkodzić sensor, proszę tego nie robić.

Ouster SDK

SDK można pobrać z tej strony. Jest to narzędzie do konfiguracji i diagnostyki sensora. Po uruchomieniu, można połączyć się z LiDARem i sprawdzić jego ustawienia oraz odczytać dane. U mnie nie działało z poziomu Dockera, więc najlepiej jest uruchomić je na host’cie.

W tym celu należy nadać uprawnienia do uruchomienia tego pliku chmod +x OusterStudio-2.4.3.AppImage a następnie uruchomić go ./OusterStudio-2.4.3.AppImage

Driver w ROS 2

Klasycznie pobieramy driver od producenta, zapoznajemy się z dokumentacją i budujemy workspace.

ros2 launch ouster_ros sensor.launch.xml    \
    sensor_hostname:=<sensor host name>

W jakim formacie są dane? Co można modyfikować przy pomocy tego launch file’a? Jakie jeszcze topiki są publikowane przez driver?

Zadania

  1. Opisać podstawowe parametry tego sensora. Dla jakich zastosowań jest on przeznaczony? Jakie są jego zalety i wady? Chodzi o parametry takie jak: zasięg, rozdzielczość, częstotliwość skanowania, liczba wiązek itp. A nie że LiDAR jest drogi, a kamera tania.
  2. Uruchomić driver ROS 2 dla tego sensora. Sprawdzić, jakie dane są publikowane przez driver.
  3. Wyświetlić chmurę punktów z LiDARa w RViz2
  4. Nagrać dane które będą potrzebne do następnych zajęć. Proszę się upewnić że nagranie jest poprawne.