BTR課題 : fawkes の plugin を作ってみましょう.
まず,~fawkes-robotino/src/plugin の中にあるplugin_template をbtr_plugin_ex としてコピーしましょう.
cd ~/fawkes-robotino/src/plugin/ cp -r plugin_template btr_plugin_ex
Makefile に,このディレクトリ情報を追加します.
SUBDIRS = … の所に追加します.btr_plugin_ex の中のファイル構成を変更します.
SUBDIRS = … の所に追加します.btr_plugin_ex の中のファイル構成を変更します.
cd btr_plugin_ex mv plugin_template_plugin.cpp btr_plugin_ex_plugin.cpp mv plugin_template_thread.cpp btr_plugin_ex_thread.cpp mv plugin_template_thread.h btr_plugin_ex_thread.h
btr_plugin_ex の中のmakefile を修正します.
【修正前】
【修正前】
LIBS_plugin_template = m fawkescore fawkesutils fawkesaspects fawkesbaseapp \ fawkesblackboard fawkesinterface MotorInterface ... OBJS_plugin_template = plugin_template_plugin.o plugin_template_thread.o ... PLUGINS_all = $(PLUGINDIR)/plugin-template.$(SOEXT) ... OBJS_all = $(OBJS_plugin_template)
【修正後】
LIBS_btr_plugin_ex = m fawkescore fawkesutils fawkesaspects fawkesbaseapp \ fawkesblackboard fawkesinterface MotorInterface ... OBJS_btr_plugin_ex = btr_plugin_ex_plugin.o btr_plugin_ex_thread.o ... PLUGINS_all = $(PLUGINDIR)/btr_plugin_ex.$(SOEXT) ... OBJS_all = $(OBJS_btr_plugin_ex)
btr_plugin_ex_thread.h の修正.
【修正前】
【修正前】
#ifndef __PLUGINS_PLUGIN_TEMPLATE_THREAD_H_ #define __PLUGINS_PLUGIN_TEMPLATE_THREAD_H_ ... class PluginTemplateThread ... public: PluginTemplateThread();
【修正後】
#ifndef __PLUGINS_BTR_PLUGIN_EX_THREAD_H_ #define __PLUGINS_BTR_PLUGIN_EX_THREAD_H_ ... class BTRPluginExThread ... public: BTRPluginExThread();
btr_plugin_ex_thread.cpp の修正.
【修正前】
【修正前】
#include "plugin_template_thread.h" ... /** Constructor. */ PluginTemplateThread::PluginTemplateThread() : Thread("PluginTemplateThread", Thread::OPMODE_WAITFORWAKEUP), BlockedTimingAspect( BlockedTimingAspect::WAKEUP_HOOK_SKILL) { } ... void PluginTemplateThread::init() { logger->log_info(name(), "Plugin Template starts up"); motor_if_ = blackboard->open_for_reading<MotorInterface>("Robotino"); } ... bool PluginTemplateThread::prepare_finalize_user() { ... void PluginTemplateThread::finalize() { ... void PluginTemplateThread::send_transrot(float vx, float vy, float omega) { ... void PluginTemplateThread::stop() { ... void PluginTemplateThread::loop() { ...
【修正後】
#include "btr_plugin_ex_thread.h" ... /** Constructor. */ BTRPluginExThread::BTRPluginExThread() : Thread("BTRPluginExThread", Thread::OPMODE_WAITFORWAKEUP), BlockedTimingAspect( BlockedTimingAspect::WAKEUP_HOOK_SKILL) { } ... void BTRPluginExThread::init() { logger->log_info(name(), "BTR Plugin Ex starts up"); motor_if_ = blackboard->open_for_reading<MotorInterface>("Robotino"); } ... bool BTRPluginExThread::prepare_finalize_user() { ... void BTRPluginExThread::finalize() { ... void BTRPluginExThread::send_transrot(float vx, float vy, float omega) { ... void BTRPluginExThread::stop() { ... void BTRPluginExThread::loop() { ...
btr_plugin_ex_plugin.cpp の修正.
【修正前】
【修正前】
#include "plugin_template_thread.h" ... class PluginTemplatePlugin : public fawkes::Plugin ... PluginTemplatePlugin(Configuration *config) ... thread_list.push_back(new PluginTemplateThread()); ... PLUGIN_DESCRIPTION("Plugin Template") EXPORT_PLUGIN(PluginTemplatePlugin)
【修正後】
#include "btr_plugin_ex_thread.h" ... class BTRPluginExPlugin : public fawkes::Plugin ... BTRPluginExPlugin(Configuration *config) ... thread_list.push_back(new BTRPluginExThread()); ... PLUGIN_DESCRIPTION("BTR Plugin Ex") EXPORT_PLUGIN(BTRPluginExPlugin)
とりあえず,これでコンパイルできるかチェック.
make -j4 clean all gui
問題なければ,通るはず.
コメントを残す