JetsonTX2에서 ROS를 사용한 GPS 감지
환경
장치: JetsonTX2
Jetpack 버전: 3.2
ROS: 키네틱
OS: Ubuntu16.04
가속도 센서: BU-353-S4( htps //w w. Ida-japan. 이. jp/GPS/부 353-S4(우 SB). 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를 사용한다.
참고: h tps:// 퀵했다. 작은 m/srs/있어 MS/f6 그림 2c36996 그림 34b C4d73
실행 방법
첫 번째 터미널에서 roscore를 시작하고 두 번째 터미널에서 nmea_navsat_driver를 시작합니다. 세 번째 터미널에서는 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

각 주제를 마우스 오른쪽 버튼으로 클릭하고 view->plot을 선택하면 그래프를 볼 수 있습니다. 이제 각 데이터를 비교할 수 있습니다.
CSV 출력
다음 명령을 실행하여 가속도 데이터, 속도, 회전 각도 등의 로그를 CSV 파일로 출력
할 수 있다.
rostopic echo -b test-gps.bag -p /fix > test-gps-data-raw.csv
CSV에서 그래프를 작성해 보았다. 다음과 같이 GPS에서의 위치 정보를 플롯할 수 있다.

기타
로깅 중 컴퓨터 종료 및 로그 데이터 복원 방법
Reference
이 문제에 관하여(JetsonTX2에서 ROS를 사용한 GPS 감지), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/DrChickenGeorge/items/610f6732f14f4fe8b934텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)