Claims
- 1. A method of programming a device, the method comprising:
providing a plurality of card-like objects, where at least one surface of the card-like objects includes indicia, wherein at least a portion of the indicia is machine readable and at least a portion is human recognizable; visually recognizing the indicia on at least some of the card-like objects using an image recognition process; associating the recognized indicia with one or more executable program instructions; and arranging the one or more executable program instructions to create at least a portion of a computer program.
- 2. The method as defined in claim 1, wherein the device that is controlled corresponds to a mobile robot.
- 3. The method as defined in claim 1, wherein visually recognizing further comprises using a digital camera to detect visual features of the card-like objects, where the camera views the card-like objects without touching the card-like objects.
- 4. The method as defined in claim 1, wherein visually recognizing further comprises using an optical scanner to recognize the one or more card-like objects, where the optical scanner recognizes the one or more card-like objects without touching the one or more card-like objects.
- 5. The method as defined in claim 1, wherein the indicia comprise both graphical markings and textual symbols.
- 6. The method as defined in claim 1, wherein the card-like objects are formed at least in part from paper, and the card-like objects are not affixed to other objects.
- 7. The method as defined in claim 1, wherein a card-like object corresponds to at least one of a token card and a command card.
- 8. The method as defined in claim 1, wherein the portion of a computer program comprises at least one of a complete program, a macro, and a sub-routine.
- 9. The method as defined in claim 1, further comprising:
associating the recognized indicia with one or more commands, where the commands control a programming environment and are not incorporated into an executable program; and automatically executing the one or more associated commands to control the program.
- 10. The method as defined in claim 9, wherein the one or commands are selected from at least one of a save command, a program listing command, and a start program command.
- 11. The method as defined in claim 1, wherein visually recognizing the indicia further comprises recognizing visual features that correspond to scale-invariant features (SIFT).
- 12. A method of programming a device, the method comprising:
visually recognizing indicia that are visible on at least one surface of one or more planar objects, where at least one surface of the planar objects includes indicia, where at least a portion of the indicia is machine readable and at least a portion is human recognizable; automatically associating at least some of the recognized indicia with one or more executable program instructions; and arranging the one or more executable program instructions to create at least a portion of a computer program for the device.
- 13. The method as defined in claim 12, wherein the device that is programmed corresponds to a mobile robot.
- 14. The method as defined in claim 12, wherein visually recognizing further comprises receiving data from a digital camera to detect visual features of the planar objects, where the camera views the planar objects without contacting the planar objects.
- 15. The method as defined in claim 12, wherein visually recognizing further comprises receiving data from an optical scanner to recognize the one or more planar objects, where the optical scanner recognizes the one or more planar objects without contacting the one or more planar objects.
- 16. The method as defined in claim 12, wherein the indicia comprise both graphical markings and textual symbols.
- 17. The method as defined in claim 12, wherein the planar objects are formed at least in part from paper, and the planar objects are not affixed to other objects.
- 18. The method as defined in claim 12, wherein a planar object corresponds to at least one of a token planar object and a command planar object.
- 19. The method as defined in claim 12, wherein the portion of a computer program comprises at least one of a complete program, a macro, and a sub-routine.
- 20. The method as defined in claim 12, wherein the portion that is machine readable and the portion that is human recognizable are the same.
- 21. The method as defined in claim 12, further comprising associating at least some of the recognized indicia with one or more commands, where the commands are related to control of a programming environment.
- 22. The method as defined in claim 12, wherein visually recognizing indicia further comprises recognizing visual features that correspond to scale-invariant features (SIFT).
- 23. A method of controlling a machine, the method comprising:
visually observing indicia that are visible on at least a surface of an object, where the indicia are at least partially machine readable and at least partially human recognizable, where at least some of the indicia is associated with a desired behavior for the machine; associating the recognized indicia with corresponding behavior based at least in part on data retrieved from a data store; and controlling a behavior of the machine according to the recognized indicia.
- 24. The method as defined in claim 23, wherein the machine corresponds to a mobile robot.
- 25. The method as defined in claim 23, wherein the object is a card-like object.
- 26. The method as defined in claim 23, wherein at least some of the indicia are associated with command parameters and not with commands, further comprising interpreting the command parameters to at least partially control the behavior of the machine.
- 27. The method as defined in claim 23, wherein visually recognizing indicia further comprises:
visually observing a plurality of indicia on a plurality of objects; associating the plurality of indicia with a plurality of desired behaviors; arranging the plurality of desired behaviors in an order according to a visually observed arrangement of the corresponding plurality of objects; and controlling the behavior of the machine according to the order.
- 28. The method as defined in claim 23, further comprising verifying that the indicia have been correctly identified by visually observing consistent data for indicia.
- 29. The method as defined in claim 23, wherein the recognized indicia are not associated with a product code for the corresponding object.
- 30. The method as defined in claim 23, wherein the recognized indicia are not associated with an identification of a content of an object.
- 31. The method as defined in claim 23, wherein a portion of the indicia that is machine readable and the portion of the indicia that is human recognizable are the same.
- 32. The method as defined in claim 23, wherein a portion of the indicia that is machine readable and a portion of the indicia that is human recognizable are on a same surface of the object.
- 33. The method as defined in claim 23, wherein a portion of the indicia that is machine readable and a portion of the indicia that is human recognizable are on different surfaces of the object.
- 34. The method as defined in claim 23, wherein a portion of the indicia that is human recognizable corresponds to one or more words written in plain text.
- 35. A set of computer control cards comprising:
a plurality of cards with visually-recognizable indicia, where the indicia are intended to be at least partially machine readable and are intended to be at least partially human recognizable, where the indicia are associated with at least one of computer commands and computer programming statements, where the associations between the visually-recognizable indicia and the at least one of computer commands and computer programming statements are stored in a computer data store; where the cards further comprise:
a plurality of cards with indicia associated with operators; a plurality of cards with indicia associated with flow control; a plurality of cards with indicia associated with actions for a computer; and a plurality of cards with indicia associated with command parameters.
- 36. The set of computer control cards as defined in claim 35, wherein the computer control cards are fabricated from card stock.
- 37. The set of computer control cards as defined in claim 35, wherein the indicia associated with operators correspond to at least one selected from an arithmetic operator and a comparison operator.
- 38. The set of computer control cards as defined in claim 35, wherein the indicia associated with flow control correspond to at least one selected from a condition, a loop, and a break.
- 39. The set of computer control cards as defined in claim 35, wherein the indicia associated with actions correspond to actions for control of a mobile device.
- 40. The set of computer control cards as defined in claim 35, further comprising a computer-readable tangible medium having stored therein:
visual data corresponding to at least a machine-readable subset of the visually-observable indicia; and associations between the visual data and at least one of computer commands and computer programming statements.
- 41. A computer program embodied in a tangible medium for controlling a device, the computer program comprising:
a module with instructions configured to visually recognize indicia that are visible on at least one surface of one or more planar objects, where at least one surface of the planar objects includes indicia, where at least a portion of the indicia is machine readable and at least a portion is human recognizable; a module with instructions configured to automatically associate at least some of the recognized indicia with one or more executable program instructions; and a module with instructions configured to arrange the one or more executable program instructions to create at least a portion of a computer program.
- 42. The computer program as defined in claim 41, wherein the device that is controlled corresponds to a mobile robot.
- 43. The computer program as defined in claim 41, wherein the module with instructions configured to visually recognize indicia further comprises instructions configured to recognize visual features that correspond to scale-invariant features (SIFT).
- 44. A circuit for controlling a device, the circuit comprising:
a circuit configured to visually recognize indicia that are visible on at least one surface of one or more planar objects, where at least one surface of the planar objects includes indicia, where at least a portion of the indicia is machine readable and at least a portion is human recognizable; a circuit configured to automatically associate at least some of the recognized indicia with one or more executable program instructions; and a circuit configured to arrange the one or more executable program instructions to create at least a portion of a computer program.
- 45. The circuit as defined in claim 44, wherein the device that is controlled corresponds to a mobile robot.
- 46. The circuit as defined in claim 44, wherein the circuit configured to visually recognize indicia is further configured to recognize visual features that correspond to scale-invariant features (SIFT).
- 47. A circuit for controlling a device, the circuit comprising:
means for visually recognizing indicia that are visible on at least one surface of one or more planar objects, where at least one surface of the planar objects includes indicia, where at least a portion of the indicia is machine readable and at least a portion is human recognizable; means for automatically associating at least some of the recognized indicia with one or more executable program instructions; and means for arranging the one or more executable program instructions to create at least a portion of a computer program.
- 48. The circuit as defined in claim 47, wherein the device that is controlled corresponds to a mobile robot.
- 49. The circuit as defined in claim 47, wherein the means for visually recognizing indicia further comprises means for recognizing visual features that correspond to scale-invariant features (SIFT).
RELATED APPLICATION
[0001] This application claims the benefit under 35 U.S.C. §119(e) of U.S. Provisional Application No. 60/439,047, filed Jan. 9, 2003, the entirety of which is hereby incorporated by reference.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60439047 |
Jan 2003 |
US |