# Model Creation

# Camera Mouse Simple

A model is a collection of 1 to n components, where a component represents a plugin of the ARE. These components are connected via channels (for data connections) and event channels (representing events). The following example will illustrate the creation of a simple webcam mouse, using the position of the nose to control the cursor and opening the mouth to trigger a mouse click. This model requires a connected and installed webcam.

# Add Facetracking

In a first step, start the ACS and the ARE using the ACS.exe and ARE.exe short cuts. In the ACS window select the tab Components, then Sensors and within the sensors the menu item Computer Vision. There select the component FacetrackerLK. The component is now on the drawing area and, if the component is selected, properties can be set (or changed) in the rightmost part of the ACS window.

ACS - A first example (1/8)

# Add Mouse

The next needed component is the Mouse, it can be found by selecting Actuators - Input Device Emulation. After the insert, select the Mouse component and adapt the properties. Deactivate absolutePosition and set the xMax and yMax to your screen resolution.

In the next step, connect the noseX and the noseY outputs of the XFacetrackerLK with the mouseX and mouseY inputs of the Mouse. Finally, it should look like the screenshot below.

ACS - A first example (2/8)

# Add Mouse Click

The model now would be able to use the coordinates of the nose to control the mouse cursor, but the mouse click is still missing. For the mouse clicking functionality, we first need the MathEvaluator (Processors - Basic Math) plugin. We connect the noseY output of the XFacetrackerLK the with the inA input of the MathEvaluator and likewise the chinY with inB. In the properties of the MathEvaluator, we set the property expression to b-a.

ACS - A first example (3/8)

We will Differentiate (Processors -> Basic Math) the out value to react on a fast change of the nose to chin distance.

ACS - A first example (4/8)

This processed value will then be forwarded to a Threshold (Processors -> Basic Math) component. Set the thresholdLow and thresholdHigh values to 30.

ACS - A first example (5/8)

As a final step, connect the event trigger output of the Threshold with the event listener input of the Mouse – the event triggers and listeners are at the bottom of the components. After the connection has been made, set the leftClick to eventPosEdge in the property editor at the right. If everything was done right, it should look like the following screenshot:

ACS - A first example (6/8)

# Test Model

Now, upload the model to the ARE and press the Start Model button. A window with the camera screen will appear, marking with a green and yellow circle - the position of nose and chin. Press the Stop Model button or press F7 to stop the model and get the control of the mouse back. Below is a screenshot of the system, when running.

ACS - A first example (7/8)

Congratulations, your first AsTeRICS model is running!

# Reducing Tremor

You might have noticed that the mouse pointer has a tremor, because the head is always in movement to a certain extent. To reduce this tremor, an Averager (Processors -> Basic Math) will be used to smoothen the X coordinates and another Averager for the Y coordinates between the XFacetrackerLK and the Mouse. The bufferSize in the properties will be set to 5.

ACS - A first example (8/8)

That’s all, just upload the model and start it now.

# Adjusting the Webcam

If you don’t like the position of the webcam after starting the model, you can set a different start position. Select the GUI Designer tab above the drawing area and move the webcam window to an area, which is comfortable to you. Also the size of the window can be adjusted.

GUI Designer

Upload and start the model to work with the changes.

# Camera Mouse Advanced

If your first model works, try this more advanced step-by-step tutorial (opens new window) based on slides.