Mavros制御無人機

2272 ワード

Mavrosによる無人機シミュレーションの制御


1新規ROSパッケージ


開始前にテストとしてワークスペースを新規作成しました
  • まずcatkinワークスペース
  • を作成する必要があります.
    $ mkdir -p ~/catkin_test/src
    $ cd ~/catkin_test/
    $ catkin_make
    

    このときのcatkin_test/の下にsrc,build,develの3つのフォルダがあります.開発ディレクトリの下にはsetup.*がたくさんあります.shファイル、これらのファイルのいずれかを読み込むと、現在のワークスペースの環境変数がすべての環境変数の最上位に配置されます.
  • 定義catkin_testに必要な環境変数
  • source devel/setup.sh
    
  • 現在の空席空間が全ての環境変数の上層に配置することを確保するために、以下の操作
  • を行う.
    $ echo $ROS_PACKAGE_PATH
    /home/youruser/catkin_test/src:/opt/ros/kinetic/share
    
  • catkinパッケージ(または他人のパッケージを直接コピー)
  • を作成
    $ cd ~/catkin_test/src
    $ catkin_create_pkg demo std_msgs rospy mavros
    

    これによりdemoというフォルダが作成されます.このフォルダにはpackageが含まれています.xmlファイルとCMakeLists.txtファイル、この2つのファイルはすべて自動的に部分を含んでcatkin_を実行していますcreate_pkgコマンド時に提供される情報、std_msgs rospy mavrosは依存パケットである.
  • ソースコードをワークスペース(~/catkin_test/src)に配置します.
  • コンパイルパッケージcatkin_を使用make,catkin_makeはcatkinの標準ワークフローを簡素化するコマンドラインツールです.catkin_makeは、CMake標準ワークフローでcmakeとmakeを順次呼び出します.
  • # In a catkin workspace
    cd ~/catkin_test/
    $ catkin_make
    

    buildディレクトリはbuild spaceのデフォルトの場所であり、cmakeとmakeもここで呼び出されてパッケージを構成してコンパイルします.develディレクトリはdevel spaceのデフォルトの場所であり、パッケージをインストールする前に実行可能なファイルとライブラリファイルを保存する場所でもあります.
  • コンパイルに成功したらrosrun demo demo_Node実行(ここでdemoは作成されたcatkinパッケージ名、demo_nodeはsrcの下のソースコードdemo_node.cpp)
  • 2実行例

  • launch the simulation and connect ROS to it via MAVROS
  • roslaunch mavros px4.launch fcu_url:="udp://:[email protected]:14557"
    
  • 動作Gazebo simulation
  • cd 
    DONT_RUN=1 make px4_sitl_default gazebo
    source ~/catkin_test/devel/setup.bash    # (optional)
    source Tools/setup_gazebo.bash $(pwd) $(pwd)/build/px4_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
    

    Include one of the above mentioned launch files in your own launch file to run your ROS application in the simulation.
  • 新規ROSパッケージを実行する例
  • cd ~/catkin_test
    rosrun demo demo_node
    

    Gazeboで例の効果を見ることができます.