1 / 20

Control and Supervision of a Team of Robots

Control and Supervision of a Team of Robots. --Alberto Valero. Interface Server. The RAgent figure. Robot Client. Navig. Mapper. Web Services. REPOSITORY. A generic example in some detail. Robot Client. ScanMatcher. Mapper. Interface Server. getMap(). getPose(). getLaser().

koen
Download Presentation

Control and Supervision of a Team of Robots

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Control and Supervision of a Team of Robots --Alberto Valero

  2. InterfaceServer The RAgent figure... Robot Client Navig. Mapper Web Services REPOSITORY

  3. A generic example in some detail Robot Client ScanMatcher Mapper InterfaceServer getMap() getPose() getLaser() setSpeed() setJog() Laser Robot Pose Map Speed Jog

  4. The Classical Hierarchical Model Exploration Target Pose Path Planning Path Navigation Speed & Jog Motion executer Motion commands

  5. Put a human in the loop

  6. Exploration Target Pose Path Planning Path Navigation Speed & Jog Motion executer Motion commands Hierarchical HRI

  7. Autonomy Levels

  8. Let’s see it! Robot Client Navig. Mapper InterfaceServer REPOSITORY

  9. The module structure Robot Client ScanMatcher Mapper InterfaceServer getMap() Navigator Path Planner Exploration getPose() InterfaceClient ExplorationAlert getLaser() AutonomyManager UnblockModule setSpeed() StallCondition setJog() Path Alert

  10. Interface Client and Server InterfaceClient InterfaceServer getMap() getPose() currentPath() getLaser() currentTargetPose() setSpeed() robotStalled() setJog() victimFound() robotStatus() register(url) http://192.168.1.1:9871

  11. Some code (I) #define PROPERTY_LASER_DATA "in/laserData" #define PROPERTY_DESIRED_SPEED_INPUT "in/speed" #define PROPERTY_DESIRED_JOG_INPUT "in/jog" #define PROPERTY_DESIRED_SPEED "out/desiredSpeed" #define PROPERTY_DESIRED_JOG "out/desiredJog“

  12. Some code (II) bool SafeTeleOperationModule::initConfigurationProperties() { SESSION_TRY_START(session) session->createStorage("RLaserData",PROPERTY_LASER_DATA,"Robot Laser Readings (link in)"); session->createDouble(PROPERTY_JOG, "Robot Jog (please link)", RDouble::RAD_SEC); 1.0); session->createDouble(PROPERTY_DESIRED_SPEED, "Robot Desired speed (please link)", RDouble::M_SEC, 0.0); session->createDouble(PROPERTY_DESIRED_JOG, "Robot Desired Jog (please link)", RDouble::RAD_SEC, 0.0); session->createDouble(PROPERTY_DESIRED_SPEED_INPUT, "Robot Desired speed (please link)", RDouble::M_SEC, 0.0); session->createDouble(PROPERTY_DESIRED_JOG_INPUT, "Robot Desired Jog (please link)", RDouble::RAD_SEC, 0.0); SESSION_END(session) return true; SESSION_CATCH_TERMINATE(session) return false; }

  13. Some code (III) bool SafeTeleOperationModule::init() { SESSION_TRY_START(session) session->listen(PROPERTY_DESIRED_SPEED_INPUT); session->listen(PROPERTY_DESIRED_JOG_INPUT); SESSION_END(session) return true; SESSION_CATCH_TERMINATE(session) return false; }

  14. Some code (and IV) void SafeTeleOperationModule::exec() { while (session->wait(), !exiting) { SESSION_TRY_START(session) session->lock(PROPERTY_LASER_DATA, HERE); RLaserData* laserData=session->getObjectAsL<RLaserData>(PROPERTY_LASER_DATA); int numOfPoints=laserData->points.size(); float minRange=DBL_MAX; for (int i=0; i<numOfPoints; i+=3){ if (minRange>laserData->points[i].reading) minRange=laserData->points[i].reading; session->unlock(PROPERTY_LASER_DATA); float desiredSpeed; if (minRange < 0.5){ desiredSpeed=0.0; }else{ desiredSpeed=session->getDouble(PROPERTY_DESIRED_SPEED_INPUT); } session->setDouble(PROPERTY_DESIRED_SPEED, desiredSpeed); SESSION_END_CATCH_TERMINATE(session) } }

  15. Let’s complicate the System Single-User-Multiple-Robot Single-User-Robot-Team Single-User-Single-Robot

  16. Single-User-Multiple-Robot InterfaceServer RobotClient InterfaceServer RobotClient REPOSITORY REPOSITORY

  17. Single-User-Robot-Team TeamServer TeamCoordinator REPOSITORY InterfaceServer RobotClient InterfaceServer RobotClient REPOSITORY REPOSITORY cucciolo mammolo teamCoord/out/robot1TargetPose=@rdk2://cucciolo/navigator/in/targetPose teamCoord/out/robot2TargetPose=@rdk2://mammolo/navigator/in/targetPose

  18. Example End Init

  19. So much to do

  20. That’s all for now

More Related