PDA

View Full Version : [Project] WiMAX Wireless Computer Controlled BOT



twaller
03-12-2008, 03:20 PM
Hi everybody, I'm Tom. I work in the WiMAX division of Sprint Technology Development and I build the Demo WiMAX systems for use at trade shows and Demos. Individual user bandwidth in WiMAX is in the range 2-5Mbps average downlink and 1-2Mbps Average uplink. So I was thinking to showcase the capability of WiMAX I could build a computer controlled robot that is driven wirelessly over the Internet. This would be similar to some WiFi robots that you may have seen, but the range of a WiMAX cell site is measured in kilometers.

I have both small laptops and OqO Model 2s with WiMAX cards that I could use as the control computers.

We have a number of small profile web cameras, including some nice sony security cameras with zoom, and pan and tilt http://bssc.sel.sony.com/BroadcastandBusiness/DisplayModel?m=0&sm=0&p=0&sp=0&id=78447 for the video to drive by.

I was looking at an ATR chassis from http://www.superdroidrobots.com/shop/item.asp?itemid=739 for the chassis. They seem pretty simple and are large enough to carry a laptop and other stuff.

The control of the robot could be simply via a remote desktop connection over WiMAX or a IP/HTTP based interface for the microcontroller if possible.

I can add other interesting sensors as I get more time.

I'm looking for ideas and guidance from some of you experienced individuals. I'm really hoping to get something going in the next couple of weeks if possible. I will be at CTIA in Vegas in April. As the weather improves we can drive it around the neighborhood.

My eventual goal is to build a WiMAX connected aircraft that can fly anywhere there is WiMAX signal.

LinuxGuy
03-18-2008, 01:58 PM
Hi everybody, I'm Tom. I work in the WiMAX division of Sprint Technology Development and I build the Demo WiMAX systems for use at trade shows and Demos. Individual user bandwidth in WiMAX is in the range 2-5Mbps average downlink and 1-2Mbps Average uplink. So I was thinking to showcase the capability of WiMAX I could build a computer controlled robot that is driven wirelessly over the Internet. This would be similar to some WiFi robots that you may have seen, but the range of a WiMAX cell site is measured in kilometers.
WiMax on a robot would definitely be very cool and interesting.

I've already had WiFi working on my rover, which runs a Samsung S3C2410 ARM9 as the main processor and Linux (kernel 2.6.22 at present). I don't know if Linux supports any WiMax units though and it can be difficult figuring out what is and is not supported due to needing to know what chipset is being used. Right now, my WiFi is not reliable due to using an older driver grafted onto a 2.6.22 kernel - I really need a 2.6.24 kernel which has kernel support for my USB WiFi adapter.

How large is the robot you want to build?

8-Dale

twaller
03-19-2008, 11:13 AM
8-Dale,

the robot would be large enough that i would not be too concerned about it driving around the neighborhood, office building, or a conference center unaccompanied. the ATR chassis i looked at is more than a foot square. i guess i could put one of those bicycle flags on it so it is more visible.

i have to stick with a very generic computing platforms, like windows xp, because of the relative age of the WiMAX community and the number of devices since it is still pre-launch in the U.S.

i have access to OqO Model2's and laptops with imbedded WiMAX chips, i also have USB dongles, PCMCIA and PCExpress cards for laptops. the embedded devices are easier because i don't need extra ports or slots.

do you control your wifi robot using an onboard camera or is it strictly line-of-sight?

with the small amount of research i have done so far, i was going to buy a chassis that already had motors and wheels. i need a motor control board and a micro-controller with a USB/serial interface to connect to the computer. Obviously some batteries and power supply. the camera will interface directly to the computer.

if i use the ATR chassis/motors that i put in the link in my first post, i could probably get batteries and motor controller from them, too. does anyone have any experience with the ATR kits from Superdroid Robots?

LinuxGuy
03-19-2008, 12:59 PM
i have to stick with a very generic computing platforms, like windows xp, because of the relative age of the WiMAX community and the number of devices since it is still pre-launch in the U.S.
I am interested in any WiMax adapters that are supported in Linux. I have a crazy idea of making a roving access point one day, or many roving access points. Set them to go around different areas of a neighborhood and they would stay within range of the next nearest node or search out another node if they somehow get out of range. WiMax range is supposed to be much better than WiFi so getting out of range of another node would be much more difficult. Think of this as a WiMax Swarm. :D Each roving node could also have WiFi B/G and use WiMax for interconnecting between nodes due to greater range.


i have access to OqO Model2's and laptops with imbedded WiMAX chips, i also have USB dongles, PCMCIA and PCExpress cards for laptops. the embedded devices are easier because i don't need extra ports or slots.
You are fortunate to have access to such cool toys. Are any of these supported in Linux yet?


do you control your wifi robot using an onboard camera or is it strictly line-of-sight?
Right now I am in the process of converting W.A.L.T.E.R. to have an ARM9 MCU (Samsung S3C2410, TinCanTools Hammer Board (http://www.tincantools.com/product.php?productid=16133&cat=0&page=1&featured)) as main brain, so he isn't quite operational yet with the new setup. I already have my Hammer Carrier Board (http://www.tincantools.com/product.php?productid=16135&cat=0&page=1&featured) mounted, but need to convert it to dual power (battery and wall wart). I may just wait for the upcoming Hammer Bot Board though.


with the small amount of research i have done so far, i was going to buy a chassis that already had motors and wheels. i need a motor control board and a micro-controller with a USB/serial interface to connect to the computer. Obviously some batteries and power supply. the camera will interface directly to the computer.
The Hammer Board (http://www.tincantools.com/product.php?productid=16133&cat=0&page=1&featured) has both USB Client and Host ports, and in fact both can be used in either mode. I already have my batteries chosen and mounted. You might want to take a look at my blog (http://forums.trossenrobotics.com/blog.php?u=1657) to see what I have done so far. I designed the new decks I have for W.A.L.T.E.R. - four decks, 11 1/2" diameter, octagon shaped with lots of places to mount sensors and just about anything else.


if i use the ATR chassis/motors that i put in the link in my first post, i could probably get batteries and motor controller from them, too. does anyone have any experience with the ATR kits from Superdroid Robots?
I haven't had any experience with them, but I have heard both good and bad things. I prefer to go with my own designs so I have no doubts about construction and durability for the many different things I want to do. I am planning to have a final set of decks made for W.A.L.T.E.R. out of aluminum once I have all my various mounting holes placed and added to the 3D CAD models.

8-Dale

twaller
03-24-2008, 02:46 PM
8-Dale,

I am not expecting any Linux drivers to be available until the end of this year and to be honest, I have never even heard any of the vendors mention it. I've asked one of my vendor contacts to see if they have any plans. I'll let you know.

Thanks for the input on the controller.

Right now I am working up the courage to spend some money. It costs more than I was anticipating to get all the hardware. My wife is going to have a cow.

Tom

DresnerRobotics
03-24-2008, 02:54 PM
My advice would be to look at different options for a rover base. Honestly I think those Superdroid rovers are far too expensive for what they are.

LM has a cheaper alternative that might work for you: http://www.lynxmotion.com/Product.aspx?productID=603&CategoryID=111

Regardless, my advice is to shop around a bit more before you buy.

twaller
07-12-2008, 04:38 PM
Well, I finally got around to buying parts and putting version one of the robot together. Right now it is plywood, but as I work on it i will get some sheet aluminum and do it up a little nicer.

I bought a couple of GMH-01 motors and Banebot motor controllers for the drive train. With a Phidget 4 port servo controller to run it. The computer is currently my OqO model 2. The camera is a Logitec Pro900 USB camera.

I found the Phidgets really easy to use and yesterday my wife was impressed by the fact that i had the motors tested with the Phidget manager in about 40 minutes with everything screwed to a 2x4. While she was at her Saturday team softball tournament (I only play Monday and Wednesdays and occasionally sub on Saturday) this morning I ran through the VB programming tutorial and network connectivity tutorial and created a networked driving program with dual speeds forward and backward, including a differential drive spin. I've never programmed in VB and it was interesting and by the time my wife was home I was driving around the family room.

The funny thing is that probably the most interesting thing I did today was to make wheels. I didn't want to spend money on AT wheels until I was sure everything was going to work out, so I didn't have any wheels to test out my driving program. To make wheels I used a hole saw to cut out circles of plywood and used a drywall screw as a set screw in a notch to secure them to the motor shaft. What great fun inventing the wheel today.

I was having problems with the video affecting the robot response to driving commands. I suppose it might be the motor electrical noise causing problems with the wireless. Right now I am only using WiFi. I have to go to the office or down the street to get WiMAX. The site down the street from my house isn't up yet. I'll probably take it in to the office on Monday to see how it is over WiMAX.

I think I will pick up another motor and create a screw driven scissor jack to raise the OqO and camera up to more visible heights.

Right now I have to get a better battery. I am using a simple AA battery box from Radio Shack for the motor power and it is not particulary efficient. I was thinking about using on of the cordless drill batteries I have. I just need to build a socket for it.

Does anyone have any suggestions? Comments?

Adrenalynn
07-12-2008, 05:21 PM
Good to see you again and to hear of your progress! (We were corresponding early on if you recall)

Do you have filter caps on your motors? What are you using for a camera?

twaller
07-12-2008, 07:41 PM
Adrenalynn,

I don't have any caps on my motors. I read about how to reduce the noise by using 3 caps and I'll probably do that.

The camera is a logitec pro9000 web camera. It is very compact and a high resolution camera, but I am currently turned down to the lowest setting 320x200. I don't think it is bandwidth, but I will run Netmeter on the OqO to see what the throughput is.

Tom

twaller
07-15-2008, 03:07 PM
So the learning continues. I needed decent wheels, so I bought a couple of 5" diameter mower deck wheels. That helped somewhat, though they are hard plastic and don't get much traction. I decided that the plywood body was too heavy and rebuilt the body last night using lexan. It looks much nicer, is half it's original size (about 12"x12"), drives better and the battery lasts much longer. I switched the battery from 12V AA battery boxes to using a battery from a 12V cordless drill. I get about an hour of drive time out of it. My wife took some pictures of it last night and I will try to post one when I get home from work.

I have been running the robot remotely using Sprint's EvDO wireless. The entire DC metro area and suburbs is pretty well covered and I am surprised at how good the video is coming in from the robot. I could drive for miles.

My problem now is that the motors don't seem to be evenly matched. When accelerating one motor invariably starts up faster or stops faster than the other. They work evenly on a carpet, but on harder surfaces it starts and stops unevenly and tracks to one side.

Tonight I will switch the motor leads and see if the problem is in the motors or coming from the controllers. I am sending the same data to both motors, so the next step would be to build seperate sliders for each motor so that I can try to match the amount of power at each wheel. If that doesn't work I might buy another set of motors.

I'm heading to the local hobbytown to check out the all terrain tires for better traction.

Any suggestions on the motor problem?

Adrenalynn
07-15-2008, 03:18 PM
I have a MUCH better solution than a hobby store. Harbor Freight has AWESOME casters and tires/wheels, from teeny little 1.5" up to 10" all terrain, and wheels up to 24" with all-terrain tires (for dollies and wheel barrows and carts and such). Super CHEAP too. I bought two 10" all terrain casters in a steel frame with 24 bearing swivel for $11ea.

What motor controller are you using? What you're observing is what's known as "trim" in the RC world. Either your code or your motor controller needs to trim out that differential. No gearmotors will ever be identical. Heck, no motors will. Even the length of your wire run will change that. So your code needs to allow you to bring power on to the motors at a different rate, and run them at a different rate.

twaller
07-26-2008, 02:22 PM
New updates on the progress of the robot. I never did manage to get the two motors to stop and start evenly. The caster I used as a front wheel would invariably provide more resistance to one side or another during start or stop and the robot would skew. To remedy this I ordered two more motors and made it four wheel drive. Now it drives nice and straight on any surface. I may make four wheel drive a forward option to conserve battery. I also added gradual acceleration instead of the instant on of hitting the button so that traction is more consistent.

Next I want to program it to drive with a joystick or controller instead of the windows form. Non-linear acceleration would be a big improvement over the slide bar throttles i have today. I anyone knows where to find some examples of joystick programming in VB I would be grateful.

I can now easily drive it around the house or out in the neighborhood. I had it driving down the street this morning, but I think I will move it up to the sidewalk on the other side of the street. The wheels i created don't really have enough traction for all terrain, but it drives just fine in a straight line in the grass.

twaller
07-26-2008, 06:33 PM
Well I figured out how to work a joystick in VB. Actually I have it hooked up with my logitec Wingman driving wheel with pedals from years ago. This thing hasn't been used for years. It was supremely easy once I got the basic inkling of what I was doing. I found a little program on the internet that showed how to do it on a console program and it took me a little while to figure out how to get it running in a form.

I left the program able to run via the form buttons with a mouse and via the driving wheel based on a click of a button. It's been great fun.

Now maybe i will work on a video solution other than skype. Though skype works very well.

Adrenalynn
07-26-2008, 10:08 PM
Good progress! The wheel sounds like fun and pretty unique, especially once you get the pedals working - you could make the brake pedal reverse and the gas pedal forward since reverse implies braking on a motor controller.

Alex has a nice bit of C# in the downloads section for joystick manipulation.

The Windows Media Encoder SDK would allow you to break away from Skype and even distribute the video stream to many points, for example. A bit of a delay though which might not work well for remote operation. ;)

twaller
07-28-2008, 03:24 PM
Adrenalynn,

I had done the pedals just the way you said for forward and backward. To make good turns the wheels on the inside of the turn slow based on the amount you turn the wheel. A full turn of the wheel will reverse the inside wheels and make a zero radius turn. It works remarkably well. I was driving it around the office here on WiMAX at lunch today. It really turned heads. I'm quite happy with it for just two weekends worth of work.

I drove by my VPs office and they came out to see it. Using skype I was able to explain it to them from accross the building and they were reasonably impressed. Now ifI could just get them to toss me some money to do some more work on it.

Adrenalynn
07-28-2008, 06:35 PM
That's awesome!

If you can do a write-up on it in the next few days, you could sneak it in under the wire for this quarter's contest here at Trossen. Especially if you can show the pedals and wheel working, I think you have a really good contender! I'm not part of the judging in any way, but I think tying it in to WiMAX *and* controlling it remotely with such a unique controller, and having bidirectional communication like that with the unique building materials really says a lot. Have a peek here? http://www.trossenrobotics.com/contest.aspx And look at some of the past entry writeups.

twaller
08-01-2008, 08:42 AM
Thanks for the vote of confidence Adrenalynn. Maybe I'll submit it for the next competition.

I started working on an independent suspension for the robot this week. I spent an hour or so at Ace hardware last night trying to pick out the right springs, bolts, washers and such. It is somewhat similar to a MacPherson strut. I installed two last night, but I need to make a minor modification to help the wheel sit more flat to the ground.

I ordered the new Phidgets 8 port servo controller to replace the 4 port controller that I have now and ordered two servo motors for the pan and tilt of the camera and another DC motor with motor controller to use to drive the scissor lift to raise the camera. I think I have the design worked out for the lift.

Now I have to add another lexan level to the chassis because I want the camera and OqO to be as close to flush with the surface when retracted as possible. I'm thinking to make it operate like a rising turret.

What fun!

twaller
08-04-2008, 08:21 AM
Well, I got my 8 port advanced servo controller from Phidgets. Shipped all the way from Canada and arrived in less than 24 hours. Outstanding.

I installed the new servo controller and I tell you what, it gave me fits. My program which was working flawlessly with the port port controller ceased to work. I removed and re-installed the Phidgets control panel with no joy. I switched back to the 4 port and it worked fine. Hmmm.

Eventually I noticed in the example C# program that the declaration was for "advancedservo" instead of "servo". I made the same change in mine and I could then connect to the board. Hooray for me! But that was just the beginning.

When I tried to run my driving program the motors did nothing. The commands went to the motors, but nothing happened. I went back to the c# example and set exceleration and velocity (which does not appear to be implemented) along with the position, but no change. I could get values about the motors, but got no response to commands. Eventually, I just started sending different commands to the motors and I came across the "enable" option. You now have to actually enable the servo prior to using them, which is totally different from the old motor controller.

Oh the humanity! Finally after many hours everything was working and I felt like a moron for not thinking to try it earlier. BTW, there was no "enable" of the servo in the c# example that I saw.

I'm still waiting for my servos for the pan and tilt of the camera. Trossen has the order on hold. :(

On top of that I made some improvements to the driving wheel controls and added steering while driving in reverse.

This week I will try to build my scissor jack to raise the camera pan and tilt.

ooops
08-04-2008, 12:00 PM
Tom, cool project with great progress ... more pictures please:)

I gather the point of your project is demonstrating the WiMAX broadband wireless link.


range of a WiMAX cell site is measured in kilometers.


How will that be indoors at convention centers and the like? My assumption is that you have faith in it or you wouldn't be doing the project.
This could prove to be exciting stuff!

Adrenalynn
08-04-2008, 12:25 PM
WiMAX actually reaches out in buildings and such really well - that's what its bread-and-butter is/will-be. Tom works for a WiMax provider IIRC.

Tom, I know this is a work project, but is there any part of your code you can share? I'm especially interested in how you're handling that Logitec wheel. Is it "just" joystick inputs as far as DX is concerned?

ooops
08-04-2008, 02:36 PM
=Adrenalynn;17234]WiMAX actually reaches out in buildings and such really well - that's what its bread-and-butter is/will-be.

I knew I should probably google WiMAX before asking ... but having done that now, I still wasn't clear on the indoor stuff without additional in building infrastructure.
I assume it will be deployed in the major metro areas first.
Looks like a very cool "bot communication platform". Heck, I could use that at home for internet now! But, I am sure it won't be here for decades ... I am still waiting on cable:)LOL

Adrenalynn
08-04-2008, 02:53 PM
In reinforced concrete buildings you'll generally want a repeater. But that's comparatively cheap-and-easy when you look at the amount of bandwidth and the no-trench solution for the last mile. It has a lot of promise for last-mile hops like... well.... yours. :)

twaller
08-04-2008, 03:05 PM
Oops, I don't know where you are, but if you are still waiting on cable it could be a problem. Sprint's initial markets are urban areas.

I can't really comment about building penetration for WiMAX. It is well known that Sprint is using the BRS 2.5Ghz spectrum for WiMAX, which should give an indication of propagation and building penetration. I'm sure when the first market (Baltimore) launches in the fall there will be lots of analysis by the media. I just saw Adrenalynn's comment about concrete buildings, but it is really a function of the frequency.

Adrenalynn, It's not really a work project. I'm paying for it out of my pocket because of the tight budget for the rest of the year until the Xohm-Clearwire merger is completed. So it's a personal project that has work significance. I'm keeping all my receipts to see if they might pay me back if they decide it works well enough and looks good enough to use as an actual demonstration. Otherwise, it's just a toy.

The driving wheel is just a joystick. Each pedal is either the positive or negative of the y axis and the steering wheel extremes are positive and negative of the x axis. That part of my code is probably the simplest. To be honest, since I am so new to the programming in VB I am embarrassed to post the code. People may suspect I don't know what I am doing, but if I post my code they will know for sure. I would be happy to send you a private copy if you would like.

My wife promises to take more pictures of it. I'm not allowed to touch her camera.

Adrenalynn
08-04-2008, 03:07 PM
So any hope of getting some pointers on that Wheel interface, then? :)

twaller
08-15-2008, 02:31 PM
Well my parts for the camera pan and tilt finally came in. I have been busy with life and work lately and haven't touched the poor robot in over a week. I will start building the mounts for the servos this weekend and maybe try to build the lift for the camera. I look forward to playing with the servos.

Adrennalyn, I have commented my code. How do you suggest I post it? Zip up the whole VB project?

Adrenalynn
08-15-2008, 03:07 PM
Thanks for putting in the effort and for being willing to share!

I would suggest uploading it here: http://forums.trossenrobotics.com/downloads.php?do=cat&id=6

If there's any issues with that method, let me know and I'll get you an alternate method and/or we can shoot any problems.

Thanks again!