Hardware abstraction layer (HAL) for a robot
First Claim
1. A hardware abstraction layer (HAL) in an apparatus with a software architecture embodied in a tangible non-transitory computer readable medium, the architecture comprising higher-level robot software for interacting with a plurality of resources, the plurality of resources comprising one or more software resources, the HAL comprising:
- a resource configuration that provides information regarding available resources of a particular robot to the higher-level robot software such that the higher-level robot software can determine which resources can be used, wherein the resource configuration stores descriptions of structures and devices of the particular robot, wherein a device configuration of the resource configuration stores at least information regarding a particular physical device'"'"'s location and orientation on the particular robot, wherein the structural information is used to properly abstract the particular physical device;
a set of one or more software resource drivers, wherein at least two of the software resource drivers correspond to a same type of real-world quantity and correspond to different types of device-level quantities, wherein only one of the at least two software resource drivers has a corresponding resource available for the particular robot, wherein a software resource driver for an available resource is configured to convert between real-world quantities and device-level quantities;
a set of two or more resource interfaces, each resource interface configured to communicate with the higher-level robot software and with a software resource driver wherein the resource interfaces are configured to communicate with the higher-level robot software using real-world quantities relating to robot interaction with an environment; and
a second interface for interfacing between the HAL and lower-level device drivers, which are lower in level than the HAL and have a function to communicate with corresponding hardware at a device level, and wherein the second interface to lower-level device drivers communicates to the higher-level robot software via the resource driver corresponding to the hardware;
wherein the higher-level robot software communicates with the first software resource via one or more selected interfaces of the plurality of resource interfaces, and the first software resource communicates with the higher-level robot software via the first software 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
5 Claims
-
1. A hardware abstraction layer (HAL) in an apparatus with a software architecture embodied in a tangible non-transitory computer readable medium, the architecture comprising higher-level robot software for interacting with a plurality of resources, the plurality of resources comprising one or more software resources, the HAL comprising:
-
a resource configuration that provides information regarding available resources of a particular robot to the higher-level robot software such that the higher-level robot software can determine which resources can be used, wherein the resource configuration stores descriptions of structures and devices of the particular robot, wherein a device configuration of the resource configuration stores at least information regarding a particular physical device'"'"'s location and orientation on the particular robot, wherein the structural information is used to properly abstract the particular physical device; a set of one or more software resource drivers, wherein at least two of the software resource drivers correspond to a same type of real-world quantity and correspond to different types of device-level quantities, wherein only one of the at least two software resource drivers has a corresponding resource available for the particular robot, wherein a software resource driver for an available resource is configured to convert between real-world quantities and device-level quantities; a set of two or more resource interfaces, each resource interface configured to communicate with the higher-level robot software and with a software resource driver wherein the resource interfaces are configured to communicate with the higher-level robot software using real-world quantities relating to robot interaction with an environment; and a second interface for interfacing between the HAL and lower-level device drivers, which are lower in level than the HAL and have a function to communicate with corresponding hardware at a device level, and wherein the second interface to lower-level device drivers communicates to the higher-level robot software via the resource driver corresponding to the hardware; wherein the higher-level robot software communicates with the first software resource via one or more selected interfaces of the plurality of resource interfaces, and the first software resource communicates with the higher-level robot software via the first software resource driver. - View Dependent Claims (2, 3, 4, 5)
-
Specification