ROS 코스 112 알 수없는 지역을 탐구하십시오.

4035 단어 navigation로봇ROS

환경



이 기사는 다음 환경에서 작동합니다.


품목



CPU
Core i5-8250U

우분투
16.04

ROS
키네틱

Gazebo
7.14.0


설치에 대한 자세한 내용은 ROS 강좌02 설치을 참조하십시오.
또한이 기사의 프로그램은 github에 업로드되었습니다. ROS 강좌 11 git 저장소을 참조하십시오.

개요



이번에는 explore_lite이라는 패키지를 소개합니다.
이 패키지는 map을 입력으로 하고, 미탐색 영역을 추출해 move_base에 지령해 그 위치에를 목표로 이동하는 것입니다.
방금 전에 move_base를 사용했으므로 연결해 봅시다.

설치



explore_lite 설치
sudo apt install ros-kinetic-explore-lite

소스 코드



nav_lecture/launch/explore.launch
<launch>
    <group ns="/dtw_robot1">
        <node pkg="explore_lite" type="explore" respawn="false" name="explore" output="screen">
            <param name="robot_base_frame" value="dtw_robot1/base_link"/>
            <param name="costmap_topic" value="map"/>
            <param name="visualize" value="true"/>
        </node>
    </group>
</launch>

실행



먼저 move_base를 시작합니다. 이전에 사용한 다음 launch를 시작합니다.

첫 번째 터미널
roslaunch nav_lecture move_base.launch 

그런 다음 explore_lite를 시작합니다.

두 번째 터미널
roslaunch nav_lecture explore.launch

그러면 미탐색 영역을 추출하여 그 위치를 move_base에 던져 이동합니다. 검색되지 않은 영역이 사라지면 [ INFO] [...,...]: Exploration stopped.가 표시되고 종료됩니다./dtw_robot1/explore/frontiers 표시하면 검색되지 않은 영역이 표시되므로 동작을 알기 쉽습니다.



코멘트



explore_lite에 넣는 GridMap는 기울기가 없고 3치(EMPTY,OCCUPIED,UNKNOWN)의 맵이 아니면 안됩니다.
아래 그림의 왼쪽은 /dtw_robot/map로 gmapping의 출력으로, 이것은 3치의 맵이므로 explore_lite로 사용할 수 있습니다.
그리고 오른쪽 /dtw_robot1/move_base/global_costmap/costmap은 move_base의 출력이지만 기울기가 붙어 있으므로 3 값이 아닙니다.
이 explore_lite의 알고리즘은 EMPTY, UNKNOWN이 인접하고 있는 곳을 미탐색 영역이라고 인식하므로, 기울기가 있는 코스트 맵이 아니고 원래의 맵을 입력할 필요가 있습니다.



참고



explore_lite

목차 페이지 링크



ROS 강좌의 목차에 대한 링크

좋은 웹페이지 즐겨찾기