序列化和反序列化KDL :: Tree

时间:2019-02-21 12:27:38

标签: c++ serialization

我总是使用KDL parser从URDF文件生成KDL::Tree。不幸的是,这一次由于项目限制,我无法使用KDL解析器。

因此,或者,我想到了在C ++中序列化和反序列化KDL::Tree实例。我通过以下方式使用了boost序列化模块:

void save_tree(const Tree& s, const char* filename)
{
    std::ofstream ofs(filename);
    boost::archive::text_oarchive oa(ofs);
    oa << s;
}

void restore_tree(Tree& s, const char* filename)
{
    std::ifstream ifs(filename);
    boost::archive::text_iarchive ia(ifs);
    ia >> s;
}


save_tree(my_tree, filename.c_str());
Tree new_tree;
restore_tree(new_tree, filename.c_str());

由于类Tree没有序列化方法,因此无法正常工作。

serialize_kdl_tree.cpp:72:11:   required from here
/usr/include/boost/serialization/access.hpp:118:9: error: ‘class KDL::Tree’ has no member named ‘serialize’
         t.serialize(ar, file_version);
         ^

请注意,我只需要机器人的骨架模型(没有任何图形),因为我只需要执行运动学即可。有人可以快速提及解决方法吗?

0 个答案:

没有答案