😸
aliexpressで入手したLiDARを使ってC++でグラフィック表示させたい
概要
Aliexpressで安価にLiDARを入手したので,PCにUSBシリアル変換を通してつないで使ってみたいと思ったが,M5stackを使ったコードや,pythonコードを使ったコードしか見当たらなかったので,C++でOpenGL使ってグラフィック表示させました.
ソースコード
開発環境
- 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