control and supervision of a team of robots
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 PresentationTRANSCRIPT
![Page 1: Control and Supervision of a Team of Robots](https://reader034.vdocuments.us/reader034/viewer/2022042608/56816791550346895ddcc583/html5/thumbnails/1.jpg)
Control and Supervision of a Team of Robots
--Alberto Valero
![Page 2: Control and Supervision of a Team of Robots](https://reader034.vdocuments.us/reader034/viewer/2022042608/56816791550346895ddcc583/html5/thumbnails/2.jpg)
The RAgent figure...
Robot Client Navig. Mapper
REPOSITORY
InterfaceServer Web Services
![Page 3: Control and Supervision of a Team of Robots](https://reader034.vdocuments.us/reader034/viewer/2022042608/56816791550346895ddcc583/html5/thumbnails/3.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022042608/56816791550346895ddcc583/html5/thumbnails/4.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022042608/56816791550346895ddcc583/html5/thumbnails/5.jpg)
Put a human in the loop
![Page 6: Control and Supervision of a Team of Robots](https://reader034.vdocuments.us/reader034/viewer/2022042608/56816791550346895ddcc583/html5/thumbnails/6.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022042608/56816791550346895ddcc583/html5/thumbnails/7.jpg)
Autonomy Levels
![Page 8: Control and Supervision of a Team of Robots](https://reader034.vdocuments.us/reader034/viewer/2022042608/56816791550346895ddcc583/html5/thumbnails/8.jpg)
Let’s see it!
Robot Client Navig. Mapper
REPOSITORY
InterfaceServer
![Page 9: Control and Supervision of a Team of Robots](https://reader034.vdocuments.us/reader034/viewer/2022042608/56816791550346895ddcc583/html5/thumbnails/9.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022042608/56816791550346895ddcc583/html5/thumbnails/10.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022042608/56816791550346895ddcc583/html5/thumbnails/11.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022042608/56816791550346895ddcc583/html5/thumbnails/12.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022042608/56816791550346895ddcc583/html5/thumbnails/13.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022042608/56816791550346895ddcc583/html5/thumbnails/14.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022042608/56816791550346895ddcc583/html5/thumbnails/15.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022042608/56816791550346895ddcc583/html5/thumbnails/16.jpg)
Single-User-Multiple-Robot
REPOSITORY
InterfaceServer
RobotClient
REPOSITORY
InterfaceServer
RobotClient
![Page 17: Control and Supervision of a Team of Robots](https://reader034.vdocuments.us/reader034/viewer/2022042608/56816791550346895ddcc583/html5/thumbnails/17.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022042608/56816791550346895ddcc583/html5/thumbnails/18.jpg)
ExampleInit End
![Page 19: Control and Supervision of a Team of Robots](https://reader034.vdocuments.us/reader034/viewer/2022042608/56816791550346895ddcc583/html5/thumbnails/19.jpg)
So much to do
![Page 20: Control and Supervision of a Team of Robots](https://reader034.vdocuments.us/reader034/viewer/2022042608/56816791550346895ddcc583/html5/thumbnails/20.jpg)
That’s all for now