invalid conversion from void(*) to ros

asked 2016-09-07 23:07:58 -0500

AyeSir gravatar image

Hi , i am new to ROS and arduino . i had some problems with my codes . Do you guys mind helping me take a look at my codes ?

#include <ros.h> #include <std_msgs/Int32.h> #include <std_msgs/Int16.h> #include <std_msgs/Float32.h> #include <std_msgs/String.h> /**********************/ /*  Variables setup   */ /**********************/ int interruptPin = 2; char bufferX[9]; char bufferY[9]; String str = ""; String str_ = ""; bool go = false; int R; int L; std_msgs::Int32 lwheel_msg; std_msgs::Int32 rwheel_msg; std_msgs::Float32 lmotor_msg; std_msgs::Float32 rmotor_msg; /***********************/ /*  Subscribed Nodes   */ /***********************/ ros::NodeHandle nh; ros::Publisher lwheel("lwheel", &lwheel_msg); ros::Publisher rwheel("rwheel", &rwheel_msg); void lmotorCb(){
    Serial1.print("V21=");
    Serial1.println(L);
    Serial1.println("V31=1"); } void rmotorCb(){
    Serial1.print("V22=");
    Serial1.println(R);
    Serial1.println("V31=1"); } ros::Subscriber<std_msgs::Float32> lwheel_vtarget("lwheel_vtarget", lmotorCb); ros::Subscriber<std_msgs::Float32> rwheel_vtarget("rwheel_vtarget", rmotorCb); void setup() {
  
  Serial.begin(115200);
  Serial1.begin(38400);
  pinMode(interruptPin, INPUT);
  
  UCSR1C = (UCSR1C & 0xCF) | (0b11 << 4);  // Enable odd parity

  /**********************/
  /*   ROS Node setup   */
  /**********************/
  
  nh.getHardware()->setBaud(115200);
  nh.initNode();
  nh.subscribe(lwheel_vtarget);
  nh.subscribe(rwheel_vtarget);
  nh.advertise(lwheel);
  nh.advertise(rwheel);
  
} void loop() {
  
  //Fetching encoder line
  Serial1.find('=');

  str = Serial1.readStringUntil(',');
  str_ = Serial1.readStringUntil('\n');
  
  strncpy(bufferX, str.c_str(), 9); //String to char
  rwheel_msg.data = (unsigned int)strtol(&bufferX[1], NULL, 16);

  strncpy(bufferY, str_.c_str(), 9); //String to char
  lwheel_msg.data = (unsigned int)strtol(&bufferY[1], NULL, 16);
  
  lwheel.publish(&lwheel_msg);
  nh.spinOnce();
  rwheel.publish(&rwheel_msg);
  nh.spinOnce();
  
  /**************************************/
  /* Tesiting routine (use when needed) */
  /**************************************/
  /*   Serial.print("Left wheel: ");   Serial.print(lwheel_msg.data);   Serial.print(" - Right wheel: ");   Serial.print(rwheel_msg.data);   Serial.print("\n");   */
  
} 

And this is the error shown

/tmp/arduino_modified_sketch_623299/AMC-8004.ino:52:77: warning: invalid conversion from 'void ()()' to 'ros::Subscriber<std_msgs::float32>::CallbackT {aka void ()(const std_msgs::Float32&)}' [-fpermissive] ros::Subscriber<std_msgs::float32> lwheel_vtarget("lwheel_vtarget", lmotorCb); ^

edit retag flag offensive close merge delete