카테고리 없음

윈도우즈10 ROS2 Gazebo에서 SLAM 실행해보기

Wood Pecker 2023. 12. 3. 08:23

1. 개요

  자신이 만든 gazebo 월드에 Turtlebot3를 배치하고 SLAM을 실행해 보기로한다. 

  지난 포스트에서 자신이 만든  gazebo 월드에 Tturtlebot3를 배치하였다. 계속 이어서 진행한다. 

2. 환경실행하기 

   (1) 터미널(#1) 실행하고 ROS2 환경을 만든다. ( x64 Native Tools Command Prompt for VS2019  관리자로 실행)

      >  c:\opt\ros\foxy\x64\setup.bat; c:\opt\ros\foxy\x64\share\gazebo\setup.bat

      > cd  c:\slam_ws     <= 지난 포스트에서 작성한 패키지

      ##  > colcon build   <==  가끔씩 실행

     > call install/setup.bat

     > set TURTLEBOT3_MODEL=waffle<enterKey>     <== waffle 이름 다음에 공백문자가 있으면 안된다. 

      위 부분은 새로운 터미널 시작할 때마다 실행하면 된다. 불편하다면 터미널  설정으로 자동으로 할 수 있는 방법이 있다.  배울 때는 매번하는 것도 나쁘진 않을 것이다. 

 

     >  ros2 launch slam_ws  mylaunch.py

    새로운 터미널(#2)에서 로봇을 제어한다.  

    > ros2 run teleop_twist_keyboard teleop_twist_keyboard 

 

    또  새로운 터미널(#3)에서 다음 작업을 한다.  

    > ros2 topic list

       /odom과  /scan이 있는지 채크한다.

   >  ros2 topic info /scan           <==  /scam 탑픽의 상세정보를 얻는다. 

   > ros2 pkg list                       <==   turtlebot3_cartographer가 있는지 체크한다.

 

 ros2 pkg list   명령어로  turtlebot3_cartographer 패키지가 보이지 않는다면  다음과 같이 설치한다.

> cd C:\slam_ws\src\turtlebot3\turtlebot3\turtlebot3_cartographer
> colcon build    

> call  C:\slam_ws\src\turtlebot3\turtlebot3\turtlebot3_cartographer\install\setup.bat

 > ros2 pkg list                       <==   turtlebot3_cartographer가 있는지 체크한다.

 

cartographer를 시작하고 SLAM을 하여본다. 키보드로 터틀봇을 제어하면서 지도를 작성한다.

> ros2 launch turtlebot3_cartographer cartographer.launch.py

 

어느 정도 만족할 수준의 지도가 만들어 지면 현재 진행 중인 프로그램을 죽이지 말고 아래 명령어를 추가로

 입력하여 지도를 파일로 저장한다.   2D Map을 만들 수 있다.

 >   ros2 run nav2_map_server map_saver_cli  -f my_map

       =>   my_map.pgm    my_map.yaml 두 개의 파일이 생성된다.     my_map.pgm 은 이미지 파일이다.

 

 

 

 

 

 

 

 

 

  

   

 

 

 

 

 

 

 

   

반응형