top of page

Environment Reactive Robot

Developed for the MTE 121 Design project, using Lego Technics we developed a simple reactive robot that reacts to its surroundings as well as local interactions with people. Capable of producing a set of 5 emotions, the robot had a reaction to any interaction it could sense.

About

Meet PIBOT, your Friendly Personal Interactive Robot,

Designed during COVID-19, with social interaction falling off significantly, we felt that people needed a friend to keep around them. To solve this, we designed a small robot that interacts with the user and reacts accordingly to the user's interactions. 

20211125_162347.jpg

The Six States

Action and Reaction requirements

Our Robot was designed with Six states that the robot may be in. Based on different emotions and potential reactions to interactions the user could provide, the following states were designed.

image.png

The Happy State

Action/Interaction

This state is entered once the user gently nudges the robot during its asleep state, or if the user interacts with the robot during its tired state.

Reaction

In this state, the robot faces the user and waves 5 times. Following this sequence, the robot proceeds to enter the Excited State.

image_edited_edited.png

The Angry State

Action/Interaction

This state is entered if the Robot is aggressively moved during its asleep state, the robot will enter the angry state.

Reaction

In this state, the robot will enter a frenzy where it attempts to chase the user for up to 10 seconds. If the chase succeeds, the robot will enter the excited state. The sad state will be entered if the chase fails.

image.png

The Excited State

Action/Interaction

This state is a subsequent state of entering the happy state. It also activates in the case that the robot succeeds in touching the user during the angry state chase.

Reaction

During this state, the robot will start to move uncontrollably in a circle for 10 seconds. Proceeding this state, the robot will have exhausted all its energy and enter the tired state

image.png

The Sad State

Action/Interaction

Proceeding the failure during the angry state chase, the robot will enter a state of sadness.

Reaction

In this state, the robot is disappointed that it could not catch the user. Because of this, the robot will turn its back to the user. After this state is finished, the robot will enter the tired state.

image_edited.jpg

The Tired State

Action/Interaction

This is a buffer state that the robot will enter after the excited state or sad state. 

Reaction

During this state, the robot will put on a tired face and will stay still. If the robot's hand is interacted with within 10 seconds, then the robot will enter a happy state, if not then the robot will proceed into the asleep state.

image.png

The Asleep State

Action/Interaction

This is the default that the robot will stay in when the user is not around. It is activated after 10 seconds of inactivity during the tired state. 

Reaction

During this state, the robot is constantly waiting for any physical interaction. If it is gentle, then the robot will enter the happy state, if aggressive, it will enter the angry state.

Logic Design

Given below is the Logic that the robot follows. Placed in a flow chart, the robot states, as well as the required conditions for each state. There are 5 basic potential pathways the robot could function starting at the Asleep state: 

  1. Asleep

  2. Asleep → Happy → Excited → Tired → Asleep

  3. Asleep → Happy → Excited → Tired → Happy → Excited → Tired → Asleep

  4. Asleep → Angry → Sad → Tired → Asleep

  5. Asleep → Angry → Excited → Tired → Asleep

image.png

Constraints

Because of the given project items, we had major electrical and mechanical constraints that disallowed us to go for a more advanced design. 

1 / Given Sensors

We were limited to given sensors. For example, our location tracking sensor requires an external beacon that the user must carry for the robot to track the user. Additionally, this made us plan our design around what the sensors would allow for.

2 / Number of inputs

With the Lego EV3, we are restricted to 4 sensor inputs. This restricted what type of interactions we could have accounted for. Because of this, we had to fall back on mostly physical interactions between the user and the robot.

bottom of page