USB(シリアル)
Lidar SLAM
SLAMTEC社のLidar RPLidar C1 を購入し、Pythonにて測定してみました。
SLAMTEC RPLidar C1 https://www.slamtec.com/en/c1
Pythonにて使用できるモジュールは、https://pypi.org/project/rplidarc1/ を
利用しました。
RPLidar C1 は、ToF方式で測定精度±30mm、レーザーセンサーが回転して、
360°検出します。USBポート経由でシリアル通信によりデータを収集します。
基準の方向から、時計回りで角度と距離のデータが0.3~0.7°程度のステップで
360°分のデータを受信します。


tkinterとmatplotlibを使用し、測定データは回転座標系ですので、三角関数を利用して
直交座標系へデータを変換し、プロット表示させました。
測定開始からプロット表示まで5秒程度かかります。(Raspberry Pi 5 を使用)
段ボール箱の中にRPLidarを入れて周囲の形状を表示させてみます。
箱の中央にLidarを配置

箱の中央に斜めにLidarを配置

matplotlibで描画したプロットがほぼ段ボール箱の形状を表しています。
およそ1000ポイントの座標を表示しています。中央のピンクの丸印がLidarの位置です。
左側の最小距離リストは、Lidar中心から距離の短い点の上位5点の、座標と距離です。
プロット上にもピンクの番号で位置を示しています。
Lidarは自動運転等でROS2を利用して運用するケースが多いようですが、
障害物の回避等であれば、このようにROS2なしでPythonで使用することも可能ですね。
SLAMTEC RPLidar C1 https://www.slamtec.com/en/c1
Pythonにて使用できるモジュールは、https://pypi.org/project/rplidarc1/ を
利用しました。
RPLidar C1 は、ToF方式で測定精度±30mm、レーザーセンサーが回転して、
360°検出します。USBポート経由でシリアル通信によりデータを収集します。
基準の方向から、時計回りで角度と距離のデータが0.3~0.7°程度のステップで
360°分のデータを受信します。


tkinterとmatplotlibを使用し、測定データは回転座標系ですので、三角関数を利用して
直交座標系へデータを変換し、プロット表示させました。
測定開始からプロット表示まで5秒程度かかります。(Raspberry Pi 5 を使用)
段ボール箱の中にRPLidarを入れて周囲の形状を表示させてみます。
箱の中央にLidarを配置

箱の中央に斜めにLidarを配置

matplotlibで描画したプロットがほぼ段ボール箱の形状を表しています。
およそ1000ポイントの座標を表示しています。中央のピンクの丸印がLidarの位置です。
左側の最小距離リストは、Lidar中心から距離の短い点の上位5点の、座標と距離です。
プロット上にもピンクの番号で位置を示しています。
Lidarは自動運転等でROS2を利用して運用するケースが多いようですが、
障害物の回避等であれば、このようにROS2なしでPythonで使用することも可能ですね。