IP Library Granted Patent US 7,925,381
Granted Patent B2
US 7,925,381 · App. 11/945,893 · Granted Apr 12, 2011

Hardware abstraction layer (HAL) for a robot

Assignee: Evolution Robotics, Inc.
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,925,381
App. No.
11/945,893
Granted
Apr 12, 2011
Kind
B2
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.

Claims (10)

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.

2. The HAL as defined in claim 1 , wherein a lower-level device driver is a motor driver and wherein a corresponding resource driver uses a wheel diameter and a gear ratio to compute speed given a motor angular velocity such that the resource driver converts between motor angular velocity for the motor driver and linear velocity for the higher-level robot software.

3. The HAL as defined in claim 1 , wherein the resource comprises a model of a physical device, combination of physical devices, software operation, or hardware operation, wherein when a particular resource models a distance measurement, a corresponding resource driver for a corresponding device is selected from the group consisting of a bump sensor resource driver, a laser range finder resource driver, an ultrasonic sensor resource driver, or an infrared sensor resource driver.

4. The HAL as defined in claim 1 , wherein the physical device's location on the particular robot comprises location of x, y, z, and wherein the physical device's orientation on the particular robot comprises roll, pitch, and yaw.

5. The HAL as defined in claim 4 , wherein the physical device comprises a device selected from the group consisting of a bump sensor, a laser range finder, an ultrasonic sensor, or an infrared sensor, and wherein a particular resource models a distance measurement, a corresponding resource driver for a corresponding device is selected from the group consisting of a bump sensor resource driver, a laser range finder resource driver, an ultrasonic sensor resource driver, or an infrared sensor resource driver.

Assignments (6)
RELEASE OF SECURITY INTEREST Recorded Jul 31, 2023
From: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
To: IROBOT CORPORATION
Reel/Frame 064430/0001 →
SECURITY INTEREST Recorded Nov 3, 2022
From: IROBOT CORPORATION
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 061878/0097 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 23, 2013
From: EVOLUTION ROBOTICS, INC.
To: IROBOT CORPORATION
Reel/Frame 030486/0104 →
CHANGE OF NAME Recorded Aug 22, 2012
From: EVOLUTION ROBOTICS, INC.
To: FUTURE VISION HOLDINGS, INC.
Reel/Frame 028828/0646 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 22, 2012
From: FUTURE VISION HOLDINGS, INC.
To: EVOLUTION ROBOTICS, INC.
Reel/Frame 028831/0824 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 21, 2012
From: MURRAY, THOMAS J., IV; PHAM, BAOQUOC N.; PIRJANIAN, PAOLO
To: EVOLUTION ROBOTICS, INC.
Reel/Frame 028820/0568 →
Continuity (7)
Continuation 11485637 · Jul 11, 2006
Continuation 10924100 · Aug 23, 2004
Division 10307199 · Nov 27, 2002
Provisional Application 60334142 · Nov 28, 2001
Provisional Application 60335624 · Feb 8, 2002
Provisional Application 60374309 · Apr 19, 2002
Related Publication 20080071423A1 · Mar 20, 2008