ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

noel's profile - activity

2014-07-28 16:13:41 -0500 received badge  Famous Question (source)
2014-07-25 09:50:34 -0500 received badge  Notable Question (source)
2014-05-28 03:44:39 -0500 received badge  Popular Question (source)
2014-04-21 22:19:24 -0500 received badge  Editor (source)
2014-04-21 22:16:21 -0500 asked a question publish error

i am doing a project of robot dicking station. This program is for three infrared receivers and three infrared emitters, i don't know why it happened. Could anybody help me ?

#include <IRremote.h>
#include <IRremoteInt.h>

#include <ros.h>
#include <std_msgs/String.h>


ros::NodeHandle  nh;

std_msgs::String str_msg;
ros::Publisher st("state", &str_msg);


char state[10] = "cent-left";
char state_1[11] = "cent-right";
char state_2[10] = "cent-cent";
char state_3[11] = "right-left";
char state_4[12] = "right-right";
char state_5[11] = "right-cent";
char state_6[10] = "left-left";
char state_7[11] = "left-right";
char state_8[10] = "left-cent";


int RECV_PIN = 11;
int RECV_PIN_2= 9;
int RECV_PIN_1= 13;

IRrecv irrecv(RECV_PIN);
IRrecv irrecv1(RECV_PIN_1);
IRrecv irrecv2(RECV_PIN_2);

decode_results results;

void setup()
{
   irrecv.enableIRIn();
  irrecv1.enableIRIn();
  irrecv2.enableIRIn();
  nh.initNode();
  nh.advertise(st);




}

void loop()
{ 
  long Right=0xEF1F1509;
  long left=0xCC36FF5E;

  if (irrecv.decode(&results)) 
  { 
  long val2= results.value;  
     if(val2==0xEF1F1509)
    { 
       str_msg.data = state;
    } else if(val2==0xCC36FF5E)
    {
       str_msg.data = state_1;
    }
     else {
         str_msg.data = state_2;
         }       
       st.publish( &str_msg );

  }
  if (irrecv1.decode(&results))
  {
    long val=results.value;
    if (val==0xEF1F1509)
    {
    str_msg.data=state_3;
    } else
    if (val==0xCC36FF5E)
    {
    str_msg.data=state_4;
    }else
    {
      str_msg.data=state_5;
    }
    st.publish(&str_msg);
  }
    if (irrecv2.decode(&results))
  {
    long val1=results.value;
    if (val1==0xEF1F1509)
    {
    str_msg.data=state_6;
    } else
    if (val1==0xCC36FF5E)
    {
    str_msg.data=state_7;
    }else
    {
      str_msg.data=state_8;
    }
    st.publish(&str_msg);
  }
  nh.spinOnce();
  delay(1500);
}

Console:

[INFO] [WallTime: 1398132348.674181] ROS Serial Python Node
[INFO] [WallTime: 1398132348.682297] Connecting to /dev/ttyACM0 at 57600 baud
[ERROR] [WallTime: 1398132365.792995] Unable to sync with device; possible link problem or link software version mismatch such as hydro rosserial_python with groovy Arduino