erichokk
Hi guys,
After seening all those wonderful robots that are created with Ez-robot, I have decided to try my hands on it.
The robot I hope to create is a Telepresence hugs and bunnies home security camera robot. I have a spare android phone lying around hence decided that will be the brain of the robot and will mount this phone to the robot running ez-mobile.
The plan is to use ez-mobile to execute the scripts to control the robot, such as face tracking and moving the servos. I wanted the robot to be interactive, hence will be developing a seperate app that contains an interactive face, basically 2 eye balls and a tiny mouth.
The problem I just could not figure out is how to get my andriod app to interact with the ez-mobile since ez-b v4 will only accept one connection to it's port 23. I read ez-bulider has the script mode server for this purpose, but could not find any indication that ez-mobile has this as well.
Am I going in the wrong track in this design? Any advice will be appreciated?
I have no idea why my statement "Telepresence sugar plum home security camera robot" becomes "Telepresence hugs and bunnies home security camera robot". My apologize.
For some reasond c u m is not allow in this forum.
Welcome
Are you referring to a mobile app made in ARC or a mobile app written in Java/or mono?
Hi DJ,
I know it is kind of confusing, I try to explain it more in detail. Let’s refer to the mobile app created by ARC as Ez-mobile and the android app that I will need to develop as My App. What i plan to do is develop My app that is capable of running as an overlay on the android phone, just like the way those Samsung multi-windows app does, it will take over the screen and touch sense function on the android but still allows other apps to runs under it (literally). Pls see picture 1 as i try to provide a visual of what i mean. My app will perform at least the function of displaying a face that changes periodically into different emotion face. Actually there is more can be done on My app, example like getting webrtc on My app for video conference, displaying the weather, simulate mouth movement as the robot talk, etc.
I understands I could send hex command code to the eZ-B V4 via its TCP port and control the servos, but i want to harvest the power of EZ-mobile that has the ability to host the action scripts and do things like moving the servo to track the face or object. Hence i was exploring the possibility of running EZ-mobile first and then launch My app which will overlay on top of Ez-mobile. However, it also means My app has to find a way to communicate to Ez-mobile to tell Ez-mobile to runs which action script. For example, if i initiates a webrtc session (video conferencing) remotely to My app, it can send a short command like "start facetracking" to Ez-mobile and the robot will pan/tilt as my wife walks around the robot hence maintaining my wife in the camera view.
For android programming usually it is via intent for app to app communication but for this application, i would like to do it via a TCP port. Something like a 3rd party program communicating with ARC via its server port and with the ability to just send controlcommands.
As my main purpose of this robot is to provides a means for me and my wife to conduct video conference with my in-laws and use this robot as a CCTV system to monitor the living room. This will requires me to develop the another android client application that can remotely control the robot via internet and view live video from either the Ez-robot camera (which is attached to the robot) or via the mobile phone camera.
Attached is a sketchup of the robot in its most simplest form to give you an idea. I may be too ambiguous, hence, would like to sort out all the possible integration questions before i start any coding.
It sounds like a great project !
@erichokk,
It seems an interesting project but it's important to understand the possibilities and limitations.
Android applications
1.1) ASFAIK only one application is in control of the device, you can have background applications, you can have applications raising notifications. The EZ mobile application is not a background application neither is your custom App, only one will be active at the same time
1.2) Android Split-Screen feature is being cooked and there is a preview version targeting the nexus tablet, is still premature.
1.3) Android Inter-Application Communication, ASFAIK there are no interfaces in the EZ-Mobile Android application.
I think you have two options:
A) Build an Android Application from "Zero" and design all your features, plus the communication with EZB
B) Use a Windows (intel) machine and run the ARC, create/run a custom plugin to handle the communication with the Android device/app
Develop Android Application and create a custom protocol can be HTTP/REST or HTTP/WebServices or TCP Raw protocol between your android app and the ARC custom plugin.
Is not impossible, but there is a good amount of development.
If your goal is a Telepresence and remote control of your robot, you can do it with a Windows computer running ARC and your custom plugin and other custom applications (e.g. IIS/ASP.NET etc)
you can expose your plugin/ASP.net application to the internet, and remotely with a browser control the robot and get the video feed.
Instead of having two different systems (Android & Windows) you focus only in one system.
Thanks ptp for the detail reply.
I was afraid that may the outcome. I'm still exploring the possibility of using the method of overlay on ez-mobile to see if it can work. If I have any success will post it here.
I was trying to avoid having to use Windows as the smallest Windows tablet is 7". If ez- builder is able to function in Windows 10 IOT , it will be a dream comes true. Imagine just having a rassperry pi with ARC opens up to many possibility.
See: http://synthiam.com/Products/ARC
ARC SDK written for Windows 10 IOT. You need to write all the functions yourself rather than having the ARC GUI, but it can be done.
You can also get perfectly capable Windows 10 machines that are much smaller than 7", but they don't have built in screens. You could however use an Android device running TeamViewer or any number of other remote control apps to provide your screen.
See: https://synthiam.com/Community/Questions/8714 for a wide selection.
Alan
I'm still having a hard time understanding what "overlay" means.
Do you have any previous programming experience? If so, it would be pretty easy to load xamarin and use the ezrobot mono library to make an app for telepresence that works on both iOS and android. Its real easy with xamarin and our mono library.
If you wish to use raspberry pi, that will be expensive. This is because you will have a pile of additional hardware to consider, such as a keyboard, mouse, lcd screen, power supply, wifi USB, etc etc
Lastly, I'd recommend a simple touch screen embedded pc from gear best. The one I use on bimbo the clown was $79 on sale and runs Windows 10, wifi, touch screen, 20gb ssd free space after os, and it's only 12v input.
This is the PC I would use if you're not building your own app: http://m.gearbest.com/tv-box-mini-pc/pp_237097.html
I've seen it go on sale for 79 bux - when I bought mine.