OctoMap

OctoMap 라이브러리는 3D 그리드 매핑접근법을 구현했습니다. 이 가이드에서는 Rotors Simulator로 사용하는 방법을 다루고 있습니다.

설치

설치하려면 ROS, Gazebo와 Rotor 시뮬레이터 플러그인을 설치해야 합니다. 설치절차에 따라 Rotor Simulator에 설치합니다.

다음으로 OctoMap library를 설치합니다

    sudo apt-get install ros-indigo-octomap ros-indigo-octomap-mapping
    rosdep install octomap_mapping
    rosmake octomap_mapping

이제 ~/catkin_ws/src/rotors_simulator/rotors_gazebo/CMakeLists.txt를 열어서 다음 라인을 파일의 마지막에 추가합니다.

    find_package(octomap REQUIRED)
    include_directories(${OCTOMAP_INCLUDE_DIRS})
    link_libraries(${OCTOMAP_LIBRARIES})

~/catkin_ws/src/rotors_simulator/rotors_gazebo/package.xml을 열고 다음 라인을 추가합니다.

    <build/depend>octomap</build/depend>
    <run_depend>octomap</run_depend>

다음 2개 라인을 실행합니다.

첫번째 라인은 gedit로(기본은 vim) 기본 쉘 에디터를 변경합니다. vim에 경험이 적은 사용자에게 추천하며 그렇지 않은 경우 생략합니다.

    export EDITOR='gedit'
    rosed octomap_server octomap_tracking_server.launch

그리고 2개 라인을

    <param name="frame_id" type="string" value="map" />
    ...
    <!--remap from="cloud_in" to="/rgbdslam/batch_clouds" /-->

다음처럼 변경합니다.

    <param name="frame_id" type="string" value="world" />
    ...
    <remap from="cloud_in" to="/firefly/vi_sensor/camera_depth/depth/points" />

시뮬레이션 실행하기

3개 각 터미널 윈도우에서 다음 3개 라인을 실행합니다. Gazebo, Rviz, octomap 서버를 시작합니다.

    roslaunch rotors_gazebo mav_hovering_example_with_vi_sensor.launch  mav_name:=firefly
    rviz
    roslaunch octomap_server octomap_tracking_server.launch

Rviz에서 윈도우의 왼쪽위 'map'에서 'world'로 'Fixed Frame' 필드를 변경합니다. 이제 왼쪽 바닥에 있는 추가 버튼을 클릭해서 MarkerArray를 선택합니다. 다음으로 MarkerArray를 더블클릭하고 'Marker Topic'를 '/free_cells_vis_array'에서 '/occupied_cells_vis_array'로 변경합니다.

이제 바닥의 일부를 볼 수 있습니다.

Gazebo 창에서 붉은 로터 앞에 큐브를 넣으면 이를 Rviz에서 볼 수 있습니다.

results matching ""

    No results matching ""