IP Library Granted Patent US 7,590,680
Granted Patent B2
US 7,590,680 · App. 11/477,828 · Granted Sep 15, 2009

Extensible robotic framework and robot modeling

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,590,680
App. No.
11/477,828
Granted
Sep 15, 2009
Kind
B2
Abstract

Various technologies and techniques are disclosed that provide a framework for developing and deploying distributed robotic applications. The framework allows a robotic application to be distributed across robotic services. Communications with a robotic service are performed via a URI. An operation is performed on a data element exposed through the robotic service. The system facilitates asynchronous operations of a robotics application across services. A development environment allows the user to create a robotics project that uses the distributed framework. A visualization/simulation environment allows for communication with virtual devices and real world devices for simulating the operation of asynchronous robotic applications.

Claims (36)

1. A computer-implemented method for providing a robotic application formed by a collection of services comprising the steps of:

distributing a robotic application across a plurality of robotic services using a framework;

communicating with a first robotic service of the plurality of services via a URI; and

performing an operation on a data element exposed through the first robotic service.

2. The method of claim 1 , wherein the framework is operable to allow communication with the first robotic service using an extension of the REST protocol.

3. The method of claim 1 , wherein the operation on the data element is selected from the group consisting of a get operation, a query operation, an update operation, an insert operation, and a delete operation.

4. The method of claim 1 , wherein the framework is operable to allow the plurality of services to be performed on a same physical robot.

5. The method of claim 1 , wherein the framework is operable to allow the plurality of services to be performed at least in part on a physical robot, and at least in part on a separate personal computer.

6. The method of claim 1 , wherein the framework is operable to allow communication with the first robotic service from a web browser for a purpose of debugging the application.

7. The method of claim 1 , wherein the framework is operable to allow the first robotic service to operate on a different robot device than an actual robot device affected by the first robot service.

8. The method of claim 1 , wherein the framework provides a plurality of decentralized system services comprising:

an activation service operable to create at least a portion of the plurality of services;

a discovery service operable to allow the first robotic service to discover a second robotic service on a particular node;

a storage service operable to allow a particular service to persist state; and

a diagnostics service operable to facilitate debugging among the plurality of services; and

wherein the decentralized system services are operable to facilitate an asynchronous operation of a robotics application across the plurality of services.

9. The method of claim 1 , wherein the framework provides a plurality of services that facilitate communication between nodes.

10. The method of claim 1 , wherein the framework is operable to allow the first robotic service to be stopped and restarted without impacting the operation of any additionally operating robotic services.

11. A computer storage medium having computer-executable instructions for causing a computer to perform the steps recited in claim 1 .

12. A computer-implemented method for developing a robot application comprising the steps of:

creating a robotic project for controlling at least one destination robot;

creating a robot model that defines a component organization and physical layout of the destination robot;

defining activity logic for controlling the destination robot;

defining at least one deployment target; and

running the robotic project.

13. The method of claim 12 , wherein the robotic project is created using a wizard, wherein the wizard prompts a user to specify certain details about the destination robot, and wherein a first version of the robot model is created based on the certain details specified by the user about the destination robot.

14. The method of claim 12 , wherein a physical robotic model is described at least in part using a template for a particular set of hardware associated with the destination robot.

15. The method of claim 12 , wherein the robotic project is operable to be deployed across a plurality of nodes and execute a robotics application.

16. A computer storage medium having computer-executable instructions for causing a computer to perform the steps recited in claim 12 .

17. A computer-implemented method for simulating an operation of a robot comprising the steps of:

distributing a robotic application across a plurality of robotic services;

simulating an operation of a distributed robotics application across a plurality of asynchronous services using a simulation engine; and

wherein the simulation engine is further operable to communicate with virtual devices and real world devices.

18. The method of claim 17 , wherein the simulation engine is operable to use a real world robotic device in a first simulation, and wherein the simulation engine is operable to use real world environment information in a second simulation.

19. The method of claim 17 , wherein the simulation engine is operable to be used as part of a runtime environment and deployed to a robotic device to facilitate predictions relevant to the operation of the distributed robotics application.

20. A computer storage medium having computer-executable instructions for causing a computer to perform the steps recited in claim 17 .

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034542/0001 →