aaa

Dependencies:   mbed BNO055_fusion Adafruit_GFX ros_lib_kinetic

Revision:
8:80708bacb5b5
Parent:
6:20a32baeff79
Child:
10:3b47050b1652
diff -r b240464868e8 -r 80708bacb5b5 odometry/odom.h
--- a/odometry/odom.h	Tue Dec 18 22:06:34 2018 +0000
+++ b/odometry/odom.h	Thu Dec 20 20:54:35 2018 +0000
@@ -30,12 +30,9 @@
         
         float offset_angle_;
         float actual_angle_;
-
-        Vec3f world_;
-        Vec3f velocity_;
-        Vec3f world_velocity_;
+        Vec3f odom_;
         
-        //For amcl
+        //For ROS
         bool court_color_;
         Vec3f initialpose_;
         Vec3f drift_;
@@ -43,6 +40,9 @@
         //For TIM IT
         Ticker *it_tick;
         
+        //For OLED
+        bool enable_oled_;
+        
     public:
         //Constructor
         Odom(){
@@ -56,8 +56,16 @@
         //Update world angle
         void update_angle();
         
-        void reset_world(){
-            world_ = Vec3f(0, 0, 0);   
+        void reset_odom(){
+            odom_.x(0.0);
+            odom_.y(0.0);
+            odom_.angle(0.0);
+        }
+        
+        void reset_drift(){
+            drift_.x(0.0);
+            drift_.y(0.0);
+            drift_.angle(0.0);
         }
         
         //現在角度を0度に設定
@@ -69,8 +77,8 @@
         bool get_court_color(){
             return court_color_;   
         }
-        Vec3f get_world(){
-            return world_;   
+        Vec3f get_odom(){
+            return odom_;   
         }
         Vec3f get_initialpose(){
             return initialpose_;   
@@ -78,7 +86,10 @@
         Vec3f get_drift(){
             return drift_;   
         }
-        
+        bool get_enable_oled(){
+            return enable_oled_;   
+        }
+            
         //Setter
         void set_court_color(bool court_color){
             court_color_ = court_color;   
@@ -86,12 +97,12 @@
         void set_initialpose(Vec3f initialpose){
             initialpose_ = initialpose;   
         }
-        void set_world(Vec3f world){
-            world_ = world;   
-        }
         void set_drift(Vec3f drift){
             drift_ = drift;   
         }
+        void set_enable_oled(bool enable_oled){
+            enable_oled_ = enable_oled;   
+        }
         
     private:
         void initialize();
@@ -115,8 +126,9 @@
             odom_ = odom;   
         }
         
-        void reset_pose(){
-            odom_->reset_world(); 
+        void reset_odometry(){
+            odom_->reset_odom();
+            odom_->reset_drift(); 
             odom_->set_offset_angle_zero();  
         }
         
@@ -124,28 +136,42 @@
         bool get_court_color(){
             return odom_->get_court_color();   
         }
+        
         Vec3f get_initial_pose(){
             return odom_->get_initialpose();
         }
-        Vec3f get_pose(){
-            return odom_->get_world() + odom_->get_initialpose() + odom_->get_drift();   
+        Vec3f get_odom(){
+            return odom_->get_odom();
         }
         Vec3f get_drift(){
             return odom_->get_drift();
         }
         
+        Vec3f get_pose(){
+            return get_initial_pose() + get_odom();
+        }
+        Vec3f get_world(){
+            return get_pose() + get_drift();   
+        }
+        
+        bool get_enable_oled(){
+            return odom_->get_enable_oled();   
+        }
+        
         //Setter
-        void set_initial_pose(Vec3f initialpose){
-            odom_->set_initialpose(initialpose);
-        }
         void set_court_color(bool court_color){
             odom_->set_court_color(court_color);   
         }
-        void set_pose(Vec3f pose){
-            odom_->set_world(pose);   
+        
+        void set_initial_pose(Vec3f initialpose){
+            odom_->set_initialpose(initialpose);//CANから受け取った初期位置の情報を格納するためのメソッド
         }
         void set_drift(Vec3f drift){
-            odom_->set_drift(drift);
+            odom_->set_drift(drift);//ROSからサブスクライブしたデータを格納するためのメソッド
+        }
+        
+        void set_enable_oled(bool enable_oled){
+            odom_->set_enable_oled(enable_oled);   
         }
     
 };