Aliexpressを見ていたらロボット掃除機のLiDARが10ドルで売ってたのでつい買ってしまった。送料いれて15ドルだった。
分解画像とピンアサインはLDS-006 Lidarを参照した。
赤が5V、緑がRX、青がTX、黒がGNDらしい。
とりあえずPHコネクタがピッタリ入った。ピッチが2.0mmなのでピンヘッダとかそのままさせないのよねぇ。UARTのレベルは3.3VらしいのでCP2102のUSBのドングルを使用した。5V電源もそちらからとった。
とりあえずPHコネクタがピッタリ入った。ピッチが2.0mmなのでピンヘッダとかそのままさせないのよねぇ。UARTのレベルは3.3VらしいのでCP2102のUSBのドングルを使用した。5V電源もそちらからとった。
少し調べてみると中国語の情報だけどこのLDS-006を解析している人がいたので参考にさせてもらった。
Laser-Radar-LDS-006-Drive-Test
色んなサイトを見ているとモーターのコントロールを別にやらないとダメそうなんだけど試しにstartlds$コマンドを送ってみたら回ってデータも取れてそう。
Laser-Radar-LDS-006-Drive-Test
色んなサイトを見ているとモーターのコントロールを別にやらないとダメそうなんだけど試しにstartlds$コマンドを送ってみたら回ってデータも取れてそう。
回り始めると22バイトずつのデータがめっちゃ流れてくる。おそらく4°ずつのデータかな。
ただ、距離は4個分入っているので分解能としては1°って言うことでいいのかなぁ?
ちなみに止めるときはstoplds$らしい。
CamsenseX1用に表示プログラムを作った人が公開してくださっていたのでこれをLDS-006のプロトコルに対応するようにテキトーに改造して試してみた。
とりあえず取れてそう。センサー本体を回すと平面部の角度が変化する。距離はどのぐらい飛ぶんだろうなぁ
これを作ってから気がついたんだけど、通信プロトコルがNeato XV11 LIDARのfirmware v2.4とv2.6のプロトコルにそっくりである。もしかしてまんまそのままだったりして?
LDS-006の解析結果との違いは距離の2bytesのうちの上位2bit分がエラーflagとして使われているぐらいなもんだし。
掃除機の部品で角度の分解能がいまいちとはいえ、LiDARも安く手に入るようになったなぁ
カスタムファーム開発してる人もいるっぽいんだけど分解能とか改善できるのかね。
追記:LDS-006のプロトコルが実はXV11と一緒なんじゃないかというところが気になって後日距離データの上位2bit分を解析してみた。やっぱりXV11と同様、距離データは14bitでHigh byteの上位2bit分が0以外になるとLow byteがエラーコード?になるようで16bit目がHighになると距離のLow byteは0x88とか0x99固定になってた。
XV11用に開発されたツールとかも使えたりするんじゃないかな。
0 件のコメント:
コメントを投稿