Lab09-RealSense-Hardware

Nowoczesne Sensory w Robotyce

Politechnika Poznańska, Instytut Robotyki i Inteligencji Maszynowej

Laboratorium 9: RGBD - Kamera RealSense

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.

Cel zajęć

Uruchomienie kamery RGB-D RealSense, przy pomocy SDK oraz drivera w ROS 2. Zapoznanie się z danymi, które dostarcza kamera RealSense.

Sprzęt laboratoryjny

Sprawdźcie między sobą różnice między tymi dwoma modelami.

Ś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ęć.

Do uruchomionego kontenera wchodzimy klasycznie poprzez docker exec ....

SDK

Do obsługi kamery RealSense użyjemy oficjalnego SDK, które można znaleźć na GitHubie. Proszę doinstalować pakiety z apt.

Po poprawnej instalacji i podłączeniu kamery powinniśmy być w stanie wyświetlić dane z kamery za pomocą narzędzia realsense-viewer.

ROS 2 Driver

Do integracji kamery RealSense z ROS 2 użyjemy oficjalnego drivera, który jest dostępny na GitHubie. Proszę zapoznać się z dokumentacja i zbudować paczkę.

Po zbudowaniu paczki i podłączeniu kamery, powinniśmy być w stanie uruchomić node drivera i zobaczyć dane z kamery w ROS 2.

ros2 launch realsense2_camera rs_launch.py

Spróbuj uruchomić driver z różnymi parametrami, np. włączając publikowanie chmury punktów, lub wyrównując obraz głębi do obrazu RGB.

ros2 launch realsense2_camera rs_launch.py pointcloud.enable:=true enable_color:=true align_depth.enable:=true

Model D435i

Ten model posiada dodatkowo moduł IMU, który dostarcza dane z akcelerometru i żyroskopu. Sprawdź, czy te dane są publikowane w ROS 2 i wyświetl je w RViz2.

Wyświetl dane w RViz2.

Wskazówka: Aby dane z IMU były publikowane i połączone w jeden wspólny topic, zapoznaj się w dokumentacji z parametrami enable_gyro, enable_accel oraz unite_imu_method.

Sprawdzenie działania kamery

Sensory RGB-D, mimo swojej wszechstronności, mają wyraźne słabe punkty wynikające z fizyki fal świetlnych. Ponieważ RealSense do oceny głębi używa rzutnika podczerwieni (IR), niektóre materiały potrafią całkowicie zaburzyć jego działanie.

Proszę sprawdzić działanie kamery na różnych powierzchniach, takich jak: - Biała ściana - Czarne ubranie - Szkło - Ekran monitora/telefonu - Skierowane w stronę słońca

Co na eKursy?

  1. Zrzut ekranu z działającym realsense-viewer.
  2. Zrzut ekranu z RViz2, pokazujący dane z kamery RealSense (obraz RGB, głębi oraz chmurę punktów).
  3. Krótka analiza, które powierzchnie sprawiają największe problemy dla kamery RGB-D i dlaczego.