2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

RPLiDAR A1M8-R6 を Mac で動かした時のメモ(Slamtec/rplidar_sdk を使った簡単な動作確認)

Last updated at Posted at 2022-04-03

タイトルの通りで、以下のオンラインサイトから購入した Shanghai Slamtec社の「RPLiDAR A1M8-R6」を Mac で動かしてみた話の記事です。

●Shanghai Slamtec RPLiDAR 360 Degree Laser Scanner Kit - 12M Range / A1M8-R6
 https://eleshop.jp/shop/g/gL2J312/

この LiDAR の用途について、以下の別サイトの情報を見ると「一般的なロボットのナビゲーションと位置確認、環境スキャニングと3Dリモデリング、一般的な同時ローカライゼーションとマッピング(SLAM)」などと書かれていたりします。

●RPLiDAR A1M8 360度レーザースキャナーキット 12Mレーザーレンジ - Seeed Studio
 https://jp.seeedstudio.com/RPLiDAR-A1M8-360-Degree-Laser-Scanner-Kit-12M-Range.html

この後は、仕様を確認してみたりしつつ、SDK を使った動作確認を進めていきます。

仕様の確認

購入元のページの情報によると、仕様は以下のとおりです。

  • 仕様
    • 測定周波数:2000Hz
    • スキャン周期:標準5.5Hz(1~10Hz可変)
    • 測定距離(半径):0.15~6m
    • 測定角:全方位
    • 測定誤差:±0.5mm(~1.5m)、±1.0%(1.5~6m)
    • 角度分解能:1°(スキャン周期5.5Hz時)

SDK を使う

GitHub上の情報の確認

今回、Mac で動作確認をするのですが、情報を見ていくと以下の SDK を使う方法があるようです。

●Slamtec/rplidar_sdk: Open source SDK for Slamtec RPLIDAR series products
 https://github.com/Slamtec/rplidar_sdk

サポートされているプラットフォームが書かれた表を見てみると、A1 + Mac の組み合わせは問題なさそうでした。
サポートされているプラットフォーム

Mac で「ultra_simple」を動かしてみる

それでは、 ultra_simple を試していきます。SDK は執筆時点の最新版を試しました。

Mac用のクイックスタートを見てみると、g++ が利用できる状態で makeコマンドを使えば良いようです。
Mac用のクイックスタート

それに必要な情報として、シリアルポートを ls -l /dev/tty.* で確認しておきます。そして、そこで得られたシリアルポートの情報を利用して、 ultra_simple のコマンドを実行します。

GitHub上の説明だと ultra_simple /dev/ttyUSB0 などという使い方が書かれていましたが、コマンドを実行すると以下のフォーマットで実行するよう説明が出ました。

$./ultra_simple --channel --serial /dev/tty.【シリアルポートに関する文字列】

上記を実行してみたところ、「Error, cannot bind to the specified serial port /dev/tty.【シリアルポートに関する文字列】」というエラーが出ました。

エラーの対応

上記のエラーの対応を進めていきます。

Web上の情報・以下の公式ページの内容の調査を行ってみたり、Windows に環境を変えてのお試しなどをしたりしました。Windows用の frame_grabber を動かした際にセンサーの値がとれていたようなので、エラーはデバイス側が原因ということはなさそうでした。

●RPLIDAR-A1 360°Laser Range Scanner _ Domestic Laser Range Scanner|SLAMTEC
 https://www.slamtec.com/en/Lidar/A1

いろいろと試していった結果、最終的に以下の v1.12.0 を利用すれば、Mac で問題なくセンサーの値を取得できるのを確認できました。
 ●Release release/v1.12.0 · Slamtec/rplidar_sdk
  https://github.com/Slamtec/rplidar_sdk/releases/tag/release%2Fv1.12.0

以下を見ると、左側の矢印で示した部分は v2.0.0 に更新されているものの、右側の矢印で示した部分は「最新版 v1.12.0」となっていて、「v1.12.0 を利用するとうまくいくのかな?」と思って試してみたという流れだったのですが、v2.0.0 のほうで動いていない原因はよく分からずです。
バージョンの記載.jpg

なお、この時の ultra_simple の実行コマンドは、上で使ったものではなく以下となりました。

$./ultra_simple /dev/tty.【シリアルポートに関する文字列】

そして得られた出力は以下のとおりです。

Ultra simple LIDAR data grabber for RPLIDAR.
Version: 1.12.0
Setting serial port baudrate...
RPLIDAR S/N: 【...】
Firmware Ver: 1.29
Hardware Rev: 7
RPLidar health status : 0
   theta: 0.30 Dist: 00247.00 Q: 188 
   theta: 0.62 Dist: 00247.00 Q: 188 
   theta: 0.93 Dist: 00248.00 Q: 188 
   theta: 1.19 Dist: 00249.00 Q: 188 
   theta: 1.50 Dist: 00249.00 Q: 188 
   theta: 1.81 Dist: 00250.00 Q: 188 
   theta: 2.08 Dist: 00251.00 Q: 188 
   theta: 2.39 Dist: 00251.00 Q: 188 
   theta: 2.76 Dist: 00249.00 Q: 188 
   theta: 3.12 Dist: 00246.00 Q: 188 
   theta: 3.56 Dist: 00243.00 Q: 188 
   theta: 3.87 Dist: 00243.00 Q: 188 
   theta: 4.12 Dist: 00244.00 Q: 188 
   theta: 4.45 Dist: 00245.00 Q: 188 
   theta: 4.70 Dist: 00247.00 Q: 188 
   theta: 5.02 Dist: 00248.00 Q: 188 
   theta: 5.28 Dist: 00249.00 Q: 188 
   theta: 5.59 Dist: 00250.00 Q: 188 
   theta: 5.84 Dist: 00251.00 Q: 188 
   ...

Mac で「simple_grabber」を動かしてみる

今度は、simple_grabber を試してみます。コマンドは、以下のように ultra_simple と同じ形です。

$./simple_grabber /dev/tty.【シリアルポートに関する文字列】

そして、以下の実行結果を無事に得られました。
simple_grabberの実行

2
1
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
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?