Welcome to Synthiam!

Program robots using technologies created from industry experts. ARC is our free-to-use robot programming software that makes features like vision recognition, navigation and artificial intelligence easy.

Get Started
Asked — Edited


I have been building robots for a long time, PIC, Basic stamp, Arduino and even the Evolution Robotics ER1.
And Always wanted to build a good robot that i could drive across my house and interact with my wife and kid while I'm on businesstrips.

So my suggestion to DJ is like this. Maybe some kind of webserver inside of EZ-builder. Then you or your friends connect to the ARC and command the robot via webGUI. Much like the Rovio or spykee robots. But you get all the EZB goodies. And speech and visionrecognition would continue to work.

Then i really could scrap me Spykee for parts because it Always hits something and falls over when Im not at home(lack of intelligence and videolag).

You can already do at least part of what you want right now, I believe.... I haven't personally done it yet, but there is the HTTP Server or customer server control(s)... You will need to forward ports 23 and/or 24? Something like that, anyway... You should be able to control your robot theoretically from anywhere in the world...
yup. Port 23 for the EZ-B, 24 for the camera and you can run ARC from anywhere. Or, two types of web servers (basic and advanced) built into ARC on port 80 (or any port you define) so you leave hte computer running the robot local and control/interact remotely.

Or TeamViewer or Spashtop for total remote control of your ARC desktop without worrying about port forwarding. Teamview is free. Spashtop has a yearly subscription for internet control, but is better optimized for video.

There is the http server, the default one and a custom one if you know html, which could be hosted by a computer at your house and port forwarded through your router for access anywhere, simply by connecting to your external up address(what'smyip.com). Or you could port forward the ez-bs connection like said above. The biggest thing is that the amount of lag will vary. It is very possible that you could run into walls with the robot and not even see a wall yet. Plus, unless you test it well, you could run into problems and have a robot running ramped through your home while you're 20 minutes away.
Oh we've thought of nearly everything, haven't we:)

Appending to everyone's responses, here are links to the two controls for HTTP Server that is already built into ARC...

HTTP Server: http://www.ez-robot.com/Tutorials/Help.aspx?id=48
This http server acts like a "vnc" and has pre-built web controls

HTTP Server (Custom): http://www.ez-robot.com/Tutorials/Help.aspx?id=48
This http server allows you to create your own HTML pages with your own design. There's a manual on what "Tags" you can use to display custom information, custom buttons, and camera images.
Ok I should have a look at html servers. I knew about the remote desktop. Working with IT and I'm a Security and CCTV Engineer. I use a powerful HP rackmounted server for my homeautomation, securtiy and ARC.
I'm very new to the EZB stuff thats why I have thousands of questions:)

This is the good stuff with ezb. The sensors on the robot Will stop the motion before I hit something. And running ARC locally helps to prevent lagging in important functions. If remote video lags the bot Will stop on sensors. I also has a failsafe. An arduino monitors motorcurrent and bumperswitches. If motors stalls or a bumper is triggered, the arduino cuts main power. After that only the arduino is powered. I can restart by sending an ir-command from my homeautomation system.
What if you used the Arduino for the bump and motors instead of the ez-b. So the power to the Arduino is controlled by the ez-b - therefore resetting doesn't require the home automation system to be involved at all.

Arduino listens for commands, such as "move forward, turn right, stop, etc" from the ez-b. The Arduino also monitors the bump sensor, if the bump sensor is triggered, it stops the movement.

The EZ-B just keeps doing what it does....

It's an old robot, that had a raspberry brain before. It's a modified Omnibot 2000.
The bottom with the motors and gearbox are rebuilt. It now uses the steppermotors from the Evolution Robotics kit. These are very powerful. The arduino drives and monitors the stepper drivers. And the ezb Thinks its a regular H-bridge.

The reason I cut Power to ezb is because sometimes when i had the raspberry in it would freeze and the robot Went crazy. So i needed some way of rebooting from a remote location. I also had my server go down on me when playing with the ezb.
Same thing happened, the robot continued driving forward until I rebooted the ezb.

Is there a way to shut down all outputs when Connection to ARC is lost ?
The EZ-B doesn't shut down outputs when the connection is lost. If the Arduino is controlling the movement by listening to commands from the EZ-B, the arduino can also watch the bumper switches. This way, if there is a disconnection from ARC, the Arduino will stop the robot - without needing to power down the EZ-B.
Then I have to rewire the arduino to use serial connection to ezb and then make a script that stream serial data to the arduino. If the stream is lost motors stopp. Or is there another way to do it. Maybe program the arduino to work like a sabertooth.
Ah, okay so let me pitch this idea. This idea keeps the EZ-B always on, so that you can always connect to the camera or audio to "see what's up" or "ask for help":)

So here's what i recommend..

1) Connect SaberTooth to EZ-B v4 for direction movement control

2) Connect one of the Arduino's digital pins to a high amperage relay that provides power to the sabertooth. By default, the relay is ON

3) Connect Arduino to monitor bumper stopper in a constant loop. When bumper stopper is triggered, disable relay. Disabling the relay will STOP the sabertooth in it's tracks because the relay is what provides power to the sabertooth.

4) In the Arduino's "monitor bumper stopper loop", also add a check to receive a serial command from the EZ-B to "re-enable relay". This way, if you ever wish to STOP and RE-ENABLE the Sabertooth remotely, you can still do that from ARC by sending a serial command to the arduino.

This whole setup only needs...
- 1 wire from ez-b to arduino
- 1 wire from arduino to bumper switch
- 1 wire from arduino to sabertooth relay
- 7 lines of code on arduino

Voila! What do you think?:)
To re-affirm what @DJ said... if you do use a sabertooth make sure power to it is via a relay... The sabertooth continues to do what its last command told it to do... So if you issued a forward command and then lose wifi connection to the ezb, the robot would continue forward until the sabertooth either gets another command, hits something or as mentioned power is cut... Of course a different way to do it is you can have the ardunio control the sabertooth. The arduino would monitor the connection status of the ezb... If the ezb drops wifi and therefore communication to the arduino, the arduino issues a stop command to the sabertooth... This is a cool project by the way....

On second thought... I think DJ's method would be more elegant and efficient...
Its not a sabertooth in this robot. Its a custom Stepperdriver I built from leftovers from a 3d printer build. Its using an arduino nano and 2 pololu stepperdrivers. The code on the arduino makes it work like a regular H-bridge with pwm. It also uses that control in ARC.

My idea was to rewrite some of the code in the arduino to accept sabertooth commands from ARC via serial instead. Doing it this way I can use the sabertooth controller in ARC instead of writing my own.

And I will make DJ's relay thingy, but with dual relays. Because sometimes ezb looses connection with the server but remains on wifi. And I can´t reconnect without rebooting. Maybe a firewall issue also.