Technical Details

Initial Approach

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


Current Approach

Apriori Information


Algorithm

  1. Dog awakens and looks for 2 different-colored landmarks
  2. Particle filter is called to localize
  3. Calculate path to closest viewpoint
  4. Dog walks along path and localizes at intermediate landmarks
  5. When dog reaches viewing landmark and looks for bone:
  6. Repeat steps 3-6

System Components

Unique Features

Path Planning

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.




Course Related Features

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 


Motion Commands

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. 


Visual Routines

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. 


Map Builder

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 





State Machines

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. 



Pilot

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. 



Kinematics

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. 




Grasping

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.