Baby Step

自分の考えやロボット開発のメモなどを残していこうと思います

安価なLidar(Camsense X1)をRaspberryPiで使用しRVizで可視化

はじめに

AliExpressで購入した1000円台のLidar(Camsense X1)をRaspberry Pi で使用した際のメモ。

f:id:obot:20210606115118j:plain
Camsense X1

環境

  • Raspbery Pi 4 Model B
  • CamsenseⓇX1
  • ROS melodic

ハードウェア接続

Raspberry Pi と Lidar を接続します。LidarのVC、GNとRaspberry Piの5V、GNDをそれぞれ接続します。Camsense X1からはシリアルのUART(ユーアート)でセンサ情報が送信されてきます。Txが情報の送信側、Rxが情報の受信側ですので、ここでは CamsenseのTxとRaspberry PiのRxを接続します。Raspberry PiのRxはこの後UART設定するPINに接続してください。(ここではGPIO1に接続)

f:id:obot:20210606130850p:plain
Raspberry Pi と Camsense X1の接続

Raspberry Piの設定(UART有効化)

下記を実行し、表示されるGUI上で、写真通りに設定してください。

$ sudo raspi-config

f:id:obot:20210606162226p:plain
raspi-config上でのUART有効化
Raspberry Pi 4ではUART1~5が使用できます。デフォルトではUART1のみ有効となっていますが、私の環境ではUART1の通信がうまくいかなかったため、UART2を有効化して使用しました。

UART1~5に対応するPIN番号

  • UART1 Tx (GPIO14) Rx(GPIO15)
  • UART2 Tx (GPIO0) Rx(GPIO1)
  • UART3 Rx(GPIO5)
  • UART4 Tx (GPIO8) Rx(GPIO9)
  • UART5 Tx (GPIO12) Rx(GPIO13)

UART1以外を有効化するには、

$ {YOUR_EDITOR} /boot/config.txt

でconfig.txt内の[all]の下に下記を追加して再起動を行います。

dtoverlay = uart2 # 追加したいUART番号を記入

ROS rvizで可視化

ROSについてはインストールできている前提です。

  • Githubで公開されている以下のパッケージを使用します。

github.com

$ cd {YOUR_CATKIN_WS}/src
$ git clone https://github.com/Vidicon/camsense_driver
$ catkin_make

※{ }内は自身の環境に合わせてください

  • launchフォルダ内のview.launchを編集します。
$ cd ~/{YOUR_CATKIN_WS}/src/camsense_driver/launch
$ {YOUR_EDITOR} view.launch

使用するポートのデフォルト値を今回使用したいポートに変更。(波線部分)

<arg name="port" default="/dev/ttyAMA1"/>
                         ~~~~~~~~~~~~~~

UART1は /dev/ttyAMA0、UART2は /dev/ttyAMA1に対応しています。

  • ポートに権限付与
$ sudo chmod 666 /dev/ttyAMA1
  • 実行
$ roslaunch camsense_driver view.launch
  • 実行結果

おなじみのRViz上でLidarの情報を可視化できます。

f:id:obot:20210606165258p:plain
rviz上でLidar情報の表示

おわりに

安価なLidarでも部屋の壁の情報を認識できていることが分かりました。次はパッケージ頼りにしてしまっているLidarとのシリアル通信の内容を深堀りしたいと思います。それでは。