aaa

Dependencies:   mbed BNO055_fusion Adafruit_GFX ros_lib_kinetic

main.cpp

Committer:
nakedt555
Date:
2018-12-07
Revision:
2:086272a2da1c
Parent:
1:bdd17feaa4ce
Child:
3:a45557a0dcb8

File content as of revision 2:086272a2da1c:

#include "mbed.h"

#include "myRos.h"
#include <ros.h>
#include <ros/time.h>
#include <std_msgs/Empty.h>

#include "odom.h"

//prototype
void odom_update_callback();

//Create subscliber
ros::Subscriber<std_msgs::Empty> ack_sub("nucleo/ack_from_pc", &ack_from_pc_cb);

//Initialize GPIO
DigitalOut myled(LED1);
DigitalOut  led0(PC_0);
DigitalOut  led1(PC_1);
DigitalOut  led2(PB_0);
DigitalIn   mysw(PC_13);

//Initialize ODOM
Odom odom;
    
int main() {
    //Initialize TIM
    Timer GetTick;
    GetTick.start();
    uint32_t debug_ts = 0;
    uint32_t ros_loop_ts = 0;
    
    //Set TIM IT Callback
    Ticker odom_tick;
    odom_tick.attach(&odom_update_callback, 0.02);
        
    //Initialize ROS
    My_Ros my_ros;
    my_ros.set_subscliber(ack_sub);

    while(1) {
        //For debug
        if(debug_ts <= GetTick.read_ms()){
            debug_ts = GetTick.read_ms() + 20;
            led0 = !led0;
        }

        //For myRos loop
        if(ros_loop_ts <= GetTick.read_ms()){        
            ros_loop_ts = GetTick.read_ms() + 10;
            my_ros.loop();
        }
        
        
        //角度計算用:ポーリングに置いとく
        odom.update_angle();
    }
}

void odom_update_callback(){
    odom.update_it_cb();
}