ROS에서 터틀봇 시뮬레이션(슬램, 네비게이션)
기본 셋팅
도커 셋팅
Turtlebot3/Gazebo install
업데이트
package install
bash setting 및 반영
sudo apt-get update && sudo apt-get upgrade -y
sudo apt install ros-foxy-turtlebot3 ros-foxy-turtlebot3-simulations
echo 'ROS_DOMAIN_ID=30 # TURTLEBOT3' >> ~/.bashrc
echo 'export TURTLEBOT3_MODEL=burger # setting to buger' >> ~/.bashrc
source ~/.bashrc
Turtlebot3/Gazebo with SLAM
1. Gazebo 시뮬레이터를 실행
ros2 launch turtlebot3_gazebo turtlebot3_world.launch.py
2. SLAM 노드 실행 (cartographer)
ros2 launch turtlebot3_cartographer cartographer.launch.py use_sim_time:=True
cartographer github
cartographer docs
3. 로봇 이동 노드 실행
ros2 run turtlebot3_teleop teleop_keyboard //<<- 수동
ros2 run turtlebot3_gazebo turtlebot3_drive //<<- 자동
동작할때 rqt_graph 결과
4. 맵 저장 노드 실행
ros2 run nav2_map_server map_saver_cli -f ./map
Turtlebot3/Gazebo with navi2 (using made map)
네비게이션 테스트
1. Gazebo 시뮬레이터를 실행
ros2 launch turtlebot3_gazebo turtlebot3_world.launch.py
2. Nav2 노드 실행
지도가 있는 폴더로 이동 후 실행
ros2 launch turtlebot3_navigation2 navigation2.launch.py use_sim_time:=True map:=./map.yaml
먼저 “2D Pose Estimate”로 로봇의 초기 위치를 알려준다.
다음에 “Navigation2 Goal”로 목표 위치를 알려주면 이동한다.
이동을 잘 안하긴 한다 .ㅡㅡ; 좀더 테스트 해봐야 함.
참고 자료
turtlebot3_simulations
https://github.com/ROBOTIS-GIT/turtlebot3_simulations/blob/master/turtlebot3_gazebo/src/turtlebot3_drive.cpp
gazebo_ros_pkgs
https://github.com/ros-simulation/gazebo_ros_pkgs/blob/noetic-devel/gazebo_plugins/src/gazebo_ros_diff_drive.cpp
Nav2 관련
navigation 관련 튜닝 포인트를 찾아 내야 함.
web page
github