본문 바로가기

FOSCAR-(Autonomous Driving)/ROS 스터디

[2023 ROS 스터디] 성동현 #4주차 - SLAM과 내비게이션

반응형

안녕하세요!!

4주차 스터디 리뷰로 돌아왔습니다.

 

가장 먼저 배워야 할 것은 해당 회차를 프로그래밍할 때 중요한 4가지 요소입니다.

 

 

동영상 내용중 수많은 유익한 내용이 있었지만 가장 중요한 것은 실습이니 바로 실습과정에서 부딪혔던 과정들과 해결과정들을 설명드리겠습니다!!

 

실습 시작부터 부딪혀버렸네요... ros의 버전이 달랐기 때문에 영상에서 나온 한줄로는 설치가 불가능하였습니다. 그래서 해결방법으로는 사용하는 ros버전으로 내용을 바꿔주시면 됩니다!! kinetic이 아닌 다른 버전을 사용하시는 분들이라면 kinetic 대신 해당 버전으로 모조리 바꿔주시면 됩니다, 저는 noetic을 사용하니

sudo apt install ros-noetic-joy ros-noetic-teleop-twist-joy ros-noetic-teleop-twist-keyboard ros-noetic-laser-proc ros-noetic-rgbd-launch ros-noetic-depthimage-to-laserscan ros-noetic-rosserial-arduino ros-noetic-rosserial-python ros-noetic-rosserial-server ros-noetic-rosserial-client ros-noetic-rosserial-msgs ros-noetic-amcl ros-noetic-map-server ros-noetic-move-base ros-noetic-urdf ros-noetic-xacro ros-noetic-compressed-image-transport ros-noetic-rqt-image-view ros-noetic-gmapping ros-noetic-navigation

해당 코드로 변경 후 설치하니 오류 없이 패키지가 설치되었습니다.

 

export TURTLEBOT3_MODEL = waffle_pi

roslaunch turtlebot3_gazebo turtlebot3_world.launch

를 입력하여 gazebo를 실행시켜주면

 

 

해당 프로그램이 실행되게 됩니다!

 

그리고 

export TURTLEBOT3_MODEL=waffle_pi

roslaunch turtlebot3_gazebo turtlebot3_gazebo_rviz.launch

를 이용해 rviz를 실행하면

 

최종적으로 2개의 프로그램이 실행되게 됩니다!!

 

rviz는 표시되어있는 항복들을 이용해 다양한 기능들을 활용할 수 있는데요.

카메라 기능 사용하여 왼쪽아래화면과 같은 기능을 이용할수도 있고

 

depthcloud를 통해 오른쪽에 표시되어있는 화면과 같은 기능도 사용할 수 있습니다.(대신 트래픽을 많이 잡아먹어 왠만한 노트북 성능으로는 기능을 키자마자 렉이 걸리네요...ㅠㅜ)

이후 터미널창을 통해 

export TURTLEBOT3_MODEL = waffle_pi

rroslaunch turtlebot3_slam turtlebot3_slam.launch slam_methods:=gmapping

 

export TURTLEBOT3_MODEL=waffle_pi

roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch

 

슬램과 터틀봇을 원격 조종할 수 있는 터미널 창을 실행시켜주면

직접 터틀봇을 움직이면서 맵을 확장할 수 있게 됩니다.

저 또한 터틀봇을 조종하여 맵을 넓혀봤는데 조종이 생각보다 어려워서 맵 전체를 넓히지 못했습니다..

 

그리고 해당 맵을 출력하고 싶으면 

rosrun map_server map_saver -f ~/map 

 

최종적으로 아래 사진과 같이 home파일에 저장되어 맵이 출력됩니다.

 

4주차 내용 중 본격적으로 로봇을 다루는 내용이었기에 해당 주차의 내용은 공부하는 동안 매우 만족스러웠습니다.

더 재미있고 유익한 ros 프로그래밍 공부를 기대하며 4주차 리뷰는 여기서 마치도록 하겠습니다.

반응형