Contents ME412 (Autonomous Mobile Robots 2024) ME412 (Autonomous Mobile Robots 2023) ME412 (Autonomous Mobile Robots 2022) ME412 (Autonomous Mobile Robots 2021) ME412 (Autonomous Mobile Robots 2020) ME412 (Autonomous Mobile Robots 2019) ME412 (Autonomous Mobile Robots 2018) ME412 (Autonomous Mobile Robots 2017) ME436 (Autonomous Mobile Robots 2016) ME412 (Autonomous Mobile Robots 2015) ME412 (Autonomous Mobile Robots 2014) ME412 (Autonomous Mobile Robots 2013) ME412 (Autonomous Mobile Robots 2012) ME412 (Autonomous Mobile Robots 2011) ME412 (Autonomous Mobile Robots 2010) ME412 (Autonomous Mobile Robots 2009) ME412 (Autonomous Mobile Robots 2008) ME412 (Autonomous Mobile Robots 2007) EID111 (Self-Replicating Habitats) ME412 (Autonomous Mobile Robots 2006) ME412 (Autonomous Mobile Robots 2005) |
Subsumption with MAR "Avoid"
The concept Avoid was coined by Jones and Flynn in the book, Mobile Robots: Inspiration to Implementation. Jones and Flynn used this notion to explain subsumption where a hypothetical robot with a ring of sonars would avoid all objects within its surroundings. This subsumption approach was the basis of the Avoid program which directs MAR to exhibit an "avoiding" behavior when detecting objects within a threshold envelope around itself. To accomplish this task, MAR's sonars were configured symmetrically around its perimeter. The robot continuously measures the distance seen by each of its sonars. It's internal processing determines if a sonar reading is within 1.5 feet, signaling the approach of a moving object. If so, the robot turns away from the object until the rear sonar reads the shortest distance, determined among the distances measured by all the sonars. Then the robot will move forward until all the sonars, including the rear one, read greater than 1.5 feet. Then it would pause waiting for another approaching object. The block diagram below illustrates the avoid control architecture. The round cornered boxes represent the sensors and actuators of the robot. The square cornered boxes represent the individual behaviors exhibited by the robot. The arrows show that data flow from the sensors (sonars) to the behaviors and from the behaviors to the actuators (motors). What happens is: the robot continually fires the sonars and distance data is processed by the Move Away and Orient Away behavior modules. Then these behavior modules process the distance data and attempt to control the motors according to what they feel is best for the robot. The circles with an S in them are suppressor nodes. They allow data to pass through the horizontal channel unless data comes in from the top channel. Then it will suppress the horizontal channel giving way to the top channel. The hierarchical classification of the behaviors is evident here. We can see that Move Away is a higher order behavior than Orient Away and Rest. and Orient Away is a higher order behavior than Rest. Example: Let's say the robot is in the middle of a large room minding its own business. Like any creature of reasonable intelligence, it wants to "rest". Rest is telling the motors to stop and do nothing! After all, why waste energy when the organism is not threatened or provoked. A large human walks within 1.5 feet (chosen threshold distance) of the robot. The sonar distance data indicates this and where the human is. It will now want to "orient away" from the human. Orient Away sends motor control data through the suppressor node and into Motors. In this fashion, Orient Away "subsumes" control over Rest. Then when the robot detects the human is behind it, it will "move away" by going forward to avoid being eaten. Thus Move Away will send motor control data that will suppress all other behaviors. Finally, when the robot is a safe distance from all other creatures and objects (hey, robots need their space too!) Move Away and Orient Away will stop sending motor control data and Rest will dominate once again. That lazy little stinker... Video of MAR running the Avoid program Copyright © 2016 Ericson Mar mar@cooper.edu
Please let me know if you have any comments. :) |