Skip to main content

PX4 Native Stack

PX4

概要

PX4は、スイスチューリッヒ工科大学 (スイス工科大学チューリッヒ校)発の、オープンソースフライトコントローラープロジェクトです。オープンソースハードウエア&オープンソースソフトウェアの32bitフライトコントローラーを作る目的で開始されました。Pixhawkは、3D Roboticsが初期段階から生産、販売と、ArduPilot系開発者への金銭的支援を熱心に行っていたため、3DRの製品だと勘違いされることが多いですが、出処はETH Zurichです。

PX4 Native Stackがファームウェア部分で、PX4 FMUv1、PixhawkPixracer等がハードウェア部分です。

PX4ハードウェア

PX4のハードウェアとしてはPixhawkがもっとも有名ですが、ハードウェアもオープンソースであるため、Pixhawkには一部を改良したり、そのまま同じ回路を実装しただけのクローンが多く存在します。ただし、3DR製や、他のクローンメーカー製を謳った劣悪な模造品も出回っているので注意が必要です。

PX4というコードネームで、いわゆるPixhawk v1の前にも、PX4FMUv1とPX4IOという2ボードシステムがほんのわずかな間存在していました。詳しくはPixhawk進化の歴史を参照してください。

PX4関連ハードウェアのリスト

NOTE: PX4 FMUv1, FMUv2等のバージョンは、本来ソフトウェア側を識別するものですが、ハードウェア世代を特定するため、便宜上v1, v2, v4と呼び分けています。実際はFMUv2のファームウェアでPX4 FMUv2(Pixhawk)もPixhawk 2(FMUv3)も動作します。FMUv3は、3DRのPixhawk 2用に開発されていましたが、FMUv2をアップデートして、Pixhawk v1(FMUv2)、Pixhawk v2(FMUv3)のどちらでも動作するように対応したので、FMUv3のファームウェアは存在しません。Pixracerでは、ピンアウトが変更されたため、FMUv4となっています。その他、FMUv2とFMUv4では、使えるメモリー領域などに違いがあります。

PX4ソフトウェア

PX4 Native Stackは、Pixhawkに搭載される32bit ARM CPUの上に実装されたNuttXというリアルタイムOSの上で走るアプリケーション群として実装されるフライトコントローラーソフトウェアで、UNIXに近い構成的となっています。

マルチローター、VTOLを含む複数の機体構成を一つのファームウェアでカバーします。

通常Pixhawkにプリインストールされているファームウェアは、PX4 Native Stackですが、製品によってはArduPilotがインストールされているものもあります。

ライセンスはArduPilotがGPLv3なのに対し、PX4 Native Stackは3-Claus BSDライセンスです。

BSDなので、企業が自社製品に組み込む場合に使いやすく、GPLv3のArduPilotがDroneCodeから離脱したため、DroneCodeのファームウェアは事実上PX4 Native Stack一択になりました。

また、もともとが学術系なので、モーションキャプチャーカメラを使った外部制御やシミュレーションを中心とした開発に向いています。

ちなみに、ArduPilotはPX4 Native Stackのアプリケーションとして実装されていたので、PX4が動作するほとんどのハードウェアでArduPilotも走らせることが出来、マイクロコントローラー系のPixhawkファミリーのフライトコントローラーや、Linuxシングルボードコンピューターベースのユニットで動作します。

PX4 Native Stackは、通常QGroundControlとの組み合わせで使います。

PX4関連では、PX4 Natvie Stack以外にも、以下のプロジェクトがあります。

Linuxサポート

  • 最新版でRaspberryPiを正式にサポート
  • SnapDragon Flight
  • Intel Up-board + Realsense

コアメンバー

Lorenz Meier

  • ETHのComputer Vision and Geometry LabのPhD課程在籍
  • PX4/Pixhawkプロジェクト統括
  • PX4 Native Stackのリーダー
  • MAVLinkの開発者でもある

Prof. Marc Pollefeys

  • Institute for Visual Computing, Computer Vision and Geometry Group

Don Gagne

  • QGroundControlの開発者

Paul Riseborough

  • EKF
  • Paul RisenboroughはArduPilotのEKFも担当している

設定ガイド

フライトモード

フライトモードの詳細はこちら

マニュアルモード

  • アクロ
  • Rattitude(スティックセンター付近ではスタビライズで、スレッショルド以上のRoll/Pitch入力は、アングルではなくレートコントロールになる)
  • Angle(RollとPitch入力は傾斜角として処理される。YAWはレート)

アシステッドモード

  • ALTCTL(スロットルが上昇・下降レートになり、センター付近のデッドゾーンが広がる)
  • POSCTL(RollとPitchは対地速度。センターで現在位置を保持)

オートモード

  • AUTO_LOITER(現在位置でホバリング)
  • AUTO_RTL(指定高度まで上昇後、離陸地点・ホーム地点に戻り、着陸)
  • AUTO_MISSION(Waypointミッション)

OFFBOARDモード

  • 外部コンピューターから制御

PX4Flow OpticalFlowセンサー

シミュレーター

ユーザーガイド(外部英語資料)

開発者向け資料

ソースコード

開発者向けガイド

Apps

備忘録

# Command to start SF0 LIDAR
sf0x start

デバッグガイド

シミュレーション

クローンサポート状況