読者です 読者をやめる 読者になる 読者になる

Be Engineer.

エンジニア成り立て管理人の日々の記録とメモブログです。

ubuntuにドローンシュミレータを導入する

研究で必要なためubuntuにクアッドコプターのシュミレータを導入した。

 

<参考にしたページ>

Linux · PX4 Devguide

Gazebo Simulation · PX4 Devguide

Interfacing to ROS · PX4 Devguide

java - Ubuntu: OpenJDK 8 - Unable to locate package - Stack Overflow

Building the Code · PX4 Devguide

 

<gazeboとpx4 stack firmwareを用いたシュミレータの構築>

cd ~/

sudo add-apt-repository ppa:george-edison55/cmake-3.x -y
sudo apt-get update
sudo apt-get install python-argparse git-core wget zip \
python-empy qtcreator cmake build-essential genromfs -y

# simulation tools
sudo apt-get install ant protobuf-compiler libeigen3-dev libopencv-dev openjdk-8-jdk clang-3.5 lldb-3.5 -y

 

#java SDK

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update

sudo apt-get install oracle-java8-installer

 

#toolchain,pixhawk用のpackage群(使うマイコンによって変わる)

sudo apt-get remove modemmanager

sudo apt-get remove gcc-arm-none-eabi gdb-arm-none-eabi binutils-arm-none-eabi
sudo add-apt-repository ppa:team-gcc-arm-embedded/ppa
sudo apt-get update
sudo apt-get install python-serial openocd \
flex bison libncurses5-dev autoconf texinfo build-essential \
libftdi-dev libtool zlib1g-dev \
python-empy gcc-arm-embedded -y

 

#px4 stack firmwareのダウンロード

mkdir -p ~/src
cd ~/src
git clone https://github.com/PX4/Firmware.git
cd Firmware
git submodule update --init --recursive

 

#gazeboシュミレータ起動

make posix_sitl_default gazebo

 

<rosを用いたクアッドコプターのシュミレータ構築>

*前述の「#px4 stack firmwareのダウンロード」まで行う。

 

#ros用のgazeboインストール

sudo apt-get install ros-$(ROS_DISTRO)-gazebo7-ros-pkgs

 

#別のterminalでmavrosとマスター起動

roslaunch mavros px4.launch fcu_url:="udp://:14540@192.168.1.36:14557"

 

#gazeboとフライトシュミレータ起動

make posix_sitl_default gazebo //makeの処理が終わり次第、Ctr+C or Ctr+Z

source ~/ros/devel/setup.bash
source Tools/setup_gazebo.bash $(pwd) $(pwd)/build_posix_sitl_default
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:$(pwd)
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:$(pwd)/Tools/sitl_gazebo
roslaunch px4 posix_sitl.launch

 

#gazeboを起動したterminalでテスト

commander takeoff

 

-----------------------------------------------------------------------------

このままでは不便なのでシェルスクリプトを作った。

<px4_simulater.sh>

#!/bin/bash
source ~/ros/devel/setup.bash
source Tools/setup_gazebo.bash $(pwd) $(pwd)/build_posix_sitl_default
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:$(pwd)
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:$(pwd)/Tools/sitl_gazebo

 

今後、以下のコマンドで実行できる

(terminal A)

cd src/Firmware

source ~/ros/devel/setup.bash 

source Tools/setup_gazebo.bash $(pwd) $(pwd)/build_posix_sitl_default
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:$(pwd)
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:$(pwd)/Tools/sitl_gazebo./px4_simulater.sh

roslaunch px4 posix_sitl.launch

 

(terminal B)

roslaunch mavros px4.launch fcu_url:="udp://:14540@192.168.1.36:14557"