... | ... | @@ -110,7 +110,7 @@ The robot drives through a closed alley. When the robot meets the dead end and c |
|
|
|
|
|
#### Task:
|
|
|
|
|
|
The program RobotFigure9_9.java implements the Avoid, Follow and Cruise behaviors and the arbitration mechanism suggested on page 306 in [2]. Download the program and observe the car. Describe how the car behaves. Try to describe the conditions that trigger the different behaviors.
|
|
|
The program RobotFigure9_9.java implements the Avoid, Follow and Cruise behaviors and the arbitration mechanism suggested on page 306 in [1]. Download the program and observe the car. Describe how the car behaves. Try to describe the conditions that trigger the different behaviors.
|
|
|
|
|
|
#### Plan:
|
|
|
|
... | ... | @@ -185,13 +185,13 @@ As an addition we tested the robot with Avoid and Cruise active. Here the robot |
|
|
|
|
|
#### Task:
|
|
|
|
|
|
In the Figure 9.9 the top priority behavior is Escape. An implementation of Escape in IC is given on page 305 of [2].
|
|
|
In the Figure 9.9 the top priority behavior is Escape. An implementation of Escape in IC is given on page 305 of [1].
|
|
|
|
|
|
Implement the Escape behavior in the RobotFigure9_9.java program.
|
|
|
|
|
|
#### Plan:
|
|
|
|
|
|
We impelemented the escape behavior as suggested by Jones, Flynn & Seiger [2]. The code is seen in Fig.9. Note the bumpCheck() method which is run at the start of every loop. This method checks if the car has bumped in to an object. If contact is made, the car checks which side have made contact and drives back and turns in the opposite direction of the contact.
|
|
|
We impelemented the escape behavior as suggested by Jones, Flynn & Seiger [1]. The code is seen in Fig.9. Note the bumpCheck() method which is run at the start of every loop. This method checks if the car has bumped in to an object. If contact is made, the car checks which side have made contact and drives back and turns in the opposite direction of the contact.
|
|
|
|
|
|
```
|
|
|
import lejos.nxt.*;
|
... | ... | @@ -353,7 +353,7 @@ The video shows the robot drive and navigate from the back of the room where the |
|
|
|
|
|
#### Task:
|
|
|
|
|
|
Describe how the classes SharedCar and Arbiter implements the arbitration suggested on page 306 in [2]. Compare this with the arbiter of Fred Martin, [4, page 214-218].
|
|
|
Describe how the classes SharedCar and Arbiter implements the arbitration suggested on page 306 in [1].
|
|
|
|
|
|
#### Result:
|
|
|
|
... | ... | @@ -374,10 +374,21 @@ Jones, Flynn, and Seiger use a method, void arbitrate() (Fig. 17) to check a fla |
|
|
![IMG_8268](http://gitlab.au.dk/uploads/group-22/lego/0165cb92a7/211.png)
|
|
|
##### Fig.17
|
|
|
|
|
|
The advantage of this method, is that it is easy to maintain an overview of what command classes affects the behaviour of the robot, since they are all prioritized in one arbitrator class [2 p.306-309.]
|
|
|
The advantage of this method, is that it is easy to maintain an overview of what command classes affects the behaviour of the robot, since they are all prioritized in one arbitrator class [1 p.306-309.]
|
|
|
|
|
|
|
|
|
## References:
|
|
|
## References
|
|
|
|
|
|
### Litterature
|
|
|
|
|
|
[1], Jones, Flynn, and Seiger, "Mobile Robots, Inspiration to Implementation", Second Edition, 1999.!
|
|
|
|
|
|
### Videos
|
|
|
|
|
|
[2] https://youtu.be/eWA66BUeK1E
|
|
|
[3] https://youtu.be/Lsahzi8ipL4
|
|
|
[4] https://youtu.be/MUuwSy8rngo
|
|
|
[5] https://youtu.be/MGHlz4jhcUc
|
|
|
[6] https://youtu.be/q5wdHOUkjGo
|
|
|
[7] https://youtu.be/M8O1tO_O-3s
|
|
|
|
|
|
[2], Jones, Flynn, and Seiger, "Mobile Robots, Inspiration to Implementation", Second Edition, 1999.!
|
|
|
[4], Fred G. Martin, Robotic Explorations: A Hands-on Introduction to Engineering, Prentice Hall, 2001.![fig 9.9]![211] |
|
|
\ No newline at end of file |