I am very interested in Ezrobot Products, especially the Roli Rover. I am looking for and have been for some time, an economical security type robot for home use where I can control the base over the internet and control the camera pan/tilt functions over the internet and stream live video streaming over the internet using my Samsung Galaxy S4 over their 4G network. what came close was the Brookstone Rover Revolution Robot. However they didn't allow it to be accessed over the internet. I have a couple of questions regarding the Roli Rover specifically. Will this Rover be able to traverse over a carpet (not the shag type)?
Also I was wondering what the capability of the pan/tilt system is? What is the pan range and the tilt range. The pan range isn't so critical as the robot can be driven to also pan the camera. What is a bit critical is the tilt range. Can the tilt mechanism be raised enough to be able to look up at windows and doorways, etc.? Also your robots seem to have some high power computing power and was wondering how the video stream is over the internet say using my Samsung Galaxy S4 over the 4G network? Again seems like the main computer is pretty heavy duty. Seems it off loads motor control and other robot control functions to the PIC32 processor. Also what is a typical delay or latency over the network with a video stream of say 240 X 320 resolution and possibly higher. Is there a way I could test this out without first purchasing the complete robot? also is there much latency in the actual control or driving of the base itself. It would also be nice if you could view the video stream at night. Are there any plans to add some IR LEDs to the camera or around it for use at night or in dark areas. Seems that this could be added fairly easily and would add an important function to the Rover. Also maybe a different camera could be added to your selection of add-ons to be purchased from your store. Also, is it necessary to buy the complete Roli Rover Kit all at once or can you purchase it in pieces as you can afford it? Would like to start out with computer/camera module first and then order the other pieces as time and money permits. I am assuming that with just the computer and camera modules I could check out some of the video issues for myself before jumping in all the way. However I am hoping there has been enough experience with the video streaming over the internet and control of the robot over the internet by the user community to give me a sense of how good the performance is and what I can expect. Thanks much and looking forward to your reply/replies......Rick Bonari
Upgrade to ARC Pro
Get access to the latest features and updates with ARC Early Access edition. You'll have everything that's needed to unleash your robot's potential!
It would be helpful in the future if the questions were listed individually rather than in a paragraph. I believe @Techno answered many of your questions the best he could. However, without the ability to reference a list of the original questions, i can see how difficult it would be to apply the large paragraph of questions to an ordered list of answers. I'll expand on his responses a little, hopefully this helps
1) The servos move between 1 and 180 degrees. So the question regarding your viewing angle is between 1 and 180 degrees (limited by anything in the way)
2) There are many details to consider regarding "the internet". Firstly, even suggesting the speed of "4g" is still an arbitrary measurement. It's a good idea to use the internet and understand what 4g speed really means, as it's unique per carrier: https://en.wikipedia.org/wiki/4G
Also, consider that "4g" from your carrier is not guaranteed and ez-robot cannot be responsible for internet speeds.
The speed of the camera over the internet when i connect to the robot is approx 200ms-500ms delay sometimes, and when the internet is slow or moderate it's between 1000ms and even 3000ms.
*disclaimer: EZ-Robot is not responsible for the speed of internet connections and the speed answers you receive on this forum are not expected benchmarks.
That being said, you can easily calculate the raw video size before compression. Since you're mentioning a desired resolution, let's use that but first let's fix it. 360x240 is not a valid resolution. 320x240 is a valid resolution. Here's how you can calculate raw image size using a valid resolution...
Raw image Size: 320 x 240 x 3 = 230,400 Bytes
That is: Width x Height x Color Depth = Size
The color depth is RGB, which is one byte per color. Red is a byte, Green is a byte, and Blue is a byte.
The codec used by EZ-Robot compresses each frame to an average of 20,000 Bytes.
*disclaimer: please consider this compressed image size as a recommend average as EZ-Robot is not able to control visual environments and therefore the resulting image size of a compressed image is uncontrolled.
So, if you have a 20,000 Byte compressed frame, and imagine having a 1,000,000 Byte/sec transfer on your "4g" network, the max being 50fps. Now, the camera will limit transfer speed because it has a max of 30fps and attempts to idle between 10-20fps based on dynamic compression to leave bandwidth for audio and commands. A 1,000,000 Byte per second cellular connection is very uncommon.
*disclaimer: your provider and most research results may promote mb vs MB. The difference is byte vs Byte. So if your carrier promotes 5,000,000 mb/sec, that's actually 625,000 Bytes per second. A consistent 625,000 Bytes divided by 20,000 Bytes is 31 fps.
Dynamic compression means the compression algorithm changes between average frame size to increase fps over complicated images.
In summary, the question of controlling a robot over the internet is based on your internet connection - and everyone will have a different experience.
Your biggest question should be battery consumption - how long do you expect a robot with 12 motors and servos to have power while you're out of the house?
Lastly, you can purchase the parts separately. Visit www.ez-robot.com and click on the Products link from the top menu. That will introduce the web store of components. If you view the Roli product, there is a list of it's inventory. It really consists of servos, camera, body, ez-b v4, grippers, and camera. Each of those items can be purchased separately. If you have experience purchasing online, there is a concept of a "cart", where you can add items to the cart. Either adding the entire robot, or the parts individually.
There is no plan from EZ-Robot to add IR LED's for night vision, but it is something you can easily add yourself. EZ-Robot promotes robotics and not remote and advanced vision capabilities, which night vision does not qualify. Although, there are thousands of options to add IR LED's yourself, including IR flashlights, etc. available from eBay
There are (at least) 3 ways to do it.
1) Connect EZ-B remotely. To do this, you will need the router at the location with the robot forward ports 23 and 24 to your robot. ARC (either mobile of PC based) could then point to the public IP or host name. You will either need a static IP address or a dynamic DNS service to know where to point to. Although very effective, and probably the best camera performance, I would never forward port 23 on my network. It is a common attack vector, and you will probably have performance issues just from all the hackers trying to find something hack-able on your network with that port open and listening. You could have your router do port translation so you expose a less common port and point it to 23 on the EZ-B, but still, not what I would recommend.
2) ARC running locally, and using the built in web server. ARC has two different built in web servers, a basic and a more advanced one that can be used to view the camera and remote control the robot from a remote location. You can define the port for the web server to run on, and as in #1, forward to that port. The video doesn't stream, but is instead a constantly refreshing jpeg, so performance is not quite as good. Still not sure if I would do this regardless of which port I chose because the web server built into ARC is not well tested for security and there could be unknown vulnerabilities that you are exposing.
3) Remote control software (VNC, TeamView, Splashtop, etc...). A lot of users use TeamView to remotely access their ARC PC. This is effective although not the best video response. I use Splashtop Remote which is specifically designed for good video/game performance over a remote connection, but there is a yearly subscription fee to using it over the internet. Any of these A(well, except VNC) have the advantage that you are not opening a port in your firewall. The software running on the ARC PC establishes a secure connection to the vendors servers, and you log onto the vendor's servers with secure credentials to establish the connection. Security is part of their business, so this is probably the safest method of connection.
DJ mentioned battery, and that is a significant concern. I would not do this with a Roli. If you don't want to design a robot with automatic return to a charging station from scratch, the best off the shelf solution is an Roomba, either the Create (which doesn't have the vacuum parts and is made for hacking) or any recent vintage vacuum, which can be hacked. Get the EZ-B, camera, lever servo and rotation servo for your pan and tilt, and a clip and play adapter plate (all available in the store). You'll need to make a cable to connect to the Roomba, but then you can drive it with ARC, and just give it a command to find its charger and recharge when the battery is low.
Those answers were great ! The explanation by DJSures regarding video streaming was very helpful and educational at the same time ! Also the information regarding the battery issue was very helpful ! The option of using the Roomba as a base is very interesting. If I am getting what I hear you say, I can use the EZ-Bv4/Camera/Servos, etc. With Roomba and drive the Roomba, operate PTZ mechanism and view video stream using your amazing ARC software just like I would do with the Roli Rover but I would be able to resolve the battery issue by seeking out the battery charger for Roomba. Can I use ARC software to control all aspects of the Roomba base including of course driving the Roomba and controlling other aspects of the Roomba using ARC Software/User interface? Your help is much appreciated and all the options you provide along with the superior software interface make your products very attractive for any robot build. Your support is also first class. Thanks much. Interested to hear your thoughts regarding the Roomba Base useage and the depth of your support for it...Rick B.
1) EZ-B v4
2) EZ-B v4 Camera
3) lipo battery
4) lipo battery harness
5) Horizontal Clip'n'play servo
6) Vertical Clip'n'play servo
7) A little bit of hot glue to attach the servos for pan/tilt with camera to the roomba
Yes, you can drive the roomba around, and also give it commands (like clean, where it follows its normal clean pattern using its normal bump sensors etc...).
Search Roomba here on the forum and in the script manual for more information. Lots of discussions about it, and several users have built their robots using it as a base.
1) EZ-B v4
2) EZ-B v4 Camera
3) lipo battery
4) lipo battery harness
5) Horizontal Clip'n'play servo
6) Vertical Clip'n'play servo
8) Clip'n'Play adapter plate
2) there is a cable that connects to the controller for teh battery
3) plastic shell for the camera is affordable. use the Contact Us during the day to speak with james and arrange the camera shell to be added to the purchase
4) the lipo battery harness is not included with the development kit. however, you can add the lipo battery and harness to the development kit for longer battery life expectancy
there's a pretty detailed video about the developer kit on it's product page. give that a preview to see what's in it.
otherwise, if the clip'n'play parts are more appealing to you, consider getting just the ez-b v4 and camera combo with a lipo battery and adapter for the time being to experiment.
1) Rome wasn't built in a day... you could also ask Bill Gates why the first version of windows didn't have 4k resolution. Or, you could assume the technology wasn't there yet. Which one was it? Technology, you got it.
So if you're asking why some features don't exist - i can introduce you to the incredibly complicated process of product development and invention. Specifically, break-through invention that doesn't exist anywhere else on earth. And to follow up that story, I can introduce the concept of product revisions and updates - and what that means. Perhaps you're under the impression that the earth was indeed created with cars, hot water, the internet and medicine. Since you asked, here's how product development works...
The EZ-B v4 is split into revisions between the two hardware pcb's. The bottom pcb is the brain. The top pcb is the communication. Unlike anything else ever designed for robotics, the ez-b is different. It is not a computer. It is not a raspberry pi. It does not run a bloated OS like linux. The EZ-B is a custom designed wifi enabled i/o controller. It acts as a wireless i/o extension to your computer, phone or raspberry pi, etc..
The EZ-B v4 already has a few revisions, each with a bit more features. Every feature in existence is not added on the first product release. If that were the case, there would be no products on earth. This is because features take time. The EZ-B, as you know it today, has been in development for 7 years. So, the features you are reading about and questioning and researching has taken 7 years (approx 2,555 days, or 61,320 hours, etc) to create.
The point is, in retrospect you can ask a lot of questions. You can ask why it doesn't have legs or pour you a glass of water. But the answer is, it's already one of a kind and the technology to create it took many years.
Now, does that mean it's the end? No... there is a next version, which some beta tester people have today. And for others, it will be released in a few months. The new version of the ez-b has a feature like you inquired, such as changing ports. It also has a hundred other features. When will you get it? Someday... but right now you have access to the current ez-b :). There will be an upgrade option to the next version, when it's available.
2) Port 23 and Port 24 are not security risks - and it's best to use google to understand what that means. There is absolutely nothing preventing you from connecting over the internet to port 23 and 24. Some "firewall" software thinks it's smart because back in the 1990's, unix and linux machines had port 23 open for in.telnetd which sometimes didn't have passwords. Well, those old network security/firewall programs sometimes block those ports even though nothing in the world uses them - except the odd managed switch.
So, is port 23 a problem? No. it's as much a problem as using any other port. Because here's the scoop: if you're using a network security program that is disabling port 23, then it's disabling other ports as well. Thinking "some ports are safer than others" is what got the network security world in trouble in the first place!
i.e. is your home's front door more secure than the back door? Think about that for a minute...
3) Your mention of jpg images is partially correct. Once you understand that MPEG is actually a collection of jpg images, you would understand and maybe this would make things more clear. The video codec of ez-robot is our own jpeg-like algorithm that is compatible with jpeg and mpeg frame, once the header is removed. This information is entirely irrelevant to anyone's requirements. Its about as relevant as wondering what codec youtube uses...
I had already covered how the video compression works in a previous response to you. The compression is dynamic based on average image sizes over time to maintain a data size within desired scope. The compression self adjusts. The most recent version of the camera adjusts more than the last version. The most recent camera (with the rgb bootup led) image size and other features is designed specifically for vision recognition. It was not designed for you to take family photos of birthday parties.
If you want a camera for your eyes, buy a GoPro. If you want a camera for computer vision, buy ez-robot. Yes, there's a significant difference. Because what is nice for your eyeballs to look at is not what is nice for computers to recognize vision. Your eyeballs want soft colors with dynamic contrasts and earthy colors, etc, etc, etc.. Your computer vision algorithms want raw realistic cold colors and contrast.
4) What you described about your ip camera is how all networks work. What you described is a network. That is how the EZ-B works, that is how your camera works, that is even how your TV works (if it's a smart tv).
Instead of overly complicating things... accept that much like your computer, phone, tv, car, hot water, etc.... it all works? Well, so does ez-robot. Sometimes you just have to have faith in products. There's tens of thousands of these ez-b's in the world across over 100 countries - if you get one, cool... if you don't, you will
Many people have, such as @techguru.
First of all I know all about product development myself and have taken projects from design, development to final product. I wasn't asking for an explanation of this process. I am trying to find out about your awesome products and what the capabilities are and how they stack up with other product options on the market. Please do not take offense at my trying to do so ! Seems that alot of my misunderstanding stems from what the TechGuru had to say in his previous post regarding forwarding port 23. In his own words he said that I would never port forward port 23 and it is a common attack vector. He also mentioned that using this port could degrade the connection with so many hackers trying to get in. This is why I asked after asuming what he said was true why was port 23 used as a required port. You may want to go back and take a look at his post. I am not trying to be difficult and I think your products are great. If thetechguru hadn't said what he did I wouldn't have sent that last post. I am only trying to get as much information before I buy so I won't make a wrong decision for me. What would really be neat is maybe for you to have one of the robots set up with special access so we could control it from our location using the different options of controlling from the internet mentioned by thetechguru. That way I would know first hand how the response would be using my phone over my internet connection to control a test robot at your site. I have seen this done with other companies and individuals. Then I wouldn't need to ask all these questions. And yes from now on I will try to bullet all my points or questions that I have. Please read what techguru had to say about port 23 and let me know what you think about his comments if you would being is how this appears to be a source of confusion for me and maybe others. Thanks as always for your great support ! Rick B.
Questions are always welcome - don't ever be discouraged to ask, even if it means a dump of fact
Will other ports be attacked? Yes, your router log will also show port scans looking for any open port, but not as many, and more likely to get stopped by your ISP before it ever reaches you (I usually only see port scans from my own subnet, but I see ftp and telnet attacks from all over the world).
I have been doing networking since DJ was in diapers, and involved in making computer communications systems safe in an environment that handles credit card transactions for the past 10 years.
Personally, I still go with TeamViewer or Splashtop because it provides the most protection/isolation of my network, but I am also paranoid about this stuff because I have to be at work, and I extend those best practices to my home network when practical.
There is actually a 5th option too. You can use a VPN on your home network and your Galaxy Note to protect and encrypt the connection to port 23 rather than forwarding it (of course you have to forward the VPN port to your VPN server, so there is always some risk). I run OpenVPN on a Raspberry Pi and an OpenVPN client on my Android to give me remote access to my network. My primary reason of it is that I also run an ad-blocking DNS server on my network, and by using the VPN, I can extend that to my Android device when away from home. I have never actually tried it with ARC, but now that I think about it, that could be an excellent choice of connectivity. Low lag, high security. Good overall choice.