Example of a Publisher Subscriber ROSSerial node for Mbed enabled boards using String messages.

Dependencies:   mbed ros_lib_kinetic

Dependents:   roscar_ver_20190501_anglechange_copy

Committer:
FernandoLG
Date:
Fri Aug 24 21:21:46 2018 +0000
Revision:
4:26006d815db0
Parent:
3:6690a73cf982
ROS-Mbed Publisher Subscriber example with String Messages - Working

Who changed what in which revision?

UserRevisionLine numberNew contents of line
FernandoLG 0:2595562b0c61 1 /*
FernandoLG 0:2595562b0c61 2 * rosserial Subscriber Example
FernandoLG 0:2595562b0c61 3 * Blinks an LED on callback
FernandoLG 0:2595562b0c61 4 */
FernandoLG 0:2595562b0c61 5 #include "mbed.h"
FernandoLG 0:2595562b0c61 6 #include <ros.h>
FernandoLG 4:26006d815db0 7 #include <std_msgs/String.h>
FernandoLG 0:2595562b0c61 8
FernandoLG 0:2595562b0c61 9 ros::NodeHandle nh;
FernandoLG 0:2595562b0c61 10 DigitalOut myled(LED1);
FernandoLG 0:2595562b0c61 11
FernandoLG 4:26006d815db0 12 std_msgs::String commandRead;
FernandoLG 0:2595562b0c61 13 ros::Publisher chatter("chatter", &commandRead);
FernandoLG 0:2595562b0c61 14
FernandoLG 0:2595562b0c61 15 // /*
FernandoLG 4:26006d815db0 16 void handlerFunction(const std_msgs::String& commandSend){
FernandoLG 2:8b3e4bfa29e5 17 commandRead = commandSend;
FernandoLG 0:2595562b0c61 18 }
FernandoLG 0:2595562b0c61 19 // */
FernandoLG 0:2595562b0c61 20
FernandoLG 4:26006d815db0 21 ros::Subscriber<std_msgs::String> sub("cmd_vel", &handlerFunction);
FernandoLG 0:2595562b0c61 22
FernandoLG 0:2595562b0c61 23 int main() {
FernandoLG 0:2595562b0c61 24 nh.initNode();
FernandoLG 0:2595562b0c61 25 nh.subscribe(sub);
FernandoLG 0:2595562b0c61 26 nh.advertise(chatter);
FernandoLG 1:fb8f963047b0 27
FernandoLG 4:26006d815db0 28 char initialValue[2] = "X";
FernandoLG 4:26006d815db0 29 commandRead.data= initialValue;
FernandoLG 0:2595562b0c61 30
FernandoLG 0:2595562b0c61 31 while (1) {
FernandoLG 0:2595562b0c61 32 chatter.publish( &commandRead);
FernandoLG 0:2595562b0c61 33 nh.spinOnce();
FernandoLG 1:fb8f963047b0 34 wait_ms(10);
FernandoLG 0:2595562b0c61 35 }
FernandoLG 0:2595562b0c61 36 }