Hardware abstraction layer (HAL) for a robot
First Claim
1. An electronically-implemented method of activating devices in a robot, the method comprising:
- programmatically determining a device configuration for each of a plurality of devices of the robot, wherein each device configuration comprises;
a) a unique device identifier, andb) a device type specifying a device class;
programmatically instantiating a resource driver for each of the plurality of devices of the robot based, in part, on its associated device type, wherein at least one resource driver corresponds to a compound resource driver that abstracts more than one device including a first device and a second device;
programmatically retrieving information regarding the first device'"'"'s location and orientation on the robot, wherein the resource driver utilizes the information regarding the first device'"'"'s location and orientation to properly abstract the first device;
programmatically generating a dependency list for at least two of the plurality of the resource drivers, each dependency list identifying a plurality of other resource drivers and an order in which the other resource drivers at least for the first device and the second device must be activated prior to activation of the compound resource driver associated with the dependency list; and
programmatically activating the plurality of other resource drivers including individual drivers for the first device and the second device prior and activating the compound resource driver after the individual drivers for the first device and the second device are activated in accordance with the order specified in the associated dependency lists such that at least the first device and the second device of the robot are activated;
whereby the resource drivers identified in each dependency list are activated prior to activation of the resource driver associated with the dependency list, for each device.
6 Assignments
0 Petitions
Accused Products
Abstract
Methods and apparatus that provide a hardware abstraction layer (HAL) for a robot are disclosed. A HAL can reside as a software layer or as a firmware layer residing between robot control software and underlying robot hardware and/or an operating system for the hardware. The HAL provides a relatively uniform abstract for aggregates of underlying hardware such that the underlying robotic hardware is transparent to perception and control software, i.e., robot control software. This advantageously permits robot control software to be written in a robot-independent manner. Developers of robot control software are then freed from tedious lower level tasks. Portability is another advantage. For example, the HAL efficiently permits robot control software developed for one robot to be ported to another. In one example, the HAL permits the same navigation algorithm to be ported from a wheeled robot and used on a humanoid legged robot.
51 Citations
12 Claims
-
1. An electronically-implemented method of activating devices in a robot, the method comprising:
-
programmatically determining a device configuration for each of a plurality of devices of the robot, wherein each device configuration comprises; a) a unique device identifier, and b) a device type specifying a device class; programmatically instantiating a resource driver for each of the plurality of devices of the robot based, in part, on its associated device type, wherein at least one resource driver corresponds to a compound resource driver that abstracts more than one device including a first device and a second device; programmatically retrieving information regarding the first device'"'"'s location and orientation on the robot, wherein the resource driver utilizes the information regarding the first device'"'"'s location and orientation to properly abstract the first device; programmatically generating a dependency list for at least two of the plurality of the resource drivers, each dependency list identifying a plurality of other resource drivers and an order in which the other resource drivers at least for the first device and the second device must be activated prior to activation of the compound resource driver associated with the dependency list; and programmatically activating the plurality of other resource drivers including individual drivers for the first device and the second device prior and activating the compound resource driver after the individual drivers for the first device and the second device are activated in accordance with the order specified in the associated dependency lists such that at least the first device and the second device of the robot are activated; whereby the resource drivers identified in each dependency list are activated prior to activation of the resource driver associated with the dependency list, for each device. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. An apparatus comprising a robot, the apparatus comprising:
-
computer hardware; and a tangible, non-transitory computer-readable medium having stored therein a computer program executable by the computer hardware, wherein the computer program is configured to activate devices in the robot, the computer program comprising; program instructions configured to determine a device configuration for each of a plurality of devices of the robot, wherein each device configuration comprises; a) a unique device identifier, and b) a device type specifying a device class; program instructions configured to instantiate a resource driver for each of the plurality of devices of the robot based, in part, on its associated device type, wherein at least one resource driver corresponds to a compound resource driver that abstracts more than one device including a first device and a second device; program instructions configured to retrieve information regarding the first device'"'"'s location and orientation on the robot, wherein the resource driver utilizes the information regarding the first device'"'"'s location and orientation to properly abstract the first device; program instructions configured to generate a dependency list for at least two of the plurality of the resource drivers, each dependency list identifying a plurality of other resource drivers and an order in which the other resource drivers at least for the first device and the second device must be activated prior to activation of the compound resource driver associated with the dependency list; and program instructions configured to activate the plurality of other resource drivers including individual drivers for the first device and the second device prior and activating the compound resource driver after the individual drivers for the first device and the second device are activated in accordance with the order specified in the associated dependency lists such that at least the first device and the second device of the robot are activated; whereby the resource drivers identified in each dependency list are activated prior to activation of the resource driver associated with the dependency list, for each device. - View Dependent Claims (8, 9, 10, 11, 12)
-
Specification