FoxBot - a bunny chasing robot.
My robot project:
Mission: An autonomous system that, once a rabbit is detected, a robot should go on patrol to scare the bunny away from my vegetables and flowers.
1. A detection system to indicate the presence of rabbits. Ok, the system will only be capable of detecting localised movement, so birds, my dear wife, even leaves blowing in the wind will all get chased. 🙂
2. The detection system will send a signal to a wheeled robot to commence a patrol to the appropriate area.
3. The robot should know where it is and how to get to the target spot. The logic for the guidance may be within the robot, sent by the detection system as commands to the robot, or a combination of both.
4. Sensors, both on board the robot and in the detection system should be able to stop, redirect, or switch off the robot should an obstruction be found in its current path, an irritated wife approaches fast with a swat, the robot overturns etc.
5. If the rabbit (bird or whatever) is indifferent to the presence of the robot, the robot should be able to flash some angry looking eyes and emit a growling sound.
6. The detection system must not be confused by the robot moving and ending up with the robot chasing its own tail.
1. Movement and presence sensors linked to a network. This will be powered ultimately from the mains, and possibly have POE nodes.
2. Robot detection. Not sure. Two thoughts, first is differential gps to get a centimetre accurate position of robot and second is some sort of beacon on the robot that can be picked up by two or more receivers to triangulate the robot location. No idea if triangulation will work with the short distances involved and a differential gps solution is expensive if purchased as a working system. Maybe two hobby level gps boards can be make to work? I may see how far I can get with this. More research is needed and any forum member thoughts will be welcome.
1. I have a small Dagu 4 wheeled robot at the moment. The motors are controlled by an Arduino with a motor controller designed for the Arduino board.
2. Communication to/from the robot may be wifi, xbee, or something else. Not really decided yet.
Its all in the very early stages. I got the robot and motor controller programmed with Arduino code to do the basics. I intend to have an rpi as the main robot controller and send commands to Arduino and communicate with the Detection System but this has not been started. Also the detection system is just high level design thoughts at the moment. I'm currently building the control panel for the robot and implementing a low battery circuit to trigger a proper rpi shutdown when the power is low.
I've several other non electronic projects on the go so my main attention will not be on this project but I hope to dip in a bit more once a project to change my home office into a home lap is done. I will feed back to this forum once some progress is made, but many months will pass before anything of significance materialised. Those bunnies will not have to worry yet. Bills DB1 project is providing many good ideas, as is his other workshop presentations. I know we all really appreciate his work so I hope to give something back by means of a good write up of this project (eventually) on his forum.
Interesting project. I once had a "robotic" scarecrow. It was basically some clothe stuffed with straw to appear as a person complete with head and hat. It sat in a chair in the middle of the garden with a model of a shotgun in its lap. I just had a motion detector that would raise and lower the shotgun when any movement was detected. The shotgun, being attached to the ends of the shirt sleeves would pull the scare crows arms up and down with it.
It was an very simple system, and there was nothing robotic about the scarecrow itself. But since this could be seen from the road it became the talk of the town. I live next to a state park and so my garden beccme a tourist visit to see the animated scarecrow. ?
I then had the idea of making some models of fake deer because people were always driving by my garden at night spotting deer. I thought I'd fix up the fake deer with a spot light that they could then hold up and shine back at the tourists. I never actually did that one, but I thought it was a great idea.
When a spotlight falls on the deer you could have that trigger them to raise their heads and shine a spotlight back. ?
I've made a modicum of progress my FoxBot robot in that I've been testing the possibility of GPS navigation for the robot. A simple GPS receiver can be accurate to several meters but that could mean FoxBot driving in my lettuce patch. For a few hundred pounds fancy and very accurate differential GPS can be purchased. These combine a GPS base station and GPS roving module and, combined with elaborate calculation can give GPS co-ordinates to a few centimetres accuracy. But I do not wish to spend that sort of money on this project.
I was thinking I do not need absolute centimetre GPS co-ordinates I only need the co-ordinates between a base station and the roving station to be consistent to enable accurate navigation of my robot over a small area.
I perused the web to see if anyone had done this. I did come across a failed attempt, but in this case they were endeavouring to use a GPS sensor linked to a micro controller and the GPS in a mobile phone. They did not get usable results. There is probably load of other info out there, but I did not find anything.
As I had an Adafruit GPS board, I decided to get another identical one to see what accuracy I would get between them. Both the GPS boards were connected to a micro controller and both have external aerials linked. I dangled the GPS aerials out of my window and they were resting on my windowsill about 10cm apart and set them both off collecting GPS data.
The long and lat readings did vary slightly over time as did the number of satellites they were finding. I also noted that the number of satellites found by each did often differ, usually by one. They were both showing the same proximity which, according to google maps seemed to be with a metre or two of their actual placement.
I took a few snapshots to see how their respective readings compared and I calculated the differences between them based on their respective lat and long data. My calculations showed a distance between them of 10.8cm / 9.5cm / 1.9cm /13.7cm which as not too bad as I approximated they were actually about 10cm apart. The 1.9 reading showed that one GPS was finding 9 satellites and the other found 12 at that time. The other readings were showing one finding 12 and the other finding 13 satellites respectively.
These snapshot readings appear to be encouraging so I now need to place the aerials away from the house and accurately measure the real difference between them, and collect more data over a longer period.
The GPS modules are linked to Adafruit feather huzzah 8266 boards. These are linked into my wifi and publish MQTT messages containing the pertinent GPS data. I collect the MQTT messages on my main computer and enter the data into a mysql database. Python is used on the main computer and Arduino C on the huzzah's. in the seventies, whilst I was doing some Basic programming, I did learn C. I never actually used it for real as the career went in a different direction. My programming only stated again when I started playing with the RPi a few years back. I have now just been reminding myself of the horrors of string handing in C. I wish I kept the old text books. My head hurts but I got the programming done in the end. If anyone is interested in the coding or the co-ordinates difference calculations then I will work out how to post them.
Id be interested to hear if anyone else has been investigating the possibilities of GPS for the navigation an externally roving robot and indeed what other navigation arrangements you may have done. I think GPS navigation will make a good subject for one of Bill's presentations ?
Great job on sharing your progress - thank you.
I have an outdoor rover project on my "8,632 things to do list" and I am certainly interested in your findings on the "Foxbot differential GPS system". So should it be called "FBD-GPS"?
Congrats on making progress and I am looking forward to hearing updates.
I think GPS navigation will make a good subject for one of Bill's presentations
I think so too! But I might have to film some of it outside, as I'm skeptical of the quality of GPS signal I would get in the basement.
I love your project, looking forward to seeing its progress. Would love to fine-tune it for squirrels for my yard!
"Never trust a computer you can’t throw out a window." — Steve Wozniak
Actually, it's a two-fer cuz it not only kills the rabbit, but it's bar-b-qued before you get it home
See that ? Kill 2 birds with one stone, or drone, which it could probably do that too, in flight
And with FPV built-in you could really have some fun with it, I mean, just imagine the look on your neighbor's face when he runs inside to say "Hey Martha ! Look ! A bar-b-qued crow just fell out of the sky ! It's a sign from above. Quick, get a plate and we'll pray for chitlins"
On a more serious note, does it bother anybody that this is for sale to the general public ?
No, we're gonna license the heck out of your guns, but hey, if you want a flying flame thrower, that's okay