Control Some Material taken from RobotSubsumption.pdf.
-
date post
19-Dec-2015 -
Category
Documents
-
view
215 -
download
0
Transcript of Control Some Material taken from RobotSubsumption.pdf.
Control
Some Material taken from RobotSubsumption.pdf
Remember Where Are We Going?
Sumo-Bot competitions
QTI Sensors
Used to “see” the white boundary ring
QTI Sensors
P7
P6
Right Side
P3
P2
Left Side
Code
More Info: Chapter 3 of Applied Robotics with the SumoBot
Finite State Machine (FSM) Representation
Sonar Range Finder
Used to “see” the your opponent
Sonar Range Finder
Documentation
Code
Finite State Machine (FSM) Representation
IR Detectors
Often used to “see” to the side (short-range)
IR Detectors
More Info: Chapter 3 of Applied Robotics with the SumoBot
Code
Finite State Machine (FSM) Representation
Read IR go forward turn left turn right go backward
Obj forwardObj right
Obj leftNo Obj
How to Put It Together?
Read IR& sonar
Go forward turn left turn right go forward
Obj forwardObj right
Obj leftNo Obj
Read QTI backup turn right turn left go forward
both lowright low
left lowboth high
Possible Problems
Jerky or halting movement Chase object over boundary Never detect opponent More?
Possible Solution
o Subsumption ArchitectureA programming process by which one behavior subsumes, or over-rides another based on an explicit priority that we have defined. First described by Dr. Rodney Brooks in "A robust layered control system for a mobile robot,” IEEE Journal of Robotics and Automation., RA-2, April, 14-23, 1986.
o FSM with exit conditions
FSM
read IR & sonarand set nextStatevariable
Read QTI andset nextStatevariable
check nextStatevariable and branch
Go forward
Go backwards
turn teft
turn right
Alternative FSM
read Photoresistorsand set nextStatevariable
check nextStatevariable and branch
Read IR Go forward turn left turn right go forward
backup turn right turn left go forward
Program High-Level Outline1. Declare pin assignments,
constants and variables2. Initialize thresholds 3. Wait the required start delay4. Read boundary line sensors and
move accordingly5. If the boundary line is not
detected, read proximity sensors and move accordingly
6. Repeat steps 4 and 5 until completion
Main LoopDo GOSUB Read_Line_Sensors IF (lightLeft < leftThresh) AND (lightRight < rightThresh)
THEN GOSUB About_Face ' boundary ahead ELSEIF (lightLeft < leftThresh) THEN GOSUB Spin_Right ' boundary to left ELSEIF (lightRight < rightThresh) THEN GOSUB Spin_Left ' boundary to right ELSE PULSOUT LMotor, LFwdFast PULSOUT RMotor, RFwdFast GOSUB Search_For_Opponent ENDIFLoop
Code
Changes that you should make Change all I/O Definitions to
match your configuration Change motion control
subroutines to suit your wheel base
Use debug statements to make sure that all sensors are working
Modify the code to incorporate your winning stragegy