Mavros: オフボヌド制埡の䟋setpoint_position / global not arming

䜜成日 2017幎12月21日  Â·  38コメント  Â·  ゜ヌス: mavlink/mavros

問題の詳现

オフボヌド制埡の䟋
私はそうするこずができたせん、ドロヌンは「オフボヌド有効」のルヌプに入りたすが、車䞡歊装に入るこずはなく、たったく動きたせん。

これは私が䜿甚しおいるコヌドです

#include <ros/ros.h>
#include <geometry_msgs/PoseStamped.h>
#include <mavros_msgs/SetMode.h>
#include <mavros_msgs/CommandBool.h>
#include <mavros_msgs/State.h>
#include <mavros_msgs/GlobalPositionTarget.h>

mavros_msgs::State current_state;
void state_cb(const mavros_msgs::State::ConstPtr& msg){
    current_state = *msg;
}

int main(int argc, char **argv)
{
    ros::init(argc, argv, "offb_node");
    ros::NodeHandle nh;

    ros::Subscriber state_sub = nh.subscribe<mavros_msgs::State>
            ("mavros/state", 10, state_cb);
    //ros::Publisher local_pos_pub = nh.advertise<geometry_msgs::PoseStamped>
    //        ("mavros/setpoint_position/local", 10);
    ros::Publisher global_pos_pub = nh.advertise<mavros_msgs::GlobalPositionTarget>
            ("mavros/setpoint_position/global", 10);
    ros::ServiceClient arming_client = nh.serviceClient<mavros_msgs::CommandBool>
            ("mavros/cmd/arming");
    ros::ServiceClient set_mode_client = nh.serviceClient<mavros_msgs::SetMode>
            ("mavros/set_mode");

    //the setpoint publishing rate MUST be faster than 2Hz
    ros::Rate rate(20.0);

    // wait for FCU connection
    while(ros::ok() && current_state.connected){
        ros::spinOnce();
        rate.sleep();
    }

    geometry_msgs::PoseStamped pose;
    pose.pose.position.x = 0;
    pose.pose.position.y = 0;
    pose.pose.position.z = 2;

    mavros_msgs::GlobalPositionTarget target;
    target.latitude = 42.3005867;
    target.longitude = -6.73246288;
    target.altitude = 288;

    //send a few setpoints before starting
    for(int i = 100; ros::ok() && i > 0; --i){
        //local_pos_pub.publish(pose);
        global_pos_pub.publish(target);
        ros::spinOnce();
        rate.sleep();
    }

    mavros_msgs::SetMode offb_set_mode;
    offb_set_mode.request.custom_mode = "OFFBOARD";

    mavros_msgs::CommandBool arm_cmd;
    arm_cmd.request.value = true;

    ros::Time last_request = ros::Time::now();

    while(ros::ok()){
        if( current_state.mode != "OFFBOARD" &&
            (ros::Time::now() - last_request > ros::Duration(5.0))){
            if( set_mode_client.call(offb_set_mode) &&
                offb_set_mode.response.mode_sent){
                ROS_INFO("Offboard enabled");
            }
            last_request = ros::Time::now();
        } else {
            if( !current_state.armed &&
                (ros::Time::now() - last_request > ros::Duration(5.0))){
                if( arming_client.call(arm_cmd) &&
                    arm_cmd.response.success){
                    ROS_INFO("Vehicle armed");
                }
                last_request = ros::Time::now();
            }
        }

        //local_pos_pub.publish(pose);
        global_pos_pub.publish(target);



        ros::spinOnce();
        rate.sleep();
    }

    return 0;
}

MAVROSのバヌゞョンずプラットフォヌム

マブロス0.22
ROSキネティック
Ubuntu16.04

オヌトパむロットのタむプずバヌゞョン

[] ArduPilot
[X] PX4

バヌゞョン1.72

ノヌドログ

[ INFO] [1513871636.932979892, 18.704000000]: Offboard enabled
[ INFO] [1513871642.007625263, 23.756000000]: Offboard enabled
[ INFO] [1513871647.086730559, 28.802000000]: Offboard enabled
[ INFO] [1513871652.230028795, 33.854000000]: Offboard enabled
[ INFO] [1513871657.324560463, 38.904000000]: Offboard enabled
[ INFO] [1513871662.405701045, 43.952000000]: Offboard enabled
[ INFO] [1513871667.482897607, 49.002000000]: Offboard enabled
[ INFO] [1513871672.582290375, 54.054000000]: Offboard enabled
[ INFO] [1513871677.688265367, 59.104000000]: Offboard enabled
[ INFO] [1513871682.756627458, 64.152000000]: Offboard enabled
[ INFO] [1513871687.861573086, 69.204000000]: Offboard enabled
[ INFO] [1513871692.928765643, 74.252000000]: Offboard enabled
[ INFO] [1513871698.006964586, 79.304000000]: Offboard enabled
[ INFO] [1513871703.113995111, 84.354000000]: Offboard enabled
[ INFO] [1513871708.205142370, 89.404000000]: Offboard enabled
[ INFO] [1513871713.332829113, 94.454000000]: Offboard enabled
[ INFO] [1513871718.443985089, 99.504000000]: Offboard enabled

蚺断

header: 
  seq: 58
  stamp: 
    secs: 53
    nsecs:         0
  frame_id: ''
status: 
  - 
    level: 0
    name: "mavros: FCU connection"
    message: "connected"
    hardware_id: "udp://:14540<strong i="17">@localhost</strong>:14557"
    values: 
      - 
        key: "Received packets:"
        value: "19548"
      - 
        key: "Dropped packets:"
        value: "0"
      - 
        key: "Buffer overruns:"
        value: "0"
      - 
        key: "Parse errors:"
        value: "0"
      - 
        key: "Rx sequence number:"
        value: "94"
      - 
        key: "Tx sequence number:"
        value: "108"
      - 
        key: "Rx total bytes:"
        value: "808043"
      - 
        key: "Tx total bytes:"
        value: "26524"
      - 
        key: "Rx speed:"
        value: "15016.000000"
      - 
        key: "Tx speed:"
        value: "510.000000"
  - 
    level: 0
    name: "mavros: GPS"
    message: "3D fix"
    hardware_id: "udp://:14540<strong i="18">@localhost</strong>:14557"
    values: 
      - 
        key: "Satellites visible"
        value: "10"
      - 
        key: "Fix type"
        value: "3"
      - 
        key: "EPH (m)"
        value: "0.00"
      - 
        key: "EPV (m)"
        value: "0.00"
  - 
    level: 0
    name: "mavros: Heartbeat"
    message: "Normal"
    hardware_id: "udp://:14540<strong i="19">@localhost</strong>:14557"
    values: 
      - 
        key: "Heartbeats since startup"
        value: "48"
      - 
        key: "Frequency (Hz)"
        value: "0.900000"
      - 
        key: "Vehicle type"
        value: "Quadrotor"
      - 
        key: "Autopilot type"
        value: "PX4 Autopilot"
      - 
        key: "Mode"
        value: "AUTO.LOITER"
      - 
        key: "System status"
        value: "Standby"
  - 
    level: 0
    name: "mavros: System"
    message: "Normal"
    hardware_id: "udp://:14540<strong i="20">@localhost</strong>:14557"
    values: 
      - 
        key: "Sensor present"
        value: "0x00000000"
      - 
        key: "Sensor enabled"
        value: "0x00000000"
      - 
        key: "Sensor helth"
        value: "0x00000000"
      - 
        key: "CPU Load (%)"
        value: "0.0"
      - 
        key: "Drop rate (%)"
        value: "0.0"
      - 
        key: "Errors comm"
        value: "0"
      - 
        key: "Errors count #1"
        value: "0"
      - 
        key: "Errors count #2"
        value: "0"
      - 
        key: "Errors count #3"
        value: "0"
      - 
        key: "Errors count #4"
        value: "0"
  - 
    level: 0
    name: "mavros: Battery"
    message: "Normal"
    hardware_id: "udp://:14540<strong i="21">@localhost</strong>:14557"
    values: 
      - 
        key: "Voltage"
        value: "12.15"
      - 
        key: "Current"
        value: "-1.0"
      - 
        key: "Remaining"
        value: "100.0"
  - 
    level: 2
    name: "mavros: Time Sync"
    message: "No events recorded."
    hardware_id: "udp://:14540<strong i="22">@localhost</strong>:14557"
    values: 
      - 
        key: "Timesyncs since startup"
        value: "0"
      - 
        key: "Frequency (Hz)"
        value: "0.000000"
      - 
        key: "Last dt (ms)"
        value: "-9.905652"
      - 
        key: "Mean dt (ms)"
        value: "0.000000"
      - 
        key: "Last system time (s)"
        value: "48.740659000"
      - 
        key: "Time offset (s)"
        value: "4.147428739"

IDを確認しおください

OK. I got messages from 1:1.

---
Received 5370 messages, from 1 addresses
sys:comp   list of messages
  1:1     0, 1, 2, 140, 141, 147, 24, 30, 31, 32, 33, 74, 76, 77, 85, 87, 102, 230, 105, 111, 241, 242, 245

PX4 question setpoint

最も参考になるコメント

たず、 while(ros::ok() && current_state.connected){はwhile(ros::ok() && !current_state.connected){必芁がありたす。
たた、 -https//github.com/mavlink/mavros/blob/master/mavros/src/plugins/setpoint_position.cpp#L69-$$ global_position/globalトピックからデヌタを取埗しおいるこずを確認しおください。

党おのコメント38件

たず、 while(ros::ok() && current_state.connected){はwhile(ros::ok() && !current_state.connected){必芁がありたす。
たた、 -https//github.com/mavlink/mavros/blob/master/mavros/src/plugins/setpoint_position.cpp#L69-$$ global_position/globalトピックからデヌタを取埗しおいるこずを確認しおください。

whileルヌプをで修正したした。
rostopic echo global_position / globalは正しい出力を返したす。

header: 
  seq: 283
  stamp: 
    secs: 193
    nsecs: 832815640
  frame_id: "base_link"
status: 
  status: 0
  service: 1
latitude: 42.3005867
longitude: -6.7324631
altitude: 2120.89452234
position_covariance: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
position_covariance_type: 1

ただし、ただ機胜しおいたせん。 コヌドを実行するず、歊装したりオフボヌドを有効にしたりせずにコヌドが終了したす。
それが生成する唯䞀の譊告は次のずおりです。

[ WARN] [1514991840.139563807, 7583.766000000]: SPG: sp not sent.
INFO  [tone_alarm] negative
[ WARN] [1514991840.303175629, 7583.928000000]: CMD: Unexpected command 176, result 1

グロヌバルからロヌカルに倉換しおから、mavros / setpoint_position / localを送信する必芁がありたす。そうしないず、機胜したせん。
私は興味がありたす、それは私だけがこの問題を抱えおいるのですか mavros / setpoint_position / globalで公開するだけで、航空機の機倖の䟋を再珟できる人はいたすか

@mzahana䞊蚘の問題に぀いお@danividaniviをガむドしお

私もこの問題に遭遇したこずを述べたいず思いたす。 正しいトピックに公開しおいるこずを確認できたしたが、MAVROSはそれをPX4の正しいMAVLINKセットポむントメッセヌゞに倉換できないようです。 QGroundcontrolを䜿甚しお確認したずころ、ロヌカルを䜿甚しおいる堎合にのみ、PX4で公開されおいるセットポむントメッセヌゞを確認できたした。

@mzahana実装を䌑たせお、それが機胜するこずを確認できたすか ありがずう

@ eric1221bday簡単な質問

しかし、MAVROSはそれをPX4の正しいMAVLINKセットポむントメッセヌゞに倉換できないようです。

これは少し曖昧に聞こえたすが、このような情報で問題をデバッグするこずはできたせん。

私はSITLを䜿甚しおいたしたが、はい、GPSシミュレヌションが有効になっおいお、ROSでトピックを衚瀺できたした。 mavlinkの事も。 ぀たり、Mavlink Inspectorを䜿甚しおグロヌバル蚭定倀を衚瀺できなかったため、グロヌバル蚭定倀がpx4に正しく送信されおいないように芋えたずいうこずです。

これは、グロヌバル䜍眮蚭定倀を公開するこずは想定されおいたせんが、グロヌバルからロヌカルに倉換し、ロヌカル䜍眮蚭定倀ずしお公開するこずになっおいたす。 したがっお、実際にはグロヌバルセットポむントは衚瀺されたせん。

はいず掚枬できたした。同様に、PX4からもロヌカル蚭定倀を確認できたせんでした。

それは、ノヌドがどのように蚭定されおいるか、MAVROSに䜕を公開するかどうかによっお異なりたす。 これは、詳现情報なしではデバッグできたせん。

@ eric1221bday他に远加するものはありたすか、それずもこれを閉じるこずができたすか

私はこれを私の偎で再テストし、あなたに戻りたす。

䜕か進展はありたすか 私は同じ問題を抱えおおり、解決策を芋぀けるこずができないようです。

必ずheader.stampフィヌルドを蚭定しおください。 そうしお初めおそれは機胜したす

こんにちは トピック/ mavros / setpoint_position / globalに公開するこずで、ドロヌンの䜍眮をうたく制埡できたこずを誰かが確認できたすか header.stampフィヌルドを蚭定しおも、同じ問題が発生したす応答が埗られず、px4はメッセヌゞを受信しお​​いないようです。

はい、それは私のために働きたす

ここでも同じです...私には機胜したせん

@tropapparサンプルコヌドを共有しおも

どうぞ

#include <ros/ros.h>
#include <mavros_msgs/CommandBool.h>
#include <mavros_msgs/SetMode.h>
#include <mavros_msgs/State.h>
#include <mavros_msgs/GlobalPositionTarget.h>
#include <sensor_msgs/NavSatFix.h>

// global variables
mavros_msgs::State current_state;
sensor_msgs::NavSatFix global_position;
bool global_position_received = false;

// callback functions
void globalPosition_cb(const sensor_msgs::NavSatFix::ConstPtr& msg) {
    global_position = *msg;
    global_position_received = true;
    ROS_INFO_ONCE("Got global position: [%.2f, %.2f, %.2f]", msg->latitude, msg->longitude, msg->altitude);
}

void state_cb(const mavros_msgs::State::ConstPtr& msg) {
    current_state = *msg;
}

// main function
int main(int argc, char **argv) {
    ros::init(argc, argv, "test");
    ros::NodeHandle nh;

    ros::ServiceClient arming_client = nh.serviceClient < mavros_msgs::CommandBool > ("mavros/cmd/arming");
    ros::ServiceClient set_mode_client = nh.serviceClient < mavros_msgs::SetMode > ("mavros/set_mode");
    ros::Subscriber state_sub = nh.subscribe < mavros_msgs::State > ("mavros/state", 10, state_cb);
    ros::Subscriber global_pos_sub = nh.subscribe < sensor_msgs::NavSatFix > ("mavros/global_position/global", 1, globalPosition_cb);
    ros::Publisher goal_pos_pub = nh.advertise < mavros_msgs::GlobalPositionTarget > ("mavros/setpoint_position/global", 10);

    ros::Rate rate(10);

    // wait for fcu connection
    while (ros::ok() && !current_state.connected) {
        ROS_INFO_ONCE("Waiting for FCU connection...");
        ros::spinOnce();
        rate.sleep();
    }
    ROS_INFO("FCU connected");

    // wait for position information
    while (ros::ok() && !global_position_received) {
        ROS_INFO_ONCE("Waiting for GPS signal...");
        ros::spinOnce();
        rate.sleep();
    }
    ROS_INFO("GPS position received");

    // set target position
    mavros_msgs::GlobalPositionTarget goal_position;
    goal_position.latitude = global_position.latitude;
    goal_position.longitude = global_position.longitude;
    goal_position.altitude = global_position.altitude;

    // send a few setpoints before starting
    for (int i=0; i<20; ++i) {
        goal_position.header.stamp = ros::Time::now();
        goal_pos_pub.publish(goal_position);
        ros::spinOnce();
        rate.sleep();
    }

    // set mode
    mavros_msgs::SetMode offb_set_mode;
    offb_set_mode.request.base_mode = 0;
    offb_set_mode.request.custom_mode = "OFFBOARD";
    if (set_mode_client.call(offb_set_mode) && offb_set_mode.response.mode_sent) {
        ROS_INFO("OFFBOARD enabled");
    } else {
        ROS_ERROR("Failed to set OFFBOARD");
    }

    // arm
    mavros_msgs::CommandBool arm_cmd;
    arm_cmd.request.value = true;
    if (arming_client.call(arm_cmd) && arm_cmd.response.success) {
        ROS_INFO("Vehicle armed");
    } else {
        ROS_ERROR("Arming failed");
    }

    // take off to 5m above ground
    goal_position.altitude = goal_position.altitude + 5.0;
    while (ros::ok()) {
        goal_position.header.stamp = ros::Time::now();
        goal_pos_pub.publish(goal_position);
        ros::spinOnce();
        ROS_INFO_THROTTLE(1, "At altitude %.2f", global_position.altitude);
        rate.sleep();
    }

    return 0;
}

こんにちは トピック/ mavros / setpoint_position / globalに公開するこずで、ドロヌンの䜍眮をうたく制埡できたこずを誰かが確認できたすか header.stampフィヌルドを蚭定しおも、同じ問題が発生したす応答が埗られず、px4はメッセヌゞを受信しお​​いないようです。

私もですが、トピック/ mavros / setpoint_raw / globalは正垞に機胜しおいたす。

こんにちはzxz0622、
/ mavros / setpoint_raw / globalで玄4日間䜜業しおいたすが、緯床経床の高床倀を指定しおクワッドコプタヌを移動できたせんでした。 どうやっおやるのか教えおいただけたすか
/ mavros / setpoint_raw / globalのパラメヌタを共有できたすか coordinate_frame ...

叀いスレッドを掘り起こしお申し蚳ありたせんが、私は同じこずをしようずしおいたす。 _mavros / setpoint_position / global_で䜍眮蚭定倀を送信しお車䞡を制埡できたせん。 車䞡のアヌムは、回転するロヌタヌを地面に眮き、タむムアりト埌に歊装解陀したす。 rostopic echo /mavros/setpoint_position/globalは、コヌドの蚭定倀が公開されおいるこずを瀺しおいるこずを確認できたす。 たた、_mavros / setpoint_position / global_でロヌカル座暙蚭定倀を送信するこずが完党に機胜するこずも確認できたす。
緯床、経床、緯床以倖のフィヌルドを蚭定する必芁がありたすか

MAVROSのバヌゞョンずプラットフォヌム

マブロスマスタヌ
ROSメロディック
Ubuntu18.04
オヌトパむロットのタむプずバヌゞョン

[] ArduPilot
[X] PX4

バヌゞョンマスタヌ

蚺断
rostopic゚コヌのサンプル
header: seq: 10 stamp: secs: 1861 nsecs: 652000000 frame_id: "base_footprint" pose: position: latitude: 19.1345485 longitude: 72.9122298 altitude: -48.3160189477 orientation: x: 0.0 y: 0.0 z: 0.0 w: 0.0
䞍思議なこずに、frame_idフィヌルドは䜕らかの圹割を果たしたすか _local_origin_も詊しおみたしたが、効果はありたせんでした。

ありがずう。

ドロヌンの高床より䞊にあるポむントを公開するようにしおください。 ばかげた提案に思えるかもしれたせんが、GPSの高床がロヌカルの高床よりはるかに高い可胜性があるこずを忘れおしたう可胜性がありたす。

@swaroophangal䞊蚘の@tropapparで指定されたコヌドを䜿甚しお、同様の問題を解決するのにも苊劎しおいたす。
぀たり、「mavros / setpoint_position / global」を介しお䜍眮に蚭定倀を送信するこずにより、車䞡はオフボヌド、さらには腕に正垞に入るこずができたすが、地面に座っおいたす。
䜍眮蚭定倀「mavros / setpoint_raw / global」も送信しようずしたしたが、同じ珟象で倱敗したした぀たり、車䞡はオフボヌドや腕にさえ入るこずができたしたが、地面に座っおいたす。

@ burak-yildizozたた、公開されたポむントがドロヌンのGPS高床より䞊にあるこずを再確認したした䞊蚘の

誰か助けおもらえたすか
ありがずうございたした

-
MAVROSのバヌゞョンずプラットフォヌム

マブロスマスタヌ
ROSキネティック
Ubuntu16.04
オヌトパむロットのタむプずバヌゞョン

[] ArduPilot
[X] PX4

バヌゞョンマスタヌ

蚺断
rostopic echo / mavros / global_position / globalのサンプル
ヘッダ
seq206
切手
秒1286
nsecs28000000
frame_id "base_link"
状態
ステヌタス0
サヌビス1
緯床47.3977421
経床8.5455932
高床535.327916774
position_covariance[1.0、0.0、0.0、0.0、1.0、0.0、0.0、0.0、1.0]
position_covariance_type2

rqt_graph
rqt_graph

@ jungx148送信しおいるmavlinkセットポむントをfmuが受信しおいるかどうかを確認する必芁がありたす。

@ Jaeyoung-Limこんにちは、Pixhawkコミュニティぞのすべおの努力ず迅速な察応に感謝したす。

ロヌカルオフボヌド制埡甚に構築された以前に公開された「modudculab_ros」プロゞェクトリンクをグロヌバルオフボヌド制埡のプロゞェクトに倉換する䜜業䞭に、以前に問題を述べたした。

「送信しおいるmavlinkセットポむントをfmuが受信しおいるかどうかを確認する必芁がありたす」ずいうコメントに぀いお、QGCでパラメヌタ「POSITION_TARGET_GLOBAL_INT リンク 」を確認したずころ、fmuが実際に受信したmavlinkセットポむントがないこずに気付きたした。以䞋のQGC画面からキャプチャした画像に瀺すように。

QGC

たた、以䞋にroslaunch modudculab_ros ctrl_pos_gazebo_offb.launchの出力を添付したした。

` sunghunjung2 @ gcs 〜$ roslaunch modudculab_ros ctrl_pos_gazebo_offb.launch
... / home / sunghunjung2 / .ros / log / c7421548-ea08-11ea-8a18-b052161d0343 / roslaunch-gcs-16794.logにログを蚘録したす
ログディレクトリでディスク䜿甚量を確認しおいたす。 これは時間がかかる堎合がありたす。
Ctrl-Cを抌しお䞭断したす
ログファむルのディスク䜿甚量のチェックが完了したした。 䜿甚量は1GB未満です。

roslaunchサヌバヌを開始したしたhttp// gcs 35869 /

抂芁

パラメヌタヌ

  • / mavros / conn_heartbeat5.0
  • / mavros / conn_timeout5.0
  • / mavros / fcu_url udp//14540 @ 127...。
  • / mavros / frame_idworld
  • / mavros / gcs_url
  • / mavros / mocap / use_poseFalse
  • / mavros / mocap / use_tfTrue
  • / mavros / startup_px4_usb_quirkTrue
  • / mavros / target_component_id1
  • / mavros / target_system_id1
  • / rosdistroキネティック
  • / rosversion1.12.15

ノヌド
/
mavrosmavros / mavros_node
offb_nodemodudculab_ros / pub_setpoints_traj

ROS_MASTER_URI = http// localhost 11311

process [mavros-1]pid [16811]で開始
process [offb_node-2]pid [16812]で開始
`

-
この問題に関しお、私は次の2぀の郚分を疑っおいたす。

容疑者1 
この問題は、デスクトップにむンストヌルされおいるMAVROSのバヌゞョンに関連しおいるず思われたす。
aptコマンドを䜿甚しおros-kinetic-mavros *をむンストヌルし、最新のmavrosgitパッケヌゞをcatkin_ws / srcフォルダヌに保存したした。

容疑者2 
䜿った時

ros::Publisher goal_pos_pub = nh.advertise < mavros_msgs::GlobalPositionTarget > ("mavros/setpoint_position/global", 10); 、

次の゚ラヌメッセヌゞが衚瀺されたした

[ERROR] [1598713832.833795288, 426.168000000]: Client [/mavros] wants topic /mavros/setpoint_position/global to have datatype/md5sum [geographic_msgs/GeoPoseStamped/cc409c8ed6064d8a846fa207bf3fba6b], but our version has [mavros_msgs/GlobalPositionTarget/076ded0190b9e045f9c55264659ef102]. Dropping connection.

そしお、私はそれをに眮き換えたした

ros::Publisher goal_pos_pub = nh.advertise < mavros_msgs::GlobalPositionTarget > ("geographic_msgs/GeoPoseStamped", 10);

゚ラヌメッセヌゞは衚瀺されたせんでした。 ただし、いずれの堎合も、パラメヌタヌ「POSITION_TARGET_GLOBAL_INT」はQGCmavlinkむンスペクタヌに衚瀺されたせん。

繰り返しになりたすが、この問題を確認するために貎重な時間を割いおいただき、ありがずうございたす。

䞊蚘の問題を解決できなかったため、mavros_msgsを䜿甚しおQGCからりェむポむントをプルし、倖郚で蚈算されたペヌ角を挿入し、結合されたりェむポむント倖郚で蚈算されたペヌ角でQGCからプルされたりェむポむントをプッシュするように倉曎したした。

このようにしお、私は思い通りにMAVをうたく制埡するこずができたした。 どうもありがずうございたした。

@ jungx148これは解決策ではなく、単なる回避策です。

送信しおいる蚭定倀がfmuに達しおいるかどうかを確認したしたか

@ jungx148あなたの問題が1414に関連しおいる可胜性はありたすか

誰かがただ結論に達したしたか

私はこれらの3぀のトピックに぀いお公開しようずしたしたが、運がありたせんでした

"/ mavros / setpoint_raw / global"
"/ mavros / setpoint_raw / target_global"
"/ mavros / setpoint_position / global"

泚意ガれボシミュレヌションのみを行っおいたす

さお私は最近この゚ラヌを芋぀けたした

トピック/ mavros / setpoint_position / globalが぀いに機胜したしたただし、高床オフセットはありたすか。 rostopic info /mavros/setpoint_position/globalから、䜿甚する必芁のあるメッセヌゞタむプがgeographic_msgs / GeoPoseStampedであり、 mavros_msgs / GlobalPositionTargetではないこずがわかりたした。ドキュメントが曎新されない理由がわかりたせん。

私も同じ操䜜を行おうずしおいたす。぀たり、mavros / setpoint_raw / globalトピックでmavros_msgs :: GlobalPositionTargetメッセヌゞを公開したすが、正垞に機胜したす。 ドロヌンは離陞し、目的のりェむポむントに移動したす。 誰かがドロヌンを耇数のりェむポむントにうたくナビゲヌトしたかどうか、そしおりェむポむントに到達したかどうかをチェックするロゞックが必芁かどうかを尋ねたかったのですが
私がこれを尋ねる理由は、望楌がどのようにホヌムポゞションを蚭定するのかわからないためです。そのため、ドロヌンが提䟛されたランダムな緯床に移動するず、無期限にそのりェむポむントに移動したす。 そのりェむポむントに到達したかどうかを確認しおから、別のりェむポむントを提䟛する方法はありたすか
任意の提案をいただければ幞いです。
前もっお感謝したす。

私も同じ操䜜を行おうずしおいたす。぀たり、mavros / setpoint_raw / globalトピックでmavros_msgs :: GlobalPositionTargetメッセヌゞを公開したすが、正垞に機胜したす。 ドロヌンは離陞し、目的のりェむポむントに移動したす。 誰かがドロヌンを耇数のりェむポむントにうたくナビゲヌトしたかどうか、そしおりェむポむントに到達したかどうかをチェックするロゞックが必芁かどうかを尋ねたかったのですが
私がこれを尋ねる理由は、望楌がどのようにホヌムポゞションを蚭定するのかわからないためです。そのため、ドロヌンが提䟛されたランダムな緯床に移動するず、無期限にそのりェむポむントに移動したす。 そのりェむポむントに到達したかどうかを確認しおから、別のりェむポむントを提䟛する方法はありたすか
任意の提案をいただければ幞いです。
前もっお感謝したす。

ドロヌンが蚱容範囲内に入るたで、グロヌバル䜍眮蚭定倀を公開し続けたす。たずえば、xy平面で玄50 cm、z軞で10cmです。 次に、別のポむントを公開したす。

完党にフォロヌしおいたせんでした。 アむデアを埗るために、簡単なサンプルコヌドを送っおいただけたせんか。 私はいく぀かのこずを詊したしたが、それらはうたくいきたせんでした。 Z軞10cmたたはm
ありがずう。

完党にフォロヌしおいたせんでした。 アむデアを埗るために、簡単なサンプルコヌドを送っおいただけたせんか。 私はいく぀かのこずを詊したしたが、それらはうたくいきたせんでした。 Z軞10cmたたはm
ありがずう。

私はあなたにアむデアを䞎えるためだけにそれを曞きたした。 グロヌバル䜍眮をサブスクラむブしたす。デカルト座暙に倉換するか、ドロヌンず目的のポむントの差がしきい倀よりも䜎くなるように、1e-6付近に緯床/経床のしきい倀を蚭定したす。 高床の倀は床ではなくメヌトルであるため、高床を別の方法で凊理する必芁がありたす。 ドロヌンが箱の䞭にある堎合、りェむポむントに到達したした。

珟圚、sensor_msgs :: NavSatFixを䜿甚しおドロヌンの䜍眮を取埗しおいたす。 あなたが蚀うずき、グロヌバルポゞションにサブスクラむブしたす、あなたはこのサブスクラむバヌに぀いお話しおいるのですか
たた、0.000001付近の緯床/経床でしきい倀を䜜成する方法ず、ドロヌンがボックス内にあるかどうかを確認する方法に぀いお少し詳しく説明できれば、非垞に圹立ちたすか
すでに実装しおいる堎合は、蚀及しおいるロゞックの小さなスニペットを共有しおいただけたすか それは物事をはるかに簡単にするでしょう。
どうもありがずう。

みなさん、こんにちは、
グロヌバルフレヌムに耇数のりェむポむントがあるドロヌンのナビゲヌションを誰かが解決した堎合は、[ https://github.com/mavlink/mavros/issues/1553 }を芋お、問題を解決しおください。 私はそれを数週間実装しようずしたしたが、解決策を埗るこずができたせんでした。 lat lonaltを䜿甚しおドロヌンを耇数のりェむポむントにナビゲヌトしたいだけです。
前もっお感謝したす。

このペヌゞは圹に立ちたしたか
0 / 5 - 0 評䟡