티스토리 뷰

robot

[꼬부기/kobuki] slam

별의 별 2021. 5. 26. 18:23

[꼬부기/kobuki] slam


slam이란?

로봇의 위치 & 지도 만들기

위치를 알고 센서로 측정하고 지도를 만들면 네비게이션을 할 수 있다.

 

slam에는 여러 패키지가 있는데

그중에서

나는 gmapping을 도전!

http://wiki.ros.org/gmapping

 

gmapping - ROS Wiki

kinetic melodic noetic   Show EOL distros:  EOL distros:   electric fuerte groovy hydro indigo jade lunar diamondback: Only showing information from the released package extracted on Unknown. No API documentation available. Please see this page for in

wiki.ros.org

ros에서 gmapping 패키지 다 있어서 적용하기 매우 쉽,,?

난 안쉬웠다 ^^

요즘에는 google cartographer를 많이 쓴다고 한다.

암튼

여러 파라미터들이 있는데

로스위키에서 찾아보고 쓰면 된다.

 

난 꼬부기 (turtlebot2)가 있어서 그것으로 진행했다. turtlebot3가 패키지가 잘 되어있어서 그걸 가지고 진행했다.

밑의 사진은 slam 관련 노드들의 처리과정이다.

 

slam 관련 노드들의 처리과정

 

직접 rqt를 이용해 나오는 것을 확인

rqt_tf_tree

 

tf_tree를 살펴보면 우린 base_link가 아니라 base_footprint라서

rosrun gmapping slam_gmapping _base_frame:="base_footprint"

이런 식으로 설정해야한다.

 

gmapping을 돌리기 전에

rosbag을 이용하자

실시간 mapping은 잘 안된다.

그래서 센서들 오도메트리 등등 토픽을 저장하는 rosbag을 이용해

먼저 토픽을 저장하고

gmapping을 돌려

맵핑하자

http://wiki.ros.org/rosbag/Tutorials

 

rosbag/Tutorials - ROS Wiki

Recording and playing back dataThis tutorial will teach you how to record data from a running ROS system into a .bag file, and then to play back the data to produce similar behavior in a running system Reading messages from a bag fileLearn two ways to read

wiki.ros.org

친절히 알려줌

 

순서 정리

 

1. roscore돌리기

2. rosbag 사용법

$ mkdir ~/bagfiles
$ cd ~/bagfiles
$ rosbag record -a

when the recording is over, in a new terminal
$ rosbag info <your bagfile>  (This is for data verification, so it doesn't matter if you don't run it.)
$ rosbag play <your bagfile>
$ roslaunch kobuki_run gmapping.launch

3.gmapping

 $ rosrun gmapping slam_gmapping _base_frame:="base_footprint"

4. rviz 켜기

맵형성

5. map saving

rosrun map_server map_saver -f ~/map

++추가로 rviz에서

fixed frame을 odom으로 해야 laserscan 도 잘 뜬다.

gmapping특성때문에 그런 것으로,, 들었다.

 

 

 

물어볼것

-rosrun으로 gmapping을 할려고 하는데 rviz에서 원하는 모양으로 맵이 형성이 되지않는다.

rviz에서 TF, Laserscan, map을 추가

add를 할 때,

map은 by topic에서 들고 올것

그래야 현재 토픽으로 들어오는 친구를 보여준다 아님 일일이 설정해줘야함

 

 

어제부터 오늘 계속 한 5시간동안 이걸 한 것 같은데 드디어 맵을 만들었다ㅜㅜ

아니

내가 했을 땐 죽어라 맵이 안생기더니

왜!!!!

도와달라고 부탁해서 틀었을 땐 되는걸까?

 

 

 

암튼 slam 완료.

 

'robot' 카테고리의 다른 글

[gmapping map size] 맵 사이즈 변경  (0) 2021.07.12
[kobuki] 내비게이션 파라미터 조정  (0) 2021.07.05
[꼬부기/kobuki] navigation  (0) 2021.06.25
모바일 로봇 공부하기  (0) 2021.05.03
바퀴 감속비 구하기  (0) 2021.03.11
댓글