... | ... | @@ -22,8 +22,6 @@ |
|
|
|
|
|
Our goal is to implement a program that autonomously takes the robot to the top of the given track and back again as fast as possible, as described in [lesson plan 9](http://legolab.cs.au.dk/DigitalControl.dir/NXT/Lesson8.dir/Lesson.html). The "as fast as possible" part is a secondary focus to succeeding in getting the robot to the top and back down.
|
|
|
|
|
|
TODO: ret kode-eksempler til at være i kodeformat
|
|
|
|
|
|
TODO: ret andre formatteringsting, som ikke kan laves i Google Docs
|
|
|
|
|
|
TODO: ordn refs (til kode mv.)
|
... | ... | @@ -268,7 +266,7 @@ The robot may have had trouble getting safely up the ramps using this approach, |
|
|
|
|
|
#### Combining line following ramp climbing with piloted platform turns
|
|
|
|
|
|
Initially, we included code from **_GodBot.java_** [10] in a copy of **_SimplePilot.java_** [16], **_PilotedCarLineFollower.java_** [17], to drive the robot up the ramp instead of using pilot.forward(). In the API for DifferentialPilot [TODO ref. til [http://www.lejos.org/nxt/nxj/api/lejos/robotics/navigation/DifferentialPilot.html](http://www.lejos.org/nxt/nxj/api/lejos/robotics/navigation/DifferentialPilot.html)] it is stated that the results of other objects making calls to the motors when DifferentialPilot is in use are unpredictable. We had trouble figuring out how to separate line following control from the differential pilot’s control, to be able to switch between them. Our first attempt was to instantiate the DifferentialPilot within the if-statement that captures the case where the robot reads black on both sensors, so that it would only try to run in this isolated case and would be terminated upon exit from the if-statement’s scope. The robot had no trouble getting up the first ramp using line following and individual control of the motors, and it performed the turn on the first platforms - but after this, when exiting the if-statement, the robot started randomly turning and racing around. We spent several hours trying out different approaches to getting the differential pilot to work along with the GodBot line following, but did not succeed.
|
|
|
Initially, we included code from **_GodBot.java_** [10] in a copy of **_SimplePilot.java_** [16], **_PilotedCarLineFollower.java_** [17], to drive the robot up the ramp instead of using pilot.forward(). In the API for DifferentialPilot [24] it is stated that the results of other objects making calls to the motors when DifferentialPilot is in use are unpredictable. We had trouble figuring out how to separate line following control from the differential pilot’s control, to be able to switch between them. Our first attempt was to instantiate the DifferentialPilot within the if-statement that captures the case where the robot reads black on both sensors, so that it would only try to run in this isolated case and would be terminated upon exit from the if-statement’s scope. The robot had no trouble getting up the first ramp using line following and individual control of the motors, and it performed the turn on the first platforms - but after this, when exiting the if-statement, the robot started randomly turning and racing around. We spent several hours trying out different approaches to getting the differential pilot to work along with the GodBot line following, but did not succeed.
|
|
|
|
|
|
##### DifferentialPilot line following
|
|
|
|
... | ... | @@ -316,8 +314,6 @@ All in all we are satisfied with the work done during this lab-week, but disappo |
|
|
|
|
|
## **References**
|
|
|
|
|
|
TODO
|
|
|
|
|
|
[1] Rodney Brooks, [A robust layered control system for a mobile robot](http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=1087032), IEEE Journal of Robotics and Automation, RA-2(1):14-23, 1986
|
|
|
|
|
|
[2] Jones, Flynn, and Seiger, ["Mobile Robots, Inspiration to Implementation"](http://legolab.cs.au.dk/DigitalControl.dir/NXT/Lesson7.dir/11128_Mobile_Robots_Inspiration_to_Implementation-Flynn_and_Jones.pdf), Second Edition, 1999.
|
... | ... | @@ -365,8 +361,21 @@ TODO |
|
|
|
|
|
[23] The [PilotWithBumper.java program](https://gitlab.au.dk/LEGO/lego-kode/tree/master/src/Lesson8programs/ExperimentDebris/PilotWithBumper.java)
|
|
|
|
|
|
[TODO Video ref]
|
|
|
[24] [API of DifferentialPilot(http://www.lejos.org/nxt/nxj/api/lejos/robotics/navigation/DifferentialPilot.html)
|
|
|
|
|
|
[25] [Video 1]()
|
|
|
|
|
|
[26] [Video 2]()
|
|
|
|
|
|
[27] [Video 3]()
|
|
|
|
|
|
[28] [Video 4]()
|
|
|
|
|
|
[29] [Video 5]()
|
|
|
|
|
|
[30] [Video 6]()
|
|
|
|
|
|
[TODO Video ref]
|
|
|
|
|
|
## **Appendix A: Unconstrained idea generation**
|
|
|
|
... | ... | |