LoginSignup
4
0

More than 3 years have passed since last update.

JetsonTX2でROSを使ったGPSセンシング

Last updated at Posted at 2019-12-07

環境

デバイス:JetsonTX2
Jetpackバージョン:3.2
ROS:Kinetic
OS:Ubuntu16.04
加速度センサ:BU-353-S4(https://www.ida-japan.co.jp/GPS/BU353-S4(USB).pdf)

GPSの接続

JetsonにGPSを接続する。USBポートに差し込むだけ。
接続したら以下のコマンドでGPSが認識されているか確認する。

bash

$ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 005: ID 17ef:6047 Lenovo 
Bus 001 Device 006: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port
Bus 001 Device 004: ID 05e3:0608 Genesys Logic, Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Tecnnology, Inc. PL2303 Serial Portが表示されればOK。
次に/dev以下でシリアルポートとして認識されていることを確認する。

bash
$ ls /dev/ttyUSB*
/dev/ttyUSB0

この場合USB0として認識されていることが確認できる。

GPSからの信号を確認

シリアルポートでの送受信を行うためのコマンドで確認する。インストールされいなければ以下のコマンドでインストールする。

$ sudo apt-get install cu 

以下のコマンドで受信データを確認できる。引数には、先程調べたUSBのシリアルポートを指定し、ボーレートはGPSモジュールの仕様に合わせて4800とする。

$ cu -s 4800 -l /dev/ttyUSB0
Connected.
$GPGGA,052923.037,,,,,0,00,,,M,0.0,M,,0000*5D
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPRMC,052923.037,V,,,,,,,301119,,,N*4D
$GPGGA,052924.037,,,,,0,00,,,M,0.0,M,,0000*5A
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPGSV,2,1,08,24,75,007,32,57,79,173,22,01,62,020,,11,58,045,*72
$GPGSV,2,2,08,25,26,185,,04,19,064,,23,13,054,,16,01,328,*7D
$GPRMC,052924.037,V,,,,,,,301119,,,N*4A
$GPGGA,052925.037,,,,,0,00,,,M,0.0,M,,0000*5B

上記のようなデータが受信できればOK。
停止するためには”~”(チルダ)を打つ。

ROSパッケージの導入

GPSデータを受信するROSパッケージの中でROS推奨のnmea_navsat_driverを利用する。またこのパッケージを利用するためには、nmea_msgsも必要となる。
インストールには以下のコマンドを実行する。

$ cd ~/catkin_ws/src
$ git clone https://github.com/ros-drivers/nmea_msgs.git
$ git clone https://github.com/ros-drivers/nmea_navsat_driver.git
$ cd ~/catkin_ws
$ catkin_make
$ source ~/catkin_ws/devel/setup.bash

GPSロギング

センサー値のロギングにはrosbagを使う。
参考:https://qiita.com/srs/items/f6e2c36996e34bcc4d73

実行方法

1つ目のターミナルでroscoreを立ち上げ、2つ目のターミナルでnmea_navsat_driverを立ち上げる。3つ目のターミナルではrosbagファイルを生成してログを出力する。

Tearminal1
$ roscore
Tearminal2
$ rosrun nmea_navsat_driver nmea_serial_driver
Tearminal3
$ cd catkin_ws
$ mkdir rosbag
$ cd rosbag
$ rosbag record -a -O test-gps

出力結果を確認する

$ rosbag info test-gps.bag 
path:        test-gps.bag
version:     2.0
duration:    2:27s (147s)
start:       Nov 30 2019 10:59:23.44 (1575079163.44)
end:         Nov 30 2019 11:01:50.50 (1575079310.50)
size:        80.2 KB
messages:    447
compression: none [1/1 chunks]
types:       geometry_msgs/TwistStamped [98d34b0043a2093cf9d9345ab6eef12e]
             rosgraph_msgs/Log          [acffd30cd6b6de30f120938c17c593fb]
             sensor_msgs/NavSatFix      [2d3a8cd499b9b4a0249fb98fd05cfa48]
             sensor_msgs/TimeReference  [fded64a0265108ba86c3d38fb11c0c16]
topics:      /fix              147 msgs    : sensor_msgs/NavSatFix     
             /rosout             6 msgs    : rosgraph_msgs/Log          (2 connections)
             /time_reference   147 msgs    : sensor_msgs/TimeReference 
             /vel              147 msgs    : geometry_msgs/TwistStamped

/fixが位置情報である。

データの可視化

以下のコマンドを実行すると以下のようなウィンドウが出てきる。縦にrosbagに入っているROSトピックがならなんでいて、青い縦線はその時間にpublishされたことを示している。

$ rqt_bag test-gps.bag

tegra 2019-11-30 11.08.59.png
各トピックを右クリックしてview-> plotを選択するとグラフの表示ができる。これで各データを見比べたりできる。

CSV出力

以下のコマンド実行することで、加速度データ、速度、回転角度などのログをCSVファイルとして出力
できる。

rostopic echo -b test-gps.bag -p /fix > test-gps-data-raw.csv

CSVからグラフを作成してみた。以下のようにGPSでの位置情報をプロットできる。
image.png

その他

ロギング中のコンピュータシャットダウンとログデータの復元方法

4
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
0