1 / 19

Multi-Robot Behavioural Algorithms Implementation in Khepera III Robots

Multi-Robot Behavioural Algorithms Implementation in Khepera III Robots. David Arán Bernabeu Supervisors: Lyuba Alboul Hussein Abdul-Rahman. Index. Introduction Player/Stage Khepera III robot Behavioural Algorithms Obstacle avoidance Wall following Robot following Conclusions.

mira
Download Presentation

Multi-Robot Behavioural Algorithms Implementation in Khepera III 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. 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 0º / 334 -120º / 0 120º / 667

  8. Behavioural Algorithms Obstacle Avoidance Wall Following Robot Following • 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 25º -25º Front side Left side Right side -120º 120º

  9. Behavioural Algorithms Obstacle Avoidance Wall Following Robot Following • Follower robot • Also using DivideLaser() • if central minimum < stop distance • SetSpeed(0,0); • else • SetSpeed(Speed,0);

  10. Behavioural Algorithms Obstacle Avoidance Wall Following Robot Following • Keep constant distance to the wall • Calculate slope of a straight line • Functioning modes SEARCH If distance wall < detection distance WALL FOLLOW If left mean < right mean If right mean < left mean LEFT RIGHT If robot loses the wall

  11. Behavioural Algorithms Obstacle Avoidance Wall Following Robot Following • 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º)) Wall to follow x1,y1 75º 165º 35º 205º x2,y2

  12. Behavioural Algorithms Obstacle Avoidance Wall Following Robot Following • Simulation

  13. Behavioural Algorithms Obstacle Avoidance Wall Following Robot Following 1st 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 whilediff ≠ 0 • if GetRange(mean index) > Stop distance • SetSpeed(Speed,0)

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

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

  16. Behavioural Algorithms Obstacle Avoidance Wall Following Robot Following 3rd approach: Physical robot • GetYaw() coordinate system different than in simulation +2π 0 0 -2π 0 +π/2 -π/2 -3π/2 π/2 -π/2 -π π -π +π Stage simulation Khepera 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?

More Related