function update_cb(){
    robot_calc();
    track_calc();
    
    m_trans.set_translation(carcass, robot.geom.x*sys.scale, robot.geom.z*sys.scale, -robot.geom.y*sys.scale);
    m_trans.set_rotation_euler(carcass, 0, -robot.geom.a, 0);

    var al = robot.track.left/robot.wheel.R;
    var ar = robot.track.right/robot.wheel.R;
    m_trans.set_rotation_euler_rel(wheel_FL, -al, 0, 0);
    m_trans.set_rotation_euler_rel(wheel_BL, -al, 0, 0);
    m_trans.set_rotation_euler_rel(wheel_FR, -ar, 0, 0);
    m_trans.set_rotation_euler_rel(wheel_BR, -ar, 0, 0);

    for(var i=0;i<robot.track.count*2;i++){
        var track=tracks[i];
        m_trans.set_rotation_euler(track, robot.track.pos[i].a, -robot.geom.a, 0);
        m_trans.set_translation_obj_rel(track, robot.track.pos[i].z*sys.scale, robot.track.pos[i].x*sys.scale, robot.track.pos[i].y*sys.scale, carcass);
    }

    //dt+=0.1;
    //m_lights.set_day_time(dt);

    //var dmin = 7+robot.move*5;
    //var dmax = dmin+robot.move*5;
    //m_cons.append_follow(camobj, carcass, dmin, dmax)

}
function update_cb(){
    robot_calc();
    track_calc();
    
    m_trans.set_translation(carcass, robot.geom.x*sys.scale, robot.geom.z*sys.scale, -robot.geom.y*sys.scale);
    m_trans.set_rotation_euler(carcass, 0, -robot.geom.a, 0);

    var al = robot.track.left/robot.wheel.R;
    var ar = robot.track.right/robot.wheel.R;
    m_trans.set_rotation_euler_rel(wheel_FL, -al, 0, 0);
    m_trans.set_rotation_euler_rel(wheel_BL, -al, 0, 0);
    m_trans.set_rotation_euler_rel(wheel_FR, -ar, 0, 0);
    m_trans.set_rotation_euler_rel(wheel_BR, -ar, 0, 0);

    for(var i=0;i<robot.track.count*2;i++){
        var track=tracks[i];
        m_trans.set_rotation_euler(track, robot.track.pos[i].a, -robot.geom.a, 0);
        m_trans.set_translation_obj_rel(track, robot.track.pos[i].z*sys.scale, robot.track.pos[i].x*sys.scale, robot.track.pos[i].y*sys.scale, carcass);
    }

    
}