Prometheusがサービスを呼び出すことでオフボードのロックを解除してカットするのも不思議ではありません(999を入力してください)。PX4の公式オフボードサンプルコードもサービスを呼び出すことでオフボードをカットします。以前にサービスがどこに書かれていたのか興味がありました。 !!!!!
私はそれを見つけました、そしてそれは本当にそうです。
https://gitee.com/maxibooksiyi/mavros/blob/master/mavros_msgs/srv/SetMode.srv
以下のこのブログ投稿を参照してください
https://blog.csdn.net/sinat_16643223/article/details/114060304
転載元:https://blog.csdn.net/zouxu634866/article/details/104112964
mavrosの一般的なサービスの紹介
常に蚊に刺されるシャオクス2020-01-3011:13:21498コレクション4
最終リリース:2020-01-30 11:13:21最初のリリース:2020-01-30 11:13:21
著作権表示:この記事はブロガーの元の記事であり、CC 4.0 BY-SAの著作権表示に従います。転載するには、元のソースへのリンクとこの文を添付してください。
この記事へのリンク:https://blog.csdn.net/zouxu634866/article/details/104112964
著作権
でmavros、二つの最も一般的に使用されるサービスは、1がアンロックされ、もう一方はモード切替で、あります。もちろん、mavrosを介してウェイポイント情報を変更するなど、他のサービスもありますが、それらは一般的に使用されていないため、以下では、前のブログのオフボードにあるロック解除とモード切り替えのみを紹介します。ソースコード分析はすでに導入されています。
これら2つのサービスの利用方法については、以前のブログを参照してください。ここでは繰り返しません。モード切り替えサービスで切り替えることができるモードを追加します。オフボードモードの他に、他のモードがあります。
mavrosのソースコードはここで使用する必要があります:場所:
/ホーム/ zouxu / mavros _ws / src / mavros / mavros / src / lib
もちろん、この場所の前提は、あなたがいることである使用ソースインストール方法をするときインストールmavrosを。ありmavrosワークスペースmavros _wsをコンピュータに。あなたがこれを持っていない場合、あなたがダウンロードできるソースコードをgithubの上。
次のディレクトリを開きます:uas_stringify.cpp
apmファームウェア用のモードがあります。px4のファームウェア部分のみを確認します。
//! PX4 custom mode -> string
static const cmode_map px4_cmode_map{
{
{ px4::define_mode(px4::custom_mode::MAIN_MODE_MANUAL), "MANUAL" },
{ px4::define_mode(px4::custom_mode::MAIN_MODE_ACRO), "ACRO" },
{ px4::define_mode(px4::custom_mode::MAIN_MODE_ALTCTL), "ALTCTL" },
{ px4::define_mode(px4::custom_mode::MAIN_MODE_POSCTL), "POSCTL" },
{ px4::define_mode(px4::custom_mode::MAIN_MODE_OFFBOARD), "OFFBOARD" },
{ px4::define_mode(px4::custom_mode::MAIN_MODE_STABILIZED), "STABILIZED" },
{ px4::define_mode(px4::custom_mode::MAIN_MODE_RATTITUDE), "RATTITUDE" },
{ px4::define_mode_auto(px4::custom_mode::SUB_MODE_AUTO_MISSION), "AUTO.MISSION" },
{ px4::define_mode_auto(px4::custom_mode::SUB_MODE_AUTO_LOITER), "AUTO.LOITER" },
{ px4::define_mode_auto(px4::custom_mode::SUB_MODE_AUTO_RTL), "AUTO.RTL" },
{ px4::define_mode_auto(px4::custom_mode::SUB_MODE_AUTO_LAND), "AUTO.LAND" },
{ px4::define_mode_auto(px4::custom_mode::SUB_MODE_AUTO_RTGS), "AUTO.RTGS" },
{ px4::define_mode_auto(px4::custom_mode::SUB_MODE_AUTO_READY), "AUTO.READY" },
{ px4::define_mode_auto(px4::custom_mode::SUB_MODE_AUTO_TAKEOFF), "AUTO.TAKEOFF" },
{ px4::define_mode_auto(px4::custom_mode::SUB_MODE_AUTO_FOLLOW_TARGET), "AUTO.FOLLOW_TARGET" },
{ px4::define_mode_auto(px4::custom_mode::SUB_MODE_AUTO_PRECLAND), "AUTO.PRECLAND" },
}};
後でリストされているのは、切り替えることができるモードです。