Example #1
0
int main(int argc, char **argv)
{
  //ROS declaration
  ros::init(argc, argv, "motorGo");
  ros::NodeHandle my_node;
  ros::Rate loop_rate(10);

  ros::NodeHandle priv_node("~");

  Robot platform(priv_node);
  Scribe scribe(my_node, "cmd_vel", platform);
  Poete poete(my_node, "odom");
  //Lifter lift(my_node, priv_node);
  Filter filt;
  
  tf::TransformBroadcaster odom_broadcaster;
  nav_msgs::Odometry nav;
  
  int flag=0;
  //Creation de Platform et test de verbose option
  if ( argc > 1 ) {// argc should be 2 for correct execution
    for(int i =0;i<argc;i++&&flag==0){
      if (strcmp(argv[i],"--verbose")&&flag==0){
	std::cout<<"VERBOSE MODE ON"<<std::endl;
	scribe.setVerbose();
	poete.setVerbose();
	platform.setVerbose();
	flag=1;
      }
    }	
  }
  
  while(ros::ok()){
    platform.odometry();
    //if we read correctly
    if(platform.getControl().getReadState()){
      nav=platform.getOdom();
      if(platform.getControl().getReadState()==true){
	filt.add(nav);
	nav=filt.filtering();
	poete.publish(nav);
	publishTransform(nav, odom_broadcaster);
      }
    }
    ros::spinOnce();
    loop_rate.sleep();
  
  }
  ros::spin();
}