Asked — Edited

Roli Rover Video Streaming Over The Internet

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


ARC Pro

Upgrade to ARC Pro

ARC Pro is your gateway to a community of like-minded robot enthusiasts and professionals, all united by a passion for advanced robot programming.

#1  

You have a lot of questions my friend. A lot of learning, you must undertake, young petawan.

  1. I believe so, but performance will be reduced due to more friction.

  2. If you get ARC and download the Roli example, and go to the AutoPosition control, I bet there is an action which will have servo positions going to the max and min. Just look for those numbers. The numbers will represent degrees.

  3. Yes. I believe he will be able to see that high. I don't own one though.

  4. Okay. This is a very common misconception. The ez-b robot board does no computing. Everything is offloaded to a phone or pc. This will complicate your idea a bit.

  5. Video delay on LAN is maybe 200ms but it will be much worse once you start tapping in from outside.

  6. Not really, unless someone local to you brought their robot by. People have already done this though I believe.

  7. Driving delay in my custom robots are little to nothing. If connecting from outside the network, there will be a fair amount.

  8. No plans for it less to my knowledge but you could install a wifi it led camera...

  9. Yes you could buy part by part, but it would be much less cost efficient with shipping costs and the bundled markdown. But yes, all parts needed can be bought separately.

  10. As stated, I believe it has already been done, or at least persued.

To do what you want, you will need to have a computing device(PC or phone) always connected to the robot over wifi. The robot would need to be connected to your network in client mode. The computing device would then need to run the http we host control I believe with the camera( there may be another way). You would then need to go into your router settings and portforward the IP address and port for the web host so you could access it from the outside.

A fair amount of work to do. Not for the faint of heart, but definately do-able.

#2  

I was wondering if anyone has used the ezrobots over the internet and if so what kind of delays do you experience in the video stream and drive/control response using say a 360x240 resolution? Can't believe no one has viewed the video stream or tried to control these robots outside their local area networks over the web. Looking for users that have actually done this and what their results and experiences have been. Would think using my samsung galaxy s4 over a 4g network it would have alot to do with the speed of the 4g network itself. Hoping to hear from someone experienced with controlling over the web outside of the local area network. Thanks much MazeHorizonTech for helping out.

PRO
Synthiam
#3  

Many many people use their ez-robots over the internet. Give questions time for people to volunteer and answers questions.

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 :)

#4  

I think most of your questions were answered, but no one addressed how to access it over the internet.

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.

Alan

#5  

Oh yes. The battery life. Yea Roli might not be the best choice. It may last 5 hours idle. Moving could chop it to 15 minutes.

#6  

Hello All,

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.

PRO
Synthiam
#7  

Yeah - you could use a Roomba instaed of the Roli rover.

  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

voila

#8  

I would add clip and play adapter plate and glue or screw that down to give a good base to attach the camera servos to (and it is only $5).

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.

Alan

PRO
Synthiam
#9  

Oh geez, you're right Alan - i totally forgot about the clip'n'play adapter. The screw will be much more secure. yeah here's the revised list...

  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. Clip'n'Play adapter plate
#10  

Seems I could start with EZ-Bv4 and camera with battery and charger and along with ARC software I could check out the capabilities of the camera including color/shape recognition aspects of camera as well as video streaming capabilities over my 4g network using my samsung galaxy s4 cell phone. I could start out with these items and then continue on with other purchases. Would this plan of attack work? Seems like it should. Thanks for the great support and quick answers. A future product for EZROBOTS might be a stand or mounting piece for any robot to have a platform to add EZROBOT pieces easily without having to use hot glue. Could maybe have different size mounting platforms, etc. For different size robots. Any thoughts on this? They could be very basic. Thanks again....Rick B.

PRO
Synthiam
#11  

i think that you're on the right track. Might be best to start with the Developer Kit, as it's the best deal. You get the controller, camera, bunch of servos, battery holder, sensor, screws, etc...

#12  

With regards to the development kit I have a couple of questions. What is the power shell? Seems kit comes with 6xAA battery holder. Regarding the 6xAA battery holder, does it come with a cable that plugs into the EZ-Bv4 controller? Also how much would the plastic camera shell cost for the camera? Seems it would be more economical in the long term to use the LiPo Battery/Charger. Does this require the LiPo Battery Harness to use the LiPo Battery with the development kit? Thanks again for all your help and great support ! Rick B.

PRO
Synthiam
#13  
  1. the power shell is what the ez-b connects to for power

  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.

#14  

TheTechGuru mentioned some methods to access the EZ-Bv4 over the internet. The second method seems to be the one I would probably use. I understand that this is not an actual stream but several .jpeg images played one after the other. How much does this typically slow down the streaming video response? In the first method why can't different ports be used instead of 23 and 24. I have an IP Webcam that will assign an IP address after scanning the network. Then all I have to do is forward the IP address in my router settings, along with the two ports for video and control that I can change in the software setup if need be. Also if using port 23 & 24 causes so many issues with security why were they used and why can't the ports for camera and control access be changed or selected by the user. Method two seems to be similar to my IP webcam but not sure why it is .jpeg images played one after the other and not the actual stream. Also concerned if the stream that is viewed with method two is degraded greatly from when you use methods one and three. Also why not change the ports that are being forwarded in method one to something again other than 23 and 24? Also is the stream response greatly degraded using method two vs methods one and three. Trying to get just a relative idea of the differences in lag between the three methods -- network speed, etc not withstanding. Thanks again for all your help ! Rick B.

PRO
Synthiam
#15  

Please organize your questions in points and not paragraphs. It's difficult to read a paragraph full of questions. I easily get lost in the giant paragraph full of question marks and lose track of what questions i'm responding too. Thanks in advance! :)

  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.

  1. 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...

  1. 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.

  1. 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 ;)

PRO
Synthiam
#16  

PS, forgot to add that you can always customize the entire ez-b v4 with the OpenIoT project here: http://synthiam.com/Products/ARC

Many people have, such as @techguru.

#17  

D.J.

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.

PRO
Synthiam
#18  

No offense:D all factual! That sir, was a manifesto!

Questions are always welcome - don't ever be discouraged to ask, even if it means a dump of fact :D

#19  

And sometimes DJ and I will disagree. Sometimes he is right, and sometimes I am. Opening Port 23 for instance.... If you look at your router security logs, you will see almost constant attempts on port 21, 23, and 80 because when they are open they typically run insecure protocols. If you open 23, those attacks will intensify. Your EZ-B instead of your firewall will be seeing all of that traffic and at best, needing to drop the packets. At worst, some will be clever enough to find an exploit and take advantage of it.

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.

Alan

#20  

You can easily see what "option 2" will look like if you have a web cam. Download and install ARC, set up a camera object to use the web cam, and set up an http server or advanced http server and connect from another computer or your phone. It is very usable and low lag, just flickers a bit more than streaming in ARC directly.

Alan

#21  

I should have mentioned the Open IoT option that DJ mentioned in my list. With an inexpensive programmer tool, you can modify which ports the EZ-B and camera listen on, and then use ARC remotely a little safer than using port 23.

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.

Alan