Changeset 122 in flair-src for trunk/demos
- Timestamp:
- Jan 6, 2017, 1:56:26 PM (8 years ago)
- Location:
- trunk/demos
- Files:
-
- 29 added
- 7 deleted
- 18 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/demos/CircleFollower/uav/src/CircleFollower.cpp
r121 r122 39 39 using namespace flair::meta; 40 40 41 CircleFollower::CircleFollower(Uav* uav,TargetController *controller): UavStateMachine(uav,controller), behaviourMode(BehaviourMode_t::Default), vrpnLost(false) { 42 uav->SetupVRPNAutoIP(uav->ObjectName()); 43 41 CircleFollower::CircleFollower(TargetController *controller): UavStateMachine(controller), behaviourMode(BehaviourMode_t::Default), vrpnLost(false) { 42 Uav* uav=GetUav(); 43 44 VrpnClient* vrpnclient=new VrpnClient("vrpn", uav->GetDefaultVrpnAddress(),10000, 80); 45 uavVrpn = new MetaVrpnObject(uav->ObjectName()); 46 getFrameworkManager()->AddDeviceToLog(uavVrpn); 47 uav->GetAhrs()->YawPlot()->AddCurve(uavVrpn->State()->Element(2),DataPlot::Green); 48 44 49 startCircle=new PushButton(GetButtonsLayout()->NewRow(),"start_circle"); 45 50 stopCircle=new PushButton(GetButtonsLayout()->LastRowLastCol(),"stop_circle"); 46 51 47 if( uav->GetVrpnClient()->UseXbee()==true) {48 targetVrpn=new MetaVrpnObject( uav->GetVrpnClient(),"target",1);52 if(vrpnclient->UseXbee()==true) { 53 targetVrpn=new MetaVrpnObject("target",1); 49 54 } else { 50 targetVrpn=new MetaVrpnObject( uav->GetVrpnClient(),"target");55 targetVrpn=new MetaVrpnObject("target"); 51 56 } 52 57 53 58 getFrameworkManager()->AddDeviceToLog(targetVrpn); 54 59 55 circle=new TrajectoryGenerator2DCircle( uav->GetVrpnClient()->GetLayout()->NewRow(),"circle");56 uav ->GetVrpnObject()->xPlot()->AddCurve(circle->Matrix()->Element(0,0),DataPlot::Blue);57 uav ->GetVrpnObject()->yPlot()->AddCurve(circle->Matrix()->Element(0,1),DataPlot::Blue);58 uav ->GetVrpnObject()->VxPlot()->AddCurve(circle->Matrix()->Element(1,0),DataPlot::Blue);59 uav ->GetVrpnObject()->VyPlot()->AddCurve(circle->Matrix()->Element(1,1),DataPlot::Blue);60 uav ->GetVrpnObject()->XyPlot()->AddCurve(circle->Matrix()->Element(0,1),circle->Matrix()->Element(0,0),DataPlot::Blue,"circle");60 circle=new TrajectoryGenerator2DCircle(vrpnclient->GetLayout()->NewRow(),"circle"); 61 uavVrpn->xPlot()->AddCurve(circle->Matrix()->Element(0,0),DataPlot::Blue); 62 uavVrpn->yPlot()->AddCurve(circle->Matrix()->Element(0,1),DataPlot::Blue); 63 uavVrpn->VxPlot()->AddCurve(circle->Matrix()->Element(1,0),DataPlot::Blue); 64 uavVrpn->VyPlot()->AddCurve(circle->Matrix()->Element(1,1),DataPlot::Blue); 65 uavVrpn->XyPlot()->AddCurve(circle->Matrix()->Element(0,1),circle->Matrix()->Element(0,0),DataPlot::Blue,"circle"); 61 66 62 67 uX=new Pid(setupLawTab->At(1,0),"u_x"); … … 79 84 //get yaw from vrpn 80 85 Euler vrpnEuler; 81 GetUav()->GetVrpnObject()->GetEuler(vrpnEuler);86 uavVrpn->GetEuler(vrpnEuler); 82 87 83 88 //get roll, pitch and w from imu … … 98 103 Vector3D uav_pos,uav_vel; 99 104 100 GetUav()->GetVrpnObject()->GetPosition(uav_pos);101 GetUav()->GetVrpnObject()->GetSpeed(uav_vel);105 uavVrpn->GetPosition(uav_pos); 106 uavVrpn->GetSpeed(uav_vel); 102 107 //z and dz must be in uav's frame 103 108 z=-uav_pos.z; … … 131 136 Vector2D uav_2Dpos,uav_2Dvel; // in VRPN coordinate system 132 137 133 GetUav()->GetVrpnObject()->GetPosition(uav_pos);134 GetUav()->GetVrpnObject()->GetSpeed(uav_vel);138 uavVrpn->GetPosition(uav_pos); 139 uavVrpn->GetSpeed(uav_vel); 135 140 136 141 uav_pos.To2Dxy(uav_2Dpos); … … 195 200 Land(); 196 201 } 197 if (! GetUav()->GetVrpnObject()->IsTracked(500)) {202 if (!uavVrpn->IsTracked(500)) { 198 203 Thread::Err("VRPN, uav lost\n"); 199 204 vrpnLost=true; … … 239 244 circle->SetCenter(target_2Dpos); 240 245 241 GetUav()->GetVrpnObject()->GetPosition(uav_pos);246 uavVrpn->GetPosition(uav_pos); 242 247 uav_pos.To2Dxy(uav_2Dpos); 243 248 circle->StartTraj(uav_2Dpos); … … 258 263 Vector3D vrpn_pos; 259 264 260 GetUav()->GetVrpnObject()->GetEuler(vrpn_euler);265 uavVrpn->GetEuler(vrpn_euler); 261 266 yawHold=vrpn_euler.yaw; 262 267 263 GetUav()->GetVrpnObject()->GetPosition(vrpn_pos);268 uavVrpn->GetPosition(vrpn_pos); 264 269 vrpn_pos.To2Dxy(posHold); 265 270 -
trunk/demos/CircleFollower/uav/src/CircleFollower.h
r38 r122 34 34 class CircleFollower : public flair::meta::UavStateMachine { 35 35 public: 36 CircleFollower(flair:: meta::Uav* uav,flair::sensor::TargetController *controller);36 CircleFollower(flair::sensor::TargetController *controller); 37 37 ~CircleFollower(); 38 38 … … 65 65 66 66 flair::gui::PushButton *startCircle,*stopCircle; 67 flair::meta::MetaVrpnObject *targetVrpn ;67 flair::meta::MetaVrpnObject *targetVrpn,*uavVrpn; 68 68 flair::filter::TrajectoryGenerator2DCircle *circle; 69 69 flair::core::AhrsData *customReferenceOrientation,*customOrientation; -
trunk/demos/CircleFollower/uav/src/main.cpp
r38 r122 45 45 manager->SetupLogger(log_path); 46 46 47 Uav* drone=CreateUav( manager,name,uav_type);47 Uav* drone=CreateUav(name,uav_type); 48 48 TargetEthController *controller=new TargetEthController(manager,"Dualshock3",ds3port); 49 CircleFollower* demo=new CircleFollower( drone,controller);49 CircleFollower* demo=new CircleFollower(controller); 50 50 51 51 demo->Start(); -
trunk/demos/Gps/uav/CMakeLists.txt
r89 r122 6 6 SET(FLAIR_USE_SENSOR_ACTUATOR TRUE) 7 7 SET(FLAIR_USE_META TRUE) 8 SET(FLAIR_USE_VRPN TRUE)9 8 SET(FLAIR_USE_GPS TRUE) 10 9 -
trunk/demos/Gps/uav/src/DemoGps.cpp
r101 r122 39 39 using namespace flair::meta; 40 40 41 DemoGps::DemoGps( Uav* uav,TargetController *controller): UavStateMachine(uav,controller), behaviourMode(BehaviourMode_t::Default) {42 41 DemoGps::DemoGps(TargetController *controller): UavStateMachine(controller), behaviourMode(BehaviourMode_t::Default) { 42 Uav* uav=GetUav(); 43 43 startCircle=new PushButton(GetButtonsLayout()->NewRow(),"start_circle"); 44 44 stopCircle=new PushButton(GetButtonsLayout()->LastRowLastCol(),"stop_circle"); -
trunk/demos/Gps/uav/src/DemoGps.h
r89 r122 33 33 class DemoGps : public flair::meta::UavStateMachine { 34 34 public: 35 DemoGps(flair:: meta::Uav* uav,flair::sensor::TargetController *controller);35 DemoGps(flair::sensor::TargetController *controller); 36 36 ~DemoGps(); 37 37 -
trunk/demos/Gps/uav/src/main.cpp
r89 r122 45 45 manager->SetupLogger(log_path); 46 46 47 Uav* drone=CreateUav( manager,name,uav_type);47 Uav* drone=CreateUav(name,uav_type); 48 48 TargetEthController *controller=new TargetEthController(manager,"Dualshock3",ds3port); 49 DemoGps* demo=new DemoGps( drone,controller);49 DemoGps* demo=new DemoGps(controller); 50 50 51 51 demo->Start(); -
trunk/demos/SimpleFleet/uav/src/SimpleFleet.cpp
r104 r122 50 50 51 51 52 SimpleFleet::SimpleFleet(flair::meta::Uav* uav,string broadcast,TargetController *controller): UavStateMachine(uav,controller), behaviourMode(BehaviourMode_t::Default), vrpnLost(false) { 53 uav->SetupVRPNAutoIP(uav->ObjectName()); 54 55 circle=new TrajectoryGenerator2DCircle(uav->GetVrpnClient()->GetLayout()->NewRow(),"circle"); 56 uav->GetVrpnObject()->xPlot()->AddCurve(circle->Matrix()->Element(0,0),0,0,255); 57 uav->GetVrpnObject()->yPlot()->AddCurve(circle->Matrix()->Element(0,1),0,0,255); 58 uav->GetVrpnObject()->VxPlot()->AddCurve(circle->Matrix()->Element(1,0),0,0,255); 59 uav->GetVrpnObject()->VyPlot()->AddCurve(circle->Matrix()->Element(1,1),0,0,255); 60 61 xCircleCenter=new DoubleSpinBox(uav->GetVrpnClient()->GetLayout()->NewRow(),"x circle center"," m",-5,5,0.1,1,0); 62 yCircleCenter=new DoubleSpinBox(uav->GetVrpnClient()->GetLayout()->NewRow(),"y circle center"," m",-5,5,0.1,1,0); 63 yDisplacement=new DoubleSpinBox(uav->GetVrpnClient()->GetLayout()->NewRow(),"y displacement"," m",0,2,0.1,1,0); 52 SimpleFleet::SimpleFleet(string broadcast,TargetController *controller): UavStateMachine(controller), behaviourMode(BehaviourMode_t::Default), vrpnLost(false) { 53 Uav* uav=GetUav(); 54 55 VrpnClient* vrpnclient=new VrpnClient("vrpn", uav->GetDefaultVrpnAddress(),10000, 80); 56 uavVrpn = new MetaVrpnObject(uav->ObjectName()); 57 getFrameworkManager()->AddDeviceToLog(uavVrpn); 58 uav->GetAhrs()->YawPlot()->AddCurve(uavVrpn->State()->Element(2),DataPlot::Green); 59 60 circle=new TrajectoryGenerator2DCircle(vrpnclient->GetLayout()->NewRow(),"circle"); 61 uavVrpn->xPlot()->AddCurve(circle->Matrix()->Element(0,0),0,0,255); 62 uavVrpn->yPlot()->AddCurve(circle->Matrix()->Element(0,1),0,0,255); 63 uavVrpn->VxPlot()->AddCurve(circle->Matrix()->Element(1,0),0,0,255); 64 uavVrpn->VyPlot()->AddCurve(circle->Matrix()->Element(1,1),0,0,255); 65 66 xCircleCenter=new DoubleSpinBox(vrpnclient->GetLayout()->NewRow(),"x circle center"," m",-5,5,0.1,1,0); 67 yCircleCenter=new DoubleSpinBox(vrpnclient->GetLayout()->NewRow(),"y circle center"," m",-5,5,0.1,1,0); 68 yDisplacement=new DoubleSpinBox(vrpnclient->GetLayout()->NewRow(),"y displacement"," m",0,2,0.1,1,0); 64 69 65 70 //parent->AddDeviceToLog(Uz()); … … 101 106 //get yaw from vrpn 102 107 Euler vrpnEuler; 103 GetUav()->GetVrpnObject()->GetEuler(vrpnEuler);108 uavVrpn->GetEuler(vrpnEuler); 104 109 105 110 //get roll, pitch and w from imu … … 120 125 Vector3D uav_pos,uav_vel; 121 126 122 GetUav()->GetVrpnObject()->GetPosition(uav_pos);123 GetUav()->GetVrpnObject()->GetSpeed(uav_vel);127 uavVrpn->GetPosition(uav_pos); 128 uavVrpn->GetSpeed(uav_vel); 124 129 //z and dz must be in uav's frame 125 130 z=-uav_pos.z; … … 154 159 Euler vrpn_euler; // in VRPN coordinate system 155 160 156 GetUav()->GetVrpnObject()->GetPosition(uav_pos);157 GetUav()->GetVrpnObject()->GetSpeed(uav_vel);158 GetUav()->GetVrpnObject()->GetEuler(vrpn_euler);161 uavVrpn->GetPosition(uav_pos); 162 uavVrpn->GetSpeed(uav_vel); 163 uavVrpn->GetEuler(vrpn_euler); 159 164 160 165 uav_pos.To2Dxy(uav_2Dpos); … … 294 299 void SimpleFleet::ExtraSecurityCheck(void) { 295 300 if (!vrpnLost && behaviourMode!=BehaviourMode_t::Default) { 296 if (! GetUav()->GetVrpnObject()->IsTracked(500)) {301 if (!uavVrpn->IsTracked(500)) { 297 302 Thread::Err("Optitrack, uav lost\n"); 298 303 vrpnLost=true; … … 322 327 circle->SetCenter(target_2Dpos); 323 328 324 GetUav()->GetVrpnObject()->GetPosition(uav_pos);329 uavVrpn->GetPosition(uav_pos); 325 330 uav_pos.To2Dxy(uav_2Dpos); 326 331 circle->StartTraj(uav_2Dpos,1); … … 347 352 } 348 353 349 GetUav()->GetVrpnObject()->GetEuler(vrpn_euler);354 uavVrpn->GetEuler(vrpn_euler); 350 355 yaw_hold=vrpn_euler.yaw; 351 356 352 GetUav()->GetVrpnObject()->GetPosition(vrpn_pos);357 uavVrpn->GetPosition(vrpn_pos); 353 358 vrpn_pos.To2Dxy(pos_hold); 354 359 -
trunk/demos/SimpleFleet/uav/src/SimpleFleet.h
r38 r122 26 26 class TrajectoryGenerator2DCircle; 27 27 } 28 namespace meta { 29 class MetaVrpnObject; 30 } 28 31 namespace gui { 29 32 class DoubleSpinBox; … … 34 37 class SimpleFleet : public flair::meta::UavStateMachine { 35 38 public: 36 SimpleFleet( flair::meta::Uav* uav,std::string broadcast,flair::sensor::TargetController *controller);39 SimpleFleet(std::string broadcast,flair::sensor::TargetController *controller); 37 40 ~SimpleFleet(); 38 41 … … 75 78 flair::gui::DoubleSpinBox *xCircleCenter,*yCircleCenter,*yDisplacement; 76 79 flair::core::AhrsData *customReferenceOrientation,*customOrientation; 80 flair::meta::MetaVrpnObject *uavVrpn; 77 81 }; 78 82 -
trunk/demos/SimpleFleet/uav/src/main.cpp
r38 r122 46 46 manager->SetupUserInterface(xml_file); 47 47 48 Uav* drone=CreateUav( manager,name,uav_type);48 Uav* drone=CreateUav(name,uav_type); 49 49 TargetEthController *controller=new TargetEthController(manager,"Dualshock3",ds3port); 50 SimpleFleet* demo=new SimpleFleet( drone,broadcast,controller);50 SimpleFleet* demo=new SimpleFleet(broadcast,controller); 51 51 52 52 demo->Start(); -
trunk/demos/Skeletons/CustomReferenceAngles/CMakeLists.txt
r43 r122 6 6 SET(FLAIR_USE_SENSOR_ACTUATOR TRUE) 7 7 SET(FLAIR_USE_META TRUE) 8 SET(FLAIR_USE_VRPN TRUE)9 8 10 9 include($ENV{FLAIR_ROOT}/flair-dev/cmake-modules/GlobalCmakeFlair.cmake) -
trunk/demos/Skeletons/CustomReferenceAngles/src/MyApp.cpp
r43 r122 29 29 using namespace flair::sensor; 30 30 31 MyApp::MyApp( Uav* uav,TargetController *controller): UavStateMachine(uav,controller), behaviourMode(BehaviourMode_t::Default) {31 MyApp::MyApp(TargetController *controller): UavStateMachine(controller), behaviourMode(BehaviourMode_t::Default) { 32 32 start_CustomAngles=new PushButton(GetButtonsLayout()->NewRow(),"start CustomReferenceAngles"); 33 33 stop_CustomAngles=new PushButton(GetButtonsLayout()->NewRow(),"stop CustomReferenceAngles"); 34 34 35 35 customReferenceOrientation= new AhrsData(this,"reference"); 36 uav->GetAhrs()->AddPlot(customReferenceOrientation,DataPlot::Yellow);36 GetUav()->GetAhrs()->AddPlot(customReferenceOrientation,DataPlot::Yellow); 37 37 AddDataToControlLawLog(customReferenceOrientation); 38 38 } -
trunk/demos/Skeletons/CustomReferenceAngles/src/MyApp.h
r43 r122 31 31 class MyApp : public flair::meta::UavStateMachine { 32 32 public: 33 MyApp(flair:: meta::Uav* uav,flair::sensor::TargetController *controller);33 MyApp(flair::sensor::TargetController *controller); 34 34 ~MyApp(); 35 35 -
trunk/demos/Skeletons/CustomReferenceAngles/src/main.cpp
r43 r122 44 44 manager->SetupLogger(log_path); 45 45 46 Uav* drone=CreateUav( manager,name,uav_type);46 Uav* drone=CreateUav(name,uav_type); 47 47 TargetEthController *controller=new TargetEthController(manager,"Dualshock3",ds3port); 48 MyApp* app=new MyApp( drone,controller);48 MyApp* app=new MyApp(controller); 49 49 50 50 app->Start(); -
trunk/demos/Skeletons/CustomTorques/CMakeLists.txt
r43 r122 6 6 SET(FLAIR_USE_SENSOR_ACTUATOR TRUE) 7 7 SET(FLAIR_USE_META TRUE) 8 SET(FLAIR_USE_VRPN TRUE)9 8 10 9 include($ENV{FLAIR_ROOT}/flair-dev/cmake-modules/GlobalCmakeFlair.cmake) -
trunk/demos/Skeletons/CustomTorques/src/MyApp.cpp
r43 r122 26 26 using namespace flair::sensor; 27 27 28 MyApp::MyApp( Uav* uav,TargetController *controller): UavStateMachine(uav,controller), behaviourMode(BehaviourMode_t::Default) {28 MyApp::MyApp(TargetController *controller): UavStateMachine(controller), behaviourMode(BehaviourMode_t::Default) { 29 29 start_CustomTorques=new PushButton(GetButtonsLayout()->NewRow(),"start CustomTorques"); 30 30 stop_CustomTorques=new PushButton(GetButtonsLayout()->NewRow(),"stop CustomTorques"); -
trunk/demos/Skeletons/CustomTorques/src/MyApp.h
r43 r122 28 28 class MyApp : public flair::meta::UavStateMachine { 29 29 public: 30 MyApp(flair:: meta::Uav* uav,flair::sensor::TargetController *controller);30 MyApp(flair::sensor::TargetController *controller); 31 31 ~MyApp(); 32 32 -
trunk/demos/Skeletons/CustomTorques/src/main.cpp
r43 r122 45 45 manager->SetupLogger(log_path); 46 46 47 Uav* drone=CreateUav( manager,name,uav_type);47 Uav* drone=CreateUav(name,uav_type); 48 48 TargetEthController *controller=new TargetEthController(manager,"Dualshock3",ds3port); 49 MyApp* app=new MyApp( drone,controller);49 MyApp* app=new MyApp(controller); 50 50 51 51 app->Start();
Note:
See TracChangeset
for help on using the changeset viewer.