Browse Source

ros: mavlink onboard node: send attitude via mavlink

sbg
Thomas Gubler 10 years ago
parent
commit
3e5cbfcf77
  1. 2
      NuttX
  2. 1
      launch/multicopter.launch
  3. 24
      src/platforms/ros/nodes/mavlink/mavlink.cpp
  4. 4
      src/platforms/ros/nodes/mavlink/mavlink.h

2
NuttX

@ -1 +1 @@ @@ -1 +1 @@
Subproject commit 11afcdfee6a3961952dd92f02c1abaa4756b115f
Subproject commit 787aca971a86219d4e791100646b54ed8245a733

1
launch/multicopter.launch

@ -9,6 +9,7 @@ @@ -9,6 +9,7 @@
<node pkg="px4" name="position_estimator" type="position_estimator"/>
<node pkg="px4" name="mc_att_control" type="mc_att_control"/>
<node pkg="px4" name="mc_pos_control" type="mc_pos_control"/>
<node pkg="px4" name="mavlink" type="mavlink"/>
<!-- <node pkg="rosbag" type="record" name="record" output="screen" args="-a -O px4_multicopter"/> -->
</group>

24
src/platforms/ros/nodes/mavlink/mavlink.cpp

@ -47,10 +47,11 @@ @@ -47,10 +47,11 @@
using namespace px4;
Mavlink::Mavlink() :
_n()
_n(),
_v_att_sub(_n.subscribe("vehicle_attitude", 10, &Mavlink::VehicleAttitudeCallback, this))
{
_link = mavconn::MAVConnInterface::open_url("udp://localhost:14551@localhost:14552");
_link = mavconn::MAVConnInterface::open_url("udp://localhost:14565@localhost:14560");
}
int main(int argc, char **argv)
@ -60,3 +61,22 @@ int main(int argc, char **argv) @@ -60,3 +61,22 @@ int main(int argc, char **argv)
ros::spin();
return 0;
}
void Mavlink::VehicleAttitudeCallback(const px4::vehicle_attitudeConstPtr &msg)
{
mavlink_message_t msg_m;
mavlink_msg_attitude_quaternion_pack_chan(
_link->get_system_id(),
_link->get_component_id(),
_link->get_channel(),
&msg_m, //XXX hardcoded
get_time_micros() / 1000,
msg->q[0],
msg->q[1],
msg->q[2],
msg->q[3],
msg->rollspeed,
msg->pitchspeed,
msg->yawspeed);
_link->send_message(&msg_m);
}

4
src/platforms/ros/nodes/mavlink/mavlink.h

@ -42,6 +42,7 @@ @@ -42,6 +42,7 @@
#include "ros/ros.h"
#include <mavconn/interface.h>
#include <px4/vehicle_attitude.h>
namespace px4
{
@ -57,6 +58,9 @@ protected: @@ -57,6 +58,9 @@ protected:
ros::NodeHandle _n;
mavconn::MAVConnInterface::Ptr _link;
ros::Subscriber _v_att_sub;
void VehicleAttitudeCallback(const px4::vehicle_attitudeConstPtr &msg);
};
}

Loading…
Cancel
Save