ものづくりのブログ

うちのネコを題材にしたものづくりができたらいいなと思っていろいろ奮闘してます。

【RaspberryPi】 FHL-LD20 を使ってみる①

FHL-LD20 を実際に使ってみたときのメモをここに残します。

FHL-LD20 について

センサの情報はここにまとめてあります。
a1026302.hatenablog.com

RaspberryPi

OS

RaspberryPi には Ubuntu 24.10 を入れています。

$ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 24.10
Release:	24.10
Codename:	oracular

環境構築

vnc の設定

RaspberryPi 側のモニタを準備するのがめんどくさいため vnc で接続します。
a1026302.hatenablog.com

docker コンテナ

ros2 のセットアップが Ubuntu 24.10 だとうまくいかなかっため docker コンテナを準備します。
Raspberry Pi 向けには arm64v8/ros:humble イメージがあります。

簡易検証
docker pull arm64v8/ros:humble
docker run -it --rm --net=host arm64v8/ros:humble bash

Dockerfile を使用して変更をイメージに反映

Dockerfile

Dockerfile を作成します。

FROM arm64v8/ros:humble

# 必要なパッケージをインストール
RUN apt-get update && apt-get install -y \
    ros-humble-desktop \
    qtbase5-dev \
    qtchooser \
    qt5-qmake \
    qtbase5-dev-tools \
    libqt5gui5 \
    libqt5core5a \
    libqt5widgets5 \
    libqt5x11extras5 \
    x11-apps \
    mesa-utils \
    && rm -rf /var/lib/apt/lists/*

# 環境変数の設定
ENV DISPLAY=:1
ENV QT_PLUGIN_PATH=/usr/lib/x86_64-linux-gnu/qt5/plugins

# ワークスペースの設定
WORKDIR /ros2_ws
RUN mkdir -p src
WORKDIR /ros2_ws/src

# ldlidar_stl_ros2 パッケージのクローン
RUN git clone https://github.com/ldrobotSensorTeam/ldlidar_stl_ros2.git

# ビルド
WORKDIR /ros2_ws
RUN . /opt/ros/humble/setup.sh && \
    colcon build --symlink-install

# エントリーポイントの設定
CMD ["bash"]

xhost

$ xhost +local:root

docker イメージをビルド

イメージをビルドします。

docker build -t my_custom_image .

コンテナ起動

以下のコマンドでコンテナを起動します。

docker run -it --rm \
    --device=/dev/ttyUSB0 \
    -e DISPLAY=$DISPLAY \
    -v /tmp/.X11-unix:/tmp/.X11-unix \
    my_custom_image

RViz2の起動

コンテナ内で以下のコマンドを実行してRViz2を起動します。

source /ros2_ws/install/setup.bash
ros2 launch ldlidar_stl_ros2 viewer_ld19.launch.py

USBデバイスの権限設定

USBデバイスの権限に問題がある場合、以下のコマンドで権限を設定します。

sudo chmod 666 /dev/ttyUSB0