安価なLidar(Camsense X1)をRaspberryPiで使用しRVizで可視化
はじめに
AliExpressで購入した1000円台のLidar(Camsense X1)をRaspberry Pi で使用した際のメモ。
環境
- 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に接続)
Raspberry Piの設定(UART有効化)
下記を実行し、表示されるGUI上で、写真通りに設定してください。
$ sudo raspi-config
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で公開されている以下のパッケージを使用します。
$ 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の情報を可視化できます。
おわりに
安価なLidarでも部屋の壁の情報を認識できていることが分かりました。次はパッケージ頼りにしてしまっているLidarとのシリアル通信の内容を深堀りしたいと思います。それでは。