aaa

Dependencies:   mbed BNO055_fusion Adafruit_GFX ros_lib_kinetic

myRos.h

Committer:
nakedt555
Date:
2018-12-07
Revision:
1:bdd17feaa4ce
Parent:
0:10f626cf3ec4
Child:
3:a45557a0dcb8

File content as of revision 1:bdd17feaa4ce:

#ifndef _MY_ROS_H_
#define _MY_ROS_H_

#include "type.h"
#include "odom.h"

#include <mbed.h>
#include <ros.h>
#include <ros/time.h>
#include <std_msgs/Bool.h>
#include <geometry_msgs/Point.h>
#include <geometry_msgs/PointStamped.h>
#include <std_msgs/Empty.h>

#define COURT_RED   false
#define COURT_BLUE  true

void ack_from_pc_cb(const std_msgs::Empty&);

class My_Ros : public Odom_Abstract
{
    public:
    
    private:
        ros::NodeHandle nh_;
        bool court_color_;
        Vec3f initial_pose_;
        Vec3f pose_;            //current position(odom -> base_footprint)
        
    public:
        //Constructor
        My_Ros() : court_color_(COURT_RED){
            //ROS node initialize
            nh_.getHardware()->setBaud(115200);
            nh_.initNode();
            
            initialize();
        }
        
        //Loop function
        void loop();
                
        //Setter
        void set_initial_pose(Vec3f initial_pose){
           initial_pose_ = initial_pose;
        }
        void set_court_color(bool court_color){
            court_color_ = court_color;   
        }
        template<typename SubscriberT>
        void set_subscliber(SubscriberT& s){
            nh_.subscribe(s);
        }
        
        //amcl parameter の初期化
        void enable_initialize_amcl();
        
    private:
        //Initialise
        void initialize();
        
        //Publisher
        void court_color_publisher();
        void initial_pose_publisher();
        void pose_publisher();
        
        //Amcl parameter
        void set_amcl_parameter();
};

#endif