ошибка: отсутствует соответствующая функция для вызова 'ompl :: tools :: SelfConfig :: getDefaultNearestNeighbors (ompl ::ometric :: RRT *)' - PullRequest
0 голосов
/ 01 октября 2018

при компиляции моего собственного проекта я получил сообщение об ошибке:

myRRT.cc:80:78: error: no matching function for call to ‘ompl::tools::SelfConfig::getDefaultNearestNeighbors(ompl::geometric::RRT*)’
        nn_.reset(tools::SelfConfig::getDefaultNearestNeighbors<Motion *>(this));
                                                                              ^
In file included from /home/htf/Downloads/Active-ORB-SLAM2-octomap/src/myRRT.cc:36:0:
/opt/ros/indigo/include/ompl/tools/config/SelfConfig.h:93:42: note: candidate: template<class _T> static ompl::NearestNeighbors<_T>* ompl::tools::SelfConfig::getDefaultNearestNeighbors(const StateSpacePtr&)
             static NearestNeighbors<_T>* getDefaultNearestNeighbors(const base::StateSpacePtr &space)
                                          ^
/opt/ros/indigo/include/ompl/tools/config/SelfConfig.h:93:42: note:   template argument deduction/substitution failed:
/home/htf/Downloads/Active-ORB-SLAM2-octomap/src/myRRT.cc:80:78: note:   cannot convert ‘(ompl::geometric::RRT*)this’ (type ‘ompl::geometric::RRT*’) to type ‘const StateSpacePtr& {aka const boost::shared_ptr<ompl::base::StateSpace>&}’
        nn_.reset(tools::SelfConfig::getDefaultNearestNeighbors<Motion *>(this))

это часть моего исходного кода,

void ompl::geometric::RRT::setup()
{
    Planner::setup();
    tools::SelfConfig sc(si_, getName());
    sc.configurePlannerRange(maxDistance_);

    if (!nn_)
       nn_.reset(tools::SelfConfig::getDefaultNearestNeighbors<Motion *>(this));
    nn_->setDistanceFunction(std::bind(&RRT::distanceFunction, this, std::placeholders::_1, std::placeholders::_2));
}

это один из примеров файлачто я упоминал RRT кто-нибудь сталкивался с подобным вопросом?Я новичок в C ++, надеюсь получить некоторые подсказки.заранее спасибо.

1 Ответ

0 голосов
/ 03 октября 2018

ompl::tools::SelfConfig::getDefaultNearestNeighbors(ompl::geometric::RRT*), поэтому вы должны изменить его следующим образом:

nn_.reset(tools::SelfConfig::getDefaultNearestNeighbors<Motion>(*this)); возможно motion является шаблоном и (* this) означает, что вы хотите вызывать объект, используя (* this) Я такжезеленая рука.Я не уверен.

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