MultiRobot 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
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
Player/Stage Player: robot device interface Stage: 2 D simulator Proxies Position 2 d. Proxy Laser. Proxy
Player/Stage Position 2 d. Proxy void Set. Speed(double a. XSpeed, double a. Drive. Angle) double Get. XPos() double Get. Yaw() α β Global axes Local axes Laser. Proxy uint 32_t Get. Count () const double Get. Range (uint 32_t a. Index) const
Khepera III robot Small differential wheeled mobile robot 11 IR and 5 ultrasonic sensors 2 DC motors Kore. Bot: Embedded Linux Wifi communication
Khepera III robot Laser range finder → Hokuyo URG-04 LX Fo. V: 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º / 667 -120º / 0
Behavioural Algorithms Obstacle Avoidance Wall Following Leader robot Function Divide. Laser() Robot Following 25º -25º Front side 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 Left side 120º Right side -120º
Behavioural Algorithms Obstacle Avoidance Wall Following Follower robot Also using Divide. Laser() if central minimum < stop distance Set. Speed(0, 0); else Set. Speed(Speed, 0); Robot Following
Behavioural Algorithms Obstacle Avoidance Keep constant distance to the wall Wall Following Robot Following SEARCH If distance wall < detection distance WALL FOLLOW Calculate slope of a straight line Functioning modes If left mean < right mean If right mean < left mean LEFT RIGHT If robot loses the wall
Behavioural Algorithms Obstacle Avoidance Wall Following Robot Following Slope of Straight Line x 1 = Get. Range(165º)·cos(Get. Bearing(165º)) Wall to follow y 1 = Get. Range(165º)·sin(Get. Bearing(165º)) x 2 = Get. Range(205º)·cos(Get. Bearing(205º)) x 1, y 1 y 2 = Get. Range(205º)·sin(Get. Bearing(205º)) 75º 165º 205º x 2, y 2 35º
Behavioural Algorithms Obstacle Avoidance Simulation Wall Following Robot Following
Behavioural Algorithms Obstacle Avoidance Wall Following 1 st approach: Non-obstacle environment Follower can only detect the leader if laser detects something save detecting indexes calculate mean index Get. Bearing(mean index) do diff = |Get. Bearing – Get. Yaw| Set. Speed(0, ±turn rate) Robot Following
Behavioural Algorithms Obstacle Avoidance Wall Following Robot Following 2 nd approach: Environment with obstacles Final direction to follow Movement recognition algorithm If there is any movement, it's the leader t 0, initial position 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 Get. Bearing(mean index) t 1, final position
Behavioural Algorithms Obstacle Avoidance Wall Following 2 nd approach: Environment with obstacles do diff = |Get. Bearing – Get. Yaw| Set. Speed(0, ±turn rate) update Get. Yaw while diff ≠ 0 if Get. Range(mean index)>Stop dist Set. Speed(Speed, 0) if Get. Range()>Alone distance Set. Speed(0, 0) Scan again Robot Following
Behavioural Algorithms Obstacle Avoidance Wall Following Robot Following 3 rd approach: Physical robot Get. Yaw() coordinate system different than in simulation 0 +2π 0 -2π π/2 -π/2 +π/2 0 -π/2 -3π/2 -π π -π Stage simulation +π Khepera III robot
Drawbacks Two robot system (1 leader, 1 follower) Robot can not scan while moving Robot out of the laser field of view
Conclusions Non-communicative multi-robot system Simple algorithms Basis of further developments
Thank you for your attention Questions?
- Slides: 19