PENGUIN Robot Soccer - the Movie
Penguin Soccer Playing Robot - Movie Trailer!
www.youtube.com/watch?v=5Duxpxu4Bhs
This is the teaser showing a couple soccer moves using the
infrared remote controller. It's the 60 second trailer
with 60 seconds worth of credits.
Robot soccer currently has 11 functions, with 6 buttons
available for add-on programming.
humanoido
www.youtube.com/watch?v=5Duxpxu4Bhs
This is the teaser showing a couple soccer moves using the
infrared remote controller. It's the 60 second trailer
with 60 seconds worth of credits.
Robot soccer currently has 11 functions, with 6 buttons
available for add-on programming.
humanoido
Comments
Great vid!
I havent tried the IR remote yet, forgot I had it!
A couple of questions though. It looks like you're using IR to control the robot -- which means you can only control one robot at a time, as multiple IR signals will 'jam' each other.
Also, it doesn't look as if the Penguin is actually 'sensing' the ball.
Also, I believe the Penguin 'collision avoidance' mechanism is also IR-based -- so having 2 penguin's on a field both trying to collision avoid with IR pulses might be an issue too.
Still I thought the 'kick' move was very effective.
i see my name in the credits also! wow to be linked with THE GREAT HUMANOIDO is awesome!
you the man. do you have the code? or should i look before i speak?
if you need another beta tester let me know. my little guy loves new code.
thanks
scott
Post Edited (N-2-STUFF) : 9/13/2007 3:48:53 AM GMT
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
- Stephen
Wait, I have no idea what I am talking about. I know nothing about IR remotes, and can barely get my DVR/DVD/TV to work together.
Good explanation here:
www.remotecentral.com/features/irdisp1.htm
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
slashsplat
/* Ira Chandler */
http://BotConnect.com
Post Edited (slashsplat) : 9/13/2007 2:07:12 AM GMT
Sensing the Ball
This program is not autonomous. Penguin is controlled by a human using a TV type remote. There are several methods to sensing the ball autonomously, well covered in other literature.
Multiple Control & Collision Avoidance
It's a simple matter to over ride the software settings for infrared detection, to maintain viable obstacle collision avoidance. The code can pass through two loops, one momentary loop to check for obstacles, another to check for IR controller pulse signals. This works well because the Penguin processor is so fast. The IR remote pulse timing can be significantly different from the stock Penguin robot IR transmitters so this is the key variance. Additionally, the program is setup to do polling outside of the loop to maintain the complexities of pulse timing, and to create a code expansion path. Polling can be established with specific code recognizers, indigenous to specific Penguin robots. Each remote can be programmed with a different sequence, and specific Penguins can be programmed to recognize this signature. In summary, a full Penguin soccer team can be simultaneously controlled with a remote for each robot. Are you thinking about doing this?
Penguin Team Leader
Penguin has built in IR transmitters. These can be programmed to send out specific sequence codes that other team Penguin robots can recognize, just the same as a human would use the buttons on a tv remote controller. The Penguin Team Leader could wirelessly control the other team Penguins. This may give the autonomous behavior you're looking for.
The TV Remote
As far as the type of remote, it only needs to have the SONY standard. I use the remote from Parallax Inc. You could also pick one up at most stores or Radio Shack. But if you get the Parallax remote, you are assured it's designed to work with Penguin and BoeBot.
I'm putting the comments in the code and will aim for posting it this weekend or as soon as possible.
humanoido
There are dozens of cheap IR Remotes that will format to any of over 50 standards. Since these standards are mutually exclusive, you can use one for each player. This would be perfect for large team events.
The only drawback is that it is a bit tedious to decode all the different setups.
Many say to use 'Sony Standard' but there are different bit widths = 12, 15, maybe 20, and 32. Also, searching for documentation on the internet just expands the problem. I suspect that a lot of the references to the Sony Standard IR controllers are unproven and might delay development.
The easiest approach is to use a osilloscope using whatever IR remote you have.
If that is not available, create a 'capture' program in a BasicStamp, an SX, or a Propeller that is capable transfering the time data from 32 bits and 32 spaces in between. Then, have the data going to DEBUG and one can cut and paste it to Excel for analysis and documentation.
The 'cheap programible remotes' retail in Taiwan for $3.00 USD each. And it seems that all the output is 32bit. In many cases the timing is certainly not the Sony Standard, so one needs to determine useful pulse widths. Even the ones that claim Sony Standard, are not those Sony I have seen in examples.· This·all makes my head spin.
So, I have been forced into creation a more generic approach that is very useful without needing any documention. But this also seems much more worthwhile as I even can use a junk IR remote proivded for an air conditioner that can be adapted to sending instructions to a Basic Stamp.
Just consider the possiblity of having a Basic Stamp decode a useless function button on your beloved TV remote. It can toggle anything that comes to mind, like answering the phone or turning off the kid's computer.
A generic decoding strategy really is the only way to go.
Forgive me for not providing code for the Capture, but I am using a AVR for that as it happened to be a shortcut for me. I am sure the SXes and the Propeller can do the same.· It might be too much for the current version of PBasic.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
"Everything in the world is purchased by labour; and our passions are the only causes of labor." -- David·Hume (1711-76)········
Post Edited (Kramer) : 9/17/2007 2:34:22 PM GMT
I've seen the SONY remote manual and
there are several options for inputting SONY
codes for various SONY products. I believe
this stems from using controllers for TVs,
VCRs, and the Home Sound System.
There's no need to fret with all that.
Parallax has one controller which is
a breeze to set up and use. I highly
recommend going with it. It's the one
I'm using, and it works impressively well.
The newly posted Penguin Robot Soccer
program is designed for the Parallax
controller too. I have a remote template
under development for Penguin that's
truly "drop-in" code, for plug-n'-play
results. This should be a boon for anyone
wanting to develop remote applications.
humanoido
All the points about 'different remotes' are very nice. However. It's not like IR-Remotes are on different frequencies. They're all based on 28 to 32 Khz blinking IR-light. Sure, the different remotes have different patterns of 'ones' and 'zeros', and even different definitions of what a 'one' and 'zero' is.
That does not change the fact that, if you aim two different IR-Remotes at a BOE-Bot (one which controls it, and one which controls something else, ANYTHING else) and push buttons on BOTH REMOTES -- the 'control' IR-Remote will be 'jammed' by the 'other' IR-Remote.
I learned this by being very disappointed when I bought two 'Sumo-Bots', which used DIFFERENT IR-Remotes, but could not make them battle because if both people pressed buttons at the same time, no coherent signal could be 'seen' by each Sumo-Bot. They jammed each other.
Once upon a time, I worked on coordinating 3 Lego Mindstorms robots. This was only possible because a PC was used (with three joysticks, one for each Mindstorm robot). The PC would send to #1, then #2, then #3, then back to #1 again. This could work very well -- but you DO need the PC doing the transmitting. Otherwise, two IR-Transmitters jam each other.
Bottom line -- try to control two Penguins at the same time, with two remotes. You may be surprised at the results. And if it DOES work, tell me, because I'd LOVE for this to work.
Yes, there are different 'carrier frequencies' between 28 to 32Khz and these do sometimes require a different reciever. But it seems that only one 'carrier frequency' is used on the so-call programable universal remotes. In fact, every remote I have seems to be received on just one IR reciever that is documented at 29.5Khz. Maybe, I am just lucky or there might be overlap in the bandwidth.
The jambing effect hadn't occurred to me, but is quite obvious to someone that has studied AM radio modulation when two transmitters are using the same 'carrier frequency'. For a soccer team, that might become a significant issue. But for occasional use of two or three non-critical remotes in the same environment, it likely can be tolerated. The default is that the receiver does nothing until it gets a clear reception.
My personal goal is to try to reduce the number of remotes I need to use by decodiing what I have. Some of the function keys on some of my remotes are for features I don't have. So, I want those exploit those with the BasicStamp or an SX. In fact, I might be able to use the microprocessor to act as a converter.
For instance, I have a VCR feature on my TV remote that I will never use. If the BasicStamp recieved that and then can transmit the toggle on/off for my A/C, I don't have to drag around two remotes. Or maybe, I could have the VCR codes direct a Penguin while I'm watching TV.
Simply put, I believe that being able to eventually reverse engineer what you have is quite empowering. Also, there are a lot more people [noparse][[/noparse]bigger market] for a tutorial on how to adapt the remote which you prefer to use.
In sum, if PBasic provided a software function that would time transitions from high to low and from low to high, I could do all the development on a BasicStamp. As it stands, I am juggling between several other products, including a sound card scope on the PC.
By the way, it never occurred to me before - but you could make a Remote Jammer that would allow you to watch Monday Night football in peace, once you got settled in. All it would have to do is transmit a constant stream of digital nonsense.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
"Everything in the world is purchased by labour; and our passions are the only causes of labor." -- David·Hume (1711-76)········
regarding radio, as light is also electromagnetic radiation
that can be jammed too. One only needs to take two
pulsing flashlights which are 180 deg. out of phase and
create some phased interference that will result
in a white light whiteout.
Constructive and destructive interference are widely
used concepts in coating lenses and mirrors to enhance
light reflectivity in various ways such as reducing light
reflection or absorption. Astronomers use this concept
to make small diameter telescopes perform like large
ones and reading glasses are straw coated to reduce
reflections!
That's a good idea, to use a basic stamp
as a controller programmed to handle all
remotes. It could be the true universal remote!
But so many "standards" as you point out!
How about some code to lock in on the signals
and automatically decode the remote?
humanoido
Post Edited (humanoido) : 9/17/2007 3:32:02 PM GMT
I believe there are already some smart Ir remotes that lock on and identifly the personality of a device. But I suspect that they are a bit dependent on a larger EEPROM memory and a well organized [noparse][[/noparse]maybe proprietary] data base of devices. Also, they require a source that is transmiting a handshake dialog whilst my devices are passive recievers.
My 'universal remote' takes a three digit code from a printed list to configure it to a particular manufacturer. Sony is listed with 4 TV codes and one VCR code. As you can see, I am still stuck with decoding overall format and each button. That information is not disclosed. The information is intended to allow a non-techie to replace a lost or broken remote - that is all.
I am trying to side-step such commerical realms as auto detect and just have a way to personalize IR remotes. This could be a lot of fun with the Penguins. I really wish I could provide you with good finished code to do so, but I am still in the middle of the learning curve. At this point, my thoughts are more of a promotion of the concept than a 'show and tell' of a finished project.
I suggest that you refer to Parallax's Penguin IR code for a beginning. I need to study it as well to fully see how the BasicStamp receives the 12bit Sony format. The first 7 bits are button codes, and the last 5 are device codes. All bits are LSBit first and the TV is device %10000.
Regarding timing, there is a 2400us start bit, followed by a 600us space bit. and then data. The data is 1200us for logically One and 600us for logically Zero. All spaces are 600us. But be aware that timing can vary as much as +/- 100us. Since the sensor output has a pullup resistor, all data output is when pulled down to zero while spaces are at +5.
With Sony, the 7 digit code has been published. for button 1, it is binary 0; for button 2, it is binary 1; and so on. That should enable you to get the numerical buttons to work as directions. But you would be changing channels while directing your Penguin if both are on at the same time.
To avoid such simultaneous problems, the 5 bit device code portion must be adapted. If you have a remote that supports a VCR, you would change to VCR mode and while the numerical buttons remain the same code, the 5 bit identity code would be something other than %10000. At this point, I am not sure what.
As you can see, the BasicStamp has to first capture the whole stream, the start bit and 12 bits of code. Then it has to verify that it is a proper Sony code from the Start Bit and overall length of transmission. Then it has to verify that the 5 bit device code is acceptible. And lastly, it has to identify the key and reconcile the appropriate action. All this occurs while ignoring any further IR reception until it is complete.
I hope that is all useful. These IR remote controllers are a lot of fun and better for indoor than R/C radio control that can stray into affecting other R/C devices that you are not aware of. Cheaper too.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
"Everything in the world is purchased by labour; and our passions are the only causes of labor." -- David·Hume (1711-76)········
Just as in a universal remote where one button is designated for VCR, one for TV, etc., that opens up a new controller button template, the same could be programmed for Penguin robot. I don't need this function for my TV and Penguin, but it does sound like a novel idea for controlling multiple penguins, for which there was some discussion earlier in the thread. However in all cases, the IR flood issue will need resolution.
humanoido
My interests lie in using any BasicStamp as an IR remote control reciever and using any available remote control - very generic. It just so happens that the Penguin was designed with an IR Remote Control interface in mind.
Let me think about what might be required for a generic tutorial to allow hobbyist to hack whatever IR remote control they have. I even have a Palm PDA that transmits the SONY IR remote codes. I don't think that you have to compile all codes into the BasicStamp. You merely have to use the BasicStamp to extract data to Debug for analysis.· This leaves more·EEPROM space available for tasks assigned to each key of the remote.
As we have discussed there are lots of ways to go with this and everyone might have a pet personal application. I like it better than X10 or radio control for interior home automation use. Transmission never leave the boundaries of the room. And, the user interface is already built and self-contained with long battery life.
I am still wondering about having a BasicStamp re-transmit a modulated IR.· I suspect that a 555 timer might have to modulate data output from the Stamp. At least it would be a lot less to do in software.
I guess it empowers the couch potato within
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
"Everything in the world is purchased by labour; and our passions are the only causes of labor." -- David·Hume (1711-76)········
Post Edited (Kramer) : 9/18/2007 8:36:10 AM GMT
your Penguin to walk up to your TV, and change the
channels using one of the two on-board IR
transmitters?
humanoido