ROS/GPS

Mapviz 사용법

hm02123 2022. 4. 8. 22:20
728x90
  • Ubuntu 18.04
  • ROS Melodic 
  • GPS : ZED-f9p

 

1. Set Launch file

Mapviz에 GPS 값을 수신해주기 위해 Launch 파일을 수정해줘야 한다.

mapviz/mapviz/launch/mapviz.launch

 

initialize_origin.py는 GPS 좌표를 받아 WGS84 좌표계를 ROS TF트리에 연결하므로 <param name="local_xy_origin" value="auto"/>로 변환해주면 첫 수신한 GPS 값을 원점으로 사용한다.

 

<remap from="fix" to="your/gps/topic"/>을 추가하면 내가 사용하는 GPS 보드가 수신한 GPS값을 토대로 Mapviz를 사용할 수 있다.

 

 

수정 전

<launch>

  <node pkg="mapviz" type="mapviz" name="mapviz"></node>

  <node pkg="swri_transform_util" type="initialize_origin.py" name="initialize_origin" >
    <param name="local_xy_frame" value="/map"/>
    <param name="local_xy_origin" value="swri"/>
    <rosparam param="local_xy_origins">
      [{ name: swri,
         latitude: 29.45196669,
         longitude: -98.61370577,
         altitude: 233.719,
         heading: 0.0},
         
       { name: back_40,
         latitude: 29.447507,
         longitude: -98.629367,
         altitude: 200.0,
         heading: 0.0}]
    </rosparam>
  </node>

  <node pkg="tf" type="static_transform_publisher" name="swri_transform" args="0 0 0 0 0 0 /map /origin 100"  />



</launch>

 

 

수정 후

<launch>
  <node pkg="mapviz" type="mapviz" name="mapviz"></node>
  <node pkg="swri_transform_util" type="initialize_origin.py" name="initialize_origin" >
<param name="local_xy_frame" value="/map"/>
<param name="local_xy_origin" value="auto"/>
<rosparam param="local_xy_origins">
[{ name: swri,
latitude: 29.45196669,
longitude: -98.61370577,
altitude: 233.719,
heading: 0.0},
{ name: back_40,
latitude: 29.447507,
longitude: -98.629367,
altitude: 200.0,
heading: 0.0}]
    </rosparam>
	<remap from="fix" to="/ublox_gps/fix"/>
  </node>
  <node pkg="tf" type="static_transform_publisher" name="swri_transform" args="0 0 0 0 0 0 /map /origin 100"  />
</launch>

 

필자는 ublox_gps/fix를 사용하여 RTK msg를 전달하기 때문에 ublox_gps/fix를 넣어주었다. (여기 글 참고)

 

2. 실행 

 

$ roslaunch mapviz mapviz.launch

※당연히 사용하는 GPS 보드도 실행해 줘야한다.※

 

3. Mapviz 설정

roslaunch를 사용하여 Mapviz를 실행시키면 아래와 같은 창이 뜬다. 

밖에 나가 gps연결을 하기 귀찮아 이 사진엔 맵이 뜨지 않았다.

왼쪽 상단에 fixed Frame을 map으로 설정하고 Target Frame을 <none>으로 설정한 후 use latest transforms를 체크한다.

 

왼쪽 하단에 Add를 눌러 tile_map을 추가해준다. 그 후 Source를 Stamen(terrian)으로 설정한다.

Add를 한번 더 누른 후 navsat을 추가해준다. 그 후 Topic에 Select를 눌러 remap에서 설정한 토픽을 불러온다. 마음에 드는 색을 설정한 후 Draw style을 point로 변경해준다. 

 

맵이 보이지 않을 시 오른쪽 하단에 초록색 화살표를 누르면 된다. 그럼 본인의 위치에 점이 찍힌 것을 볼 수 있다.

 

※Mapviz는 하나씩 쌓아 올려가므로 Add의 순서가 중요하다.

Add의 순서가 맞지 않으면 지도가 나타나지 않을 수 있다※

 

 

4. 다음 포스팅

다음 포스팅에선 google 위성을 map으로 띄우는 방법을 알아보겠다.

 

 

 

 

 

 

https://hm02123.tistory.com/8

 

ublox ZED-f9p GPS(RTK) 사용

Ubuntu 18.04 ROS Melodic Ublox ZED-f9p 1. 보드 연결 (1) usb 케이블을 이용하여 GPS 보드와 PC를 연결해준다. (2) 기기에 할당된 이름을 확인해준다. (3) 기기에 권한을 부여해준다. $ ls /dev/tty* $ sudo ch..

hm02123.tistory.com

 

728x90