Turtlebot 모바일 로봇 전망대 시뮬레이션 및 자동 탐색(상세 수준)

목적: 시뮬레이션 환경에서 Turtlebot3 Burger 이동, 슬램 및 자동 탐색 환경 제어
: ROS는 이중 시스템에서 노에틱합니다. (다른 버전의 ROS의 경우 소프트웨어 패키지를 다운로드할 때 자신의 ROS로 변경하십시오.)
단계:
(1) 시뮬레이션 환경 만들기:
1. 전망대 열기:
두 가지 방법: 하나는 roscore내부에서 여는 것이고 rosrun gazebo_ros gazebo다른 하나는 내부에서 직접 여는 것입니다. 터미널 열기 gazebo
2. 메뉴 바에서 Edit > Building Editor를 선택하거나 바로 가기 키 Ctrl+B를 사용하여 환경 편집기를 엽니다. 3.
여기에 이미지 설명 삽입왼쪽 영역 Wall(벽)을 선택하고 오른쪽 상단의 2차원 보기 영역을 선택합니다. 인터페이스의 측면 마우스 왼쪽 버튼을 클릭하여 벽 그리기를 시작하고 마우스를 움직여 벽을 드래그하면 벽과 그 길이가 주황색 높이로 표시됩니다. 마우스 왼쪽 버튼을 다시 클릭하여 벽의 끝점을 확인합니다. 마우스를 이전 벽의 끝점으로 계속 이동하여 다음 벽 그리기를 시작하거나 마우스 오른쪽 버튼을 클릭하여 이 벽 그리기를 끝낼 수 있습니다.
여기에 이미지 설명 삽입4. 닫힌 시뮬레이션 환경을 그립니다.그리기가 완료된 후 벽을 편집 및 조정할 수 있습니다.편집할 벽을 마우스 왼쪽 버튼으로 두 번 클릭하면 인스펙터가 팝업됩니다.인스펙터에서 위치와 같은 매개 변수는 , 벽의 길이, 두께 및 높이를 조정할 수 있습니다. 여기서 외벽의 길이 설정은 변경할 수 없으며, 내벽과 외벽의 높이는 1.5m로, 기본 두께는 0.15m로 설정되어 있습니다.
여기에 이미지 설명 삽입5. 벽에 재질 및 질감 기능을 추가하고 왼쪽 영역 하단의 질감 추가(Add Texture)에서 벽돌(bricks) 옵션을 선택한 후 3D 보기 영역의 외벽을 마우스 왼쪽 버튼으로 클릭하여 외벽 결과 질감에 벽돌을 추가합니다. 우리는 외부 벽에 벽돌을 추가하고 내부 벽에 목재를 추가합니다.
여기에 이미지 설명 삽입6. 메뉴 바에서 파일 > 다른 이름으로 저장을 선택하여 현재 편집 중인 시뮬레이션 환경 파일을 저장하고, 저장 경로를 선택하고(먼저 파일을 생성할 수 있음) 이름을 my_building(사용자 지정 가능한 이름)으로 지정하고 저장하면 폴더가 생성된 것을 볼 수 있습니다. model.config 및 model.sdf라는 두 개의 파일이 포함된 my_building이라는 이름이 생성됩니다.

여기에 이미지 설명 삽입(2) 모바일 로봇 가제보 시뮬레이션:
1. 종속 패키지 설치:

sudo apt-get 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 ros-noetic-interactive-markers

(참고로, 저는 noetic을 사용하고 있습니다. 자신의 ROS 버전으로 변경해야 합니다.)
2. ROS 작업 공간을 생성하고 Turtlebot 모바일 로봇 소프트웨어 패키지를 다운로드합니다.

mkdir -p ~/turtlebot_ws/src/ 
cd ~/turtlebot_ws/src/
git clone https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git
git clone https://github.com/ROBOTIS-GIT/turtlebot3.git
git clone https://github.com/ROBOTIS-GIT/turtlebot3_simulations.git
cd ~/turtlebot_ws 
catkin_make

다운로드에 문제가 있을 경우 모바일 핫스팟으로 변경해 보시기 바랍니다
.

export TURTLEBOT3_MODEL=burger  

(.bashrc 파일에 넣을 수 있음)

source ~/turtlebot_ws/devel/setup.bash
roslaunch turtlebot3_gazebo turtlebot3_world.launch

그런 다음 직접 만든 시뮬레이션 환경을 가져 와서 저장 (인서트, 일반적으로 맨 아래에 있음)으로 저장
여기에 이미지 설명 삽입하고 (save world as) ~/tutlebot_ws/src/turtlebot3_simulations/turtlebot3_gazebo/worlds/The name에 저장하십시오. myworld1.world** 입니다
여기에 이미지 설명 삽입(접미사는 .world여야 함)**
~/tutlebot_ws/src/turtlebot3_simulations/turtlebot3_gazebo/launch/turtlebot3_world.launch 파일을 열고 시뮬레이션 환경을 로드하는 명령을 다음과 같이 변경합니다.

<arg name="world_name" value="$(find turtlebot3_gazebo)/worlds/myworld1.world"/>

이 파일의 시뮬레이션 환경에서 Turtlebot3 모델을 로드하는 초기 위치를 수정합니다.

 <arg name="x_pos" default="0.6"/>
  <arg name="y_pos" default="-0.5"/>
  <arg name="z_pos" default="0.0"/>

(지도 안에 로봇 유지)
여기에 이미지 설명 삽입3. 키보드는 시뮬레이션 환경에서 로봇의 움직임을 제어합니다.

export TURTLEBOT3_MODEL=burger      
source ~/turtlebot_ws/devel/setup.bash
roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch

4. 맵 구성 및 저장:
시뮬레이션 환경과 키보드 제어 창을 계속 실행하고 새 터미널 창을 열어 slam 파일을 실행합니다.

export TURTLEBOT3_MODEL=burger
source ~/turtlebot_ws/devel/setup.bash
roslaunch turtlebot3_slam turtlebot3_slam.launch

키보드는 로봇이 환경에서 움직이도록 제어하고 만족스러운 맵을 만든 후 다음 명령으로 맵을 저장합니다.

rosrun map_server map_saver -f ~tutlebot_ws/src/turtlebot3/turtlebot3_navigation

(3) 자동 탐색:
시뮬레이션 환경을 계속 실행하고 다른 창에서 실행 중인 파일을 닫고 자동 탐색 파일을 실행합니다.

export TURTLEBOT3_MODEL=burger
source ~/turtlebot_ws/devel/setup.bash
roslaunch turtlebot3_navigation turtlebot3_navigation.launch

왼쪽 마우스 버튼은 rviz 도구 모음에서 "2D Pose Estimate"를 선택하여 시뮬레이션 환경에서 로봇의 위치를 ​​맵의 위치와 일치하도록 재배치한 다음 rviz 도구 모음에서 "2D Nav Goal" 옵션을 선택하고 지도에서 로봇의 위치를 ​​지정하기 위한 왼쪽 마우스 버튼 탐색 목표 지점. 마우스를 놓으면 짧은 시간 내에 최적의 경로가 계획되고 로봇은 목표 지점을 향해 이동하기 시작합니다.

여기에 이미지 설명 삽입
여기에 이미지 설명 삽입여기서 끝납니다. 작업 공간 만들기

추천

출처blog.csdn.net/m0_56895840/article/details/127766039