Shop OBEX P1 Docs P2 Docs Learn Events
PENGUIN Robot Soccer - the Movie — Parallax Forums

PENGUIN Robot Soccer - the Movie

HumanoidoHumanoido Posts: 5,770
edited 2007-09-23 00:50 in Robotics
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

Comments

  • InteractInteract Posts: 79
    edited 2007-09-12 15:49
    Woo-hoo I made the credits! Since I'm so close to Hollywood I may as well quit my day job and start sending out my resume.
    Great vid!
    I havent tried the IR remote yet, forgot I had it!
  • GrievousfishGrievousfish Posts: 54
    edited 2007-09-12 17:12
    Wow! I really like the spunky moves. It looked like you were using the standard IR receiver rather than an add-on but I couldn't quite tell what kind of remote you had. Can't wait to try it out! Thank you for your ongoing contributions!
  • allanlane5allanlane5 Posts: 3,815
    edited 2007-09-12 17:47
    Very cool.

    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.
  • N-2-STUFFN-2-STUFF Posts: 25
    edited 2007-09-13 00:22
    hi humanoido
    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
  • FranklinFranklin Posts: 4,747
    edited 2007-09-13 01:18
    Just for fun www.youtube.com/watch?v=oRRXtbD7frE&mode=related&search=

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    - Stephen
  • slashsplatslashsplat Posts: 63
    edited 2007-09-13 01:52
    I think he said it was a SONY tv remote. I suspect there are enough modes on them to use the "TV" mode for one PENGsocBOT and the "DVD" mode for another, etc. ALSO, the coding of the IR is setup by brand and device (remember the codes you enter in generic remotes) and each bot could be a different device, which uses a different code set. I am ASSUMING that the receiver can be programmed to respect the minor differences in the IR command sets for the different brands/devices...

    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
  • HumanoidoHumanoido Posts: 5,770
    edited 2007-09-14 10:27
    Wow, thank you, really great comments, remarks, and highly intelligent questions!

    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
  • LoopyBytelooseLoopyByteloose Posts: 12,537
    edited 2007-09-14 11:35
    More food for thought.....

    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)········
    ···················· Tropically,····· G. Herzog [noparse][[/noparse]·黃鶴 ]·in Taiwan

    Post Edited (Kramer) : 9/17/2007 2:34:22 PM GMT
  • HumanoidoHumanoido Posts: 5,770
    edited 2007-09-15 17:23
    Kramer, these are very good comments!
    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
  • allanlane5allanlane5 Posts: 3,815
    edited 2007-09-16 03:42
    Very nice. I have only one last cautionary thing to say, which you might want to try before you commit too much money to this approach.

    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.
  • LoopyBytelooseLoopyByteloose Posts: 12,537
    edited 2007-09-16 05:47
    As usual, Parallax provides the means to get started quickly and easily. I understand that it is quite important to help people build confidence and learn. Sony is likely to be one of the most common standards worldwide, so it is a wise choice. And finally, the Penguins are prefect for them as they are suitable for many hours of indoor use.

    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)········
    ···················· Tropically,····· G. Herzog [noparse][[/noparse]·黃鶴 ]·in Taiwan
  • HumanoidoHumanoido Posts: 5,770
    edited 2007-09-17 14:04
    G. Herzog, your comment on jamming is interesting
    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?

    In response to some interest in using other
    controllers, and in consideration for Penguin
    robot, I plan to develop specific code
    to get other brand remotes up and running.
    One remote could be used to turn off the TV
    and turn on Penguin!
    
    This will be a simple remote companion program
    to return raw button-press BIT values to the debug
    screen.
    



    humanoido

    Post Edited (humanoido) : 9/17/2007 3:32:02 PM GMT
  • LoopyBytelooseLoopyByteloose Posts: 12,537
    edited 2007-09-17 15:09
    Humanoido,
    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)········
    ···················· Tropically,····· G. Herzog [noparse][[/noparse]·黃鶴 ]·in Taiwan
  • HumanoidoHumanoido Posts: 5,770
    edited 2007-09-17 16:22
    If you are interested in writing the transcription for "all remotes," geared to fit into the Stamp, which may not be a problem because there are eight two K pages to work with, I could algorithm it in Penguin code and we could coauthor the program. This could be another "first" for Penguin.
    G.Herzog said...
    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.
    The code is already written for the IR remote and Penguin. The SONY format is already decoded for Penguin. To see how the Basic Stamp understands the SONY format, and a complete tutorial, refer to the sources listed in the comments section of the Robot Soccer code.
    G.Herzog said...
    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.
    The numerical buttons are already working and can be programmed to do Penguin functions and does include directions. It's working well. Since the Penguin is programmed with its own motherboard, the command to switch off the TV can be different from the command to control Penguin. In fact, it is. The power button is not used by Penguin in this code. Once the TV is off, the channel buttons can be used to control the robot.

    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
  • LoopyBytelooseLoopyByteloose Posts: 12,537
    edited 2007-09-18 08:25
    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 wink.gif

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    "Everything in the world is purchased by labour; and our passions are the only causes of labor." -- David·Hume (1711-76)········
    ···················· Tropically,····· G. Herzog [noparse][[/noparse]·黃鶴 ]·in Taiwan

    Post Edited (Kramer) : 9/18/2007 8:36:10 AM GMT
  • HumanoidoHumanoido Posts: 5,770
    edited 2007-09-23 00:50
    Kramer, so you are thinking about programming
    your Penguin to walk up to your TV, and change the
    channels using one of the two on-board IR
    transmitters?

    humanoido
Sign In or Register to comment.