Recent changes to this wiki: (Note that diffs will appear in the atom feed, but not on this page.)
Modify to note that feedback is always welcome
diff --git a/news/Feedback_please.mdwn b/news/Feedback_please.mdwn index ea6d471..9ce03d7 100644 --- a/news/Feedback_please.mdwn +++ b/news/Feedback_please.mdwn @@ -1,6 +1,6 @@ Hi all, - The University is running its CATEI evaluations again. This is where you get to give feedback on my course. + The University is running its CATEI evaluations again. This is another opportunity for you to give feedback on my course. (Feedback is welcome outside of CATEI too.) I really appreciate all feedback. Positive feedback helps me convince NICTA to keep running the course. Constructive negative feedback lets me know how to improve the course for future years. Even if you @@ -12,7 +12,7 @@ Will ---- -Here is a, slightly edited, excerpt from the mail I received (and everyone enrolled in the course should have received a similar one): +Here is a, slightly edited, excerpt from the announcement mail I received (and everyone enrolled in the course should have received a similar one): > Students can access evaluation form(s) by login into [myUNSW](https://my.unsw.edu.au/), click the CATEI icon in the left menu bar on my survey area. >
Advertise CATEI forms
diff --git a/news/Feedback_please.mdwn b/news/Feedback_please.mdwn new file mode 100644 index 0000000..ea6d471 --- /dev/null +++ b/news/Feedback_please.mdwn @@ -0,0 +1,25 @@ +Hi all, + + The University is running its CATEI evaluations again. This is where you get to give feedback on my course. + + I really appreciate all feedback. Positive feedback helps me convince NICTA to keep running the course. +Constructive negative feedback lets me know how to improve the course for future years. Even if you +loved the course, please let me know of any suggestions for improvement in the comments section. + +Be well, + +Will + +---- + +Here is a, slightly edited, excerpt from the mail I received (and everyone enrolled in the course should have received a similar one): + +> Students can access evaluation form(s) by login into [myUNSW](https://my.unsw.edu.au/), click the CATEI icon in the left menu bar on my survey area. +> +> Only those students who have yet to finish all forms will be sent reminders in the UNSW email account. +> +> If you require any further information, please contact your school CATEI coordinator: +> +> * John Shepherd - School of Computer Science +> * Bill Wilson - School of Computer Science +> * Colin Taylor - School of Computer Science
Exam announcement
diff --git a/news/Exam_Time___38___Place.mdwn b/news/Exam_Time___38___Place.mdwn new file mode 100644 index 0000000..fe21405 --- /dev/null +++ b/news/Exam_Time___38___Place.mdwn @@ -0,0 +1,9 @@ +The exam will be 3 hours. + +It will be held on the morning of Monday 3rd November in room ASB 220. + +You should be there by 8:45am, and it should end around noon. + +The exam is open book. A calculator is allowed and may be useful for some questions. +You are *not* allowed to use any communications device to communicate with another human +during the exam.
Fix formatting
diff --git a/notes/Lecture8A.mdwn b/notes/Lecture8A.mdwn
index f557645..49901b8 100644
--- a/notes/Lecture8A.mdwn
+++ b/notes/Lecture8A.mdwn
@@ -1,6 +1,9 @@
Review
+
* Building Models
+
Today
+
* Building Heuristics (deterministic, goal state(s))
* Backward search / Dynamic programming
* Both cost and search heuristics
Update pages to point to latest versions of slides...
diff --git a/notes/Lecture7B.mdwn b/notes/Lecture7B.mdwn index 640d083..c0adb4c 100644 --- a/notes/Lecture7B.mdwn +++ b/notes/Lecture7B.mdwn @@ -1 +1 @@ -Malcolm Ryan's guest lecture on planning. His slides are available from [his web page](http://www.cse.unsw.edu.au/~malcolmr/cs3431/) or from the [[course wiki|/slides/2005/malcolmr-planning]] from the course web page. +Malcolm Ryan's guest lecture on planning. His slides are available from [his web page](http://www.cse.unsw.edu.au/~malcolmr/cs3431/) or from the [[course wiki|/slides/2008/malcolmr-planning]] from the course web page. diff --git a/notes/Lecture8B.mdwn b/notes/Lecture8B.mdwn index d37d010..5f5315d 100644 --- a/notes/Lecture8B.mdwn +++ b/notes/Lecture8B.mdwn @@ -1 +1 @@ -Malcolm Ryan's guest lecture on plan space planning. His slides are available [his web page](http://www.cse.unsw.edu.au/~malcolmr/cs3431/) or the [[course wiki|/slides/2005/malcolmr-planning]]. +Malcolm Ryan's guest lecture on plan space planning. His slides are available [his web page](http://www.cse.unsw.edu.au/~malcolmr/cs3431/) or the [[course wiki|/slides/2008/malcolmr-planning]].
Add Malcolm's Planning slides
diff --git a/slides/2008/malcolmr-planning.mdwn b/slides/2008/malcolmr-planning.mdwn new file mode 100644 index 0000000..e190a08 --- /dev/null +++ b/slides/2008/malcolmr-planning.mdwn @@ -0,0 +1,3 @@ +Malcolm Ryan's planning slides: + +[[!map pages="slides/2008/malcolmr-planning/*"]] diff --git a/slides/2008/malcolmr-planning/CS3431-1.ppt b/slides/2008/malcolmr-planning/CS3431-1.ppt new file mode 100644 index 0000000..7523d4e Binary files /dev/null and b/slides/2008/malcolmr-planning/CS3431-1.ppt differ diff --git a/slides/2008/malcolmr-planning/CS3431-2.ppt b/slides/2008/malcolmr-planning/CS3431-2.ppt new file mode 100644 index 0000000..5e1c7de Binary files /dev/null and b/slides/2008/malcolmr-planning/CS3431-2.ppt differ
Seminar announcement
diff --git a/news/Relevant_talk....mdwn b/news/Relevant_talk....mdwn new file mode 100644 index 0000000..1923664 --- /dev/null +++ b/news/Relevant_talk....mdwn @@ -0,0 +1,92 @@ +The `seminar-ai@cse` mailing list announces talks that people in this class might find interesting. For example, here is an announcement for Thursday: + +---- + +Dear All, + +Announcing a New AI Seminar. The details are: + +Title: Model-based Programming of Robust Agile Systems + +Presenter: Brian C. Williams + +Presenter URL: <http://people.csail.mit.edu/williams/Web%20site/williams.shtml> + +Affiliation: Model-based Embedded and Robotic Systems, Massachusetts Institute of Technology + +Affiliation URL: <http://groups.csail.mit.edu/mers/mers.htm> + +Date: Thursday 11th September 2008 + +Time: 12:00:00 + +Location: CSE Seminar Room, Level 1, K17 + +Abstract: +Autonomous, self-repairing explorers, such as deep space probes, have +successfully performed complex missions by employing model-based +executives that continuously monitor mission goals, diagnose failures and +plan repairs. These executives employ models encoded as probabilistic +constraint automata, in order to observe and control the hidden states of +the system. These executives have also been incorporated within model-based +programming languages that facilitate the creation of a wide range of fault +adaptive systems, including automobiles and naval ships. + +Future explorers, such as autonomous air vehicles and walking robots, +will require far greater agility, in order to robustly achieve their +missions. For example, to avoid falling, a walking robot must quickly +detect a loss of balance, and replan its control trajectory appropriately. +This talk presents recent advances in model-based programming and +execution for agile systems. First, to reason about a system~Rs dynamics, +these executives employ probabilistic constraint automata that are +extended to hybrid discrete/continuous constraints. Second, to robustly +achieve missions, these executives employ planning methods that reason +about continuous, as well as discrete, state changes, and employ +compilation and model-predictive control methods in order to adapt on the +fly. Finally, these executives employ estimation methods for hybrid PHA +that detect subtle failures through active control. Model-based execution +is demonstrated both on a team of cooperative air vehicles and a biped +walking machine. + + +Biography of Speaker: +Professor Williams leads the Model-based Embedded and Robotic Systems +<http://mers.csail.mit.edu/mers.htm> group, within the Computer Science +and Artificial Intelligence Laboratory +<http://www.csail.mit.edu/index.php>(CSAIL) at the Massachusetts Institute +of Technology <http://web.mit.edu/>. His research concentrates on +model-based autonomy <http://ic-www.arc.nasa.gov/ic/project/mba/index.html> +-- the creation of long-lived systems that explore autonomously, while +commanding, diagnosing and repairing themselves using fast, commonsense +reasoning. Current research focuses on model-based programming and +cooperative robotics: Model-based programming supports goal-directed +programming of robust explorers and everyday devices, by incorporating +model-based deductive capabilities within traditional embedded programming +languages. Cooperative robotics extends model-based autonomy to robotic +networks of cooperating space, air, land and undersea vehicles, on Earth +and on other planets. + +Professor Williams received his S.B., S.M and Ph.D. in Computer Science and +Electrical Engineering at MIT, and worked at the Xerox Palo Alto Research +Center and NASA Ames Research Center, prior to joining the faculty at MIT. +He is a pioneer in the fields of qualitative reasoning, model-based +diagnosis and autonomous systems. He received a NASA Space Act Award for +Remote Agent, the first fully autonomous, self-repairing space explorer, +demonstrated onboard the NASA Deep Space One probe in May, 1999. He was a +member of the Tom Young Blue Ribbon Team in 2000, assessing future Mars +missions in light of the Mars Climate Orbiter and Polar Lander incidents, +and is currently a member of the Advisory Council of the NASA Jet +Propulsion Laboratory at Caltech. He has won four best paper prizes for +his research in diagnosis, qualitative algebras, propositional inference +and soft constraints. He is a fellow of AAAI, has served as guest editor +of the Artificial Intelligence Journal +<http://www.elsevier.nlinca/publications/store/5/0/5/6/0/1/> and has been +on the editorial boards of the Journal of Artificial Intelligence Research +<http://www.jair.org/>, and MIT Press. + + +Host: Toby Walsh + +Seminar Convenor: Van Hai Ho + +Thankyou
Announce Assignment 2
diff --git a/assignments.mdwn b/assignments.mdwn index aeba7d4..fd515cc 100644 --- a/assignments.mdwn +++ b/assignments.mdwn @@ -1,7 +1,12 @@ -There are three assignments distributed throughout the semester. All are team assignments to make the AIBO robots do something. +There are three assignments distributed throughout the semester. -The three 2007 assignments were: +Assignments 1 and 3 are the same as 2007 in all ways except the due date. +These two assignments are practical assignments on the AIBOs and will be marked in lab. + +The second assignment is a written assignment. + +Due dates for all assignments are shown on the [[lecture plan]]. * [[Assignment_1|assignments/2007/assign1-2007.pdf]] - * [[Assignment_2|assignments/2007/assign2-2007.pdf]] + * [[Assignment_2|assignments/2008/assign2.pdf]] * [[Assignment_3|assignments/2007/assign3-2007.pdf]] diff --git a/news/Assignment_2.mdwn b/news/Assignment_2.mdwn new file mode 100644 index 0000000..0b13ee8 --- /dev/null +++ b/news/Assignment_2.mdwn @@ -0,0 +1 @@ +[[Assignment_2|/assignments/2008/assign2.pdf]] has been released. Not all the work in that assignment has been covered yet, but will be at least a week before the assignment is due.
Add assignment 2
diff --git a/assignments/2008/assign2.pdf b/assignments/2008/assign2.pdf new file mode 100644 index 0000000..c14bc18 Binary files /dev/null and b/assignments/2008/assign2.pdf differ
Add the RoboCup 2006 rules locally.
diff --git a/aibo.mdwn b/aibo.mdwn index 9c12f87..7bb7bc6 100644 --- a/aibo.mdwn +++ b/aibo.mdwn @@ -7,7 +7,7 @@ These pages were all exported from a previous wiki and are in the wrong wiki for I just added a new page on [[aibo/comp3431/GettingStarted]]. -The Robocup 2006 rules are available [here](http://www.tzi.de/4legged/pub/Website/Downloads/Rules2006.pdf) +The Robocup 2006 rules are available on the [RoboCup SPL web site](http://www.tzi.de/4legged/pub/Website/Downloads/Rules2006.pdf) and [[locally|/papers/Rules2006.pdf]]. There are notes from the previous COMP3431 class wiki: diff --git a/papers/Rules2006.pdf b/papers/Rules2006.pdf new file mode 100644 index 0000000..30be3d3 Binary files /dev/null and b/papers/Rules2006.pdf differ
Try changing path
diff --git a/notes/Lecture7B.mdwn b/notes/Lecture7B.mdwn index 23b64d7..640d083 100644 --- a/notes/Lecture7B.mdwn +++ b/notes/Lecture7B.mdwn @@ -1 +1 @@ -Malcolm Ryan's guest lecture on planning. His slides are available from [his web page](http://www.cse.unsw.edu.au/~malcolmr/cs3431/) or from the [[course wiki|slides/2005/malcolmr-planning]] from the course web page. +Malcolm Ryan's guest lecture on planning. His slides are available from [his web page](http://www.cse.unsw.edu.au/~malcolmr/cs3431/) or from the [[course wiki|/slides/2005/malcolmr-planning]] from the course web page. diff --git a/notes/Lecture8B.mdwn b/notes/Lecture8B.mdwn index 9d9fb4c..d37d010 100644 --- a/notes/Lecture8B.mdwn +++ b/notes/Lecture8B.mdwn @@ -1 +1 @@ -Malcolm Ryan's guest lecture on plan space planning. His slides are available [his web page](http://www.cse.unsw.edu.au/~malcolmr/cs3431/) or the [[course wiki|slides/2005/malcolmr-planning]]. +Malcolm Ryan's guest lecture on plan space planning. His slides are available [his web page](http://www.cse.unsw.edu.au/~malcolmr/cs3431/) or the [[course wiki|/slides/2005/malcolmr-planning]].
Move header page
diff --git a/notes/slides/2005/malcolmr-planning.mdwn b/notes/slides/2005/malcolmr-planning.mdwn deleted file mode 100644 index 3641d16..0000000 --- a/notes/slides/2005/malcolmr-planning.mdwn +++ /dev/null @@ -1,3 +0,0 @@ -Malcolm Ryan's planning slides: - -[[!map pages="*"]] diff --git a/slides/2005/malcolmr-planning.mdwn b/slides/2005/malcolmr-planning.mdwn new file mode 100644 index 0000000..39f2864 --- /dev/null +++ b/slides/2005/malcolmr-planning.mdwn @@ -0,0 +1,3 @@ +Malcolm Ryan's planning slides: + +[[!map pages="slides/2005/malcolmr-planning/*"]]
Add an overview page
diff --git a/notes/slides/2005/malcolmr-planning.mdwn b/notes/slides/2005/malcolmr-planning.mdwn new file mode 100644 index 0000000..3641d16 --- /dev/null +++ b/notes/slides/2005/malcolmr-planning.mdwn @@ -0,0 +1,3 @@ +Malcolm Ryan's planning slides: + +[[!map pages="*"]]
Update wiki formatting
diff --git a/notes/Lecture7B.mdwn b/notes/Lecture7B.mdwn index ead9e64..23b64d7 100644 --- a/notes/Lecture7B.mdwn +++ b/notes/Lecture7B.mdwn @@ -1 +1 @@ -Malcolm Ryan's guest lecture on planning. His slides are available from [his_web_page](http://www.cse.unsw.edu.au/~malcolmr/cs3431/) or from the [course_webpage|slides/2005/malcolmr-planning] from the course web page. +Malcolm Ryan's guest lecture on planning. His slides are available from [his web page](http://www.cse.unsw.edu.au/~malcolmr/cs3431/) or from the [[course wiki|slides/2005/malcolmr-planning]] from the course web page. diff --git a/notes/Lecture8B.mdwn b/notes/Lecture8B.mdwn index 7e8fc7b..9d9fb4c 100644 --- a/notes/Lecture8B.mdwn +++ b/notes/Lecture8B.mdwn @@ -1 +1 @@ -Malcolm Ryan's guest lecture on plan space planning. His slides are available [http://www.cse.unsw.edu.au/~malcolmr/cs3431/ from his web page] or [http://www.cse.unsw.edu.au/~cs3431/slides/2005/malcolmr-planning/ from the course web page]. +Malcolm Ryan's guest lecture on plan space planning. His slides are available [his web page](http://www.cse.unsw.edu.au/~malcolmr/cs3431/) or the [[course wiki|slides/2005/malcolmr-planning]].
Reformat
diff --git a/notes/Lecture7A.mdwn b/notes/Lecture7A.mdwn
index ca1f0bd..7545126 100644
--- a/notes/Lecture7A.mdwn
+++ b/notes/Lecture7A.mdwn
@@ -1,5 +1,8 @@
-= Course overview =
-== So far ==
+Course overview
+---------------
+
+### So Far
+
* Agent Systems
* RoboCup
* Other robot architectures
@@ -19,7 +22,8 @@
* Heuristic
* Current State
-== Yet to see ==
+### Yet to see
+
* Some representations for discrete search
* Building Models
* Building Heuristics
@@ -31,7 +35,7 @@
* More on Hierarchy
* Adversarial Agents
-= Today =
+### Today
* Building Models
* Try actions in different locations
make the distinction between two type of ball coordinate clearer for beginners
diff --git a/aibo/comp3431/UsefulPython.txt b/aibo/comp3431/UsefulPython.txt
index 76861b7..5fe6a7e 100644
--- a/aibo/comp3431/UsefulPython.txt
+++ b/aibo/comp3431/UsefulPython.txt
@@ -1,252 +1,503 @@
-{{{
-
-# Useful Python Code for Beginning
-
-
-###
-# most useful modules to import:
-
-import math
-import Global
-import Constant
-import VisionLink
-import Action
-import Indicator
-import hMath
-
-
-###
-# head stuff
-
-Action.setHeadParams(pan, tilt, crane)
-
-Action.setHeadToLastPoint()
-
-# current head params
-Global.pan
-Global.tilt
-Global.crane
-
-# N.B. these are the [same as/source for] the above:
-VisionLink.getJointSensor(Constant.jHeadPan)
-VisionLink.getJointSensor(Constant.jHeadTilt)
-VisionLink.getJointSensor(Constant.jHeadCrane)
-
-
-# maximum / minimum values for the head:
-Constant.MAX_PAN # = 93
-Constant.MIN_PAN # = -93
-Constant.MAX_TILT # = 3
-Constant.MIN_TILT # = -80
-Constant.MAX_CRANE # = 50
-Constant.MIN_CRANE # = -20
-
-
-
-
-###
-# walking
-
-Action.walk(forward/back, left/right, rotation)
-
-Action.kick(Action.SOMEKICKTYPE)
-
-hMath.walkSpeedToDistance(speed, type)
-hMath.walkDistanceToSpeed(distance, type)
-
-
-
-
-###
-# maths
-
-
-# arctan( a / b )
-math.atan2(a, b)
-
-
-
-# the following are some pickings from hMath:
-
-hMath.dotProduct2D(vec1x, vec1y, vec2x, vec2y)
-
-hMath.normaliseVector2D(vec1x, vec1y)
-
-# returns -1, 1 or 0 according to the sign of the input
-hMath.sign(x)
-
-hMath.getLength(vec)
-
-hMath.normalise(vec)
-
-# Rotates a 2D vector counter-clockwise by the given angle in degrees
-hMath.rotate(vec, angle, rad = False)
-
-
-
-
-###
-# Coordinates:
-
-
-# Clip a coordinate to a point in the field
-hMath.clipPosition((x,y))
-
-
-# convert a point from local to global coordinates
-hMath.localToGlobalCoordinates(x, y):
-
-# convert a point from global to local coordinates
-hMath.globalToLocalCoordinates(x, y):
-
-
-
-
-###
-# Time:
-
-VisionLink.getCurrentTime()
-
-# RETURN: the time elapsed in MILLI-seconds
-# takes 2 time tuples in (sec, mirco-sec) form,
-hMath.getTimeElapsed(oldTime, newTime = None)
-
-
-
-
-
-###
-# ball stuff
-
-
-Global.vBall.isVisible()
-
-
-
-# this is the Visible x and y position of a point on the ball, on the *ground*, relative to the ground-point under the dog's head
-# these are local coordinates
-# top-view:
-#
-# ^
-# |
-# y
-# | -'ve 0 +'ve
-# v <-------- x ---------->
-# _____
-# / head \
-x, y = VisionLink.getProjectedBall()
-
-
-
-# x and y of a point on the ball (local coords),
-# heading and
-# distance (both relative to neck base)
-# as determined by the Kalman Filter / Baysian stuff
-Global.gpsLocalBall.getPos()
-Global.gpsLocalBall.getHeading()
-Global.gpsLocalBall.getDistance()
-
-# x and y of a point on the ball (global),
-# heading and
-# distance (both relative to neck base)
-# as seen on the camera
-Global.vBall.getPos()
-Global.vBall.getHeading()
-Global.vBall.getVobDistance()
-
-
-# Global's best guess at where the ball is (using vision AND gps)
-Global.ballX
-Global.ballY
-# distance to the ball
-Global.ballD
-# ball's heading
-Global.ballH
-
-
-# variance of the ball
-# N.B. standard deviation is the square root of the variance
-# assumed to be in cm.
-VisionLink.getGPSBallMaxVar()
-
-
-###
-# robot stuff
-
-# the position of the robot in global coordinates
-Global.selfX
-Global.selfY
-
-# robot's heading
-Global.selfH
-
-
-# Note: these values are retrieved from VisionLink in Global using:
-selfLoc.setVals(*VisionLink.getGPSSelfInfo())
-(selfX, selfY, selfH) = selfLoc.getPose()
-
-
-
-###
-# pretty/cute/debug stuff
-
-Indicator.setFaceLed( a number 1-15 )
-# 13 = red eyes
-# 9 and 10 = white eyes
(Diff truncated)
Rearrange guest lectures.
Note due date of Assignment 2.
Note due date of Assignment 2.
diff --git a/lecture_plan.mdwn b/lecture_plan.mdwn
index b630e38..32dc3c8 100644
--- a/lecture_plan.mdwn
+++ b/lecture_plan.mdwn
@@ -152,13 +152,15 @@
#### [[notes/Lecture7A]]
- Planning
- State Space search
-
+ Reinforcemnt Learning
+ Style of problem
+ Optimality criteria
+ Exploration/Exploitation trade-off
+
#### [[notes/Lecture7B]]
Planning
- Plan space planning
+ State Space search
#### Lab (Computer lab)
@@ -168,13 +170,6 @@
#### [[notes/Lecture8A]]
- Reinforcemnt Learning
- Style of problem
- Optimality criteria
- Exploration/Exploitation trade-off
-
-#### [[notes/Lecture8B]]
-
Markov Decision Processes
Formal definition
Model based updates
@@ -184,9 +179,14 @@
Q-learning
Adaptive Heuristic Critic
-#### Lab (Computer lab)
+#### [[notes/Lecture8B]]
Planning
+ Plan space planning
+
+#### Lab (Level 3)
+
+ Work on Assignment 3
### Week 9 22/9
@@ -202,9 +202,11 @@
Introduction to Optimization
1D Golden Section Search
-#### Lab (Level 3)
+ Assignment 2 Due at start of lecture.
- Work on Assignment 3
+#### Lab (Computer lab)
+
+ Planning
### Mid Semester Break - 29/9
diff --git a/notes/Lecture7A.mdwn b/notes/Lecture7A.mdwn
index a8393f1..ca1f0bd 100644
--- a/notes/Lecture7A.mdwn
+++ b/notes/Lecture7A.mdwn
@@ -1 +1,40 @@
-Malcolm Ryan's guest lecture on planning. His slides are available from [his_web_page](http://www.cse.unsw.edu.au/~malcolmr/cs3431/) or from the [course_webpage|slides/2005/malcolmr-planning] from the course web page.
+= Course overview =
+== So far ==
+ * Agent Systems
+ * RoboCup
+ * Other robot architectures
+ * Three Layer Architectures (planner/Symbolic reactive/non-symbolic reactive)
+ * Subsumption
+ * Cognitive Architectures
+ * ACT-R
+ * Search
+ * Graph search
+ * BFS/DFS/BFS/A*/Approx A*/Iterative Deepening
+ * Logic spaces
+ * State space planning
+ * Plan space/Partial Order planning
+ * Things for search:
+ * Representation
+ * Model of World
+ * Heuristic
+ * Current State
+
+== Yet to see ==
+ * Some representations for discrete search
+ * Building Models
+ * Building Heuristics
+ * Relationship to hierarchy
+ * Incremental/cached/dynamic programming search
+ * Stochastic worlds
+ * Search through continuous spaces
+ * Incomplete state/partial observability
+ * More on Hierarchy
+ * Adversarial Agents
+
+= Today =
+
+ * Building Models
+ * Try actions in different locations
+ * Learn to predict the results of actions
+ * Machine Learning problem
+ * Need to sample entire space to get model over entire space
diff --git a/notes/Lecture7B.mdwn b/notes/Lecture7B.mdwn
index 7d8f5bf..ead9e64 100644
--- a/notes/Lecture7B.mdwn
+++ b/notes/Lecture7B.mdwn
@@ -1 +1 @@
-Malcolm Ryan's guest lecture on plan space planning. His slides are available [http://www.cse.unsw.edu.au/~malcolmr/cs3431/ from his web page] or [http://www.cse.unsw.edu.au/~cs3431/slides/2005/malcolmr-planning/ from the course web page].
\ No newline at end of file
+Malcolm Ryan's guest lecture on planning. His slides are available from [his_web_page](http://www.cse.unsw.edu.au/~malcolmr/cs3431/) or from the [course_webpage|slides/2005/malcolmr-planning] from the course web page.
diff --git a/notes/Lecture8A.mdwn b/notes/Lecture8A.mdwn
index 292483c..f557645 100644
--- a/notes/Lecture8A.mdwn
+++ b/notes/Lecture8A.mdwn
@@ -1,40 +1,42 @@
-= Course overview =
-== So far ==
- * Agent Systems
- * RoboCup
- * Other robot architectures
- * Three Layer Architectures (planner/Symbolic reactive/non-symbolic reactive)
- * Subsumption
- * Cognitive Architectures
- * ACT-R
- * Search
- * Graph search
- * BFS/DFS/BFS/A*/Approx A*/Iterative Deepening
- * Logic spaces
- * State space planning
- * Plan space/Partial Order planning
- * Things for search:
- * Representation
- * Model of World
- * Heuristic
- * Current State
-
-== Yet to see ==
- * Some representations for discrete search
+Review
* Building Models
- * Building Heuristics
- * Relationship to hierarchy
- * Incremental/cached/dynamic programming search
- * Stochastic worlds
- * Search through continuous spaces
- * Incomplete state/partial observability
- * More on Hierarchy
- * Adversarial Agents
+Today
+ * Building Heuristics (deterministic, goal state(s))
+ * Backward search / Dynamic programming
+ * Both cost and search heuristics
+ * Relaxing problem to find admissible (optimistic) heuristic
+ * Dynamic Programming for Markov Decision Processes
+ * Stochasticity
+ * Random order of update
+ * Value iteration
+ * Policy iteration
+ * Modified Policy iteration
+ * State and state/action value functions
+ * Q(s,a) = E(r + V(s')) = Sum_s' P(s,a,s') ( r + V(s') )
+ * "Expected reward for taking action a in state s and then following policy pi"
+ * Note: P(s,a,s') is the model of the world
+ * V(s) = max_a Q(s, a)
+ * "Expected reward for following policy pi from state s"
+ * pi*(s) = argmax_a Q(s, a)
+ * pi* is the optimal policy (assuming everything has converged)
+ * Other optimality criterion
+ * One way to view what we were doing is to find a policy that maximises the long term sum of reward
+ * sum_{0 < t < infinity} r_t
+ * Maximise "sum of reward" is tricky if sums can be infinite (loops)
+ * infinite horizon, discounted
+ * Find policy to maximise sum_{0 < t < infinity} gamma^t r_t
+ * gamma is:
+ * trick to keep things bounded
+ * Interest rate
+ * (1-gamma) = probability of transitioning to 0-value terminal state each step
+ * Q(s,a) = E(r + gamma V(s'))
+ * average reward
+ * Maximise lim t_max -> infinity 1/t_max sum_{0 < t < t_max} r_t
+ * Discussion
+ * MDP solving finds a complete policy -> looks at entire state space
-= Today =
+Introduction to Soft-Max / Boltzmann distribution
+ The formula is p(i) = e^(f(i) / T) / (sum of all probabilities)
- * Building Models
(Diff truncated)
Use teximg for formulae
diff --git a/notes/Lecture3B.mdwn b/notes/Lecture3B.mdwn
index 4bd10c3..6729902 100644
--- a/notes/Lecture3B.mdwn
+++ b/notes/Lecture3B.mdwn
@@ -1,22 +1,43 @@
-Representations for Probability distributions:
-
- * Table of values
- * Discretization effects
- * Particles
- * Use sampling with replacement to re-normalize
- * Use motion model to separate duplicates from sampling with replacement
- * Closed form
- * Conjugate priors - http://www.cis.hut.fi/ahonkela/dippa/node23.html
- * Basically the initial distribution is of the same class as the transition model (eg both gaussian)
- * Normal (Gaussian) Distribution:
- * f(x) = 1/(s sqrt(2pi)) exp(-(x-mu)^2/2s^2)
- * In multi-dimensions, mean becomes a vector and co-variance (measure of spread) becomes a matrix
- * Known as a Kalman filter when implemented with Matrix math
- * Assumes linear-gaussian transition and sensor models (linear function + gaussian noise)
- * Works well with "any system characterised by continuous state variables and noisy measurements" (R&N p557)
- * Use tagent as approximation to linear form (linearization) if a distribution is non-gaussian
- * Also: Beta, Dirichet distributions (the conjugate prior for multinomial distributions)
-
- * Also covered decomposition of P(x,y) into P(x).P(y|x)
- * e.g. P(x, y, theta) split into P(x, y) and P(theta | x, y)
- * Much smaller tables, cannot represent correlations
\ No newline at end of file
+Representations for Probability distributions:
+
+
+
+ * Table of values
+
+ * Discretization effects
+
+ * Particles
+
+ * Use sampling with replacement to re-normalize
+
+ * Use motion model to separate duplicates from sampling with replacement
+
+ * Closed form
+
+ * Conjugate priors - http://www.cis.hut.fi/ahonkela/dippa/node23.html
+
+ * Basically the initial distribution is of the same class as the transition model (eg both gaussian)
+
+ * Normal (Gaussian) Distribution:
+
+ * [[!teximg code="f(x) = \frac{1}{\sigma \sqrt{2 \pi}} e^{-\frac{( x - \mu )^2}{2 \sigma^2}}"]]
+
+ * In multi-dimensions, mean becomes a vector and co-variance (measure of spread) becomes a matrix
+
+ * Known as a Kalman filter when implemented with Matrix math
+
+ * Assumes linear-gaussian transition and sensor models (linear function + gaussian noise)
+
+ * Works well with "any system characterised by continuous state variables and noisy measurements" (R&N p557)
+
+ * Use tagent as approximation to linear form (linearization) if a distribution is non-gaussian
+
+ * Also: Beta, Dirichet distributions (the conjugate prior for multinomial distributions)
+
+
+
+ * Also covered decomposition of P(x,y) into P(x).P(y|x)
+
+ * e.g. P(x, y, theta) split into P(x, y) and P(theta | x, y)
+
+ * Much smaller tables, cannot represent correlations
Update labs to take into account assignment 1 due date change
diff --git a/lecture_plan.mdwn b/lecture_plan.mdwn
index 55bf444..b630e38 100644
--- a/lecture_plan.mdwn
+++ b/lecture_plan.mdwn
@@ -127,7 +127,7 @@
#### Lab (Level 3)
- Assignment 1 graded in lab
+ Work on assignment 1
### Week 6 - 1/9
@@ -144,9 +144,9 @@
Mixing Search and Heuristics (Korf)
Heuristics as simplifications/relaxations
-#### Lab (Computer lab)
+#### Lab (Level 3)
- A*/Islands/Heuristics
+ Assignment 1 graded in lab
### Week 7 - 8/9
@@ -162,7 +162,7 @@
#### Lab (Computer lab)
- Planning
+ A*/Islands/Heuristics
### Week 8 - 15/9
@@ -186,7 +186,7 @@
#### Lab (Computer lab)
- Assignement 2 graded in lab
+ Planning
### Week 9 22/9
@@ -202,7 +202,7 @@
Introduction to Optimization
1D Golden Section Search
-#### Lab (Computer lab)
+#### Lab (Level 3)
Work on Assignment 3
@@ -270,6 +270,6 @@
Review
-#### Lab
+#### Lab (Level 3)
Assignment 3 graded in lab
Notes on assignment 1
diff --git a/news/Assignment_1.mdwn b/news/Assignment_1.mdwn new file mode 100644 index 0000000..e4d9f06 --- /dev/null +++ b/news/Assignment_1.mdwn @@ -0,0 +1,12 @@ +Hi all, + A few notes on Assignment 1. All of this has been mentioned in class - I'm just documenting it here. + + - The assignment is the same as last year, so you can use last year's assignment sheet: [[assignments/2007/assign1-2007.pdf]] + - The due date on the assignment sheet from last year is wrong (that's last year's due date). Use the one on the [[lecture_plan]] instead. + - The due date of the assignment has changed. You have an extra week now. It is now due at the start of the week 6 lab (and will be marked in that lab). + +If anyone does not have a group for the first assignment they should see me ASAP! + +Be well, + +Will :-}
Add a link to the external rules
diff --git a/aibo.mdwn b/aibo.mdwn index 66ca697..9c12f87 100644 --- a/aibo.mdwn +++ b/aibo.mdwn @@ -7,6 +7,8 @@ These pages were all exported from a previous wiki and are in the wrong wiki for I just added a new page on [[aibo/comp3431/GettingStarted]]. +The Robocup 2006 rules are available [here](http://www.tzi.de/4legged/pub/Website/Downloads/Rules2006.pdf) + There are notes from the previous COMP3431 class wiki: [[!inline pages="aibo/comp3431/*" archive="yes" feeds="no" sort="title"]] @@ -14,4 +16,3 @@ There are notes from the previous COMP3431 class wiki: There are notes from the previous rUNSWift wiki: [[!inline pages="aibo/*" archive="yes" feeds="no" sort="title"]] -
Add a note about how to get the diffs
diff --git a/recentchanges.mdwn b/recentchanges.mdwn new file mode 100644 index 0000000..0ee48be --- /dev/null +++ b/recentchanges.mdwn @@ -0,0 +1,7 @@ +[[!if test="enabled(meta)" then=""" +\[[!meta title="RecentChanges"]] +"""]] +Recent changes to this wiki: (Note that diffs will appear in the atom feed, but not on this page.) + +[[!inline pages="internal(recentchanges/change_*) and !*/Discussion" +template=recentchanges show=0]]
Formatting
diff --git a/aibo/comp3431/GettingStarted.mdwn b/aibo/comp3431/GettingStarted.mdwn
index db62e6a..e8452bd 100644
--- a/aibo/comp3431/GettingStarted.mdwn
+++ b/aibo/comp3431/GettingStarted.mdwn
@@ -10,12 +10,13 @@ An auto setup script can be run from:
/home/group09/public/cs3431_setup
Notes:
-Your existing ~/trunk directory will be deleted
-trunk will be checked out to ~/trunk
-Assumes your .bashrc does not already contain the required environmental variables
-Will compile code
-Provides a step by step guide to building a memory stick
-Will always setup a pForward
+
+* Your existing ~/trunk directory will be deleted
+* trunk will be checked out to ~/trunk
+* Assumes your .bashrc does not already contain the required environmental variables
+* Will compile code
+* Provides a step by step guide to building/setting up a memory stick
+* Will always setup a pForward
There is another script that just performs compilation and memory stick copying in:
Added instructions for shell script that performs setup
diff --git a/aibo/comp3431/GettingStarted.mdwn b/aibo/comp3431/GettingStarted.mdwn index b96720d..db62e6a 100644 --- a/aibo/comp3431/GettingStarted.mdwn +++ b/aibo/comp3431/GettingStarted.mdwn @@ -3,6 +3,25 @@ Getting Started with the rUNSWift AIBO system An older version of these notes is in [[aibo/GettingStarted]]. +### Automated Script for Setup + +An auto setup script can be run from: + + /home/group09/public/cs3431_setup + +Notes: +Your existing ~/trunk directory will be deleted +trunk will be checked out to ~/trunk +Assumes your .bashrc does not already contain the required environmental variables +Will compile code +Provides a step by step guide to building a memory stick +Will always setup a pForward + +There is another script that just performs compilation and memory stick copying in: + + /home/group09/public/new_stick + + ### Getting the code Use [subversion](http://subversion.tigris.org) to check out the code.
Change subversion repos url to use svn+ssh:// rather than file://
diff --git a/aibo/comp3431/GettingStarted.mdwn b/aibo/comp3431/GettingStarted.mdwn index a9512cc..b96720d 100644 --- a/aibo/comp3431/GettingStarted.mdwn +++ b/aibo/comp3431/GettingStarted.mdwn @@ -7,7 +7,7 @@ An older version of these notes is in [[aibo/GettingStarted]]. Use [subversion](http://subversion.tigris.org) to check out the code. - svn co file:///data/svn/comp3431/trunk + svn co svn+ssh://robolab.cse.unsw.edu.au/data/svn/comp3431/trunk If you ran this command in your home directory, you should now have a directory called 'trunk' in your home directory.
Update notes for recent lecture
diff --git a/notes/Lecture2A.mdwn b/notes/Lecture2A.mdwn index afdc6a8..36707c0 100644 --- a/notes/Lecture2A.mdwn +++ b/notes/Lecture2A.mdwn @@ -1,32 +1,35 @@ -= Low level vision = - - * How the dogs see objects - * Distance (based on size) - - * Steps - * Perform ring correction - * Obtain symbolic colours - * Flood filling - * Blob formation with disjoint sets algorithms - - * Colour Segmentation - * Examples - * Maybe colours - * Machine learning of Look up Table through Decision Trees, kernel stuff (influence of data points over - surrounding data points), Ripple Down Rules. - - * Run length encoding - * Blobbing - * Disjoint Set Algorithms -- Cormen, Leiserson & Rivest, section 22.3 - - * Other low level vision - * German subsampling, uses vertical lines spaced apart, then perform 1D edge detection along these lines to find - edges on the ball and field lines. To find beacons used horizontal lines to find pink blob, then do blobbing around this. - - * High level vision - * Object Detection - * RANSAC - * Sanity checks - * Locating an object - * Distance based on size - * Distance based on ground plane + * Colour Spaces or [models](http://en.wikipedia.org/wiki/Color_models) + * RGB, [YUV](http://en.wikipedia.org/wiki/YUV), HSV + * The AIBOs use YUV natively. + * Symbolic colours + * Mapping from YUV to symbolic colours + * Drop low order bit - use 128x128x128 table + + * Detecting objects + * Blobs of colour + * Disjoint Set Algorithms -- Cormen, Leiserson & Rivest, section 22.3 + * Edge detection + * Full algorithms are slow (for embedded, serial, computers) + * Use a cut-down system that only detects edges in one direction + * See [Alex North's honours thesis](http://www.cse.unsw.edu.au/~robocup/2005site/reports05/north05-subsampled.pdf) + + * Detecting the ball + * Circles of orange edge + * Use [RANSAC](http://en.wikipedia.org/wiki/RANSAC) style algorithm to find the ball (again, see Alex's thesis for details) + + * Distance to objects + * Size + * Integer size causes large distance jumps at around 2m + * Use average size (e.g. sqrt(num pixels) or average height across a number of columns of pixels) + * Projection + * If we know an object is on the ground, we can use kinematics to find out its location relative to our head + * Ball + * Project centre of ball onto 1-radius high plane + * For ball, size is better at long distances, projection is better up close + + * Where to look + * If you look at the centre of the ball, then when it is close you just see orange everywhere and cannot localise it accurately + + * Ring correction + * The ERS-7 model AIBOs had an awful camera with chromatic distortion + * 'Ring correction' used a lookup table to partially correct for this before further processing
Fill out details of aibo kinematics
diff --git a/notes/Lecture2B.mdwn b/notes/Lecture2B.mdwn index 5b88588..0457895 100644 --- a/notes/Lecture2B.mdwn +++ b/notes/Lecture2B.mdwn @@ -1,13 +1,39 @@ - * Kinematics - * source:trunk/robot/actuatorControl/legsGeometry.cc - * Line 23 - robot geometry - * Line 74 - leg kinematics - * source:trunk/robot/vision/PointProjection.h - * Line 399 - head kinematics - - * Inverse Kinematics - * source:trunk/robot/actuatorControl/legsGeometry.cc - * Line 108 - * source:trunk/robot/actuatorControl/HeadKinematics.cc - * Line 53 - + * Linear algebra + * Use vector for location + * Add vectors to translate + * Multiply by appropriate matrix to rotate (see [Rotation Matrix](http://en.wikipedia.org/wiki/Rotation_matrix)) + * Note that rotation is not commutative + * Kinematics: Find the location of the limb given the joint angles + * Start at base of robot limb + * Repeat + * Translate along next limb segment + * Rotate to account for joint angle + * Note that for the camera stuff we want both location and angle of the camera + * For angle: + * Start a unit vector at the origin pointing in a reference direction + * Do the same thing as for location, but leave out the translations + * source + * trunk/robot/actuatorControl/legsGeometry.cc + * Line 69 - robot geometry + * Line 156 - leg kinematics + * trunk/robot/vision/PointProjection.h + * Line 701 - head kinematics + * Inverse Kinematics: Given a desired location of a limb, find the joint angles required + * Often an under-specified problem + * AIBO legs + * First use total distance of end-point to find knee angle + * Then treat entire leg as one piece + * Get distance sideways from body with abductor + * Get forward-back distance with rotator + * AIBO head + * Approach has changed as head geometry has changed + * Assume Crane is 90 degrees + * Find tilt using just y and z (y = height, z = forward, x = left) + * Assume that we're only getting tilt to do part of this (65%) + * Fix tilt at that value, then use crane and pan to point at the final point + * Note that camera is offset + * source + * trunk/robot/actuatorControl/legsGeometry.cc + * Line 190 + * trunk/robot/actuatorControl/HeadKinematics.cc + * Line 99
More on subversion
diff --git a/aibo/comp3431/GettingStarted.mdwn b/aibo/comp3431/GettingStarted.mdwn
index 8ca3d27..a9512cc 100644
--- a/aibo/comp3431/GettingStarted.mdwn
+++ b/aibo/comp3431/GettingStarted.mdwn
@@ -5,12 +5,18 @@ An older version of these notes is in [[aibo/GettingStarted]].
### Getting the code
-Use [subversion](http://subverison.tigris.org) to check out the code.
+Use [subversion](http://subversion.tigris.org) to check out the code.
svn co file:///data/svn/comp3431/trunk
If you ran this command in your home directory, you should now have a directory called 'trunk' in your home directory.
+Remember that you can type:
+
+ svn help
+
+To get help on using subversion. You can also look at the [subversion book](http://svnbook.red-bean.com) for more help.
+
### Setting up your home directory
You'll need to edit the login scripts to set some environment variables. Login scripts are scripts like ".profile", ".bashrc", etc. If you checked out the source into your home directory, then adding the following lines to the end of your login script should work:
Correct spacing
diff --git a/aibo/comp3431/GettingStarted.mdwn b/aibo/comp3431/GettingStarted.mdwn
index baa682f..8ca3d27 100644
--- a/aibo/comp3431/GettingStarted.mdwn
+++ b/aibo/comp3431/GettingStarted.mdwn
@@ -6,6 +6,7 @@ An older version of these notes is in [[aibo/GettingStarted]].
### Getting the code
Use [subversion](http://subverison.tigris.org) to check out the code.
+
svn co file:///data/svn/comp3431/trunk
If you ran this command in your home directory, you should now have a directory called 'trunk' in your home directory.
Add a new 'Getting Started' page. Turns out it is very similar to the old one...
diff --git a/aibo.mdwn b/aibo.mdwn
index 86ad1a3..66ca697 100644
--- a/aibo.mdwn
+++ b/aibo.mdwn
@@ -5,6 +5,8 @@ These notes describe the rUNSWift code for driving the Sony AIBO robots. The mo
These pages were all exported from a previous wiki and are in the wrong wiki format for this wiki. This wiki uses [[ikiwiki/Markdown]] as its format, whereas the previous wiki used the [Trac](http://trac.edgewall.org/) wiki format. At the moment you'll just see the raw Trac wikitext, but it is still very readable. Feel free to convert the information.
+I just added a new page on [[aibo/comp3431/GettingStarted]].
+
There are notes from the previous COMP3431 class wiki:
[[!inline pages="aibo/comp3431/*" archive="yes" feeds="no" sort="title"]]
diff --git a/aibo/comp3431/GettingStarted.mdwn b/aibo/comp3431/GettingStarted.mdwn
new file mode 100644
index 0000000..baa682f
--- /dev/null
+++ b/aibo/comp3431/GettingStarted.mdwn
@@ -0,0 +1,57 @@
+Getting Started with the rUNSWift AIBO system
+=============================================
+
+An older version of these notes is in [[aibo/GettingStarted]].
+
+### Getting the code
+
+Use [subversion](http://subverison.tigris.org) to check out the code.
+ svn co file:///data/svn/comp3431/trunk
+
+If you ran this command in your home directory, you should now have a directory called 'trunk' in your home directory.
+
+### Setting up your home directory
+
+You'll need to edit the login scripts to set some environment variables. Login scripts are scripts like ".profile", ".bashrc", etc. If you checked out the source into your home directory, then adding the following lines to the end of your login script should work:
+
+ export ROBOCUP_DIR=~/trunk
+ export PATH=$PATH:${ROBOCUP_DIR}/bin:${ROBOCUP_DIR}/robot/bin
+
+### Building the robot binaries
+
+Change into the trunk/robot directory and type 'make'.
+
+### Making a memory stick
+
+Insert a memory stick into the computer. If the computer mounts the memory stick itself, then you'll need to check it is mounted in the right spot. Run "memstick_path" to get the directory where the build system is expecting to find the memory stick. If this is incorrect, then you can either remount the memory stick in the right location, or edit the "memstick_path" script so that it gives the correct location. The standard location is "/media/ms".
+
+If the computer doesn't mount the memory stick itself, then you should be able to mount the memory stick with the 'mountms' script. If this doesn't mount the memory stick, then you'll need to figure out why.
+
+You should never eject a memory stick without unmounting it first. Most of the robocup scripts will do this for you. You should never eject the memory stick before the scripts have finished unmounting it.
+
+#### The first time you use a memory stick
+
+The very first time you use a memory stick, you should format it if you can. You should only do this with a Sony brand device. We've had problems with sticks breaking when formatted with non-Sony devices. If you re-format a memory stick, you should rename it to 'ms'.
+
+Once formatted, you can copy the Aperios operating system onto the memory stick with the command 'os'. This command will delete everything on the memory stick and copy the operating system onto the memory stick.
+
+#### Configuring the robot
+
+The command 'spip' is used to Set the Player and IP.
+
+ spip playerModule IP_Postfix [playerNum] [teamNum]
+
+e.g.
+
+ spip pForward 142
+
+Choose IP addresses of the form 1TP there T is the team number, and P is the player number (usually 1-4).
+
+#### Copying the rUNSWift code to the memory stick
+
+The "ins" command copies the compiled binaries and config files to the memory stick.
+
+#### Notes
+
+I removed the calls to coverage.py as many systems don't have this and it is not very useful for the class.
+
Add a link to the AIBO page to the side-bar
diff --git a/sidebar.mdwn b/sidebar.mdwn index d2a6d28..c7bc7af 100644 --- a/sidebar.mdwn +++ b/sidebar.mdwn @@ -6,3 +6,4 @@ Quick Links - [[Lecture_plan]] - [[Assignments]] - [[Site_Map|Map]] + - [[aibo]]
Remove the z-index again as it doesn't achieve what I wanted...
diff --git a/local.css b/local.css
index b381bde..4d3bd7a 100644
--- a/local.css
+++ b/local.css
@@ -1,7 +1,6 @@
#sidebar {
border: 1px solid;
background: white;
- z-index: 5;
}
#sidebar h1 {
Replace recentchanges width.
Add sidebar z-index.
Add sidebar z-index.
diff --git a/local.css b/local.css
index 8ba75b2..b381bde 100644
--- a/local.css
+++ b/local.css
@@ -1,12 +1,9 @@
#sidebar {
border: 1px solid;
background: white;
+ z-index: 5;
}
#sidebar h1 {
text-align: center;
}
-
-div.recentchanges {
- width: auto;
-}
Play with recentchanges width
diff --git a/local.css b/local.css
index 4d3bd7a..8ba75b2 100644
--- a/local.css
+++ b/local.css
@@ -6,3 +6,7 @@
#sidebar h1 {
text-align: center;
}
+
+div.recentchanges {
+ width: auto;
+}
Force the sidebar to have a white background
diff --git a/local.css b/local.css
index 8f0c5a9..4d3bd7a 100644
--- a/local.css
+++ b/local.css
@@ -1,5 +1,6 @@
#sidebar {
border: 1px solid;
+ background: white;
}
#sidebar h1 {
More indent fixes
diff --git a/notes/Lecture1B.mdwn b/notes/Lecture1B.mdwn
index daf54d0..4538f4c 100644
--- a/notes/Lecture1B.mdwn
+++ b/notes/Lecture1B.mdwn
@@ -2,37 +2,37 @@
* Aperios
* Embedded C/C++
* http://www.openr.org/
- * RoboCup Wiki
- * Aperios objects
- * Shared memory
- * Message Passing
- * Lacks normal linking
- * Our Objects/systems
- * Vision
- * Tracking
- * Location
- * Ball
- * Opponents
- * Wireless teammates
- * Behaviours
- * Python language
- * Python/C interface
- * PyCode
- * TOIB/Modules
- * Wireless
- * TCP gateway
- * TCP
- * UDP
- * ActuatorControl
- * Walks
- * Motions
- * Odometry/stepComplete
- * HeadControl
- * PWalk
- * Flow Control between objects
- * Interfaces between objects
- * OfflineVision
- * OffActuator
+ * RoboCup Wiki - [[aibo]]
+ * Aperios objects
+ * Shared memory
+ * Message Passing
+ * Lacks normal linking
+ * Our Objects/systems
+ * Vision
+ * Tracking
+ * Location
+ * Ball
+ * Opponents
+ * Wireless teammates
+ * Behaviours
+ * Python language
+ * Python/C interface
+ * PyCode
+ * TOIB/Modules
+ * Wireless
+ * TCP gateway
+ * TCP
+ * UDP
+ * ActuatorControl
+ * Walks
+ * Motions
+ * Odometry/stepComplete
+ * HeadControl
+ * PWalk
+ * Flow Control between objects
+ * Interfaces between objects
+ * OfflineVision
+ * OffActuator
== The Himalayan Tea Ceremony ==
fix spacing
diff --git a/notes/Lecture1B.mdwn b/notes/Lecture1B.mdwn
index 60a4c78..daf54d0 100644
--- a/notes/Lecture1B.mdwn
+++ b/notes/Lecture1B.mdwn
@@ -1,85 +1,43 @@
* rUNSWift overview
-
* Aperios
-
* Embedded C/C++
-
* http://www.openr.org/
-
* RoboCup Wiki
-
* Aperios objects
-
- * Shared memory
-
- * Message Passing
-
- * Lacks normal linking
-
+ * Shared memory
+ * Message Passing
+ * Lacks normal linking
* Our Objects/systems
-
- * Vision
-
- * Tracking
-
- * Location
-
- * Ball
-
- * Opponents
-
- * Wireless teammates
-
- * Behaviours
-
- * Python language
-
- * Python/C interface
-
- * PyCode
-
- * TOIB/Modules
-
- * Wireless
-
- * TCP gateway
-
- * TCP
-
- * UDP
-
- * ActuatorControl
-
- * Walks
-
- * Motions
-
- * Odometry/stepComplete
-
- * HeadControl
-
- * PWalk
-
+ * Vision
+ * Tracking
+ * Location
+ * Ball
+ * Opponents
+ * Wireless teammates
+ * Behaviours
+ * Python language
+ * Python/C interface
+ * PyCode
+ * TOIB/Modules
+ * Wireless
+ * TCP gateway
+ * TCP
+ * UDP
+ * ActuatorControl
+ * Walks
+ * Motions
+ * Odometry/stepComplete
+ * HeadControl
+ * PWalk
* Flow Control between objects
-
* Interfaces between objects
-
* OfflineVision
-
* OffActuator
-
-
== The Himalayan Tea Ceremony ==
-
-
In the inns of certain Himalayan villages is practiced a most civilized and refined tea ceremony. The ceremony involves a host and exactly two guests, neither more nor less. When his guests have arrived and seated themselves at his table, the host performs three services for them. These services are listed in order of the nobility that the Himalayans attribute to them: (1) Stoking the Fire, (2) Pouring the Tea, and (3) Reciting Poetry. During the ceremony, any of those present may ask another, "Honored Sir, may I perform this onerous task for you?" However, a person may request of another only the least noble of the tasks which the other is performing. Further, if a person is performing any tasks, then he may not request a task that is nobler than the least noble task he is already performing. Custom requires that by the time the tea ceremony is over, all the tasks will have been transferred from the host to the more senior of the guests. How may this be accomplished?
-
-
== Mutilated Tiling Problem ==
-
-
You have an 8x8 grid, and a set of identical rectangular tiles. Each tile can cover two squares in the grid. If the grid is mutilated so that two diagonally opposite corners are removed, show how the remaining squares in the grid can be covered with the tiles, or if this is not possible, show why not.
Remove incorrect information
diff --git a/notes/Lecture1B.mdwn b/notes/Lecture1B.mdwn index a6ca255..60a4c78 100644 --- a/notes/Lecture1B.mdwn +++ b/notes/Lecture1B.mdwn @@ -1,43 +1,85 @@ - * rUNSWift overview - * Aperios - * Embedded C/C++ - * http://www.openr.org/ - * RoboCup Wiki - * Aperios objects - * Shared memory - * Message Passing - * Lacks normal linking - * Our Objects/systems - * Vision - * Tracking - * Location - * Ball - * Opponents - * Wireless teammates - * Behaviours - * Python language - * Python/C interface - * PyCode - * TOIB/Modules - * Wireless - * TCP gateway - * TCP - * UDP - * ActuatorControl - * Walks - * Motions - * Odometry/stepComplete - * HeadControl - * PWalk - * Flow Control between objects - * Interfaces between objects - * OfflineVision - * OffActuator - -== The Himalayan Tea Ceremony == - -In the inns of certain Himalayan villages is practiced a most civilized and refined tea ceremony. The ceremony involves a host and exactly two guests, neither more nor less. When his guests have arrived and seated themselves at his table, the host performs three services for them. These services are listed in order of the nobility that the Himalayans attribute to them: (1) Stoking the Fire, (2) Pouring the Tea, and (3) Reciting Poetry. During the ceremony, any of those present may ask another, "Honored Sir, may I perform this onerous task for you?" However, a person may request of another only the least noble of the tasks which the other is performing. Further, if a person is performing any tasks, then he may not request a task that is nobler than the least noble task he is already performing. Custom requires that by the time the tea ceremony is over, all the tasks will have been transferred from the host to the more senior of the guests. How may this be accomplished? - -== Mutilated Tiling Problem == - -You have an 8x8 grid, and 31 rectangular tiles. Each tile can cover two squares in the grid. If the grid is mutilated so that two diagonally opposite corners are removed, show how the remaining squares in the grid can be covered with the 31 tiles, or if this is not possible, show why not. + * rUNSWift overview + + * Aperios + + * Embedded C/C++ + + * http://www.openr.org/ + + * RoboCup Wiki + + * Aperios objects + + * Shared memory + + * Message Passing + + * Lacks normal linking + + * Our Objects/systems + + * Vision + + * Tracking + + * Location + + * Ball + + * Opponents + + * Wireless teammates + + * Behaviours + + * Python language + + * Python/C interface + + * PyCode + + * TOIB/Modules + + * Wireless + + * TCP gateway + + * TCP + + * UDP + + * ActuatorControl + + * Walks + + * Motions + + * Odometry/stepComplete + + * HeadControl + + * PWalk + + * Flow Control between objects + + * Interfaces between objects + + * OfflineVision + + * OffActuator + + + +== The Himalayan Tea Ceremony == + + + +In the inns of certain Himalayan villages is practiced a most civilized and refined tea ceremony. The ceremony involves a host and exactly two guests, neither more nor less. When his guests have arrived and seated themselves at his table, the host performs three services for them. These services are listed in order of the nobility that the Himalayans attribute to them: (1) Stoking the Fire, (2) Pouring the Tea, and (3) Reciting Poetry. During the ceremony, any of those present may ask another, "Honored Sir, may I perform this onerous task for you?" However, a person may request of another only the least noble of the tasks which the other is performing. Further, if a person is performing any tasks, then he may not request a task that is nobler than the least noble task he is already performing. Custom requires that by the time the tea ceremony is over, all the tasks will have been transferred from the host to the more senior of the guests. How may this be accomplished? + + + +== Mutilated Tiling Problem == + + + +You have an 8x8 grid, and a set of identical rectangular tiles. Each tile can cover two squares in the grid. If the grid is mutilated so that two diagonally opposite corners are removed, show how the remaining squares in the grid can be covered with the tiles, or if this is not possible, show why not.
Rename files pulled from the old wiki to have .txt after their name.
diff --git a/aibo/AperiosOpenR b/aibo/AperiosOpenR
deleted file mode 100644
index 28f91f3..0000000
--- a/aibo/AperiosOpenR
+++ /dev/null
@@ -1,104 +0,0 @@
-= Aperios OPEN-R =
-
-Aperios is a proprietary operating system from Sony, and OPEN-R is our interface to the robot.
-
-See also [wiki:AperiosObjects Aperios Objects] for details of how we fit our code into Aperios.
-
-== Overview ==
-
-OPEN-R software is modular and object oriented (not in the C++/Java sense, but the COM/CORBA sense). Processing is performed by multiple objects running concurrently and communicating via interobject communication. Connections between objects are specified in an external description file (stub.cfg). Connection ports in objects are identified by service name. The system layer (access to sensors and actuators) is also implemented by inter-object communication.
-
-An object is similar to a UNIX process in that it is implemented by an executable file and runs concurrently with other objects (N.B. we don't know how the task switching works on AIBO). However, unlike UNIX processes objects have multiple entry points. Objects exchange information using message passing. A message contains a selector and some data; the selector identifies which method of the object to run and the data provides arguments. Objects are internally single threaded - an object can process only one message at a time. Additional messages wait in a queue.
-
-== Inter-object communication ==
-When two objects communicate, the side that sends data is called the "subject", and the side that receives data is called the "observer". (subject --data--> observer)
-
-When the observer is ready to receive data, the observer sends a "ASSERT-READY" message to the subject. Otherwise, the observer sends "DEASSERT-READY" to the subject. When the subject receives ASSERT-READY from the observer, the subject starts to send data to the observer. After the observer receives this data and is ready to receive the next data, the subject sends ASSERT-READY again.
-
-== Core class ==
-A core class is a C++ class that represents an object. Each object should be represented by only one core class.
-
-Characteristics of a core class:
- * A core class inherits from the OObject class.
- * A core class implements {{{DoInit()}}}, {{{DoStart()}}}, {{{DoStop()}}}, {{{DoDestroy()}}}.
- * A core class has the necessary number of OSubject and OObserver. Example:
-{{{
- OSubject* subject[numOfSubject];
- OObserver* observer[numOfObserver];
-}}}
- * numOfSubject and numOfObserver are defined in def.h that is generated by the stubgen2 command.
-
-more coming...
-
-== Stub ==
-Stub is a specification of OPEN-R object.
-Every OPEN-R object you define, you must have a stub file and usually called stub.cfg.
-Currently, in our rUNSWift architecture, we have four (I think...) OPEN-R objects namely:
- * vision
- * actuator
- * wireless
- * GameController
-Thus, we have four stub files and they reside in vision, actuatorControl, GameController and wireless directories respectively.
-Each OPEN-R object has several services that can be invoked between objects and each of these services is defined as
-
-"(Connection name)", (Member function 1), (Member fuction 2)
-
-* Connection name - The connection name consists of the following items.
-(Object name).(Subname).(Data name).(Service type)
-
-Object Name - Any name you want, but usually the core class name.
-
-Subname - This is a service name and must be unique. Do not use the same subname that other serivces use.
-
-Data Name - This is the name corresponding to the data type used in inter-object communication.
-
-Service Type - S for subject and O for observer.
-
-* Member function 1 - This member function is called when a connection result is received.
-
-* Member function 2 - If this service is for observers, this function is called when a message is received from a subject. If this service is for subjects, this function is called when ASSERT-READY or DEASSERT-READY is received from an observer.
-
-Below is a snippet of stub.cfg in vision directory.
-Explanation on this snippet is coming soon.
-{{{
-ObjectName : Vision
-NumOfOSubject : 8
-NumOfOObserver : 7
-
-Service : "Vision.SetIndication.int.S", null, null
-...
-Service : "Vision.Sensor.OSensorFrameVectorData.O", null, ResultSensor()
-...
-}}}
-
-== OPEN-R Configuration Files ==
-
-=== OBJECT.CFG ===
-This file lists all of the objects that the dog will load and execute.
-
-=== CONNECT.CFG ===
-There needs to be a way to interconnect all the objects and their interfaces. These interfaces are defined in each object's respective stub.cfg file. Then by using a connect.cfg file, it will draw links between the interfaces on stub.cfg files.
-
-=== DESIGNDB.CFG ===
-
-
-== Building the bin file ==
-
-== Some History ==
-Currently, rUNSWift has different OPEN-R objects like vision, actuator and wireless.
-However, in 2002 rUNSWift, they only had one OPEN-R object that did everything.
-Since OPEN-R object is single threaded, there was a significant performance slow down in using wireless.
-When the object was handling wireless process (e.g. AIBOs communicating each other), it blocked out all the other requested services like vision and actuator.
-So, M. S. K. told me that 2002 rUNSWift decided not to use wireless at all! (interesting)
-Which means AIBOs weren't communicating each other... which also means no team work between AIBOs in 2002?
-
-Thus, in 2003 or 2004? rUNSWift introduced other OPEN-R objects like wireless... So that when AIBOs communicate via wireless, wireless process won't block other processes, thereby smoothing actuator and vision processes.
-
-== Note ==
- * The senser data is sent every 32ms (frequency = 31.25Hz) (open-r::Level2!ReferenceGuilde.pdf)
- * 3 types of data used for communication:
-{{{
- OCommandVectorData
- OSensorFrameVectorData
- OFbkImageVectorData
-}}}
diff --git a/aibo/AperiosOpenR.txt b/aibo/AperiosOpenR.txt
new file mode 100644
index 0000000..28f91f3
--- /dev/null
+++ b/aibo/AperiosOpenR.txt
@@ -0,0 +1,104 @@
+= Aperios OPEN-R =
+
+Aperios is a proprietary operating system from Sony, and OPEN-R is our interface to the robot.
+
+See also [wiki:AperiosObjects Aperios Objects] for details of how we fit our code into Aperios.
+
+== Overview ==
+
+OPEN-R software is modular and object oriented (not in the C++/Java sense, but the COM/CORBA sense). Processing is performed by multiple objects running concurrently and communicating via interobject communication. Connections between objects are specified in an external description file (stub.cfg). Connection ports in objects are identified by service name. The system layer (access to sensors and actuators) is also implemented by inter-object communication.
+
+An object is similar to a UNIX process in that it is implemented by an executable file and runs concurrently with other objects (N.B. we don't know how the task switching works on AIBO). However, unlike UNIX processes objects have multiple entry points. Objects exchange information using message passing. A message contains a selector and some data; the selector identifies which method of the object to run and the data provides arguments. Objects are internally single threaded - an object can process only one message at a time. Additional messages wait in a queue.
+
+== Inter-object communication ==
+When two objects communicate, the side that sends data is called the "subject", and the side that receives data is called the "observer". (subject --data--> observer)
+
+When the observer is ready to receive data, the observer sends a "ASSERT-READY" message to the subject. Otherwise, the observer sends "DEASSERT-READY" to the subject. When the subject receives ASSERT-READY from the observer, the subject starts to send data to the observer. After the observer receives this data and is ready to receive the next data, the subject sends ASSERT-READY again.
+
+== Core class ==
+A core class is a C++ class that represents an object. Each object should be represented by only one core class.
+
+Characteristics of a core class:
+ * A core class inherits from the OObject class.
+ * A core class implements {{{DoInit()}}}, {{{DoStart()}}}, {{{DoStop()}}}, {{{DoDestroy()}}}.
+ * A core class has the necessary number of OSubject and OObserver. Example:
+{{{
+ OSubject* subject[numOfSubject];
+ OObserver* observer[numOfObserver];
+}}}
+ * numOfSubject and numOfObserver are defined in def.h that is generated by the stubgen2 command.
+
+more coming...
+
+== Stub ==
+Stub is a specification of OPEN-R object.
+Every OPEN-R object you define, you must have a stub file and usually called stub.cfg.
+Currently, in our rUNSWift architecture, we have four (I think...) OPEN-R objects namely:
+ * vision
+ * actuator
+ * wireless
+ * GameController
+Thus, we have four stub files and they reside in vision, actuatorControl, GameController and wireless directories respectively.
+Each OPEN-R object has several services that can be invoked between objects and each of these services is defined as
+
+"(Connection name)", (Member function 1), (Member fuction 2)
+
+* Connection name - The connection name consists of the following items.
+(Object name).(Subname).(Data name).(Service type)
+
+Object Name - Any name you want, but usually the core class name.
+
+Subname - This is a service name and must be unique. Do not use the same subname that other serivces use.
+
+Data Name - This is the name corresponding to the data type used in inter-object communication.
+
+Service Type - S for subject and O for observer.
+
+* Member function 1 - This member function is called when a connection result is received.
+
+* Member function 2 - If this service is for observers, this function is called when a message is received from a subject. If this service is for subjects, this function is called when ASSERT-READY or DEASSERT-READY is received from an observer.
+
+Below is a snippet of stub.cfg in vision directory.
+Explanation on this snippet is coming soon.
+{{{
+ObjectName : Vision
+NumOfOSubject : 8
+NumOfOObserver : 7
+
+Service : "Vision.SetIndication.int.S", null, null
+...
+Service : "Vision.Sensor.OSensorFrameVectorData.O", null, ResultSensor()
+...
+}}}
+
+== OPEN-R Configuration Files ==
+
+=== OBJECT.CFG ===
+This file lists all of the objects that the dog will load and execute.
+
+=== CONNECT.CFG ===
+There needs to be a way to interconnect all the objects and their interfaces. These interfaces are defined in each object's respective stub.cfg file. Then by using a connect.cfg file, it will draw links between the interfaces on stub.cfg files.
+
+=== DESIGNDB.CFG ===
+
+
(Diff truncated)
small updates & spacing change
diff --git a/notes/Lecture1A.mdwn b/notes/Lecture1A.mdwn index 0aa1ab9..14c825d 100644 --- a/notes/Lecture1A.mdwn +++ b/notes/Lecture1A.mdwn @@ -1,73 +1,75 @@ - * Course Overview - * What is course about? - * AI as what humans do - * AI as what we cannot do yet - * AI as systems to achieve weak goals - * Overview vs detail - some of each - * Aiming at top of class - * Discussion in class - need to take own notes - almost problem based learning - * Plagiarism policy - * Systems, search, bayes - * Representation is important - - * Agents building = system building - * KISS ( Keep It Short & Simple) - * Premature profiling is the root of all evil - * Good software engineering helps - * Code reviews - * Only as strong as weakest link - * Trade-offs between approaches - - * Approximation: - * Take a machine learning course - * Bayes' Rule - - * Overview of Agent in world - - * Types of systems: - * Discrete vs Continuous - * Finite vs Infinite - * Continuous/Smooth vs Discontinuous - * Discrete is usually linked with Discontinuous because it tends to have "jumps" - * Fully Observable vs Partially Observable - * Fully Observable - when agent sensors world means it knows everything about the world - * Partially Observable - almost all real agents can only see what they can observe through sensors - * Markov vs. Non-markov - * Assuming time is discrete - * In Markov model, what state is happening at the moment does not depend on what state & action in previous time - * It is not necessary to remember the full history, since we only want to record sufficient statistics to be able to predict what happens next - * Deterministic vs Non-deterministic vs Stochastic (Non-deterministic with probabilities) - * Deterministic, no probability - * Non-deterministic, occasionally probability is given - * Stochastic, probability is always given - * Implicit vs explicit time - * Systems often have collection of states & actions - * Implicit time means all action to change state I into state II assume 1 time step - * Tracking vs Acting - * Acting --> at every time step, perform an action, given sufficient statistics - * Tracking --> the world perform the change for the agent, finding sufficient statistic to find a state or an action to perform. (can be think of a subset of Acting) - * Online vs Offline (Anytime algs) - * Offline - Not attached to robot - * Online - continuous problems - * Stationary vs Non-stationary (world changes over time without actions of agent) - - * Goal types: - * Goal = state - * Goal = trajectory - * Goal is specified in a path, go through X states of states (exact goal) - * Maintenance goals - * Reward (Loss) - - * Plan types: - * Complete policy - * Markov policy - * All history is irrelevant - * Linear plan - * Telioreactive plan - - * Representation: - * Raw states - * Decomposed state space ( have list of variables and coordinate system) - * Predicate calculus (boolean predicates) - * First order calculus (relations) - * Turing complete + * Course Overview + * What is course about? + * AI as what humans do + * AI as what we cannot do yet + * AI as systems to achieve weak goals + * Overview vs detail - some of each + * Aiming at top of class + * Discussion in class - need to take own notes - almost problem based learning + * Plagiarism policy + * Systems, search, bayes + * Representation is important + + * Agents building = system building + * KISS ( Keep It Simple & Stupid) + * Premature profiling is the root of all evil + * Good software engineering helps + * Code reviews + * Only as strong as weakest link + * Trade-offs between approaches + + * Approximation: + * Take a machine learning course + * Bayes' Rule + + * Overview of Agent in world + + * Types of systems: + + * Discrete vs Continuous + * Finite vs Infinite + * Continuous (Smooth, Discontinuous, etc) + * Discrete is usually linked with Discontinuous because it tends to have "jumps" + * Fully Observable vs Partially Observable + * Fully Observable - when agent sensors world means it knows everything about the world + * Partially Observable - almost all real agents can only see what they can observe through sensors + * Markov vs. Non-markov + * Assuming time is discrete + * In Markov model, what state is happening at the moment does not depend on what state & action in previous time + * It is not necessary to remember the full history, since we only want to record sufficient statistics to be able to predict what happens next + * Deterministic vs Non-deterministic vs Stochastic (Non-deterministic with probabilities) + * Deterministic, no probability + * Non-deterministic, occasionally probability is given + * Stochastic, probability is always given + * Implicit vs explicit time + * Systems often have collection of states & actions + * Implicit time means all action to change state I into state II assume 1 time step + * Tracking vs Acting + * Acting --> at every time step, perform an action, given sufficient statistics + * Tracking --> the world perform the change for the agent, finding sufficient statistic to find a state or an action to perform. (can be think of a subset of Acting) + * Online vs Offline (Anytime algs) + * Offline - Not attached to robot + * Online - continuous problems + * Stationary vs Non-stationary (world changes over time without actions of agent) + + * Goal types: + * Goal = state + * Goal = trajectory + * Goal is specified in a path, go through X states of states (exact goal) + * Maintenance goals + * Reward (Loss) + + * Plan types: + * Complete policy + * Markov policy + * Only previous state (not the prior history) is relevant + * Linear plan + * Telioreactive plan + + + * Representation: (See [Chomsky Hierarchy](http://en.wikipedia.org/wiki/Chomsky_hierarchy) of Languages) + * Raw states + * Decomposed state space ( have list of variables - a coordinate system ) + * Propositional calculus (boolean set of variables) + * First order (Predicate) calculus (relations) + * Turing complete
Feedback from timetabling meeting
diff --git a/news/Timetable_Changes.mdwn b/news/Timetable_Changes.mdwn new file mode 100644 index 0000000..4bef435 --- /dev/null +++ b/news/Timetable_Changes.mdwn @@ -0,0 +1,13 @@ +Hi all, + + Just a quick note about what happened at the timetabling meeting last Thursday. + +- There were no clash-free times to move the Thursday class to. (Monday afternoon was best, but wasn't any better than the current time, and I'd prefer to leave things as they are if possible.) +- I found out that one of the other classes that was clashing is planning to move, and it appears it is easier for them to move than for us. +- I am trying to expand the size of the 11am lab on Tuesday and cancel the noon lab. Noone at the meeting had a problem with this and it will make things run more smoothly. + +Overview: No changes in lecture times. I'm looking to cancel the noon lab and just run the 11am lab. + +See you all tomorrow, + +Will
more css stuff
diff --git a/local.css b/local.css
index a2465b3..8f0c5a9 100644
--- a/local.css
+++ b/local.css
@@ -1,5 +1,5 @@
#sidebar {
- border: 1px solid #FFFFFF;
+ border: 1px solid;
}
#sidebar h1 {
Try css changes again
diff --git a/local.css b/local.css
index 82547f9..a2465b3 100644
--- a/local.css
+++ b/local.css
@@ -1,51 +1,7 @@
#sidebar {
+ border: 1px solid #FFFFFF;
}
#sidebar h1 {
- margin: 10px 0 0 0;
- padding: 5px 0 5px 10px;
- border: 1px solid #EFF0F1;
- background: #EEF0F1;
- color: #555555;
- font-family: Verdana,'Trebuchet MS',Sans-serif;
- font-style: normal;
- font-variant: normal;
- font-weight: bold;
- font-size: 1.1em;
- line-height: normal;
-}
-
-#sidebar .left-box {
- margin: 0 0 5px 0;
- padding: 0;
- border: 1px solid #EFF0F1;
-}
-
-#sidebar ul {
- margin: 3px 0 8px 0;
- padding: 0;
- list-style: none;
- text-align: left;
- text-decoration: none;
-}
-
-#sidebar ul li {
- display: block;
- margin: 0 2px;
- padding: 2px 0 2px 25px;
- border-bottom: 1px solid #EFF0F1;
-}
-
-#sidebar ul a {
- margin: 0;
- padding: 0;
- font-weight: bolder;
- text-decoration: none;
- background-image: none;
-}
-
-#sidebar .selflink {
- background: white;
- color: #333333;
- font-weight: bolder;
+ text-align: center;
}
Remove outline in sidebar.mdwn (should be in css file)
diff --git a/sidebar.mdwn b/sidebar.mdwn index 2823b93..d2a6d28 100644 --- a/sidebar.mdwn +++ b/sidebar.mdwn @@ -1,13 +1,8 @@ -<TABLE BORDER=1 FRAME=BOX RULES=NONE><TR><TD> -<CENTER> Quick Links ----------- -</CENTER> - [Front Page](http://www.cse.unsw.edu.au/~cs3431/) - [[News]] - [[Lecture_plan]] - [[Assignments]] - [[Site_Map|Map]] - -</TD><TD> </TD></TR></TABLE>
Try a stylesheet.
diff --git a/local.css b/local.css
new file mode 100644
index 0000000..82547f9
--- /dev/null
+++ b/local.css
@@ -0,0 +1,51 @@
+#sidebar {
+}
+
+#sidebar h1 {
+ margin: 10px 0 0 0;
+ padding: 5px 0 5px 10px;
+ border: 1px solid #EFF0F1;
+ background: #EEF0F1;
+ color: #555555;
+ font-family: Verdana,'Trebuchet MS',Sans-serif;
+ font-style: normal;
+ font-variant: normal;
+ font-weight: bold;
+ font-size: 1.1em;
+ line-height: normal;
+}
+
+#sidebar .left-box {
+ margin: 0 0 5px 0;
+ padding: 0;
+ border: 1px solid #EFF0F1;
+}
+
+#sidebar ul {
+ margin: 3px 0 8px 0;
+ padding: 0;
+ list-style: none;
+ text-align: left;
+ text-decoration: none;
+}
+
+#sidebar ul li {
+ display: block;
+ margin: 0 2px;
+ padding: 2px 0 2px 25px;
+ border-bottom: 1px solid #EFF0F1;
+}
+
+#sidebar ul a {
+ margin: 0;
+ padding: 0;
+ font-weight: bolder;
+ text-decoration: none;
+ background-image: none;
+}
+
+#sidebar .selflink {
+ background: white;
+ color: #333333;
+ font-weight: bolder;
+}
Invert include order
diff --git a/aibo.mdwn b/aibo.mdwn index 071ce2a..86ad1a3 100644 --- a/aibo.mdwn +++ b/aibo.mdwn @@ -5,10 +5,11 @@ These notes describe the rUNSWift code for driving the Sony AIBO robots. The mo These pages were all exported from a previous wiki and are in the wrong wiki format for this wiki. This wiki uses [[ikiwiki/Markdown]] as its format, whereas the previous wiki used the [Trac](http://trac.edgewall.org/) wiki format. At the moment you'll just see the raw Trac wikitext, but it is still very readable. Feel free to convert the information. -These are notes transferred from the previous wiki about the UNSW/NICTA rUNSWift architecture: +There are notes from the previous COMP3431 class wiki: -[[!inline pages="aibo/*" archive="yes" feeds="no" sort="title"]] +[[!inline pages="aibo/comp3431/*" archive="yes" feeds="no" sort="title"]] -There are also notes from the previous class wiki: +There are notes from the previous rUNSWift wiki: + +[[!inline pages="aibo/*" archive="yes" feeds="no" sort="title"]] -[[!inline pages="aibo/comp3431/*" archive="yes" feeds="no" sort="title"]]
cleanup
diff --git a/aibo.mdwn b/aibo.mdwn index bcc7940..071ce2a 100644 --- a/aibo.mdwn +++ b/aibo.mdwn @@ -1,9 +1,9 @@ AIBO Notes ========== -These notes describe the rUNSWift code for driving the Sony AIBO robots. The most useful places to start are probably the [[aibo/WikiStart]] and [[aibo/comp3431/WikiStart]] pages. +These notes describe the rUNSWift code for driving the Sony AIBO robots. The most useful places to start are probably the rUNSWift [[aibo/WikiStart]] and the COMP3431 [[aibo/comp3431/WikiStart]] pages. -These pages were all exported from a previous wiki and are in the wrong wiki format for this wiki. This wiki uses [[Markdown|ikiwiki/Markdown]] as its format, whereas the previous wiki used the [Trac](http://trac.edgewall.org/) wiki format. At the moment you'll just see the raw Trac wikitext, but it is still very readable. Feel free to convert the information. +These pages were all exported from a previous wiki and are in the wrong wiki format for this wiki. This wiki uses [[ikiwiki/Markdown]] as its format, whereas the previous wiki used the [Trac](http://trac.edgewall.org/) wiki format. At the moment you'll just see the raw Trac wikitext, but it is still very readable. Feel free to convert the information. These are notes transferred from the previous wiki about the UNSW/NICTA rUNSWift architecture:
Give some pointers on where to start
diff --git a/aibo.mdwn b/aibo.mdwn index fa7f075..bcc7940 100644 --- a/aibo.mdwn +++ b/aibo.mdwn @@ -1,6 +1,10 @@ AIBO Notes ========== +These notes describe the rUNSWift code for driving the Sony AIBO robots. The most useful places to start are probably the [[aibo/WikiStart]] and [[aibo/comp3431/WikiStart]] pages. + +These pages were all exported from a previous wiki and are in the wrong wiki format for this wiki. This wiki uses [[Markdown|ikiwiki/Markdown]] as its format, whereas the previous wiki used the [Trac](http://trac.edgewall.org/) wiki format. At the moment you'll just see the raw Trac wikitext, but it is still very readable. Feel free to convert the information. + These are notes transferred from the previous wiki about the UNSW/NICTA rUNSWift architecture: [[!inline pages="aibo/*" archive="yes" feeds="no" sort="title"]]
Link to old wiki pages
diff --git a/news/Pages_from_old_wiki.mdwn b/news/Pages_from_old_wiki.mdwn new file mode 100644 index 0000000..43c004c --- /dev/null +++ b/news/Pages_from_old_wiki.mdwn @@ -0,0 +1,3 @@ +I've moved web pages across from the old rUNSWift and COMP3431 wikis. Currently all the ported pages are linked from the [[AIBO]] page. You'll also find them in the [[Site_Map|Map]] link. + +These pages are all in the wrong wiki format for this wiki. This wiki uses [[Markdown|ikiwiki/Markdown]] as its format. The previous wiki used the [Trac](http://trac.edgewall.org/) wiki format. At the moment you'll just see the raw Trac wikitext, but it is still very readable. Feel free to convert what you want.
Add comp3431 notes
diff --git a/aibo.mdwn b/aibo.mdwn index 036bd92..fa7f075 100644 --- a/aibo.mdwn +++ b/aibo.mdwn @@ -5,3 +5,6 @@ These are notes transferred from the previous wiki about the UNSW/NICTA rUNSWift [[!inline pages="aibo/*" archive="yes" feeds="no" sort="title"]] +There are also notes from the previous class wiki: + +[[!inline pages="aibo/comp3431/*" archive="yes" feeds="no" sort="title"]]
Add a base page for the old AIBO notes
diff --git a/aibo.mdwn b/aibo.mdwn new file mode 100644 index 0000000..036bd92 --- /dev/null +++ b/aibo.mdwn @@ -0,0 +1,7 @@ +AIBO Notes +========== + +These are notes transferred from the previous wiki about the UNSW/NICTA rUNSWift architecture: + +[[!inline pages="aibo/*" archive="yes" feeds="no" sort="title"]] +
Comment on minor edit
diff --git a/news/Week_0_location.mdwn b/news/Week_0_location.mdwn new file mode 100644 index 0000000..719c8aa --- /dev/null +++ b/news/Week_0_location.mdwn @@ -0,0 +1,5 @@ +Just a quick note to confirm the location for tomorrow's timetabling meeting: ASB 219 (ASB == Australian School of Business). This is the currently timetabled location for the Thursday class for the rest of semester. + +Be well, + +Will
Note logging where changes are mentioned
diff --git a/index.mdwn b/index.mdwn index be68635..6da9ca0 100644 --- a/index.mdwn +++ b/index.mdwn @@ -1,4 +1,4 @@ -This page gives a broad overview of the COMP3431/9431 Robot Software Architectures course. This web site is an [[ikiwiki]] based [wiki](http://en.wikipedia.org/wiki/Wiki) and most pages are editable by anyone enrolled in the course. Pages are all publicly readable. You'll need to use your normal [CSE](http://www.cse.unsw.edu.au/) account name and password to log in to make changes. +This page gives a broad overview of the COMP3431/9431 Robot Software Architectures course. This web site is an [[ikiwiki]] based [wiki](http://en.wikipedia.org/wiki/Wiki) and most pages are editable by anyone enrolled in the course. Pages are all publicly readable. You'll need to use your normal [CSE](http://www.cse.unsw.edu.au/) account name and password to log in to make changes. All changes are logged. Course Introduction Page Contents ---------------------------
Insert table of contents
diff --git a/index.mdwn b/index.mdwn index d8b2e7c..be68635 100644 --- a/index.mdwn +++ b/index.mdwn @@ -1,7 +1,9 @@ -COMP3431/9431 Course Introduction -================================= +This page gives a broad overview of the COMP3431/9431 Robot Software Architectures course. This web site is an [[ikiwiki]] based [wiki](http://en.wikipedia.org/wiki/Wiki) and most pages are editable by anyone enrolled in the course. Pages are all publicly readable. You'll need to use your normal [CSE](http://www.cse.unsw.edu.au/) account name and password to log in to make changes. -This page gives a broad overview to the COMP3431/9431 Robot Software Architectures course. This web site is an [[ikiwiki]] based [wiki](http://en.wikipedia.org/wiki/Wiki) and most pages are editable by anyone enrolled in the course. Pages are all publicly readable. You'll need to use your normal [CSE](http://www.cse.unsw.edu.au/) account name and password to log in to make changes. +Course Introduction Page Contents +--------------------------- + +[[!toc levels=2]] Aims ---- @@ -32,7 +34,7 @@