시뮬레이터와 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에 대한 인터페이스를 원한다면, 이미 실행 중인 2번째 MAVLink 인스턴스는 mavros를 통해 ROS에 연결할 수 있다. 특정 IP에 연결하기 위해서는 아래와 같은 형태의 URL을 사용한다.
- ROS용 Gazebo 설치하기
- Gazebo ROS SITL 시뮬레이션은 Gazebo6하고 동작한다. 아래와 같이 설치할 수 있다. (참고: 현재 Gazebo7과 동작하지 않는다)
> sudo apt-get install ros-indigo-gazebo6-ros - 레이저와 같이 다른 센서들이 필요하다면 Gazebo 플러그인을 설치한다.
> sudo apt-get install ros-indigo-gazebo6-plugins
- Gazebo ROS SITL 시뮬레이션은 Gazebo6하고 동작한다. 아래와 같이 설치할 수 있다. (참고: 현재 Gazebo7과 동작하지 않는다)
- 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
- Gazebo 시뮬레이션을 수정해서 ROS topics에 직접 publish하는 센서들을 통합하도록 . ex) Gazebo ROS laser plugin와 같이 적절한 ROS wrapper를 가지고 런치해야만 한다. 이렇게 하기 위해서 시뮬레이터를 시작할 때 no_sim=1을 사용한다.
[Pixhawk ROS] 시뮬레이터와 ROS 인터페이스