Asked — Edited
Resolved Resolved by Rich!

How Can I Make My Wall-E Do Things On Its Own

Hi guys I was wondering how to make my wall-e do things on it's own, like turning around after I stop using him for a few seconds. Thanks Dante


ARC Pro

Upgrade to ARC Pro

ARC Pro is more than a tool; it's a creative playground for robot enthusiasts, where you can turn your wildest ideas into reality.

United Kingdom
#1  

Could you be a little more informative on what "things". You mention one however used the plural "things" which indicates you want more than one thing.

You could use a timer script which monitors activity, this would involve every user commanded activity to reset the timer by controlcommand(). You would also have to avoid autonomous, idle activities from resetting the timer though.

In every user activity a simple command such as;

ControlCommand("RobotIdle", ScriptStop)

at the beginning to stop the timer and then

ControlCommand("RobotIdle", ScriptStart)

at the end to restart the timer.

The script running to keep an eye on the idle timer would also be required. Something like;


$idletimer = 0
:loop
IF($idletimer = 10)
  ControlCommand("RobotIdle", ScriptStart)
ElseIf($idletimer < 10)
  Sleep(1000)
Else
  Halt()
EndIf
$idletimer++
Goto(loop)

Where "RobotIdle" is a script which carries out the actions you want the robot to do while idle.

Whenever an action is commanded by the user the idle timer script would stop. Upon completion it would restart. After 10 seconds (in my example) it would go autonomous. Once autonomous the idle timer script would stop running until another user commanded action (with the first controlcommand) is run.

#2  

thanks for getting back to me, but where would I write this script?

#3  

oh and I also have another question if I wave to my wall-e how could I make him wave back to me

United Kingdom
#4  

You need to add a script control or script manager control. Here's a tutorial that we'll help you add a script.

A possible way to make Wall-e wave back to you, you could do something like make a script that makes wall-e wave. This would need to be entered in to the "Motion" config screen in the camera control and add you. Or make a waving script and add the "control command" the same way as above. Beware though that doing it this way, other movements detected by the camera could make Wall-e wave too.

Here's a Tutorial for the camera control.

United Kingdom
#5  

My post says where to use each part of the script.

The ControlCommand() to stop the timer script needs to be at the start of any user actions. How the user actions are started will determine where the best place for that is.

The ControlCommand() to start the timer script needs to be at the end of any user actions. Again, how the user actions are started will determine where the best place for that is.

The timer script is a script, add the script control or add it to an existing script manager. Provided the two above control commands point to the correct place it will work.

For example; If you have a voice command for "Walle, dance" which triggers some dance script or Auto Position controls. In the speech recognition control, in the script for "Walle dance" add the first ControlCommand() (which stops the timer) above the ControlCommand() to trigger the dance script or Auto Position and add the second ControlCommand() (which starts the timer) after it.

United Kingdom
#6  

Gesture control is not currently native to ARC. For gesture control you would require either a third party application or some incredibly complex scripting which would no doubt result in false positives.