Hardware abstraction layer (HAL) for a robot
First Claim
1. A hardware abstraction layer (HAL) in a robot software architecture, the HAL comprising:
- software interfaces to higher-level software, wherein the software interfaces are configured to communicate with the higher-level robotic software with real-world measurements relating to robot interaction with an environment;
a resource configuration that provides an indication of available resources of the higher-level software;
a plurality of resource drivers, wherein at least a portion of the resource drivers correspond to the available resources in the resource configuration, wherein at least two of the resource drivers overlap in functionality, where only one of the at least two resource drivers has a corresponding resource available, where a resource driver for an available resource is configured to translate between real-world measurements for the robot and device-level measurements for a device; and
an interface to lower-level device drivers, wherein the lower-level device drivers communicate with corresponding hardware at a device level, and where the interface to lower-level device drivers communicates to the higher-level software via a resource driver.
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.
-
Citations
15 Claims
-
1. A hardware abstraction layer (HAL) in a robot software architecture, the HAL comprising:
-
software interfaces to higher-level software, wherein the software interfaces are configured to communicate with the higher-level robotic software with real-world measurements relating to robot interaction with an environment; a resource configuration that provides an indication of available resources of the higher-level software; a plurality of resource drivers, wherein at least a portion of the resource drivers correspond to the available resources in the resource configuration, wherein at least two of the resource drivers overlap in functionality, where only one of the at least two resource drivers has a corresponding resource available, where a resource driver for an available resource is configured to translate between real-world measurements for the robot and device-level measurements for a device; and an interface to lower-level device drivers, wherein the lower-level device drivers communicate with corresponding hardware at a device level, and where the interface to lower-level device drivers communicates to the higher-level software via a resource driver. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A hardware abstraction layer (HAL) in a robot for robot control software, the HAL comprising:
-
means for providing a plurality of resource drivers for the robot, where the plurality of resource drivers includes resource drivers for which no corresponding hardware is present on the robot; means for detecting a hardware configuration for the robot; means for automatically detecting resources that are available on the robot based on the detected hardware configuration; means for receiving a request from the robot control software to use a type of resource; means for automatically selecting a resource from the available resources that corresponds to the type of resource requested by the robot control software; means for exchanging a first information with the robot control software, where the first information is related to use of the selected resource and is provided in a unit of measure that is related to a robot; means for exchanging a second information with a low-level device driver corresponding to the resource, where the second information is related to the use requested by the robot control software, where the second information is provided in a unit of measure that is related to a corresponding device, and where the second information is different than the first information; and means for converting between the first information and the second information based on the detected configuration of the robot.
-
-
8. A hardware abstraction layer (HAL) in a robot software architecture, the architecture comprising higher-level robotic software for interacting with a plurality of resources, the HAL comprising:
-
a set of one or more resource drivers, the set comprising at least a first resource driver adapted to communicate with a first resource from the plurality of resources, wherein the first resource driver is adapted to support a plurality of functions associated with the first resource; a set of two or more resource interfaces, each resource interface adapted to communicate with the higher-level robotic software and with the first resource driver, the set of two or more resource interface comprising; a) a first resource interface for invoking a first set of one or more functions of the plurality of functions supported by the first resource driver; and b) a second resource interface for invoking a second set of one or more functions of the plurality of functions supported by the first resource driver, wherein the first set of functions is different than the second set of functions; wherein the higher-level robotic software communicates with the first resource via one or more selected interfaces of the plurality of resource interfaces, and the first resource communicates with the higher-level robotic software via the first resource driver. - View Dependent Claims (9, 10, 11, 12, 13, 14, 15)
-
Specification