1 / 89

Control for Mobile Robots

Control for Mobile Robots Christopher Batten Maslab IAP Robotics Course January 11, 2006 Building a control system for a mobile robot can be very challenging Mobile robots are very complex and involve many interacting components Mechanical Electrical Software

Audrey
Download Presentation

Control for Mobile 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. Control for Mobile Robots Christopher Batten Maslab IAP Robotics Course January 11, 2006

  2. Building a control system for a mobile robot can be very challenging Mobile robots are very complex and involve many interacting components Mechanical Electrical Software Your control system must integrate these components so that your robot can achieve the desired goal

  3. Building a control system for a mobile robot can be very challenging • How will you debug and test your robot? • What are the performance requirements? • Can you easily improve aspects of your robot? • Can you easily integrate new functionality? Just as you must carefully design your robot chassis you must carefully design your robot control system

  4. An example of how not to design your robot control system void moveForward( int time ) { while ( t < time ) { // Drive forward a bit -------------------------------------- -------------------------------------- } }

  5. An example of how not to design your robot control system void moveForward( int time ) { while ( t < time ) { // Drive forward a bit -------------------------------------- -------------------------------------- // Check ir sensor and stop if necessary -------------------------------------- -------------------------------------- } }

  6. An example of how not to design your robot control system void moveForward( int time ) { while ( t < time ) { // Drive forward a bit -------------------------------------- -------------------------------------- // Check ir sensor and stop if necessary -------------------------------------- -------------------------------------- // Rotate if there is an obstacle -------------------------------------- -------------------------------------- } }

  7. An example of how not to design your robot control system void moveForward( int time ) { while ( t < time ) { // Drive forward a bit -------------------------------------- -------------------------------------- // Check ir sensor and stop if necessary -------------------------------------- -------------------------------------- // Rotate if there is an obstacle -------------------------------------- -------------------------------------- // Need to find some balls -------------------------------------- -------------------------------------- // Somehow pick up a ball -------------------------------------- -------------------------------------- // What if there is more than one ball? -------------------------------------- -------------------------------------- } }

  8. An example of how not to design your robot control system void moveForward( int time ) { while ( t < time ) { // Drive forward a bit -------------------------------------- -------------------------------------- // Check ir sensor and stop if necessary -------------------------------------- -------------------------------------- // Rotate if there is an obstacle -------------------------------------- -------------------------------------- // Need to find some balls -------------------------------------- -------------------------------------- // Somehow pick up a ball -------------------------------------- -------------------------------------- // What if there is more than one ball? -------------------------------------- -------------------------------------- . . . . . . // Need to find some goals -------------------------------------- -------------------------------------- // What if there are no goals visible? -------------------------------------- -------------------------------------- // Drop off some balls -------------------------------------- -------------------------------------- // Find more balls I guess -------------------------------------- -------------------------------------- // Make sure to ignore balls in goal -------------------------------------- -------------------------------------- // Try to go somewhere new -------------------------------------- -------------------------------------- } }

  9. void moveForward( int time ) while ( t < time ) { An example of how not to design your robot control system void moveForward( int time ) { while ( t < time ) { // Drive forward a bit -------------------------------------- -------------------------------------- // Check ir sensor and stop if necessary -------------------------------------- -------------------------------------- // Rotate if there is an obstacle -------------------------------------- -------------------------------------- // Need to find some balls -------------------------------------- -------------------------------------- // Somehow pick up a ball -------------------------------------- -------------------------------------- // What if there is more than one ball? -------------------------------------- -------------------------------------- // Need to find some goals -------------------------------------- -------------------------------------- // What if there are no goals visible? -------------------------------------- -------------------------------------- // Drop off some balls -------------------------------------- -------------------------------------- // Find more balls I guess -------------------------------------- -------------------------------------- // Make sure to ignore balls in goal -------------------------------------- -------------------------------------- . . . // Need to find some goals -------------------------------------- -------------------------------------- // What if there are no goals visible? -------------------------------------- -------------------------------------- // Drop off some balls -------------------------------------- -------------------------------------- // Find more balls I guess -------------------------------------- -------------------------------------- // Make sure to ignore balls in goal -------------------------------------- -------------------------------------- // Try to go somewhere new -------------------------------------- -------------------------------------- // Find more balls I guess -------------------------------------- -------------------------------------- // Make sure to ignore balls in goal -------------------------------------- -------------------------------------- // Try to go somewhere new -------------------------------------- -------------------------------------- } }

  10. Basic primitive of a control system is a behavior Behaviors should be well-defined, self-contained, and independently testable Turn right 90 Go forward until reach obstacle Capture a ball Explore playing field

  11. Key objective is to compose behaviors so as to achieve the desired goal

  12. Outline • High-level control system paradigms • Model-Plan-Act Approach • Behavioral Approach • Finite State Machine Approach • Low-level control loops • PID controllers for motor velocity • PID controllers for robot drive system • Examples from past years

  13. Model-Plan-Act Approach • Use sensor data to create model of the world • Use model to form a sequence of behaviors which will achieve the desired goal • Execute the plan (compose behaviors) Model Plan Act Sensors Actuators Environment

  14. Exploring the playing field using model-plan-act approach Red dot is the mobile robot while the blue line is the mousehole

  15. Exploring the playing field using model-plan-act approach Robot uses sensors to create local map of the world and identify unexplored areas

  16. Exploring the playing field using model-plan-act approach Robot moves to midpoint of unexplored boundary

  17. Exploring the playing field using model-plan-act approach Robot performs a second sensor scan and must align the new data with the global map

  18. Exploring the playing field using model-plan-act approach Robot continues to explore the playing field

  19. Exploring the playing field using model-plan-act approach Robot must recognize when it starts to see areas which it has already explored

  20. Finding a mouseholeusing model-plan-act approach Given the global map, the goal is to find the mousehole

  21. Finding a mousehole using model-plan-act approach Transform world into configuration space by convolving robot with all obstacles

  22. Finding a mousehole using model-plan-act approach Decompose world into convex cells Trajectory within any cell is free of obstacles

  23. Finding a mousehole using model-plan-act approach Connect cell edge midpoints and centroids to get graph of all possible paths

  24. Finding a mousehole using model-plan-act approach Use an algorithm (such as the A* algorithm) to find shortest path to goal

  25. Finding a mousehole using model-plan-act approach The choice of cell decomposition can greatly influence results

  26. Advantages and disadvantages of the model-plan-act approach • Advantages • Global knowledge in the model enables optimization • Can make provable guarantees about the plan • Disadvantages • Must implement all functional units before any testing • Computationally intensive • Requires very good sensor data for accurate models • Models are inherently an approximation • Works poorly in dynamic environments

  27. Is this bee using the model-plan-act approach? Emergent Approach Living creatures like honey bees are able to explore their surroundings and locate a target (honey) Used with permission, © William Connolley http://wnconnolley.ork.uk

  28. Emergent Approach Living creatures like honey bees are able to explore their surroundings and locate a target (honey) Probably not! Most likely bees layer simple reactive behaviors to create a complex emergent behavior Used with permission, © William Connolley http://wnconnolley.ork.uk

  29. Emergent Approach Should we design our robots so they act less like robots and more like honey bees?

  30. Behavior C Behavior B Behavior A Emergent Approach Sensors Actuators Environment As in biological systems, the emergent approach uses simple behaviors to directly couple sensors and actuators Higher level behaviors are layered on top of lower level behaviors

  31. Ball Gate Bump Switches Infrared Rangefinders Ball Detector Switch Camera To illustrate the emergent approach we will consider a simple mobile robot

  32. Layering simple behaviors can create much more complex emergent behavior Cruise Motors Cruise behavior simply moves robot forward

  33. Subsumption Layering simple behaviors can create much more complex emergent behavior Infrared Avoid Cruise Motors S Left motor speed inversely proportional to left IR range Right motor speed inversely proportional to right IR range If both IR < threshold stop and turn right 120 degrees

  34. Layering simple behaviors can create much more complex emergent behavior Bump Escape Infrared Avoid S Cruise Motors S Escape behavior stops motors, backs up a few inches, and turns right 90 degrees

  35. Layering simple behaviors can create much more complex emergent behavior Camera Track Ball Bump Escape Infrared Avoid S Cruise Motors S S The track ball behavior adjusts the motor differential to steer the robot towards the ball

  36. Layering simple behaviors can create much more complex emergent behavior Ball Switch Hold Ball Ball Gate Camera Track Ball Bump Escape Infrared Avoid S Cruise Motors S S Hold ball behavior simply closes ball gate when ball switch is depressed

  37. Layering simple behaviors can create much more complex emergent behavior Track Goal Ball Switch Hold Ball Ball Gate S Camera Track Ball Bump Escape Infrared Avoid S Cruise Motors S S S The track goal behavior opens the ball gate and adjusts the motor differential to steer the robot towards the goal

  38. Layering simple behaviors can create much more complex emergent behavior Track Goal Ball Switch Hold Ball Ball Gate S Camera Track Ball Bump Escape Infrared Avoid S Cruise Motors S S S All behaviors are always running in parallel and an arbiter is responsible for picking which behavior can access the actuators

  39. Advantages and disadvantages of the behavioral approach • Advantages • Incremental development is very natural • Modularity makes experimentation easier • Cleanly handles dynamic environments • Disadvantages • Difficult to judge what robot will actually do • No performance or completeness guarantees • Debugging can be very difficult

  40. Lots of internal state Very little internal state Lots of preliminary planning No preliminary planning Fixed plan of behaviors Layered behaviors Model-plan-act fuses sensor data, while emergent fuses behaviors Behavior C Model Plan Act Behavior B Behavior A Environment Environment Model-Plan-Act Emergent

  41. Finite State Machines offer another alternative for combining behaviors FSMs have some preliminary planning and some state. Some transitions between behaviors are decided statically while others are decided dynamically. Fwd (dist) Fwd behavior moves robot straight forward a given distance TurnR (deg) TurnR behavior turns robot to the right a given number of degrees

  42. Finite State Machines offer another alternative for combining behaviors Fwd (2ft) TurnR (90) Each state is just a specific behavior instance - link them together to create an open loop control system Fwd (2ft)

  43. Finite State Machines offer another alternative for combining behaviors Fwd (2ft) TurnR (90) Each state is just a specific behavior instance - link them together to create an open loop control system Fwd (2ft)

  44. Finite State Machines offer another alternative for combining behaviors Fwd (2ft) TurnR (90) Each state is just a specific behavior instance - link them together to create an open loop control system Fwd (2ft)

  45. Finite State Machines offer another alternative for combining behaviors Fwd (2ft) TurnR (90) Each state is just a specific behavior instance - link them together to create an open loop control system Fwd (2ft)

  46. Finite State Machines offer another alternative for combining behaviors Fwd (2ft) TurnR (90) Since the Maslab playing field is unknown, open loop control systems have no hope of success! Fwd (2ft)

  47. Finite State Machines offer another alternative for combining behaviors No Obstacle Fwd (1ft) Obstacle Within 2ft No Obstacle TurnR (45) Closed loop finite state machines use sensor data as feedback to make state transitions Obstacle Within 2ft

  48. Finite State Machines offer another alternative for combining behaviors No Obstacle Fwd (1ft) Obstacle Within 2ft No Obstacle TurnR (45) Closed loop finite state machines use sensor data as feedback to make state transitions Obstacle Within 2ft

  49. Finite State Machines offer another alternative for combining behaviors No Obstacle Fwd (1ft) Obstacle Within 2ft No Obstacle TurnR (45) Closed loop finite state machines use sensor data as feedback to make state transitions Obstacle Within 2ft

  50. Finite State Machines offer another alternative for combining behaviors No Obstacle Fwd (1ft) Obstacle Within 2ft No Obstacle TurnR (45) Closed loop finite state machines use sensor data as feedback to make state transitions Obstacle Within 2ft

More Related