FawkesMainThread: [EXCEPTION] Thread ‘ClipsNavGraphThread’ has the NavGraphAspect, but no initiliazer is known.

さて,もいちどFawkes-robotino を使ってみる の作業を進めていて,ベアボーン側のfawkes が起動しないので,そのためのメモです.

FawkesMainThread: [EXCEPTION] Thread ‘ClipsNavGraphThread’ has the NavGraphAspect, but no initiliazer is known

ちなみに,上記エラーを出しているのは,fawkes-robotino/fawkes/src/libs/aspect/manager.cpp の AspectManager::init(Thread *thread) です.

      for (i = aspects.begin(); i != aspects.end(); ++i) {
        if (__inifins.find(*i) == __inifins.end()) {
          throw CannotInitializeThreadException("Thread '%s' has the %s, "
                                                "but no initiliazer is known.",
                                                thread->name(), *i);

で,それを呼び出しているのは,おそらく
clips-navgraph/clips_navgraph_thread.h: public fawkes::NavGraphAspect,
です.

とりあえず,manager.cpp の上記のソースの後に,printf(“Thread %s has %s\n”, thread->name(), *i); として正常動作しているスレッドを表示してみます.
Thread ClipsNavGraphThread has LoggingAspect
Thread ClipsNavGraphThread has ConfigurableAspect
とのことです.

これは,clips-navgraph/clips_navgraph_thread.h: のclass ClipsNavGraphThread で書かれている順番に一致しています.
class ClipsNavGraphThread
: public fawkes::Thread,
public fawkes::LoggingAspect,
public fawkes::ConfigurableAspect,
public fawkes::NavGraphAspect,
public fawkes::CLIPSFeature,
public fawkes::CLIPSFeatureAspect,
public fawkes::NavGraph::ChangeListener
{

これの,fawkes::NavGraphAspect のInitiliazer が存在しないって感じなのでしょうか.

もしかして と思い,navgraph を読み込んでから clips-navgraph を読み込んだら,エラーなく通りました.

~/fawkes-robotino/bin/ffplugin -l navgraph
~/fawkes-robotino/bin/ffplugin -l clips-navgraph

というわけで,起動用metaタグを見直したら,間違えていたというオチでした….

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*