Let's Make Robots!

Using an RF receiver/transceiver pair along with a wireless camera to process the images and send commands to a mobile robot

I would like to create a setup I will be using for a lot of my upcoming robots. A small wireless camera that will be ultimately outputting through USB to my computer. The computer processes the video and sends commands to the robot via RF. I guess the serial connection will be no more than 1900 bds. How can I coordinate RF and image-processing in a single program for autonomous navigation/other tasks (I can almost hear GroG saying "MyRobotLab" ;)? I would also like to make a GUI that shows the camera's video output so that the user can control the robot using the keyboard and a mouse when he wants to. The only language I know yet is C++, and not even completely yet. I have Visual Studio 2010 and OpenCV is compatible. I guess I only need to know how to make the transceiver send out particular signals. Save your time, just give me somewhere from where to start. I'm willing to learn.

Great thanks

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

I said it ;)

Gotta work through a motor controller problem .. and I'll do a video

 

All that will work and all you seem to be thinking in the right order. Just refine your ideas a bit. First off, 1900  baud is a little funny --OK, I suppose but sorta not standard. I would go 9600 which is a little more than a byte a every mS. In terms of the rest of the stuff, just do each thing individually and get it working. Step by step

  • Code for com between computer and chip --figure out buffering and baudrates and interrupts and qualifiers etc. etc. etc.
  • Code for openCV only. Do this with the camera sitting on your desk --forget about getting info to the robot, just get the camera to work. Play with the facial recognition, edge finder stuff, filters, etc.
  • Start writing your "navigation" code with the camera. Instead of controlling the robot, have it output stuff like, "turn right" or "too close" etc. Now, grab your camera and laptop "drive" the laptop around the floor. See if your code is spitting out the right solution for each situation. Basically, instead of an actual robot making wrong decisions and slamming into walls, you can simulate the robot's moves by manually moving the camera --put it in a corner, does the computer tell you to turn?
  • Start building your GUI --add your video, add your buttons, etc.
  • Happy with your code, go back to your commuication code and add it in.

Wireless from computer to robot can be cheap RF, X-bee or Bluetooth. I have been using a BlueSmirf forever and I don't have one single complaint. Wireless video can simply be a wireless camera and a video capture device. Look for DVD capture on Ebay and you will find a ton of " video in" adapters for super cheap.

BTW --If you speak C++, I would go with Arduino and Processing. The languages will look familiar to you and they are almost identical to each other. If you can code an Arduino, you can code in Processing.