1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

SDKを用いてRPLiDAR C1でデータを取得する方法

Last updated at Posted at 2024-07-08

困っている人の助けになればいいなと思います.

準備

RPLiDAR C1でセンサーデータをする準備をします.

LiDAR

SLAMTEC RPLiDAR C1

IMG_9373.jpg

環境

WSL2:ubuntu-22.04

環境を整える方法については以下の記事などを参考にしてもらえるといいと思います.

WSL上でLiDARが認識されるようにする

参考サイトを置いときます.

power shellを開いてusbipdをインストールします.

powershell
winget install --interactive --exact dorssel.usbipd-win

自分はWSLでlinux-toolをインストールしなくてもうまくいった気がします.ダメだったら上の参考記事に解決策が乗っているので試してみてください

そしたら,LiDARをPCに挿して以下のコマンドを叩いてみてください.

powershell
usbipd list

出力結果としては以下のようなリストが表示されると思います.

Connected:
BUSID  VID:PID    DEVICE                                                        STATE
2-2    10c4:ea60  Silicon Labs CP210x USB to UART Bridge (COM3)                 Shared
2-5    27c6:538d  Goodix fingerprint                                            Not shared
2-6    0bda:565a  Integrated Webcam                                             Not shared
2-10   0cf3:e007  Qualcomm QCA61x4A Bluetooth                                   Not shared

もしこれで表示されない場合は,silicon labsのCP210x USB-UARTブリッジVCPドライバをインストールしてみてください.
LiDARだと思われる項目が出てきたら,以下のコマンドでBUSIDを指定してアタッチします.

powershell
 usbipd attach -w --busid 2-2

アタッチができたらもう一度```usbipd list````をしてみてください.以下のようにSTATEがAttachedになってると思います.

Connected:
BUSID  VID:PID    DEVICE                                                        STATE
2-2    10c4:ea60  Silicon Labs CP210x USB to UART Bridge (COM3)                 Attached

ついでにWSL上でls /dev/ttyUSB0をしてみてください.いると思います.そいつがLiDARです.
一応アクセス権限を与えておいてください

WSL
sudo chmod 777 /dev/ttyUSB0

もう少し続きます.がんばりましょう.

gitからrplidar_sdkをクローンする

gitからクローンして自分のホームディレクトリに落とします

sudo git clone https://github.com/Slamtec/rplidar_sdk.git

持ってこれましたでしょうか
次にSDKの中には「Makefile」と呼ばれるファイルがあっちこっちに入っています.

LiDARのデータを取得する

このファイルがあるディレクトリでsudo makeを唱えることで必要なファイルがコンパイルされます.
makeを使えるようにするため「make」「g++」をインストールします.

sudo apt install make g++

そしたら方端からsudo makeしていきます.

「~/sdk/rplidar_sdk/app」でmakeコマンドをたたくと,以下のようなディレクトリが出力されると思います.
custom_baudrate/ Makefile*  ultra_simple/ frame_grabber/ simple_grabber/

各ファイルには「main.cpp」と「Makefile」が入っています.
READ MEによると

ultra_simple

はスキャンデータをコンソールに表示する

simple_grabber

はPCとRPLIDARを接続した後,RPLIDARのシリアル番号,ファームウェア バージョン,および正常状態を取得するプロセスを表示する

frame_grabber

はGUI でリアルタイムのレーザースキャンを表示でき,Windowsプラットフォームでのみ使用可能らしい.
今現在は開発を中止しており,その代わりにSlamtec RoboStudioというソフトウェアを使用してほしいとのこと.下にSlamtec RoboStudioのURLを貼っときます.

custom_baudrate

これについての記述はありませんでした.

いざ実行

とりあえず各ディレクトリにある「Makefile」をsudo makeしたら
~/sdk/rplidar_sdk/output/Linux/Release/」に以下のファイルがコンパイルされると思います.これらのファイルを動かすとセンサーがデータを取得して値を表示するようになります.

custom_baudrate*  libsl_lidar_sdk.a  simple_grabber*  ultra_simple*

例としてultra_simpleを実行する際は以下のコマンドをプロンプトに打ち込んでください.

./ultra_simple --channel --serial /dev/ttyUSB0 460800

「460800」はボーレート(baudrate)と呼ばれるものです(多分).RPLidarごとに決まってるのかな,C1は460800を指定しないと動きませんでした.ですがこれに近い値,例えば450000とかでも一応起動します.
ボーレートについて詳しくわかる人は教えてほしいです.

実行結果

出力結果
Ultra simple LIDAR data grabber for SLAMTEC LIDAR.
Version: 2.1.0
SLAMTEC LIDAR S/N: B5F6E1F4C2E398C0BCEA9AF33B2D4806
Firmware Ver: 1.01
Hardware Rev: 18
SLAMTEC Lidar health status : 0
   theta: 0.15 Dist: 01058.00 Q: 47 
   theta: 0.70 Dist: 01058.00 Q: 47 
   theta: 1.23 Dist: 01058.00 Q: 47 
   theta: 1.78 Dist: 01059.00 Q: 47 
   theta: 2.32 Dist: 01061.00 Q: 47 
   ~~~~~~~~~~~~~~~~~~(まだまだ続きます↓)

注意!

データを取得すると「Q:」のところは基本的に47という数字が出力されますが時々「0」が出力されます.0が出力された場合データの取得が行われておらず,distanceの値が0になってしまいます.
現在原因を探っています.わかる人がいたら教えてください.
siliconlabsのcp210x USB-UARTブリッジを使用しているため,もしかしたらそのあたりが原因で落としてしまっているかもしれないです.

もし,テキストファイルとかに出力したい人は上のコマンドにteeコマンドをくっつけてもいいと思います.それか「~/sdk/rplidar_sdk/app」にあるmain.cppをいじって出力するようにしてもいいと思います.
注意してほしいのがmain.cppを変更した場合は必ずsudo makeをしてください.反映されないと思います.

以上です.お疲れ様です.技術的なブログを書いたことがないのと,自分自身わからないことだらけなのがよくないのですが,誰かの解決策になったらいいなと思います.
意外とgitのisueを見てみると同じことで悩んでいる人や解決策をくれてる人がいるので見てみましょう.
あとは,RPLiDAR C1のマスターした方...ぜひご教授ください.

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?