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
- 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.
- Uruchomić driver ROS 2 dla tego sensora. Sprawdzić, jakie dane są publikowane przez driver.
- Wyświetlić chmurę punktów z LiDARa w RViz2
- Nagrać dane które będą potrzebne do następnych zajęć. Proszę się upewnić że nagranie jest poprawne.