Presentation is loading. Please wait.

Presentation is loading. Please wait.

Multi-Robot Behavioural Algorithms Implementation in Khepera III Robots David Arán Bernabeu Supervisors: Lyuba Alboul Hussein Abdul-Rahman.

Similar presentations


Presentation on theme: "Multi-Robot Behavioural Algorithms Implementation in Khepera III Robots David Arán Bernabeu Supervisors: Lyuba Alboul Hussein Abdul-Rahman."— Presentation transcript:

1 Multi-Robot Behavioural Algorithms Implementation in Khepera III Robots David Arán Bernabeu Supervisors: Lyuba Alboul Hussein Abdul-Rahman

2 Index Introduction Player/Stage Khepera III robot Behavioural Algorithms Obstacle avoidance Wall following Robot following Conclusions

3 Introduction Background Multi-robot systems Non-communicative systems Objectives Develop non-communicative behavioural algorithms Implementation in Khepera III robots Algorithms Wall follow, obstacle avoidance & robot follow algorithms Drawbacks Two-robot system Follower can not scan while moving Leader out of the laser field of view

4 Player/Stage Player: robot device interface Stage: 2D simulator Proxies Position2dProxy LaserProxy

5 Player/Stage Position2dProxy void SetSpeed(double aXSpeed, double aDriveAngle) double GetXPos() double GetYPos() double GetYaw() LaserProxy uint32_t GetCount () const double GetRange (uint32_t aIndex) const double GetBearing (uint32_t aIndex) const Global axes Local axes α β

6 Khepera III robot Small differential wheeled mobile robot 11 IR and 5 ultrasonic sensors 2 DC motors KoreBot: Embedded Linux Wifi communication

7 Khepera III robot Laser range finder → Hokuyo URG-04LX FoV: 240º Angular resolution: 0.36º 240/0.36 → ~667 points/scan Range: 4 m Max. scan rate 10 Hz → 0.1 sec 120º / 667 -120º / 0 0º / 334

8 Behavioural Algorithms Leader robot Function DivideLaser() for all laser scans  if index is on the right add range new minimum  if index is on the left add range new minimum  if index is on the center new minimum  calculate right / left mean if left mean < right mean: turn right if right mean < left mean: turn left Obstacle AvoidanceWall FollowingRobot Following 120º -120º Right side Front side Left side -25º25º

9 Behavioural Algorithms Follower robot Also using DivideLaser() if central minimum < stop distance  SetSpeed(0,0); else  SetSpeed(Speed,0); Obstacle AvoidanceWall FollowingRobot Following

10 Behavioural Algorithms Keep constant distance to the wall Calculate slope of a straight line Functioning modes Obstacle AvoidanceWall FollowingRobot Following SEARCH LEFTRIGHT WALL FOLLOW If distance wall < detection distance If left mean < right mean If right mean < left mean If robot loses the wall

11 Behavioural Algorithms Slope of Straight Line x1 = GetRange(165º)·cos(GetBearing(165º)) y1 = GetRange(165º)·sin(GetBearing(165º)) x2 = GetRange(205º)·cos(GetBearing(205º)) y2 = GetRange(205º)·sin(GetBearing(205º)) Obstacle AvoidanceWall FollowingRobot Following x 1,y 1 x 2,y 2 Wall to follow 165º 205º 75º 35º

12 Behavioural Algorithms Simulation Obstacle AvoidanceWall FollowingRobot Following

13 Behavioural Algorithms 1 st approach: Non-obstacle environment Follower can only detect the leader if laser detects something save detecting indexes calculate mean index GetBearing(mean index) do diff = |GetBearing – GetYaw| SetSpeed(0,±turn rate) update GetYaw while diff ≠ 0 if GetRange(mean index) > Stop distance SetSpeed(Speed,0) Obstacle AvoidanceWall FollowingRobot Following

14 Behavioural Algorithms 2 nd approach: Environment with obstacles Movement recognition algorithm If there is any movement, it's the leader t 0 : scan and save ranges → vector 0 t 1 : scan and save ranges → vector 1 v_diff = vector 0 -vector 1 if |v_diff[i]| ≠ 0 → movement → leader calculate mean index of those detecting GetBearing(mean index) Obstacle AvoidanceWall FollowingRobot Following t0, initial position t1, final position Final direction to follow

15 Behavioural Algorithms 2 nd approach: Environment with obstacles do diff = |GetBearing – GetYaw| SetSpeed(0,±turn rate) update GetYaw while diff ≠ 0 if GetRange(mean index)>Stop dist SetSpeed(Speed,0) if GetRange()>Alone distance  SetSpeed(0,0)  Scan again Obstacle AvoidanceWall FollowingRobot Following

16 Behavioural Algorithms 3 rd approach: Physical robot GetYaw() coordinate system different than in simulation Obstacle AvoidanceWall FollowingRobot Following 0 π/2-π/2 π-π 0 -π/2 +π -3π/2 -π +π/2 -2π 0 +2 π Stage simulationKhepera III robot

17 Drawbacks Two robot system (1 leader, 1 follower) Robot can not scan while moving Robot out of the laser field of view

18 Conclusions Non-communicative multi-robot system Simple algorithms Basis of further developments

19 Thank you for your attention Questions?


Download ppt "Multi-Robot Behavioural Algorithms Implementation in Khepera III Robots David Arán Bernabeu Supervisors: Lyuba Alboul Hussein Abdul-Rahman."

Similar presentations


Ads by Google