Asked — Edited
Resolved Resolved by Rich!

Help With Variable Input And Output For Faces

Well, I was working on a surprise for the group, but I need some help first. I have a nifty multiple face detection program working in C#.net. So far I have it programmed to recognize my face, DJ Sures, Sarah Connor and Alan Turing. Minus my face, I figure all EZ-robots should know who the other three people are.

My C# app generates a change in variable and displays this in a label in the form to show who's name it is for the face it sees. For this to be useful for integration with ARC I need to get this variable out of my app an into ARC.

I see two ways to do this, one is write the data to a .txt file, have ARC keep checking this text file, read the text file, if the text changes then act on that. - This seems sloppy and slow.

Option 2 seems better which is to use TCP/IP and Telnet. I've viewed the tutorial here: https://synthiam.com/Tutorials/Help.aspx?id=159 and I fundamental understand it. I can connect to ARC with Telnet. I I'm sure I can tell my C# app to send telnet data. What I can't wrap my head around is how to I make a script in ARC to look for an incoming variable on the TCP/IP port such as "$Face_Name" so that ARC can then act on that data?

Can someone help me with that? Or is there a 3rd option I'm not thinking of yet that would be better? I'm looking forward to get this figured out so I can share my app with the group.

Thank you! -Justin


ARC Pro

Upgrade to ARC Pro

Stay at the forefront of robot programming innovation with ARC Pro, ensuring your robot is always equipped with the latest advancements.

Author Avatar
United Kingdom
#1  

WaitForChange is the command you are looking for.

Give me a minute or two and I'll knock up a quick script example for you.

Author Avatar
United Kingdom
#2  
# Make sure the variable exists and is reset
$FaceName = "null"

# Make an endless loop
:loop

# Wait until the variable changes
WaitForChange($FaceName)

# Script commands to be run on change of facename variable

# Loop back to the start
Goto(loop)

It's that simple:) No sleep should be required since the face probably wont change too quickly.

#3  

Ok, I added that as a script, ran it and I get Error in line 2 variable not defined $FaceName

Author Avatar
United Kingdom
#5  

Updated the script a little;)

All variables need to exist before using them in commands otherwise it'll throw that error. I usually define all variables as "null" or as 0 in the init script.

And yes, I changed it before you posted as I saw the potential problem:)

#6  

@JustinRatliff

This is an awesome thing.... How are you adding faces to the recognition engine? Will it be something users will be able to easily (or not easily, but without C# programming skill) do?

I would love to have my robot recognize me, my wife, my cat, and a couple of friends, and treat everyone else as stranger (or when in "security mode" potentially hostile).

I also love your choice of default recognized faces. I would suggest adding Issac Asimov.

Alan

#7  

@Rich - You Da MAN!

I'm getting so close I smell it. Thank you Rich!

#8  

@thetechguru It's an application that runs on its own. I am making it to share with everyone - anyone should be able to use it as a standalone app. If I get lucky I'll have the very pre-beta version ready to share tonight or tomorrow.