Wireless Robot Vision System and Navigation using TP-Link TL-WR703N Router running Open Wrt, RoboRealm, and Parallax Processor
As if there was not enough to do during the Christmas Holiday Ive decided to embark on an added dimension to my Robo Magellan project; Vision.
Since my platform is not capable of carrying a lap top the plan is to wirelessly transmit vision data to the laptop for processing and transmit from the laptop basic navigational information to the Prop for local use. Typical data sent to the Prop will be COG (Center of Gravity), Mouse position coordinates etc.
I have two choices for transmitting wireless vision data. GoPro camera and 5.8MHz system and video digitizer (~$700) or a $20 wireless router from China flashed with OpenWrt and an old USB camera. Being cheap, I have chosen the latter.
The basic plan is this: camera sends data to wireless router, camera data makes its way to laptop running RoboRealm, RoboRealm processes data and transmits basic numerical data via Xbee to the Bot. I can probably get rid of Xbee, but I would need to add a network connection to the bot. Anyway, thats the plan. I will post video's if I can get it to work halfway decent.
Best Regards,
Steve
Links and references if you are interested in giving this a go:
I have two choices for transmitting wireless vision data. GoPro camera and 5.8MHz system and video digitizer (~$700) or a $20 wireless router from China flashed with OpenWrt and an old USB camera. Being cheap, I have chosen the latter.
Have you tested the USB over wifi with RR yet? I'm sure you know how frame hungry RR is. I would test it out first using RR.
With a decent network camera around 15fps seems ok for most image processing.
Anyway my point is actually you can do wireless analog video for way less than $700.
It's 900mhz-1.2gHz and will penetrate much better than higher freqs. Then all you need is a NTSC camera with a lot of lines (eBay ~$15) and then something to convert the analog video signal to USB. I use a USB adapter that simulates a web cam feed and it works with RR. So total cost for everything was around $100 and the performance is a lot better. If you're interested I will try to find the model of the composite/USB adapter, there is nothing written on it and I purchased it around 3 years ago...
Xanadu,
Yes, I'm very interested in details on your setup, particularly how to get analog data into the laptop. I'm making good progress but the curve has been steep. Come to think of it, the curve is always steep with me! I've got the system working and have even managed to incorporate wireless programming of the Bot via BT and VP. The USB video with TP link works well at 15 fps but sometimes RR gets a bit piggy and the frame rate drops LOW. Anyway, I can maneuver and find blobs in the office, near the router but if I go down the hall toward the front door video get less reliable. Not a fail, but not very smooth. However, for $20 I've proven to myself I can do a bit more than blink LED's! I will post video's and code (nothing special) ASAP.
If the plan is to detect orange cones with vision... my tentative plan for that is to use CMUcam, AVRcam, or similar. In the AVC we have to avoid giant red barrels. I funded the new cmucam (pixy cam) kickstarter but won't get it in time so planning on using my SMT version of the AVRcam.
Xanadu,
Yes, I'm very interested in details on your setup, particularly how to get analog data into the laptop. I'm making good progress but the curve has been steep. Come to think of it, the curve is always steep with me! I've got the system working and have even managed to incorporate wireless programming of the Bot via BT and VP. The USB video with TP link works well at 15 fps but sometimes RR gets a bit piggy and the frame rate drops LOW. Anyway, I can maneuver and find blobs in the office, near the router but if I go down the hall toward the front door video get less reliable. Not a fail, but not very smooth. However, for $20 I've proven to myself I can do a bit more than blink LED's! I will post video's and code (nothing special) ASAP.
Regards,
Steve
15fps is borderline if you want to use it for navigation at a reasonable pace. This is why lots of people go OpenCV.
Steve, there are probably better people on the RR forum than I to provide advice, but here goes...
I bounce back and forth between a dLink DCS920 IP Cam which has a direct interface to RR. The program is called "DLink_Internet_Camera" you just put in the IP address username and password and you have live video. The live video from the IP cam is more of a series of JPEGs. Depending on what you want RR to do this can be good, and also bad. The good is that there is no RF interference in the image, the bad is that the frame rate is lower. The IP Camera is going to be easier for you to use because you don't need a router on the robot. Most of the compatible IP Cameras are also 5v and amazing low power consumption. There are other cool features like it can email you pictures on a schedule. You could use that as a watch dog with a very easy connection to the internet.
Analog. I still have no idea what capture hardware I am using. It's a USB dongle with a composite video and audio jack. It emulates a USB webcam and RR detects it as a webcam no questions asked. I think the one that I have doesn't drop to a blue screen at signal loss. There are pros and cons to that was well. Here is the official word on this - http://www.roborealm.com/FAQ.php (see vision section 1, section 26 is important as well).
I highly recommend 900mhz-1.2ghz frequency range if you decide to try wireless analog. The cool thing with analog is there are no frames like with the IP camera. The composite to USB does send individual frames of video to RR, but all that happens on the nice fast computer. When you have a good clean analog signal RR runs amazingly fast. When you don't have a good clean signal, things get weird, and this is something to consider. When the IP camera starts dropping frames RR freezes the last usable frame. When the analog setup starts to lose signal you get image distortion. That distortion confuses RR a lot more than dropped frames with an IP Cam.
I can run AVM Navigator Object Recognition via both methods above. With the IP Cam it can take up to a minute to learn and object, using analog video around 20 seconds, and a webcam plugged directly into my PC is around 15 seconds. So the best thing to do is build a robot big enough to run RR on
Edit: I just thought of something. When I get home I'll look in device manager and see what it shows up as. RR is kinda like TWAIN compatible. I think any capture device will work but again please check that FAQ a couple of times.
Comments
I've added a few dodads:
4x4 Keypad thanks to DoggieDoc's board
SD card reader, thanks to JonnyMacs code
Ping sensors for anti collision
Code and drawings to follow soon. Regards
Steve
https://www.youtube.com/watch?v=8eACDNHX7Lw
http://forums.parallax.com/showthread.php/148990-Quadrovers.-The-Final-Chapter.
http://www.youtube.com/watch?v=Njh77bur4aQ
Current code attached. This is work in progress, so no comments about the dust and debris in my main file, please!
Thanks,
Steve
As if there was not enough to do during the Christmas Holiday Ive decided to embark on an added dimension to my Robo Magellan project; Vision.
Since my platform is not capable of carrying a lap top the plan is to wirelessly transmit vision data to the laptop for processing and transmit from the laptop basic navigational information to the Prop for local use. Typical data sent to the Prop will be COG (Center of Gravity), Mouse position coordinates etc.
I have two choices for transmitting wireless vision data. GoPro camera and 5.8MHz system and video digitizer (~$700) or a $20 wireless router from China flashed with OpenWrt and an old USB camera. Being cheap, I have chosen the latter.
The basic plan is this: camera sends data to wireless router, camera data makes its way to laptop running RoboRealm, RoboRealm processes data and transmits basic numerical data via Xbee to the Bot. I can probably get rid of Xbee, but I would need to add a network connection to the bot. Anyway, thats the plan. I will post video's if I can get it to work halfway decent.
Best Regards,
Steve
Links and references if you are interested in giving this a go:
http://www.madox.net/blog/
http://www.madox.net/blog/2013/01/04/tl-wr703n-example-project-3-wireless-3d-printing-or-2d-printing-or-just-simply-wireless-usb/
http://www.madox.net/blog/2013/02/23/tl-wr703n-example-project-4-webcam-streaming/
http://wiki.openwrt.org/doc/howto/webcam
http://wiki.openwrt.org/toh/tp-link/tl-wr703n
http://sourceforge.net/apps/mediawiki/mjpg-streamer/index.php?title=Main_Page
Have you tested the USB over wifi with RR yet? I'm sure you know how frame hungry RR is. I would test it out first using RR.
With a decent network camera around 15fps seems ok for most image processing.
Anyway my point is actually you can do wireless analog video for way less than $700.
This video tx/rx will outperform wifi cameras - http://hobbyking.com/hobbyking/store/__35009__1_2GHz_100mW_Video_Transmitter_and_Receiver_Combo.html
It's 900mhz-1.2gHz and will penetrate much better than higher freqs. Then all you need is a NTSC camera with a lot of lines (eBay ~$15) and then something to convert the analog video signal to USB. I use a USB adapter that simulates a web cam feed and it works with RR. So total cost for everything was around $100 and the performance is a lot better. If you're interested I will try to find the model of the composite/USB adapter, there is nothing written on it and I purchased it around 3 years ago...
Yes, I'm very interested in details on your setup, particularly how to get analog data into the laptop. I'm making good progress but the curve has been steep. Come to think of it, the curve is always steep with me! I've got the system working and have even managed to incorporate wireless programming of the Bot via BT and VP. The USB video with TP link works well at 15 fps but sometimes RR gets a bit piggy and the frame rate drops LOW. Anyway, I can maneuver and find blobs in the office, near the router but if I go down the hall toward the front door video get less reliable. Not a fail, but not very smooth. However, for $20 I've proven to myself I can do a bit more than blink LED's! I will post video's and code (nothing special) ASAP.
Regards,
Steve
15fps is borderline if you want to use it for navigation at a reasonable pace. This is why lots of people go OpenCV.
Steve, there are probably better people on the RR forum than I to provide advice, but here goes...
I bounce back and forth between a dLink DCS920 IP Cam which has a direct interface to RR. The program is called "DLink_Internet_Camera" you just put in the IP address username and password and you have live video. The live video from the IP cam is more of a series of JPEGs. Depending on what you want RR to do this can be good, and also bad. The good is that there is no RF interference in the image, the bad is that the frame rate is lower. The IP Camera is going to be easier for you to use because you don't need a router on the robot. Most of the compatible IP Cameras are also 5v and amazing low power consumption. There are other cool features like it can email you pictures on a schedule. You could use that as a watch dog with a very easy connection to the internet.
Analog. I still have no idea what capture hardware I am using. It's a USB dongle with a composite video and audio jack. It emulates a USB webcam and RR detects it as a webcam no questions asked. I think the one that I have doesn't drop to a blue screen at signal loss. There are pros and cons to that was well. Here is the official word on this - http://www.roborealm.com/FAQ.php (see vision section 1, section 26 is important as well).
I highly recommend 900mhz-1.2ghz frequency range if you decide to try wireless analog. The cool thing with analog is there are no frames like with the IP camera. The composite to USB does send individual frames of video to RR, but all that happens on the nice fast computer. When you have a good clean analog signal RR runs amazingly fast. When you don't have a good clean signal, things get weird, and this is something to consider. When the IP camera starts dropping frames RR freezes the last usable frame. When the analog setup starts to lose signal you get image distortion. That distortion confuses RR a lot more than dropped frames with an IP Cam.
I can run AVM Navigator Object Recognition via both methods above. With the IP Cam it can take up to a minute to learn and object, using analog video around 20 seconds, and a webcam plugged directly into my PC is around 15 seconds. So the best thing to do is build a robot big enough to run RR on
Edit: I just thought of something. When I get home I'll look in device manager and see what it shows up as. RR is kinda like TWAIN compatible. I think any capture device will work but again please check that FAQ a couple of times.
https://www.youtube.com/watch?v=UZe48U0K89k
Best Regards,
Steve