control and supervision of a team of robots

20
Control and Supervision of a Team of Robots --Alberto Valero

Upload: koen

Post on 25-Feb-2016

34 views

Category:

Documents


1 download

DESCRIPTION

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(). - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Control and Supervision of a Team of Robots

Control and Supervision of a Team of Robots

--Alberto Valero

Page 2: Control and Supervision of a Team of Robots

The RAgent figure...

Robot Client Navig. Mapper

REPOSITORY

InterfaceServer Web Services

Page 3: Control and Supervision of a Team of Robots

A generic example in some detail

Robot Client ScanMatcher Mapper Interface

Server

getMap()getPose()getLaser()setSpeed()setJog()

LaserRobot PoseMapSpeedJog

Page 4: Control and Supervision of a Team of Robots

The Classical Hierarchical Model

Exploration

Path Planning

Navigation

Motion executer

Target Pose

Path

Speed & Jog

Motion commands

Page 5: Control and Supervision of a Team of Robots

Put a human in the loop

Page 6: Control and Supervision of a Team of Robots

Hierarchical HRI

Exploration

Path Planning

Navigation

Motion executer

Target Pose

Path

Speed & Jog

Motion commands

Page 7: Control and Supervision of a Team of Robots

Autonomy Levels

Page 8: Control and Supervision of a Team of Robots

Let’s see it!

Robot Client Navig. Mapper

REPOSITORY

InterfaceServer

Page 9: Control and Supervision of a Team of Robots

The module structure

Robot Client ScanMatcher Mapper Interface

Server

getMap()getPose()getLaser()setSpeed()setJog()

Navigator Path Planner ExplorationAutonomyManager

InterfaceClient

StallConditionPath Alert

ExplorationAlertUnblock

Module

Page 10: Control and Supervision of a Team of Robots

Interface Client and Server

InterfaceClient

InterfaceServer

getMap()getPose()getLaser()setSpeed()setJog()

http://192.168.1.1:9871

register(url)

currentPath()currentTargetPose()

robotStalled()victimFound()robotStatus()

Page 11: Control and Supervision of a Team of Robots

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“

Page 12: Control and Supervision of a Team of Robots

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;

}

Page 13: Control and Supervision of a Team of Robots

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;

}

Page 14: Control and Supervision of a Team of Robots

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)

}}

Page 15: Control and Supervision of a Team of Robots

Let’s complicate the System

Single-User-Single-Robot

Single-User-Multiple-Robot

Single-User-Robot-Team

Page 16: Control and Supervision of a Team of Robots

Single-User-Multiple-Robot

REPOSITORY

InterfaceServer

RobotClient

REPOSITORY

InterfaceServer

RobotClient

Page 17: Control and Supervision of a Team of Robots

Single-User-Robot-Team

REPOSITORY

InterfaceServer

RobotClient

REPOSITORY

InterfaceServer

RobotClient

REPOSITORY

TeamServer

TeamCoordinator

cucciolomammolo

teamCoord/out/robot1TargetPose=@rdk2://cucciolo/navigator/in/targetPose teamCoord/out/robot2TargetPose=

@rdk2://mammolo/navigator/in/targetPose

Page 18: Control and Supervision of a Team of Robots

ExampleInit End

Page 19: Control and Supervision of a Team of Robots

So much to do

Page 20: Control and Supervision of a Team of Robots

That’s all for now