Robot Control Skype Plugin - About 40% Done
Hello everybody,
I have again gotten back into "webcontrolled" robotics and this time I've got a different aproach. Much of the time spent on my other web controlled robotics projects was spent not on the robot, but on the control system. I have decided that this is the wrong way to go. Because I spent so much time coding the actual interaction with the server I've decided to "piggyback" my application onto a preexisting network system: Skype. For those of you that don't know what Skype is here is the run down. Skype is a program that allows users to call other users and converse with audio, text, or on the windows machine, video. Skype brings many cool things to the table and it was its video calling that really made me want to do this project.
Here's what I plan/am doing:
I've decided to create a application which binds itself to Skype and then allows anybody(except "banned" users) that is allowed to call your skype account to control your robot. I've got some screen shots attached and here's a run down of features i've implimented/hope to impliment:
Auto Answer Calls - Implemented - Allows you to go, your know, have a life while also allowing others to control your robot
Ban List - Not Yet Implemented - Allows you to ban users from control
SkypeMe Auto Change - Implemented - When the application starts it puts your Skype client into "SkypeMe" status so anybody can call you
Video/Audio source selection - Implemented - Allows you to pick which audio and video goes with each robot
Multiple Robot Control - Not Yet Implemented - I am hoping to allow multiple users control multiple robots, or one user to control a number or robots
XML Robot Configuration - Not Yet Implemented - I am hoping to allow robot administrators to save their robot configuration(Com Port, Video In, Audio In, etc) to an XML file for easy transfer and use
XML Protocol Configuration - I am hoping to allow robot administrators to actually modify their Protocol after the application is compiled. This way, if you want to add a new feature to your robot you just edit the Protocal configuration and the updated feature is then available.
Anyway, that's my application. What do you think about it. I'm hoping to finish it and then let the community have it. Any comments/suggestions/rants?
Regards,
DiablodeMorte
I have again gotten back into "webcontrolled" robotics and this time I've got a different aproach. Much of the time spent on my other web controlled robotics projects was spent not on the robot, but on the control system. I have decided that this is the wrong way to go. Because I spent so much time coding the actual interaction with the server I've decided to "piggyback" my application onto a preexisting network system: Skype. For those of you that don't know what Skype is here is the run down. Skype is a program that allows users to call other users and converse with audio, text, or on the windows machine, video. Skype brings many cool things to the table and it was its video calling that really made me want to do this project.
Here's what I plan/am doing:
I've decided to create a application which binds itself to Skype and then allows anybody(except "banned" users) that is allowed to call your skype account to control your robot. I've got some screen shots attached and here's a run down of features i've implimented/hope to impliment:
Auto Answer Calls - Implemented - Allows you to go, your know, have a life while also allowing others to control your robot
Ban List - Not Yet Implemented - Allows you to ban users from control
SkypeMe Auto Change - Implemented - When the application starts it puts your Skype client into "SkypeMe" status so anybody can call you
Video/Audio source selection - Implemented - Allows you to pick which audio and video goes with each robot
Multiple Robot Control - Not Yet Implemented - I am hoping to allow multiple users control multiple robots, or one user to control a number or robots
XML Robot Configuration - Not Yet Implemented - I am hoping to allow robot administrators to save their robot configuration(Com Port, Video In, Audio In, etc) to an XML file for easy transfer and use
XML Protocol Configuration - I am hoping to allow robot administrators to actually modify their Protocol after the application is compiled. This way, if you want to add a new feature to your robot you just edit the Protocal configuration and the updated feature is then available.
Anyway, that's my application. What do you think about it. I'm hoping to finish it and then let the community have it. Any comments/suggestions/rants?
Regards,
DiablodeMorte
Comments
First let me say....it seems like a pretty cool idea.
I think it is original......and hasn't been done in this fashion (but I may be wrong).
I would like to know what type of robot are you targeting for control? (stationary robotic arm?....rover?....other?)
It is a different approach that I haven't seen yet....
James L
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
James L
Partner/Designer
Lil Brother LLC (SMT Assembly Services)
My target for this project is actually a number of robots. I recently got a "boe bot" kit so my primary target for the application is the boebot. I have a few other robots which are mostly automated RC cars.
UPDATE
I need some help from some people from the community. I am working on the part of this project which deals with a modifiable protocol. As I said in the first post, I want people that use this program to be able to change the protocol configuration on command. I realize that everybody's robot is going to be different and I want to make this program as user friendly as possible. For this reason I have designed the following XML Protocol Configuration file:
My problem, and the reason I need help from the comminity, is that I have very limited experience with communication protocols with robots. I really need suggestions. Any comments are very welcome. If anybody doesn't understand a particular part of the above XML file please post back and I'll answer your question!
Regards,
Diablo
Post Edited (DiablodeMorte) : 1/13/2008 3:49:47 PM GMT
In many ways, this seems a lot easier than a non-Skype solution. The main challange is having a command line processor to accept text from the remote user. I'm not sure that you have to bother with an HTML page, but I may be wrong.
It is an innovative idea and i'm sure Skype hasn't thought of it.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
PLEASE CONSIDER the following:
Do you want a quickly operational black box solution or the knowledge included therein?······
Post Edited (Kramer) : 1/13/2008 11:06:12 AM GMT
<startDelimiter>255</startDelimiter>
Every time I have ever done any networking I have had some kind of sync number/symbol in the front. Conceivably, if this was not needed one could just put "none" where 255 is. 255 could be any number/letter combination that one wanted
<seperatorDelimiter>$</seperatorDelimiter>
I have never actually used a seperator symbol before in serial networking, I have used it in TCP networking however, so I threw it in. Again, if one didn't want it they would just replace "$" with "none"
<requireChecksum>y</requireChecksum>
Again, I have never used a checksum in serial networking becasue I've never sent that much data and it was never a very critical application. I could see how a checksum would be useful. The "y" or "1" indicates that yes a checksum should be sent and a "n" or "0" would indicate that it would not be needed.
<checkSumCalc>LSB(FF - command)</checkSumCalc>
This line would indicate how the checksum should be calculated. In this case, the checksum would be the least significant byte of 0xFF - the command in hex. If the checksum was disabled in the previous line this line would simply be ignored
<format>startDelimiter,seperatorDelimiter,command,seperatorDelimiter,checksum</format>
This line would define the format of the serial command. Lets say the idea was to send the "forward" command for 50 seconds at 75 speed. The serial command would be:
The check sum would be: (HEX) 1 + 24 + 32 + 24 + 4B = (decimal) 1 + 36 + 50 + 36 + 75 = (decimal) 198 = (HEX) C6
The idea with the "commands" would be to allow the addition on new commands quickly with a standardized format. Lets take the "foward" command. The forward command has the following subsets:
What I want from the community is: am I missing something?
Nice work
Raf
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
You've got to play the game.
You can't win.
You can't break even, except on a very cold day.
It doesn't get that cold.
~Laws of Thermodynamics~
Have fun [noparse]:)[/noparse]
Raf
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
You've got to play the game.
You can't win.
You can't break even, except on a very cold day.
It doesn't get that cold.
~Laws of Thermodynamics~