Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00016 #include "accel.h"
00017 #include "accel_example.h"
00018 #include "accel_plan.h"
00019 #include "accel_speed.h"
00020
00021 namespace pilot
00022 {
00023
00024
00025 AccelBase::~AccelBase() {}
00026
00032 boost::shared_ptr<AccelBase>
00033 allocAccel(art_pilot::PilotConfig &config)
00034 {
00035 boost::shared_ptr<AccelBase> controller;
00036
00037 switch(config.acceleration_controller)
00038 {
00039 default:
00040 {
00041 ROS_ERROR_STREAM("Unknown acceleration controller: "
00042 << config.acceleration_controller
00043 << " (using AccelExample)");
00044 config.acceleration_controller = art_pilot::Pilot_Accel_Plan;
00045
00046 }
00047 case art_pilot::Pilot_Accel_Example:
00048 {
00049 ROS_INFO("using example acceleration controller");
00050 controller.reset(new AccelExample(config));
00051 break;
00052 }
00053 case art_pilot::Pilot_Accel_Plan:
00054 {
00055 ROS_INFO("using planned acceleration controller");
00056 controller.reset(new AccelPlan(config));
00057 break;
00058 }
00059 case art_pilot::Pilot_Speed_Learned:
00060 case art_pilot::Pilot_Speed_Matrix:
00061 case art_pilot::Pilot_Speed_PID:
00062 {
00063
00064 controller.reset(new AccelSpeed(config));
00065 break;
00066 }
00067 }
00068
00069 return controller;
00070 }
00071
00072 };