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 20:26:57 2018 +0000
Revision:
2:8b3e4bfa29e5
Parent:
1:fb8f963047b0
Child:
3:6690a73cf982
ROS-Mbed Publisher Subscriber node example with ROS Char messages.

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 2:8b3e4bfa29e5 7 #include <std_msgs/Char.h>
FernandoLG 0:2595562b0c61 8
FernandoLG 0:2595562b0c61 9 ros::NodeHandle nh;
FernandoLG 0:2595562b0c61 10 DigitalOut myled(LED1);
FernandoLG 0:2595562b0c61 11
FernandoLG 2:8b3e4bfa29e5 12 std_msgs::Char commandRead;
FernandoLG 0:2595562b0c61 13 ros::Publisher chatter("chatter", &commandRead);
FernandoLG 0:2595562b0c61 14
FernandoLG 0:2595562b0c61 15 // /*
FernandoLG 2:8b3e4bfa29e5 16 void handlerFunction(const std_msgs::Char& commandSend){
FernandoLG 2:8b3e4bfa29e5 17 commandRead = commandSend;
FernandoLG 0:2595562b0c61 18 }
FernandoLG 0:2595562b0c61 19 // */
FernandoLG 0:2595562b0c61 20
FernandoLG 2:8b3e4bfa29e5 21 ros::Subscriber<std_msgs::> 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 2:8b3e4bfa29e5 28 commandRead.data= 'X';
FernandoLG 0:2595562b0c61 29
FernandoLG 0:2595562b0c61 30 while (1) {
FernandoLG 0:2595562b0c61 31 chatter.publish( &commandRead);
FernandoLG 0:2595562b0c61 32 nh.spinOnce();
FernandoLG 1:fb8f963047b0 33 wait_ms(10);
FernandoLG 0:2595562b0c61 34 }
FernandoLG 0:2595562b0c61 35 }