Сериализация и десериализация KDL :: Tree - PullRequest
0 голосов
/ 21 февраля 2019

Я всегда использую KDL-парсер для генерации KDL :: Tree из файла URDF.К сожалению, на этот раз из-за ограничений проекта я не могу использовать анализатор KDL.

Так что, в качестве альтернативы, я подумал о сериализации и десериализации экземпляра KDL::Tree в C ++.Я использовал модуль ускоренной сериализации следующим образом:

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);
         ^

Обратите внимание, что мне просто нужна модель скелета (без какой-либо графики) робота, так как мне нужно только выполнять кинематику.Может кто-нибудь быстро упомянуть об обходном пути, пожалуйста?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...