A robotic device, comprising: a memory; a processor; a manipulating element; and a set of sensors, the processor being operatively coupled to the memory, the manipulating element, and the set of sensors, wherein the processor is configured to: obtain, via a first subset of sensors from the set of sensors, a representation of an environment; identify a plurality of markers in the representation of the environment using visual markers or object recognition based on object information, each marker from the plurality of markers associated with a physical object from a plurality of physical objects located in the environment; present, via a user interface and to a user, information indicating a position of each marker from the plurality of markers in the representation of the environment; receive, via the user interface and from the user, a selection of a set of markers from the plurality of markers associated with a set of physical objects from the plurality of physical objects; when the user moves the manipulating element through a demonstration of a skill including a physical interaction between the manipulating element and the set of physical objects, obtain, via a second subset of sensors from the set of sensors, sensory information at each keyframe from a plurality of keyframes during the demonstration, the sensory information including sensor data associated with a set of features of the manipulating element, each keyframe of the plurality of keyframes representing a specific point during the demonstration of the skill; present, via the user interface and to the user, the set of features such that the user can select a subset of features that is relevant to learning the skill from the set of features; generate a model of the skill using sensor data associated with the subset of features selected by the user; and associate the model with marker information indicative of the set of markers and the sensory information. a memory; a processor; a manipulating element; and a set of sensors, the processor being operatively coupled to the memory, the manipulating element, and the set of sensors, wherein the processor is configured to: obtain, via a first subset of sensors from the set of sensors, a representation of an environment; identify a plurality of markers in the representation of the environment using visual markers or object recognition based on object information, each marker from the plurality of markers associated with a physical object from a plurality of physical objects located in the environment; present, via a user interface and to a user, information indicating a position of each marker from the plurality of markers in the representation of the environment; receive, via the user interface and from the user, a selection of a set of markers from the plurality of markers associated with a set of physical objects from the plurality of physical objects; when the user moves the manipulating element through a demonstration of a skill including a physical interaction between the manipulating element and the set of physical objects, obtain, via a second subset of sensors from the set of sensors, sensory information at each keyframe from a plurality of keyframes during the demonstration, the sensory information including sensor data associated with a set of features of the manipulating element, each keyframe of the plurality of keyframes representing a specific point during the demonstration of the skill; present, via the user interface and to the user, the set of features such that the user can select a subset of features that is relevant to learning the skill from the set of features; generate a model of the skill using sensor data associated with the subset of features selected by the user; and associate the model with marker information indicative of the set of markers and the sensory information. obtain, via a first subset of sensors from the set of sensors, a representation of an environment; identify a plurality of markers in the representation of the environment using visual markers or object recognition based on object information, each marker from the plurality of markers associated with a physical object from a plurality of physical objects located in the environment; present, via a user interface and to a user, information indicating a position of each marker from the plurality of markers in the representation of the environment; receive, via the user interface and from the user, a selection of a set of markers from the plurality of markers associated with a set of physical objects from the plurality of physical objects; when the user moves the manipulating element through a demonstration of a skill including a physical interaction between the manipulating element and the set of physical objects, obtain, via a second subset of sensors from the set of sensors, sensory information at each keyframe from a plurality of keyframes during the demonstration, the sensory information including sensor data associated with a set of features of the manipulating element, each keyframe of the plurality of keyframes representing a specific point during the demonstration of the skill; present, via the user interface and to the user, the set of features such that the user can select a subset of features that is relevant to learning the skill from the set of features; generate a model of the skill using sensor data associated with the subset of features selected by the user; and associate the model with marker information indicative of the set of markers and the sensory information.