!REDIRECT “https://docs.px4.io/master/ko/simulation/gazebo_octomap.html

ROS/가제보용 옥토맵 3D 모델

옥토맵(OctoMap) 라이브러리는 센서 데이터로부터 체적 기반 3D 환경 모델을 만드는 오픈소스 라이브러리입니다. 이 모델 데이터는 드론의 지형 탐색과 충돌 방지 용도로 활용할 수 있습니다.

이 안내서에서는 가제보 탐사선 모의 시험 환경과 ROS를 옥토맵과 활용하는 방법을 다룹니다.

설치

설치 과정에서 ROS, 가제보, 탐사선 모의 시험 환경 플러그인이 필요합니다. 설치하려면 탐사선 모의 시험환경 구축 절차를 따르십시오.

그 다음 옥토맵 라이브러리를 설치하십시오:

  1. sudo apt-get install ros-indigo-octomap ros-indigo-octomap-mapping
  2. rosdep install octomap_mapping
  3. rosmake octomap_mapping

이제, ~/catkin_ws/src/rotors_simulator/rotors_gazebo/CMakeLists.txt 파일을 려고, 다음 줄을 파일 하단에 추가하십시오.

  1. find_package(octomap REQUIRED)
  2. include_directories(${OCTOMAP_INCLUDE_DIRS})
  3. link_libraries(${OCTOMAP_LIBRARIES})

~/catkin_ws/src/rotors_simulator/rotors_gazebo/package.xml 파일을 열고 다음 줄을 추가하십시오

  1. <build_depend>octomap</build_depend>
  2. <run_depend>octomap</run_depend>

다음 두 줄을 실행하십시오:

Note 첫번째 줄은 기본 셸 편집기를 gedit로 바꿉니다. vim (기본 편집기)에 익숙하지 않은 사용자에게 추천합니다만, 생략할 수 있습니다.

  1. export EDITOR='gedit'
  2. rosed octomap_server octomap_tracking_server.launch

그리고 다음 두 줄의 내용을 바꾸십시오:

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

을:

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

모의 시험 환경 실행

다음 세 줄을 개별 터미널 창에서 실행하십시오. 이 명령은 가제보, Rviz, 옥토맵 서버 프로그램을 엽니다.

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

Rviz에서 창의 좌측 상단에 있는 ‘Fixed Frame’ 필드 내용을 ‘map’에서 ‘world’로 바꾸십시오. 이제 좌측 하단의 추가 단추를 누르고 MarkerArray를 선택하십시오. 그 다음 MarkerArray를 두번 누르고 ‘Marker Topic’의 내용을 ‘/free_cells_vis_array’에서 ‘/occupied_cells_vis_array’로 바꾸십시오

이제 바닥 부분을 볼 수 있어야 합니다.

가제보 창에서, 붉은 탐사선 앞에 정방체를 넣었을 때 Rviz에서 볼 수 있어야 합니다.

가제보 옥토맵 예제