void Broadcaster::gyroCallback(const geometry_msgs::Vector3::ConstPtr& msg) { dt = ros::Time::now().toSec() - prevt; gyro.setX(msg->x); gyro.setY(msg->y); gyro.setZ(msg->z); angularVel.setX(gyro.x()); angularVel.setY(gyro.y()); angularVel.setZ(gyro.z()); filterCoeff = timeConst / (timeConst + dt); // Use accelerometer and magnetometer data to correct gyro drift correctOrientation(); updateRotation(); prevt = ros::Time::now().toSec(); // std::cout << "angularVel x: " << angularVel.x() << std::endl; // std::cout << "angularVel y: " << angularVel.y() << std::endl; // std::cout << "angularVel z: " << angularVel.z() << std::endl; // std::cout << "----" << std::endl; }
// TODO: very inefficient!! void ImageProvider::correctOrientation (QString fileName, Image &thumb) { QImage temp_image = thumb.toQImage(); correctOrientation( fileName, temp_image); thumb = Image::fromQImage( temp_image ); }