This program is porting rosserial_arduino for mbed http://www.ros.org/wiki/rosserial_arduino This program supported the revision of 169 of rosserial. This program contains an example.

Dependencies:   rosserial_mbed_lib mbed Servo

Committer:
nucho
Date:
Fri Aug 19 09:06:16 2011 +0000
Revision:
0:06fc856e99ca
Child:
1:098e75fd5ad2

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
nucho 0:06fc856e99ca 1 //#define COMPLIE_FLOAT64_CODE_ROSSERIAL
nucho 0:06fc856e99ca 2 #ifdef COMPILE_FLOAT64_CODE_ROSSERIAL
nucho 0:06fc856e99ca 3
nucho 0:06fc856e99ca 4 /*
nucho 0:06fc856e99ca 5 * rosserial::std_msgs::Float64 Test
nucho 0:06fc856e99ca 6 * Receives a Float64 input, subtracts 1.0, and publishes it
nucho 0:06fc856e99ca 7 */
nucho 0:06fc856e99ca 8
nucho 0:06fc856e99ca 9 #include "mbed.h"
nucho 0:06fc856e99ca 10 #include <ros.h>
nucho 0:06fc856e99ca 11 #include <std_msgs/Float64.h>
nucho 0:06fc856e99ca 12
nucho 0:06fc856e99ca 13
nucho 0:06fc856e99ca 14 ros::NodeHandle nh;
nucho 0:06fc856e99ca 15
nucho 0:06fc856e99ca 16 float x;
nucho 0:06fc856e99ca 17 DigitalOut myled(LED1);
nucho 0:06fc856e99ca 18
nucho 0:06fc856e99ca 19 void messageCb( const std_msgs::Float64& msg) {
nucho 0:06fc856e99ca 20 x = msg.data - 1.0;
nucho 0:06fc856e99ca 21 myled = !myled; // blink the led
nucho 0:06fc856e99ca 22 }
nucho 0:06fc856e99ca 23
nucho 0:06fc856e99ca 24 std_msgs::Float64 test;
nucho 0:06fc856e99ca 25 ros::Subscriber<std_msgs::Float64> s("your_topic", &messageCb);
nucho 0:06fc856e99ca 26 ros::Publisher p("my_topic", &test);
nucho 0:06fc856e99ca 27
nucho 0:06fc856e99ca 28 int main() {
nucho 0:06fc856e99ca 29 nh.initNode();
nucho 0:06fc856e99ca 30 nh.advertise(p);
nucho 0:06fc856e99ca 31 nh.subscribe(s);
nucho 0:06fc856e99ca 32 while (1) {
nucho 0:06fc856e99ca 33 test.data = x;
nucho 0:06fc856e99ca 34 p.publish( &test );
nucho 0:06fc856e99ca 35 nh.spinOnce();
nucho 0:06fc856e99ca 36 wait_ms(10);
nucho 0:06fc856e99ca 37 }
nucho 0:06fc856e99ca 38 }
nucho 0:06fc856e99ca 39 #endif