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 은 이미지 파일이다.