😸

aliexpressで入手したLiDARを使ってC++でグラフィック表示させたい

2024/08/19に公開

概要

Aliexpressで安価にLiDARを入手したので,PCにUSBシリアル変換を通してつないで使ってみたいと思ったが,M5stackを使ったコードや,pythonコードを使ったコードしか見当たらなかったので,C++でOpenGL使ってグラフィック表示させました.

ソースコード

https://github.com/nihinihikun/UnknownLiDARMini_Cpp

開発環境

  • WSL: 2.2.4.0
  • カーネル バージョン: 5.15.153.1-2

使用デバイス

USBシリアル変換は何でも大丈夫だと思う

簡単に使用

freegultのインストール

グラフィック表示でOpenGLを楽に使うためにfreegult入れる.すでに入れてる人は無視していい.

$ sudo apt install freeglut3-dev

コンパイル方法

path名等は適宜変更して.

g++ -c main.cpp -o main.o
g++ -c lidar.cpp -o lidar.o
g++ main.o lidar.o -o MyApp -lglut -lGL -lGLU

実行

sudo ./MyApp

最後のコマンドで,sudoをつけないと,シリアルポートにアクセスできない.
実行画面
こんな感じです.真ん中の赤い点がLiDARの(0,0)

使用方法

  • ESCキーを押すと終了
  • AとDを押すと拡大・縮小

Advanced use

シリアルポートの指定の変更

複数tty使用しているときは"/dev/ttyUSB0"の部分を適宜変更して.B230400はボーレート.

serial_port = serialBegin("/dev/ttyUSB0", B230400);

表示する点の数を調整

表示する点の数を調整できる.
main.cppの

#define DISPLAYBUFFSIZE 1024

ここの1024という数字を変更すると表示する点の数を調整できる.USBシリアル変換のバッファの量に応じて適宜変更するとよい

リリース

  • v1.0.0 2024/8/17 最初のリリース

何か問題等ありましたらGitHubのissueでお願いします.(サポートする保証はありませんが)

参考

データシートも型番も不明のLiDARを使えるようにしたコードを公開してくれた人には感謝.

Discussion