ROS 에서 GPS 사용하기

지토·2022년 8월 30일
0

장비 사용 매뉴얼

목록 보기
8/8

사용한 장비

BU-353S4

nmea_navsat_driver

이 패키지는 /fix 형태로 위도, 경도 메시지를 전송한다.
자세한 사항은
NavSatFix Documentation
을 참고.

$ sudo apt-get install ros-melodic-nmea-navsat-driver

$ roscore

$ rosrun gpsd_client gpsd_client &

$ rostopic echo /fix

그리고 ROS 패키지를 만들어서 CMakeList.txt. 를 수정하고 src 폴더 내부에 소스코드를 만든 후 catkin_make 를 통해 빌드한다.

이후

$ rosrun message_test (패키지 이름) topic_exam_sub (노드 이름)

을 통해 코드를 실행한다.


#include "ros/ros.h"
#include "std_msgs/String.h"
#include "sensor_msgs/NavSatFix.h"
#include <iostream>
using namespace std;

void getCallBack(const sensor_msgs::NavSatFix::ConstPtr& msg){
	cout << msg -> latitude << endl;
}
int main(int argc, char **argv){
	ros::init(argc, argv, "topic_exam_subscriber");
    ros::NodeHandle n;
    ros::Subscriber topic_exam_sub = n.subscribe("/fix, 1000, getCallBack);
    ros::spin();
    
    return 0;
}

Subscriber 코드를 살펴보면 msg→latitude 로 값을 받아오는 것을 볼 수 있다.

catkin_make 가 안 될 경우

gps_umd 패키지 빌드가 안 될 경우, /catkin_ws/build 폴더 내에 이미 빌드된 패키지 폴더를 지우고 다시 빌드한다.

https://github.com/swri-robotics/gps_umd/issues/37

0개의 댓글