Initial approach used 3 distinct landmarks to localize dog in one of the 3 coves in the pen. The bone must be located next to one of these 3 landmarks. Then used infrared readings and knowledge of map structure to navigate and look for landmarks, then the bone.
Pros
Cons
To represent the world a visibility graph is constructed that shows the connection points between different landmarks. A landmark is connected to another landmark by an edge if when the dog is at one landmark it can rotate 360 degrees and see the other landmark. This lets the dog construct a general view of the world, it does not actually know the layout of the pen. Using this graph Djikstra's Algorithm is run to provide a path from the current landmark to the destination landmark. This is necessary because the dog may want to go to a destination landmark that it is not currently connected to in the visibility graph so the path planning provides the small steps in getting there.
These are the parts of the system divided into the sections that we covered in class. This shows the depth of the project and the amount of the Tekkotsu framework it uses.
Motion Commands Visual Routines Map Builder State Machines Pilot Kinematics Grasping
Many motion commands are used throughout the search. The WalkMC is used for static walking and the HeadPointerMC is used for head manipulation. Also the the MotionSequenceMC is necessary for bone manipulation and grasping.
In order to determine the location of the landmarks and distance from objects visual routines are created for simplicity. The size of landmarks in the shape space determine distance and the proximity of certain visual elements show location as well.
To populate the shape space the map builder is predominantly used. This is also necessary for the localizing as the particle filter needs a populated world shape space to determine the dog's position
Segragation of code is achieved through the use of state machines. This allows the bone grabbing and world localization to be separated as well as indicates which functions are currently being run.
For most navigation the pilot is used. In the turning to determine landmark identification the pilot is used and for some of the movement towards different shapes.
The joint values for the head manipulation is achieved using the kinematics engine. Some of the offset values are calculated to achieve the desired link and joint positions.
After the Kinematics and Motion Commands are done to get the dog to the bone a grasping node is fired to actually grasp the bone in the dog's mouth, which shows the interaction between the dog and other objects.