Asked — Edited

Controlling A Robot With Android Wear Smartwatch

As discussed in this thread: https://synthiam.com/Community/Questions/9107 I have been working on controlling my robots from my new Android Wear watch.

Eventually, I want to make a plugin and an Android Wear app to make this easier, but with the combination of 3 (unfortunately, all paid) android apps, I now have a controller. Note: Unlike the Apple watch app that DJ wrote that uses ARC Mobile, this one requires a PC running ARC and the TCP Client connection activated.

User-inserted image

The app has 5 configurable buttons, which I have set up for basic movement panel, but each button actually supports tap, double tap, press and hold, and swipe so I could add 15 additional functions.

It uses the following three apps:

Tasker https://play.google.com/store/apps/details?id=net.dinglisch.android.taskerm

Send/Expect https://play.google.com/store/apps/details?id=com.asif.plugin.sendexpect

and AutoWear https://play.google.com/store/apps/details?id=com.joaomgcd.autowear

There are some issues with AutoWear on Android Wear 6.0.1 (the latest version) but none that impact this function, it just took some work to set up because I could not get through the setup wizard, and some of the features (like gesture support) don't work, but the multi-button function I used work fine.

If anyone else has an Android Wear watch and wants me to put together a tutorial, post here and if there is enough interest I'll write up instructions and post my Tasker files.

Alan


ARC Pro

Upgrade to ARC Pro

With Synthiam ARC Pro, you're not just programming a robot; you're shaping the future of automation, one innovative idea at a time.

#1  

Created a little video of this in action.

It works quite well, and I can create different watch faces for each robot, with different script actions for the buttons. The only issue is that the Telnet app "Send Expect" hard codes the IP or host name and I need a separate hard coded task for each function, so I can only use it with one computer unless I want to duplicate the tasks and watch face for each computer separately. Making host and port be Tasker (global) variables is on the developers todo list, but I don't know how long it will take, so I may learn enough coding to build my own controller by then.

The other mild irritation is that Autowear has the ability to create named apps (using pre-defined names) for any Tasker app, and 3 of them are even well named for Robot controls, Jarvis, Marvin, and Hal. You are supposed to be able to launch them by voice by, for instance, saying "OK Google, Start Jarvis" but google broke the functionality in the latest Android Wear release. I can still select the apps from the watches app drawer, so it isn't too much of a problem.

Anyway, here is the video. I'll post more as I try out more functions.

Click To Watch Video

PRO
Synthiam
#2  

That's really neat - it's a clean UI. thanks for sharing alan!

#3  

Thanks DJ. I think I figured out the variable issue I mentioned so I would only need to change the host in one place, but it will take me some time to fully figure it out and then reconfigure it all, but by the time anyone else wants to use this, I should have it pretty repeatable and easier to understand than the gyrations I went through to get it working.

One cool thing I realized last night is that even though each screen is limited to 20 commands (5 buttons, 4 actions each) I could make one of those actions open another screen, so I could have one for movement, another for an arm, another for the claw, another for the pan and tilt camera (hmmm... Can I get the streaming video on the watch? More research needed), ine to initiate dance sequences, etc. Virtually unlimited number of commands.

Alan

#4  

On the train this morning during my commute, I modified the app to pass the script commands to the Telenet app as variables, so if I change computers, I jsut need to change it in one place, not for every script command. Would still like a way to fully automate that, but this is better. Can't fully test until I get home tonight, but I am confident it will work, and it makes the whole configuration much much simpler for if/when I write a tutorial.

Alan

PRO
Belgium
#5  

thats a cool watch controle.does it work on other robots too?

#6  

It works for any EZ-Robot. The basic 5 commands work with any robot with a movement panel. The double tap and long press commands are customized for the script command in each robot, so this example was specific to a SIX (had the Strafe and FAST ControlCommands). I am probably going to add some of the "dance moves" that make SIX so cool as well, but I have just been playing over the weekend and learning how to make it all work together.

When I do one for Roli, it will probably have multiple screens, so I can run each arm independently, and maybe start some automation sequences.

Alan

PRO
Belgium
#7  

so the basic 5 works with any robot other then ez robots. am looking forwart to see your tutorial.

#8  

Quote:

so the basic 5 works with any robot other then ez robots. am looking forwart to see your tutorial.

I am assuming this was what you meant to say, and not your sometimes confused English usage. If not what you meant, then the clarification may still help others.

The basic 5 work with any EZ-Robot with a Movement Panel in the project - it gives the script commands:


forward() 
reverse() 
stop() 
right()
left()

Other functions would be specific to the robot you want to control since it is doing ControlCommands specific to the AutoPosition or script manager or other objects in the project.

Do you have or are you planning on getting an AndroidWear watch? I only plan on writing a tutorial if it will be useful. If no one else has one or is interested in using it in the near term, then my time would be better spent taking C# lessons and writing a plugin and my own Android App rather than relying on three 3rd party paid Android apps and making them all work together with ARC. If the documentation for the apps I am using was better, I would be more inclined to just do the tutorial anyway, but one of them, AutoWear is fairly poorly documented, so in order to allow readers to make their own customization, I would spend half the tutorial documenting how the app works rather than how to make it work for a robot controller.

Alan

PRO
Belgium
#9  

not at this moment,just bouth two robots.

PRO
USA
#10  

Alan,

nice work, you really like plug & play, 3 different apps, plus all the glitches ...

soon you will start thinking in a plugin.

sorry my ignorance/laziness, does your watch have speakers & microphone like apple watch ?

#11  

It has a microphone, and can connect to Bluetooth headphones or speakers to listen to audio from the phone. It vibrates, but does not have a speaker. It can direct the phone it is paired with to play audio though.

Alan

#13  

@Pinocchio... Why does Alan want to see your adventure bot? You posting in the wrong thread again?

#14  

Hey Alan, this all sounds very interesting...I am not really sure if I would want to buy some Android wear in the near future, I just bought a Fitness Tracker to have another option to interact with my robot. But if I had known all these options, I would have gone for the wear!

Anything that will let us combine services or talk to different devices is well apreciated within the community I would guess...because thats where the fun starts right?

Keep us updated, cool stuff!:D

PRO
Belgium
#15  

rr

alan has same wrong config like me from adventure bot,so i figur it out. we where looking the config from jeremie,i found that and place the link here, cause we where talking about the watsh and i wrote below a PS i found the config from jeremie,that text is gone,i dont see it. so somebody has removed.

#16  

Thanks Patrick, I saw your post. (I wouldn't say we have it configured wrong, as we followed the build instructions and/or tutorial, just that there is a different version in several of hte pictures and videos that looks like it solves the low clearance problem we have seen).

RR, it is OK. Patrick and I were discussing Adventurebot build configuration in another thread. If we had private messaging, we wouldn't need to hijack threads to find each other....

Alan

PRO
Belgium
#17  

alan

i tested this config adventure bot,and he tips very little forwart.

United Kingdom
#18  

I appreciate this is an old post, but I don't see where anyone asked for your tasker scripts, Alan, and a quick search doesn't give any results.

If you did post them could you reply with a link?

Thanks.

As an aside. You could also use the "autovoice" tasker plugin to execute tasks/profiles with an "ok Google" command. You could use this on your Android wear watch or your phone.

Cheers Paul.

#19  

@Dnwx, no one did ask for the details, so I didn't post anything yet.

I'll write something up in the next couple of days and post the scripts.

I have a license to autovoice, and didn't even think about the possible integration. I guess mostly because ARC already has voice recognition, and I wasn't thinking about being far enough from the computer to need an alternative, but I should give that some thought. I actually don't currently have autovoice installed because Google added the one function I was using it for to Keep "Add xxxx to my shopping list" and it is more reliable. AutoInput (that I was launching with AutoVoice) required my phone to be unlocked to work, and if I was going to unlock it, then there was no point in saying the command. Does Autovoice work with Android Wear now? It didn't before, and the Keep add to list feature also doesn't work with Wear. Frustrating.... Something that should be a simple task that the Apple watch can do, and my Android device can't......

Thanks for your interest.

Alan

United Kingdom
#20  

Hi, Alan.

I do believe autovoice now works with wear. I use autovoice with tasker (not on wear) for home automation.

For some time now it has been possible to use the ok Google command even if you phone is locked and docked.

I think autovoice would work well with ARC because you could use your phone to launch function and commands if you don't have a good enough microphone or if your PCs voice recognition doesn't work for you. Google's voice recognition is pretty awesome if you speak at a constant speed and level with good pronunciation.

Thanks in advance for yourupcoming script.

Paul.

#21  

Quote:

For some time now it has been possible to use the ok Google command even if you phone is locked and docked.

Yeah, it wasn't the OK Google, or even AutoVoice that was an issue, it was AutoInput that I was trying to have control an app that wouldn't work with the phone locked. Some phones you can unlock the screen (not the phone) by using a Tasker Popup command, but the Galaxy S6 Edge that I have doesn't support that.

I'll have to try Autovoice with Wear and see if it is working now. This does open up some interesting possibilities.

I'll probably post the Tasker profiles, tasks, and instructions tomorrow. I need to get to bed soon since I leave early for work, but I already wrote about half of it up....

Won't be a tutorial that everyone can follow, but if you are familiar with Tasker and any of the AutoApps, it should be usable.

Alan

United Kingdom
#22  

Ah, my mistake.

[QuoteYeah, it wasn't the OK Google, or even AutoVoice that was an issue, it was AutoInput that I was trying to have control an app that wouldn't work with the phone locked. Some phones you can unlock the screen (not the phone) by using a Tasker Popup command, but the Galaxy S6 Edge that I have doesn't support that.[/quote]

I did check, and wear does indeed now support autovoice.

Time for bed here too. Thanks again

Paul.

#23  

The attached ZIP file contains the Tasker profile and task XML files for import, and a word document with basic instructions for use.

This is not a beginner's tutorial and assumes you are familiar with Tasker and AutoWear. It does not require familiarity with the Send/Expect plugin, but does require familiarity with editing task properties for Tasker plugins.

Again, if there is interest from anyone who is new to AndroidWear, post here and I'll take the extra time to create a step-by-step tutorial, but so far only Paul has expressed serious interest and he already has enough background in the foundation apps that these instructions should be sufficient (Paul, that doesn't mean you can't ask me questions if you get stuck, just that I am not taking the time in advance to create a full tutorial).

Alan configuringAndroidWearrobotcontrol.zip

United Kingdom
#24  

Evening, Alan.

This is wonderful. Thanks for taking the time to post.

As an aside, If anyone is put off in part due to paying for apps that you may only use once, if at, then Tasker is free to try, 7 days I think, and if you download the Google rewards app you'll soon accumulate enough credit to pay for the apps.

Thanks again, Alan.

#25  

Quote:

if you download the Google rewards app you'll soon accumulate enough credit to pay for the apps

Good point. I bought Tasker years ago because it is so valuable in its ability to extend Android and automate things I used to do manually, but I bought both of the add-ons with Google Rewards credits.

Alan

United Kingdom
#26  

I really only buy things now with the Google rewards. It can be quite easy to manipulate. I figured out the (semi) local stores that always send a survey if you visit and make a point to walk past them even if I don't call in. Guarantee a survey 24/48 hours later :-)

#27  

If you add any interesting capabilities to this idea please share. The one I plan on doing is having multiple faces available for different robot functions (launching each new face with a swipe on the currently open face, although our discussion of integrating AutoVoice into the mix has me thinking of some new ideas too.

Alan

United Kingdom
#28  

I will do. I was thinking also of autovoice integration.

I'll let you know if I get there.

Paul.

#29  

I haven't modified the code yet, but I have been playing with the ARC HTTP Server (custom) control and realized that I can send script commands using HTTP Get and don't need the Send/Expect telnet client.

Format is:


get  http://host:port/script.cmd?code=script statement


(note: this is not documented, so could potentially change with ARC updates. I discovered it by capturing packets when using the HTTP Server (custom) web page and watching what happened when I hit the buttons)

Alan