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.
- Jaki jest zasięg działania?
- Jaka jest rozdzielczość obrazu RGB i głębi?
- Jakie FoV?
Ś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
- Jaka jest częstotliwość publikowania danych z kamery?
- Jaki jest rozmiar publikowanych obrazów RGB i głębi?
- Czy można zmienić rozdzielczość i częstotliwość? Jak to zrobić?
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?
- Zrzut ekranu z działającym
realsense-viewer. - Zrzut ekranu z RViz2, pokazujący dane z kamery RealSense (obraz RGB, głębi oraz chmurę punktów).
- Krótka analiza, które powierzchnie sprawiają największe problemy dla kamery RGB-D i dlaczego.