ros example: send rc_channels message

This commit is contained in:
Thomas Gubler
2014-11-05 15:03:00 +01:00
parent 53a40dc986
commit 1e9f431cf1
5 changed files with 24 additions and 16 deletions
+8 -8
View File
@@ -33,6 +33,7 @@
// %EndTag(MSG_HEADER)%
#include <sstream>
#include <px4/rc_channels.h>
/**
* This tutorial demonstrates simple sending of messages over the ROS system.
@@ -80,7 +81,7 @@ int main(int argc, char **argv)
* buffer up before throwing some away.
*/
// %Tag(PUBLISHER)%
ros::Publisher chatter_pub = n.advertise<std_msgs::String>("chatter", 1000);
ros::Publisher rc_channels_pub = n.advertise<px4::rc_channels>("rc_channels", 1000);
// %EndTag(PUBLISHER)%
// %Tag(LOOP_RATE)%
@@ -100,15 +101,14 @@ int main(int argc, char **argv)
* This is a message object. You stuff it with data, and then publish it.
*/
// %Tag(FILL_MESSAGE)%
std_msgs::String msg;
px4::rc_channels msg;
std::stringstream ss;
ss << "hello world " << count;
msg.data = ss.str();
ros::Time time = ros::Time::now();
msg.timestamp_last_valid = time.sec * 1e6 + time.nsec;
// %EndTag(FILL_MESSAGE)%
// %Tag(ROSCONSOLE)%
px4_warnx("%s", msg.data.c_str());
px4_warnx("%lu", msg.timestamp_last_valid);
// %EndTag(ROSCONSOLE)%
/**
@@ -118,7 +118,7 @@ int main(int argc, char **argv)
* in the constructor above.
*/
// %Tag(PUBLISH)%
chatter_pub.publish(msg);
rc_channels_pub.publish(msg);
// %EndTag(PUBLISH)%
// %Tag(SPINONCE)%
@@ -134,4 +134,4 @@ int main(int argc, char **argv)
return 0;
}
// %EndTag(FULLTEXT)%
// %EndTag(FULLTEXT)%
+5 -4
View File
@@ -28,14 +28,15 @@
// %Tag(FULLTEXT)%
#include "ros/ros.h"
#include "std_msgs/String.h"
#include "px4/rc_channels.h"
/**
* This tutorial demonstrates simple receipt of messages over the ROS system.
*/
// %Tag(CALLBACK)%
void chatterCallback(const std_msgs::String::ConstPtr& msg)
void rc_channels_callback(const px4::rc_channels::ConstPtr& msg)
{
ROS_INFO("I heard: [%s]", msg->data.c_str());
ROS_INFO("I heard: [%lu]", msg->timestamp_last_valid);
}
// %EndTag(CALLBACK)%
@@ -76,7 +77,7 @@ int main(int argc, char **argv)
* away the oldest ones.
*/
// %Tag(SUBSCRIBER)%
ros::Subscriber sub = n.subscribe("chatter", 1000, chatterCallback);
ros::Subscriber sub = n.subscribe("rc_channels", 1000, rc_channels_callback);
// %EndTag(SUBSCRIBER)%
/**
@@ -90,4 +91,4 @@ int main(int argc, char **argv)
return 0;
}
// %EndTag(FULLTEXT)%
// %EndTag(FULLTEXT)%