[ROS] Ublox C099-F9P, RTK, LLAtoUTM
INTRO
Ublox C 099-F 9 P GPSで方位情報を受信
RTK信号は正確な測定情報を提供しLLAからUTMへ変換する
u-centerを使用して受信サイクルを調整する
開発環境
Ubuntu 18.04 LTS/ROS Melodic
デバイスの操作
Ublox C099 - F9P
C 099-F 9 P取付と接続
せつぞくばん
図に示すように、アンテナをZED-RFに接続し、5ピン端子に接続する. USBをコンピュータに接続し、ボードが認識されていることを確認します. 機械の運転許可 ドライバのインストール
ROS用ドライバのインストール
https://github.com/ros-agriculture/ublox_f9p.git
launchファイルを変更する前に、
他のyamlファイルを使っても構いません.
ノード名とパラメータファイル名を追加するだけです.
RTK信号受信
RTKとは?
RTK信号を用いて精密測定を行った.
RTK信号により,近くの基地局から正確な方位情報を得ることができる.
大まかな過程は以下の通りである.受信機および近隣基地局は、それぞれGPS信号を受信する. 基地局は、自分の正確な位置情報を知っており、受信した情報と誤差比較することができる. 受信機は、受信した誤差情報によって自分の位置を修正することができる. 国土地理情報員に参加してRTKを取得できます.次のリンクを参照してください.
http://koseco.co.kr/ngii_rtk/
RTCM、NTRIPパッケージインストール
まず、基地局から保護の精神を得るために、RTCMパッケージをインストールする.
https://github.com/tilk/rtcm_msgs.git
https://github.com/ros-agriculture/ntrip_ros
インストールしたばかりのublox gpsパッケージでは、RTCM信号を購読できるように変更します.
測定場所の近くを選択し、「Generate NMEA file」を実行し、メモ帳を開いてコピー/貼付けを行えばよい.
やってみる
5ピン接続先のRTK LEDが黄色で点灯している場合は、RTK FIX状態を示します.
次のRTK FIXステータスがGoogle USに表示されます.
受信はほぼ完全に正しい.
受信サイクルの調整
u-centerインストール
デフォルトの受信期間1 Hzからメニュー上の8 hzに変更します.
メニューにおいて、ボーレートが460800の場合、8 hzの使用が推奨される.
詳細なu-centerの使い方は後でアップロードされます
まずublox社のソフトウェアu-centerをインストールします
https://www.u-blox.com/en/product/u-center
運転後GPSに接続します.
左上隅のViewConfigure Rate(Rate)に移動し、Measurement Periodを125ミリ秒(=8 hz)に設定します.
PRT(Ports)でbaudrateを460800に設定します.
GPSの設定をCFGのFlash(またはEEPROM)に保存します.
ubuntuに戻ってroslaunchを実行すると、受信サイクルがずっと速くなることがわかります.
LLAからUTMへの変換
8 hzのRTK信号を受信できるようになりました.
緯度、経度、高さの地理的座標系で
x、y、zと表示されるUTM座標系に変更します.
LLATOUTMパッケージのインストール
以下のパッケージをインストールします.
https://github.com/arpg/ROS-UTM-LLA.git
実行する昼食ファイルのパラメータを変更します.
大韓民国のUTM-zoneは
起動ファイルの実行
ビルド後に実行
多くの不足点があるかもしれません.
参考資料 ROSはUblox F 9 pモジュール、RTK(NTRIP、RTCM)を使用 [Ublox]C099-F9P(GNSS)&C94M8P(GPS)ROS build up [GPS]ublox ZED-F 9 P GPS,RTK用法 [ublox] C099-F9P application board(ZED-F9P EVK) Spec. U-BLOX GPS設定
Ublox C 099-F 9 P GPSで方位情報を受信
RTK信号は正確な測定情報を提供しLLAからUTMへ変換する
u-centerを使用して受信サイクルを調整する
開発環境
Ubuntu 18.04 LTS/ROS Melodic
デバイスの操作
Ublox C099 - F9P
C 099-F 9 P取付と接続
せつぞくばん
図
$ ls -l /dev/ttyACM*
$ sudo chmod 777 /dev/ttyACM0
ROS用ドライバのインストール
https://github.com/ros-agriculture/ublox_f9p.git
$ cd catkin_ws/src
$ git clone https://github.com/ros-agriculture/ublox_f9p.git
$ cd ..
$ catkin_make
起動ファイルの変更と実行launchファイルを変更する前に、
config
フォルダのzed_f9p.yaml
ファイルを変更する必要があります.他のyamlファイルを使っても構いません.
$ cd ~/catkin_ws/src/ublox_f9p/ublox_gps/config
또는
$ roscd ublox_gps/config/
$ gedit zed-f9p.yaml
device
が私が接続しているポートと同じであることを確認します.device: /dev/ttyACM0
frame_id: gps
~/catkin_ws/src/ublox_f9p/ublox_gps/launch
パスに移動して、ublox_device.launch
ファイルを変更します.ノード名とパラメータファイル名を追加するだけです.
<arg name="node_name" value="ublox_gps"/>
<arg name="param_file_name" value="zed-f9p" />
<arg name="output" default="screen" />
<arg name="respawn" default="true" />
<arg name="respawn_delay" default="30" />
<arg name="clear_params" default="true" />
構築後に実行します.// 빌드
$ cd
$ cd catkin_ws
$ catkin_make
// 실행하기
$ roslaunch ublox_gps ublox_device.launch
現在の話題は$ rostopic list -v
で確認できます.Published topics:
* /ublox_gps/navrelposned [ublox_msgs/NavRELPOSNED] 1 publisher
* /rosout [rosgraph_msgs/Log] 1 publisher
* /ublox_gps/navsat [ublox_msgs/NavSAT] 1 publisher
* /rosout_agg [rosgraph_msgs/Log] 1 publisher
* /ublox_gps/fix_velocity [geometry_msgs/TwistWithCovarianceStamped] 1 publisher
* /ublox_gps/fix [sensor_msgs/NavSatFix] 1 publisher
* /ublox_gps/navclock [ublox_msgs/NavCLOCK] 1 publisher
* /ublox_gps/navstatus [ublox_msgs/NavSTATUS] 1 publisher
* /ublox_gps/navpvt [ublox_msgs/NavPVT] 1 publisher
* /diagnostics [diagnostic_msgs/DiagnosticArray] 1 publisher
* /ublox_gps/navposecef [ublox_msgs/NavPOSECEF] 1 publisher
Subscribed topics:
* /rtcm_topic [rtcm_msgs/Message] 1 subscriber
* /rosout [rosgraph_msgs/Log] 1 subscriber
$ rostopic echo /ublox_gps/fix
で内容を確認します.---
header:
seq: 2319
stamp:
secs: 1645864064
nsecs: 625306652
frame_id: "gps"
status:
status: 0
service: 0
latitude: 35.859753
longitude: 128.487405
altitude: 87.067
position_covariance: [0.45427600000000007, 0.0, 0.0, 0.0, 0.45427600000000007, 0.0, 0.0, 0.0, 0.4529290000000001]
position_covariance_type: 2
---
信号の受信が良好な様子が見られます.RTK信号受信
RTKとは?
RTK信号を用いて精密測定を行った.
RTK信号により,近くの基地局から正確な方位情報を得ることができる.
大まかな過程は以下の通りである.
http://koseco.co.kr/ngii_rtk/
RTCM、NTRIPパッケージインストール
まず、基地局から保護の精神を得るために、RTCMパッケージをインストールする.
https://github.com/tilk/rtcm_msgs.git
$ cd ~/catkin_ws/src/ublox_f9p/
$ git clone https://github.com/tilk/rtcm_msgs.git
次にNTRIPパッケージをインストールして構築します.https://github.com/ros-agriculture/ntrip_ros
$ git clone https://github.com/ros-agriculture/ntrip_ros
$ cd
$ cd catkin_ws
$ catkin_make
RTCM Subscribeインストールしたばかりのublox gpsパッケージでは、RTCM信号を購読できるように変更します.
/ublox_gps/src/node.cpp
の1861行を修正すればいいです. //param_nh.param("rtcm_topic", rtcm_topic, std::string("rtcm")); 수정 전
param_nh.param("/ublox_gps/rtcm", rtcm_topic, std::string("rtcm")); 수정 후
ntrip_ros.スタートアップファイルの変更$ rosed ntrip_ros ntrip_ros.launch
以下のようにファイルを変更します.<launch>
<include file="$(find ublox_gps)/launch/ublox_device.launch"/>
<node pkg="ntrip_ros" type="ntripclient.py" name="ntrip_ros" output="screen">
<param name="rtcm_topic" value="/ublox_gps/rtcm"/> //rtcm 토픽
<param name="ntrip_server" value="vrs3.ngii.go.kr:2101"/> //접속경로:포트
<param name="ntrip_user" value="-------"/> //개인별 아이디
<param name="ntrip_pass" value="ngii"/> //비밀번호
<param name="ntrip_stream" value="VRS-RTCM31"/> //마운트포인트
<param name="nmea_gga" value="$GPGGA,132350.925,3551.588,N,12829.261,E,1,12,1.0,0.0,M,0.0,M,,*64"/>
</node>
</launch>
nmea ggaのための$GPGGAメッセージは、ここです。から得ることができる.測定場所の近くを選択し、「Generate NMEA file」を実行し、メモ帳を開いてコピー/貼付けを行えばよい.
やってみる
$ roslaunch ublox_gps ublox_device.launch
$ roslaunch ntrip_ros ntrip_ros.launch
//터미널
header:
seq: 148
stamp:
secs: 1645867858
nsecs: 249903283
frame_id: "gps"
status:
status: 0
service: 0
latitude: 35.8597985
longitude: 128.4874035
altitude: 80.26
position_covariance: [0.020735999999999997, 0.0, 0.0, 0.0, 0.020735999999999997, 0.0, 0.0, 0.0, 0.054756000000000006]
position_covariance_type: 2
誤差(位置共分散)が著しく減少することが分かった.5ピン接続先のRTK LEDが黄色で点灯している場合は、RTK FIX状態を示します.
次のRTK FIXステータスがGoogle USに表示されます.
受信はほぼ完全に正しい.
受信サイクルの調整
u-centerインストール
デフォルトの受信期間1 Hzからメニュー上の8 hzに変更します.
メニューにおいて、ボーレートが460800の場合、8 hzの使用が推奨される.
詳細なu-centerの使い方は後でアップロードされます
まずublox社のソフトウェアu-centerをインストールします
https://www.u-blox.com/en/product/u-center
運転後GPSに接続します.
左上隅のViewConfigure Rate(Rate)に移動し、Measurement Periodを125ミリ秒(=8 hz)に設定します.
PRT(Ports)でbaudrateを460800に設定します.
GPSの設定をCFGのFlash(またはEEPROM)に保存します.
ubuntuに戻ってroslaunchを実行すると、受信サイクルがずっと速くなることがわかります.
LLAからUTMへの変換
8 hzのRTK信号を受信できるようになりました.
緯度、経度、高さの地理的座標系で
x、y、zと表示されるUTM座標系に変更します.
LLATOUTMパッケージのインストール
以下のパッケージをインストールします.
https://github.com/arpg/ROS-UTM-LLA.git
$ cd ~/catkin_ws/src/ublox_f9p/
$ git clone https://github.com/arpg/ROS-UTM-LLA.git
ソースファイルの変更~/catkin_ws/src/ublox_f9p/ROS-UTM-LLA/src
にあるconvert_ndt2lla.cpp
の41行を変更します.//ros::Subscriber sub2 = n.subscribe("/gps/fix",1000,&ULConverter::GPSCallback, &con); //수정 전
ros::Subscriber sub2 = n.subscribe("/ublox_gps/fix",1000,&ULConverter::GPSCallback, &con); //수정 후
coordinate_convertion.スタートアップファイルの変更実行する昼食ファイルのパラメータを変更します.
<launch>
<!-- The following is denver UTM zone. check your UTM zone at https://mangomap.com/robertyoung/maps/69585/what-utm-zone-am-i-in-# -->
<param name="utm_zone" type="int" value="52" />
<param name="hemisphere" type="string" value="North" />
<node type="utm_lla_converter" pkg="utm_lla" name="utm_lla_converter" output="screen"/>
</launch>
最初のパラメータutm_zone
を設定する以外は、触れる必要はありません.大韓民国のUTM-zoneは
52
だ.起動ファイルの実行
ビルド後に実行
$ cd
$ cd catkin_ws
$ catkin_make
$ roslaunch utm_lla coordinate_convertion.launch
実行結果//터미널
[ INFO] [1645872814.134544321]: Get data lagitude from GPS: [35.859773]
[ INFO] [1645872814.134636071]: Get data longitude from GPS: [128.486988]
[ INFO] [1645872814.134674136]: Get data altitude from GPS: [131.651000]
[ INFO] [1645872814.134727536]: Convert to x: [453681.527447]
[ INFO] [1645872814.134784539]: Convert to y: [3968516.897792]
[ INFO] [1645872814.134827212]: Convert to z: [131.651000]
[ INFO] [1645872814.261624609]: Get data lagitude from GPS: [35.859773]
[ INFO] [1645872814.261719909]: Get data longitude from GPS: [128.486988]
[ INFO] [1645872814.261786979]: Get data altitude from GPS: [131.660000]
[ INFO] [1645872814.261871893]: Convert to x: [453681.527331]
[ INFO] [1645872814.261932057]: Convert to y: [3968516.875609]
[ INFO] [1645872814.261988610]: Convert to z: [131.660000]
$ rostopic echo /utm
で確認したらheader:
seq: 1184
stamp:
secs: 1645873041
nsecs: 375128972
frame_id: "gps"
pose:
position:
x: 453689.848412
y: 3968514.44726
z: 123.625
orientation:
x: 0.0
y: 0.0
z: 0.0
w: 0.0
LLAからUTMで変換の良さを確認できます.多くの不足点があるかもしれません.
参考資料
Reference
この問題について([ROS] Ublox C099-F9P, RTK, LLAtoUTM), 我々は、より多くの情報をここで見つけました https://velog.io/@swooeun/ROS-Ublox-ZED-F9P-RTK-UTMテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol