Quectel LG290P は、みちびき L6 受信ができるのか。#2
Quectel LG290P は、みちびき L6 受信ができるのか。 の続きです。
今回は、実際に Quectel LG290P を ROS2 で使ってみてのレビュー報告じゃ。
注文して、2週間以上して、やっとQuectel LG290P が届いたので、さっそく使ってみる。
実物を手にして、初めて、気がついたのだが、Dip Switch x 2 の反対側に、Rest SW らしきものがあるみたいじゃ。
これで、Firmware の upload がかんたんにできるのかも。!!

1. 取り敢えず、Windows11 で、QGNSS.exe を使って、device: LC29HEA のままで、テストしてみました。
やり方は、下記をみとうせ!!
QUECTEL LC29H GNSS L1 L5 Receiver 使えるのか検討してみた。
USBで繋げて、直ぐに、赤LED が点滅し始めた。すごい。
アンテナは、32[db] 版だったが、みちびきの L1,L5 の Signal Level の旗がくっきり表示されました。
同じアンテナで、LC29HEA の時は、残念ながら、みちびきの旗は、半透明のままだったので、LG290P が性能は断然いいみたいぞね。!!
一度、LG290P の性能を経験したら、もう、LC29HEA を使う気がしなくなる。おんちゃんだけか!!
残念ながら、L6 のシグナルは、捕れていないみたい。
Firmware をアップグレードするまで、お預けみたいぞね。
アンテナも、38[db] 版を用意する迄だめか。
ROS2 でも、Quectel LC29HEA のプログラムが、Quectel LG290P でそのまま使えそう。
ただし、出力 Rate が大きいので、1[Hz] に、落とさないといかん。
RTK は、やはり、 Mountpoint までの距離が、10[Km] 以内でないと、Fix しないみたい。
これから、追々、手を加えて、実際に ROS2 自作 Turtlebot3(Foxbot_core3_r2) で使えるようにしていくぞね!!
2. 念のため、QGNSS V2.2_EN で接続してみる。
GNSS LG290P の下の、> ToolKit > QGNSS_V2.2_EN をダウンロードする。
Windows11 で展開して、
QGNSS.exe を実行する。
その前に、LG290P ボードの Dip SW を2つとも、| の方にする(アンテナのコネクター側) する。
Windows11 PC に 付属の USB-Type C ケーブルで接続して、Windows 11 デバイスマネージャー の ポート(COM と LPT) に出てくることを確認する。
QGNSS.exe を起動して、
デバイス(歯車)アイコン をクリックして、
Model: LG290P(03)
Type:serial
Port: COMn
Baudrate:460800
"OK" ボタンをクリックで、繋がると思う。
Firmware update も、此処で出来る。
quectel_lg290p03_firmware_upgrade_guide_v1-0.pdf に記載がある。
同じく、前記の https://www.quectel.com/product/gnss-lg290p/ からダウンロードできる。
最新の Firmware Quectel_LG290P_Firmware_Release_V0105S.zip をダウンロードして、展開すると、中に、LG290P03AANR01A05S.pkg があるので、これを使う。
QGNSS V2.3 を起動して、接続する。
Tools -> Firmawre Update
Firmware Path:path-to-LG290P03AANR01A05S.pkg
緑の右三角をクリックすると、
Wait for Synchronization になるので、
ボードの Reset ボタンをクリックする、ダウンロードが始まる。
正常に終了するのを暫く待つ。
問題なければ、ボードを再起動させる。
一応、トラブルなく、出来た。
GNSS Signal View を眺めていると、みちびきのシグナルが出てきた。
L1, L2, L5 は出てくるが、L6 は出ない。後は、アンテナ 38[db] にしないとダメか!!
Beidou B3 は、出ているみたい。後は、RTK が出来れば良いのだが、近くに Mountpoint が無いので、これも難しいか。
3. OutPut Rate の変更。
Quectel_LG290P_GNSS_Protocol_Specification_v1-0.pdf
Page 54
2.3.28. PQTMCFGFIXRATE
で出来そうじゃ。
一応、LC29H-EA にも書いているが、
ROS2 LC29H-EA GPS RTK を作る。
QGNSS_V1.10_EN の方が、コマンドを使うには、簡単なので、おんちゃんは、こちらを使って、1[Hz] に変更した。
1[Hz]
$PQTMCFGFIXRATE,W,1000*59
$PAIR513*3D
$PQTMSAVEPAR*5A //save
QGNSS_V1.10_EN で、うまく行かなかったみたいなので、上記に記載の、serial_term3.py を使って、
Ubuntu 24.04 PC ターミナルから 手打ちで設定したらうまく行った。
以上で、ROS2 で使う準備は完了した。
3. ROS2 で使う。
テスト環境:
PC: Ubuntu Mate 24.04
ROS2: jazzy
ROS2 LC29H-EA 版がそのまま使えた。
git-hub に公開しちょります。
tosa-no-onchan/lc29h_gps_rtk
期待しないで、実行してみたが、rtk で Fix するみたいじゃ。
$ ros2 launch lc29h_gps_rtk lc29h_gps_rtk.launch.py
Mountpoint が遠いので、LC29H-EA では、rtk で Fix しなかったので、期待していなかったが、あに反して、rtk で Fix したぞね!!
これは、すごい!! 初めて rtk Fix するのが見れた、感動した。だが、 rtk Fix するには時間が掛かるみたいじゃ!!
一応 rtk Fix するが、rtk Fix するには、本当にしばらくかかる。やはり Mount Point までの距離が問題か!! by nishi 2025.7.24
上記は、部屋の中だったせいかも、ロボットを屋外に出したらもっと早く rtk fix するみたい。
PC は部屋の中だったが、Wi-Fi も結構電波は届くみたいじゃ。もと早くに試せばよかった!!
$ ros2 topic echo /fix
現在位置を確認すると、なんだか latitude、logitude が一定では無い。こんな事があるのか?感動もつかの間、すこし残念。
しかし、$GNGGA のフィールド値を、直接まだチェックしていないので、ROS2 のトピックに出すときに、
double に変換している処理のところで、値が化けているのかも!!
しかし、LC29H-EA では、rtk Fix 自体ができなかったので、やはり、 LG290P は、すごいのかも!!
NMEA の変換方法を、もう一度勉強することにした。
google で、"How to convert NMEA to decimal latitude,longitude" をけんさくしたら、AI の解答が出てきた。
To convert NMEA coordinates (degrees, minutes, and decimal minutes) to decimal degrees for latitude and longitude,
you need to divide the minutes portion by 60 and add it to the degrees.
For example, a latitude of N 3405.5678 would be converted to 34 + (5.5678/60) = 34.092797 degrees North.
Similarly, a longitude of E 11807.1234 would be converted to 118 + (7.1234/60) = 118.118723 degrees East
こりゃいかん、おんちゃんは今まで単純に、100.0 で割った値をそのまま、ROS2 の gps message にセットしておったか。
早速、上記に変更しないといかんぞね!!
一応、ソースを修正して、再度確認してみた。rtk-fix したので、$ ros2 topic echo /fix
で確認してみると、ロボットは、そのままなのに、出力値が変化している。
google で、"地表で 1cm は、latitude でどれくらいの角度か" を調べてみた。
地表での 1cm は、緯度では約 0.0000899321 度になります。これは、地球の半径を約 6371km とした場合の計算です。
との事。ならば、おんちゃんの LG290P の場合、小数点以下4桁は、一定みたいじゃ。であれば、1[cm] 級の値は取れていることになる。かと糠喜び
chatGTP で同じ質問を投げてみると、
約 8.99×10−8 度 とのこと。注) 10-8 は、10の -8乗 の意味。
0.0000000899 の事か?
とのこと。小数点以下7桁 が一定じゃないといかんみたいじゃ。
自分でも計算する。
地球の円周 : 40,077[km] = 40,077,000[M] = 4,007,700,000[cm] みたい。
緯度だと、単純に、360[dgree] を割る。
360.0 / 4007700000.0 = 8.982708286548394e-08 とのこと
chatGTP が合っているみたい。
rtk-fix すると、小数点以下7桁 は一定みたい。再度確認しようとしたら、なかなか rtk-fix にならない。
天気が良くて、ロボットを外に出せれば、すぐ、rtk-fix するとおもうが、あいにくの雨。また、後日じゃ!!
rtk-Fix したので、チェックチェック。
小数点以下 6桁 迄は、一定みたい。残念ながら、小数点以下 7桁 が、時々変化するみたい。
数センチ単位で、うごいているのかもしれない!!
あとは、ROS2 の Rviz2 上で、ロボットがどれ位、動いているのかチェックするしかないか?
数センチ単位でのずれであれば、合格じゃ!! by nishi 2025.8.10
新しい Mountpoint まで、Google Map で測ったら、11.5[km] だった。これは、ぎり厳しいのか?
4. あとは、アンテナ 38[DB] 以上を、手にれて、みちびき L6(Clas) が受信できるか確認するだけじゃ!!
日本製で、下記があるみたい。
ヨコオ「YOZ-52728」
digikey で、60ドル=8,886.19 円 + 送料 で売っているみたいじゃ。本当なのか?
YOZ-52728ZZ01-YM
YOZ-52728ZZ01-YM(Bothside Tape)
YOZ-52728ZZ02-YM(Magnet Mount)
の2種類あるみたい。結構コンパクトなので、おんちゃんのロボットには、向いている。
注) Gain をみると、みんな低い気がするが? 大丈夫だろうか?
L6/E6 1278.75{MHz] 33.0[dB]
中心周波数が一致しているので、B3 アンテナで代用した場合のように、38[dB] なくても大丈夫なのか?
こればっかりは、使ってみないとわからないか?
LG290P と一緒に購入したアンテナは、32[dB] で、L1,L2,L5 が受信できていたから、大丈夫かも知れない。
B3 は受信できるが、E6、L6 は対象外みたいなので、中心周波数が合っていないので、B3 32[dB] だと、E6、L6 は無理のようだ。
ここで、Windows11 上の、QGNSS V2.2_EN で、電波の受信状態をチェックしてみた、
なんと GALILEO E6 は、受信出来ているみたい。L6 だけが受信できていない。アンテナを屋外にだすべきか?
あとは、Quectel YEGD006U1A か、
しかし、サイズが少し大きいのが難点か。
109.28 × 89 × 25.8 [mm] ぎり、おんちゃんのロボットに搭載できるか?
こちらのほうが、Quectel が出しているから、電波の受信は間違いないかも。
WAVESHARE の下記、もOK かも。
WAVESHARE-25482
B3、E6 40[dB] みたい。
だが、日本製があるのなら、日本製がほしいが。digikey なら、4日から5日で届きそう。
CQ出版でも売っているが、16,500円 ほどする。なぜに、日本で安く入手できないのだろう?
BeitianのBT-T076 は、L6 が使えるとのこと。AliExpress であるみたい。32[dB] みたいだが、こちらは安い。ドローン用みたい。
随分アンテナの購入で、迷って、日にちが経ってしまったので、
結局、AliExpress の Beitian Store で、もう少し大きめの BT-460 32[dB] と、台座ケーブル を購入した。
トータル(送料込み) で、5,888円だった。
BT-560 と BT-460 は、ショップサイトでは、同じスペックなので、少し安い BT-460 を注文したが、後で、なんか変な気がして、調べてみた。
BT-560 の スペックのpdfがあったのでそれをみてみたら、
L6 の受信が入っていないみたい。BT-460 の方にも、L6 の受信がはいっていないみたい。
L6 受信ができるのは、やはり、BT-T076 だけみたいじゃ。ショップの記載を、信用したのがまずかった。BT-T076 を注文すべきだった。
ショップの記載があやまったりするのか? あとは、商品が届いてから確認するしかない!!
注) 購入するなら、AliExpress よりも、store.beitian.com が良いのかも知れない。
だが、ここのショプで、BT-560 、BT-460 を観てみると、やはり、L6 対応と出ている。
やはり、日本製の、ヨコオ「YOZ-52728」を入手したほうがよかったのかも知れない!!
BT-460 が届いた。思いの他小さい。台座のほうが結構大きい。
2025.8.7 に注文して、2025.8.12 に届いた。思いの外早かった。
早速、Windows11 QGNSS V2.3 で、L6 受信ができるか、確認してみた。
あいにく、 L6 は、受信できなかった。Windows11 は、部屋の中になるので、屋外ではどうなるのかは、未確認。
ただ、こちらのアンテナのほうが少しは性能が良いのかも知れない。
部屋の中でも、結構、GGA.status = 2、5 には、なるみたい。
部屋のなかで、RTK float(5) には、なかなかならないと思う。
もしかしたら、円柱形状が、窓からの信号を捉えやすくなっているのかもしれない。
屋外で試せば、普通に、RTK Fix(4) はでるのでは、ないじゃろうか?

BT-460 を取り付けた、自作 Turtlebot3(foxbot_core3_r2) の勇姿。
OAK-D Lite からの影響を無くすため、BT-460 を一段高くした。
5. GPS 版も、チェックしみた。
こちらでテストしてみると、NMEA GGA status : 1 、2 が受信できる。
1: GPS fix
2: Differential GPS fix (DGNSS), SBAS, OmniSTAR VBS, Beacon, RTX in GVBS mode
2 は、精度はどうなんだろうか? 1よりも良いみたい!!
DGNSS の精度は、
Google AI 引用
DGNSS(Differential GNSS)の測位精度は、一般的に水平方向で数メートル程度、DGNSS(広域DGNSSシステム)では水平0.1m、垂直0.2m程度とされています。
これは、どういう意味だろう? わかったようでわからん。chatGPT に聞いてみた。
下記を、参照させていただいた、ありがとう。
NMEA-0183 message: GGA
もしかしたら、みちびきのL6 は、5 よりも良いはずだから、4 になるのか。
GGA status 精度は、 1 < 2 < 5 < 4 の順番だと思う。
6. rtabmap_ros_my/launch/rtabmap_oak-d_rgb_depth_gps.launch.py で、動作テストしてみる。
BT-460 だと、部屋の中でも、rtk-Float(5) になるので、自作Turtlebot3(foxbot_core3_r2) で動かしてみた。
Rviz2 で、ロボットの位置がずれたりしないか、チェックしてみた。
あいにく、rtk-Float(5) だと、時々、ロボットが瞬間移動する。1[m] ほどか。
やはり、rtk-Fix(4) が必要みたい。屋外でないと無理か。
あと、アンテナは、ロボットのなるべく高い位置に取り付けたほうがよいみたい。
なんとなく、OAK-D Lite の近くだと影響を受けるのか、rtk-Float(5) になるのも時間がかかるみたい。
試しに、LG290P と一緒に買ったアンテナを、同じように、一段上げて取り付けてテストしてみた。

LG290P と一緒に買ったアンテナ を取り付けた、自作 Turtlebot3(foxbot_core3_r2) の勇姿。
こちらは、部屋の中で、すぐ RTK-Float(5) なるので、Rviz2 で同じようにロボットの動きをチェックしてみると、ほとんどぶれない。
ぶれても、ほんの数センチほどみたい。試しに、C++ and Navi2 で、90[度] 回転させてみた。
問題なく、90[度] 回転 できた。これなら、RTK-Float(5) でも走行させられそうだ。
こちらの方が性能が良いみたいじゃ。
それならと、rtabmap_ros_my/launch/rtabmap_oak-d_rgb_depth_gps.launch.py を起動して、multi_goals4_nav2.launch.py の C++ プログラムで、
部屋の中で、Active SLAM を実行しながら、2[M] 行って、帰ってくる走行をさせてみた。一応、無事に帰ってこれたが、
途中かなり、rtabmap_ros の位置補正が入って時間が掛かった。
途中、一度だけ、1[M] ほどの横飛びが見えたが、それ以外は、たまに、ロボットの位置が少しだけ移動する程度だった。
結局、スタート位置から、35[cm] ほどの所に帰ってきた。
GNSS データを殺して走らせれば、多分 5[cm] のところに帰ってこれるので、今の処、 部屋のなかでの RTK-float(5) では、限界だろう。
もしかしたら、rtabmap_ros の位置補正 が過敏なんだろうとも思われる。
カメラ画像の複数点の特徴の一致、不一致で現在位置を特定するアルゴリズム自体がナンセンスなのかも知れない。
7. rtabmap_ros_my/launch/foxbot_nav2_oak-d_depth_gps.launch.py を試す。
こちらを使って、作成済 Map の上を走行させれば、部屋の中での、RTK-float(5) でも、あんがい旨く行くのかも知れない。
起動した時、rtk-float(5) でも、観測値が安定しているときに、走行させてみた。
こちらは、旨く完走できた。by nishi 2025.8.15
後は、屋外の開けた場所で、走行させてみないといかん。
しかし、肝心の L6 受信の確認ができないのが、残念!!
気になる点が、GNSS RTK の測定値を観察していると、参照している 衛星が切り替わるときに、少し位置が移動するように感じた。
正確に性能を測定するには、屋外で開けた場所でないとだめみたい。障害物の隣では、性能が落ちるとのこと。
下の、8.参照 の "RTK基地局からの距離等による測位精度" に書いているみたいじゃ。
8. 参照。
1) RTK基地局からの距離等による測位精度
2) @tosa-no-onchan/rtabmap_ros_my
3) google map緯度経度の座標取得と地図表示を極める方法|API活用から誤差対策まで完全網羅
4)RTK CLAS QGIS 高精度測位データのマッピング
「睡眠投資は、指先から。」
RingConn(リンコン)は、ヘルスケア型の次世代AIスマートリング
心地よく眠れぬ夜をお過ごしのあなた、一度試してみてはいかがでしょうか?
睡眠投資は、指先から。AIスマートリング【RingConn (リンコン)】
(広告)