Manipulation Motion Taxonomy and Coding for Robots [arXiv]

A Weighted Functional Object-Oriented Network for Task Planning [arXiv]

  • Supplementary material for this paper can be found here.

  • Long Activity Video Understanding using Functional Object-Oriented Network [.PDF] [arXiv]

  • Supplementary material for this paper can be found here.

  • 2018:

    Functional Object-Oriented Network: Construction & Expansion [.PDF] [arXiv]

  • Fig. 1 - A basic functional unit with three input nodes (in green) and two output nodes (in blue) connected by an intermediary single motion node (in red). Input and output nodes are distinguished by the direction of the edges. [Download]
  • Fig. 2 - An example of how expansion can be used in filling gaps of knowledge. Here we wish to make a salad (node in dark green) using lettuce and other items in the environment (in blue); initially, we only have knowledge on making salads with kale. Using similarity, we understand that kale and lettuce are similar, as they are both leafy vegetables. We create the knowledge of chopping lettuce and adding it to a bowl with other ingredients to make a salad. [Part 1] [Part 2]
  • Fig. 3 - A set of functional units before and after generalization by categories. The node colours indicate which objects and categories are synonymous; the grapefruit object nodes were generalized as citrus and potatoes and onions were generalized as vegetables and root vegetables. Two functional units (0_cut and 1_cut) end up compressed into a single unit. [Part 1] [Part 2]

  • 2016:

    Functional Object-Oriented Network for Manipulation Learning [.PDF] [arXiv]

  • Fig. 1 - A basic functional unit with two input nodes and two output nodes connected by an intermediary single motion node. [Download]
  • Fig. 2 - A FOON subgraph based on an instructional video on making a watermelon-strawberry smoothie. The green solid circles are object nodes and the red solid squares are motion nodes. The object nodes are labeled with object name and their states in parentheses. The motion nodes are labeled with their manipulation motion types. [Download]
  • Fig. 3 - Our current universal FOON that is constructed from 60 videos. [Download]
  • Fig. 4 - The OptiTrack motion capture system with which we collect data for motion learning. The system consists of six motion capture cameras on tripods. Within the blue area on the desk are two objects with reflective markers attached to them. [Download]
  • Fig. 5 - Graph showing the objects found with the ten (10) highest and lowest centrality values. The higher the value, the more important a node is. Objects are also classified as utensils (shown in blue) and ingredients (shown in red). [Download]
  • Fig. 6 - Graph showing the top 10 motions observed in our universal FOON (out of 798 motion instances). [Download]
  • Fig. 7 - Example of a FOON merging two ways of preparing cooked ribs barbecued ribs (node in purple) using available objects (in blue). [Download]
  • Fig. 8 - Task tree showing the steps needed to prepare barbecued ribs (highlighted in purple) using available objects (in blue) to create objects of other states. [Download]
  • Fig. 9 - In degree x and y, the new trajectory meets the constraints well. Without constraints, the rest degrees of the new trajectory equal the mean of the data. The `data traj' (in dark yellow) have been aligned using DTW. [Download]
  • Video demonstrating the annotation of a FOON to its video side-by-side and task tree execution in Unity: [Download].