Concepts - randyhook/knynet GitHub Wiki

System Architecture

The following is a high level overview of how the various components of the network operate.

An Agent, may or may not be embodied within a physical robot. A robot will have sensors to receive information from the environment and these are connected to the agent's Decision Engine. The Decision Engine is the central controller for each agent.

This first diagram shows a few components of a robot we will call GuardianBot. GuardianBot is responsible for the overall well being of another human.

images/guardianbot-components.png

This bot will be instilled with an initial knowledge base, covering subjects such as general rules for taking care of a human. You will also notice the Laws component. I haven't yet formalized how I am going to implement this, but its purpose is to enforce the Three Laws of Robotics as per Isaac Asimov.

ChairBot is next, and I envision this bot to be in the form of hardware on the wheelchair. ChairBot's main responsibility is to deliver its passenger safely to requested destinations.

images/chairbot-components.png

This next diagram explains how a Tobii device would allow the user to interact with various entities in the network.

images/tobii-components.png

There are different methods for interacting with the Tobii: keyboard, mouse and eye tracking. By selecting objects on the screen, the Tobii produces computer generated speech. This audio can then be picked up by a human, of course, or a bot with an audio sensor and a natural language processing agency. If the ChairBot were not to have an audio sensor, an interface would need to be developed that allows the Tobii to communicate with ChairBot via software.

We now describe a few scenarios of how the Tobii would interact with the network.

images/tobii-chairbot-connection-independent.png

Here, the individual is capable of controlling a power chair safely using the Tobii. The individual can speak to ChairBot, use the Tobii to speak to ChairBot or use the Tobii to send commands to the ChairBot. At this point, there are no intelligent agents involved since the user is speaking commands such as "Turn left" or "Stop". However, we could develop a navigation assistance agent that watches over the direct commands and ensures safe travel.

images/tobii-chairbot-connection-dependent.png

In this scenario, the individual is incapable of directly controlling a power chair safely. The individual issues general commands to ChairBot such as "Take me to the kitchen," and ChairBot will determine the best method of getting there. Note that this method may also be desired for someone who can manually control the chair as a convenience.

images/tobii-without-chairbot.png

Here, the individual does not have access to ChairBot, but the Tobii is still programmed to speak navigation commands. At this point, a human caregiver or GuardianBot can push them to their destination.

Hierarchy of Control

  1. Robots may only be owned by humans.
  2. A human may give sub-ownership status if an owned robot to another human.
  3. A human may order an owned robot to take orders from another robot.
  4. According to the Second Law of Robotics, robots must take orders from humans. Adding to this, a robot must also follow orders up its chain of command.
  5. Robots must always obey the Three Laws of Robotics.

images/hierarchy-of-control.png

Chain of Command

An owner can establish a chain of command. Here, CleaningBot must take orders from ButlerBot as long as the order does not contradict an order from the owner and it obeys the Laws.

Sub-ownership

The owner has given another human sub-ownership over ChairBot. Therefore that human can give orders to ChairBot, again, provided it doesn't contradict an order from GuardianBot or the owner and obeys the laws.

images/ownership-example.png

Bots and Agencies

The most important component of any Agent is its Decision Engine. An Agent's Decision Engine may have one or more skill sets, which we will call Agencies. There are navigation agents, natural language agents, driving agents, etc.

An example. Let's say that the individual requires both oral and injected medications. We own two robots: a GuardianBot, which has a humanoid form and general knowledge on the care of a human being, and a NurseBot, which has a humanoid form and medical knowledge and special appendages designed to administer injections. Having both robots is desirable in this scenario because we need NurseBot's knowledge and specialized tools to handle the medication duties.

Now let's say that the only medications needed are oral. In this case GuardianBot has the necessary appendages and dexterity to administer medications. However, we would really like him to know about medicine so he can be aware of any symptoms of side effects and other concerns. So we would install the pharmaceutical agency in GuardianBot's brain. We've now greatly increased the usefulness of our GuardianBot.