시뮬레이터와 ROS 인터페이스

시뮬레이터에서 port 14557로 2번째 MAVLink 인터페이스를 시작시킨다. MAVROS를 이 포트로 연결하면 실제 비행시 제공하는 모든 데이터를 받을 수 있다.

  • MAVROS 런칭
    • ROS에 대한 인터페이스를 원한다면, 이미 실행 중인 2번째 MAVLink 인스턴스는 mavros를 통해 ROS에 연결할 수 있다. 특정 IP에 연결하기 위해서는 아래와 같은 형태의 URL을 사용한다.
      > roslaunch mavros px4.launch fcu_url:=”udp://:1454@192.168.1.36:14557″
    • localhost에 연결하려면 아래 URL을 사용한다.
      > roslaunch mavros px4.launch fcu_url=”udp://:1454@127.0.0.1:14557″
  • ROS용 Gazebo 설치하기
    • Gazebo ROS SITL 시뮬레이션은 Gazebo6하고 동작한다. 아래와 같이 설치할 수 있다. (참고: 현재 Gazebo7과 동작하지 않는다)
      > sudo apt-get install ros-indigo-gazebo6-ros
    • 레이저와 같이 다른 센서들이 필요하다면 Gazebo 플러그인을 설치한다.
      > sudo apt-get install ros-indigo-gazebo6-plugins
  • ROS wrapper로 Gazebo 런칭하기
    • Gazebo 시뮬레이션을 수정해서 ROS topics에 직접 publish하는 센서들을 통합하도록 . ex) Gazebo ROS laser plugin와 같이 적절한 ROS wrapper를 가지고 런치해야만 한다. 이렇게 하기 위해서 시뮬레이터를 시작할 때 no_sim=1을 사용한다.
      > no_sim=1 make posix_sitl_default_default gazebo
    • 시뮬레이터 시작 화면
      > [init] shell id: 49xxxxxxxx
      > [init] task name: mainapp
      > …
    • 이제 새로운 터미널을 실행시켜서 Gazebo 메뉴에 Iris 모델을 추가할 수 있다. 이렇게 하기 위해서 여러분의 환경 변수에 적절한 sitl_gazebo 폴더를 포함시킨다.
      # Set the plugin path so Gazebo finds our model and sim
      export GAZEBO_PLUGIN_PATH=${GAZEBO_PLUGIN_PATH}:[PATH_TO_FIRMWARE]/Firmware/Tools/sitl_gazebo/Build
      # Set the model path so Gazebo finds the airframes
      export GAZEBO_MODEL_PATH=${GAZEBO_MODEL_PATH}:[PATH_TO_FIRMWARE]/Firmware/Tools/sitl_gazebo/models
    • ROS와 동작할 때 Gazebo를 시작하고 Iris 쿼드콥터 모델을 추가한다. 일단 Iris가 로드되면 자동으로 px4 app에 연결된다.
      >roslaunch gazebo_ros empty_world.launch
    • 일단 시뮬레이션이 시작되면 iris 모델은 GUI를 통해 수동으로 추가할 수 있다.
      >rosrun gazebo_ros spawn_model -file iris.sdf -sdf -model iris
[Pixhawk ROS] 시뮬레이터와 ROS 인터페이스

답글 남기기