okvis
将文件okvis_app_synchronous.cpp中代码修改为:
class PoseViewer
{
public:
EIGEN_MAKE_ALIGNED_OPERATOR_NEW
constexpr static const double imageSize = 500.0;
PoseViewer()
{
cv::namedWindow("OKVIS Top View");
_image.create(imageSize, imageSize, CV_8UC3);
drawing_ = false;
showing_ = false;
}
// this we can register as a callback
void publishFullStateAsCallback(
const okvis::Time & t, const okvis::kinematics::Transformation & T_WS,
const Eigen::Matrix<double, 9, 1> & speedAndBiases,
const Eigen::Matrix<double, 3, 1> & /*omega_S*/)
{
Eigen::Vector3d p_WS_W = T_WS.r();
Eigen::Quaterniond q_WS = T_WS.q();
std::ofstream foutC("/home/slam/okvis/trajecty.txt", std::ios::app);
foutC.setf(std::ios::fixed, std::ios::floatfield);
foutC.precision(5);
foutC << t.sec << "." << t.nsec << " "
<< p_WS_W(0) << " " << p_WS_W(1) << " " << p_WS_W(2) << " "
<< q_WS.x() << " " << q_WS.y() << " " << q_WS.z() << " " << q_WS.w()
<< std::endl;
foutC.close();
Eigen::Vector3d p_WS_W = T_WS.r();
Eigen::Quaterniond q_WS = T_WS.q();
std::ofstream foutC("/home/slam/okvis/trajecty.txt", std::ios::app);
foutC.setf(std::ios::fixed, std::ios::floatfield);
foutC.precision(5);
foutC << t.sec << "." << t.nsec << " "
<< p_WS_W(0) << " " << p_WS_W(1) << " " << p_WS_W(2) << " "
<< q_WS.x() << " " << q_WS.y() << " " << q_WS.z() << " " << q_WS.w()
<< std::endl;
foutC.close();
找到代码:
std::atomic_bool showing_;
在后面添加:
std::ofstream ofs_traj;

浙公网安备 33010602011771号