class robotinoNavigator{ public: robotinoNavigator(); void spin(){return;}; // designed to be inherited void setRobotinoVelocity(float vx, float vy, float omega); // sends a velocity message to robotino void setRobotinoGlobalVel(float vx,float vy, float omega); // sets the velocity of the robotion in global reference frame struct pose{ float array[6]; bool gripperClosed; } BHAPose; void setBHAPose(pose myPose); // set the bhapose using a pose object void setBHAPose(float x0,float x1,float x2,float x3,float x4,float x5, bool gripper); // set bha pose using primitives void sendPoseMsg(); // send the pose message. float targetPhi(float angle); // returns a velocity to hold orientation at angle bool setOdom(float x, float y, float phi); // adjustable parameters float targetPhiGain; // gain for proportional controll on in targetPhi() float minimumLinearVelocity; // x or y velocity below this setting will be set to 0 float minimumAngularVelocity; // anguluar velocity below this setting will be set to 0 potentialField::point getRobotinoPoint(); private: /* * data */ double x_,y_,phi_; // the position of the robotino /* * callback functions */ void odomCallback(const nav_msgs::Odometry::ConstPtr& msg); /* * publishers/subscribers */ ros::NodeHandle n; ros::Publisher vel_pub; ros::Publisher bha_pub; ros::Publisher gripper_pub; ros::Subscriber odom_sub; /* * services */ ros::ServiceClient odom_reset; };