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 relativel
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.
대표청구항▼
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 specif
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; andprogrammatically 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. 2. The method of claim 1, wherein programmatically determining a device configuration further comprises: programmatically retrieving at least one resource configuration file, wherein the at least one configuration file specifies the devices on the robot and the connectivity of those devices; andprogrammatically parsing the at least one resource configuration file. 3. The method of claim 1, further comprising programmatically generating a driver table, wherein the driver table comprises a reference to each instantiated resource driver. 4. The method of claim 3, wherein the reference to each instantiated resource driver comprises a memory address. 5. The method of claim 1, further comprising storing computer readable instructions for all device types in a shared library. 6. The method of claim 1, further comprising: programmatically determining a device group configuration for each of a plurality of device groups, wherein each device group configuration comprises: a) a unique device group identifier, andb) a device group type specifying a device group class;programmatically instantiating a second resource driver for each of the plurality of device groups based, in part, on its associated device group type;programmatically generating a second 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 must be activated prior to activation of the resource driver associated with the dependency list; andprogrammatically activating the plurality of second resource drivers associated with device groups in accordance with the order specified in the associated dependency lists such that the plurality of devices are activated;whereby the resource drivers and second resource drivers identified in each dependency list are activated prior to activation of the resource driver or second resource driver associated with the dependency list, for each device and device group. 7. An apparatus comprising a robot, the apparatus comprising: computer hardware; anda 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, andb) 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; andprogram 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. 8. The apparatus of claim 7, wherein the program instructions configured to determine a device configuration further comprise: program instructions configured to retrieve at least one resource configuration file, wherein the at least one configuration file specifies the devices on the robot and the connectivity of those devices; andprogram instructions configured to parse the at least one resource configuration file. 9. The apparatus of claim 7, wherein the computer program further comprises program instructions configured to generate a driver table, wherein the driver table comprises a reference to each instantiated resource driver. 10. The apparatus of claim 9, wherein the reference to each instantiated resource driver comprises a memory address. 11. The apparatus of claim 7, wherein the computer program further comprises program instructions configured to store computer readable instructions for all device types in a shared library. 12. The apparatus of claim 7, wherein the computer program further comprises: program instructions configured to determine a device group configuration for each of a plurality of device groups, wherein each device group configuration comprises: a) a unique device group identifier, andb) a device group type specifying a device group class;program instructions configured to instantiate a second resource driver for each of the plurality of device groups based, in part, on its associated device group type;program instructions configured to generate a second 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 must be activated prior to activation of the resource driver associated with the dependency list; andprogram instructions configured to activate the plurality of second resource drivers associated with device groups in accordance with the order specified in the associated dependency lists such that the plurality of devices are activated;whereby the resource drivers and second resource drivers identified in each dependency list are activated prior to activation of the resource driver or second resource driver associated with the dependency list, for each device and device group.
연구과제 타임라인
LOADING...
LOADING...
LOADING...
LOADING...
LOADING...
이 특허에 인용된 특허 (43)
Tow Robert F., Affect-based robot communication methods and systems.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.