Shop OBEX P1 Docs P2 Docs Learn Events
behavior suggestions/help — Parallax Forums

behavior suggestions/help

Patrick DPatrick D Posts: 62
edited 2007-09-07 18:33 in Robotics
I am jotting down notes/ideas for my next bot. I'm tired of simple obstacle avoidance and following lines - so I thought I would see what other ideas you may have...

For my next project I would like to have something like this:
lower level functions such as motor control (PWM), obstacle avoidance, power monitoring/distribution, location/positioning, etc all be somewhat independent systems that take their control from a higher "personality" system. This personality would be basically eat (recharge - more later), play and sleep. On top of this would be an optional manual override that would allow me to take control and direct movement via remote control.

Play - basically move around the house, avoiding obstacles.
Eat - when batteries are low, find the nest and recharge. Finding the nest may be difficult? I was thinking wheel encoders to track it's position from the nest?
Sleep - mainly for battery conservation - but also I dont want it buzzing around the house while I try to sleep. I thought it would be neat if a motion detector like the one sold here was incorporated so that if it were "sleeping", anyone/thing passing near would cause it to wake up.

The "personality" would be somewhat random. I have several BS2's that I plan to incorporate. The lower functions would be turned on/off and directed by a higher function - I am planning that each function would be controlled by one or part of a stamp - with control/feedback signals linking higher to lower functions.

I would like the option to override the autonomous systems and be able to remotely direct it's movements.

I was thinking that if each system had it's on stamp, the programing may be easier, and I could build more intelligence into the routines?

Anyway - this is still very much in the design phase. I just wanted to see if anyone here had feedback/suggestions about something like this.

Comments

  • HumanoidoHumanoido Posts: 5,770
    edited 2007-09-01 22:02
    Patrick, you have a lot of very good ideas here,
    and they are all doable. You didn't say which bot
    you have in mind. Penguin robot would be ideal
    for this. It's small, has the most power with a
    BS2px, and is capable of walking to the charging
    nest.

    Encoders are fine, but wheels may have some
    slippage, and over distances, and with various turns,
    values tend to accumulate errors. You may want to
    look at infrared, as Penguin and BoeBot are fully
    equipped to sense an IR Beacon.

    A motion detector can be made from a robots'
    IR sensor, light sensitive photodetector,
    or ultrasonic sensor. Penguin robot and Boebot
    are well equipped for this. The PING))) ultrasonic
    sensor
    is an expansion.

    Sleeping is no problem as there are provisions in
    PBASIC code to do so. There are various ways
    to code this. Obtainable, also from Parallax, is a
    remote that works on IR and can control Boebot.
    I believe the same is in the works for Penguin.

    Introducing random behaviors is very fascinating
    and there are several ways to accomplish it.
    With more complex programs, and I have seen
    this with walking robots the most, something
    random always seems to show up. You can
    help that along, however, with random code.
    PBASIC language is fully equipped to do this.

    You could dedicate a hardware based stamp to
    each function. You could also work everything in
    software. There are multiple pages of memory in
    the chip to work with. Look at the software route
    first, as software has no weight, takes up no
    physical space, and does not consume any extra
    power.

    I sincerely hope this helps you get started on
    your very exciting new project.

    humanoido
  • DgswanerDgswaner Posts: 795
    edited 2007-09-07 14:38
    Patrick, Your heading in the same direction I'm trying to go. To give my bots purpose, not that I want them to change the world, just do more than wonder around blind. Here are my thoughts.

    navigation:
    If a bot is going to do more than roam around blind it needs to have some form of navigation, mapping software, IR beacons, color sensors to detect way points. some method of saying I'm here and I know I need to get to there. This post talks about a beacon based navigation system: http://forums.parallax.com/showthread.php?p=646050 No one seems to have mastered mapping code, Yet! and each system has it's pro's and cons. maybe a marriage of both is the ultimate solution.

    Recharging:
    I hate reinventing the wheel. so I would look at the Irobot Roomba they have the charging station Nailed. it's a IR beacon Base that also helps guide the roomba into the doc to charge. I'm sure there is video's of this out there. but the Roomba hits a point where it says I better get home before I run out of power, but still wanders around cleaning, but as soon as it sees the base it heads home. I would look at the roomba or many other bots out there and use their Idea for recharging.

    Random behavior:
    you can have your bot hard coded to do things at specific events or times and still appear to be acting random, I would give your bot the ability to randomly choose a behavior, but have different behaviors available at different times, Don't allow your bot to choose to start singing at 4a.m. or to play fetch in the middle of the night. I would factor in time of day and day of the week, you could even factor in room temperature, location and the amount of times other behaviors have been run. I'm going to mount a 8 pin Dip switch for manual over rides of behaviors, if one behavior proves to be annoying or doesn't function correctly I can merely turn off that behavior with the dip switch. I also want to have an IR remote for manual overriding the bot, by choosing it's task or manually controlling it's movement.

    Good Luck! I hope you share your win's and losses so that we can all learn from them.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    A complex design is the sign of an inferior designer. - Jamie Hyneman, Myth Buster

    Post Edited (Dgswaner) : 9/7/2007 2:59:55 PM GMT
  • D FaustD Faust Posts: 608
    edited 2007-09-07 18:33
    I agree with most of what was stated above.

    I would like to say that your division of labor probably isn't the best, though it would be easiest.· You might be better off having one master stamp, one in charge of sensors, and one for locomotion and have them communicte serially.· I say this because if you have one stamp for each mode then you have one overloaded stamp and however many other stamps doing nothing.· Hope this helps.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    LOOKDOWN ThisThread, [noparse][[/noparse]Your_?, My_?, Cool_Thing], looknum
    LOOKUP looknum, [noparse][[/noparse]1, 2, 3], subnum
    ON subnum GOTO Hope_this_helps, Thanks!, WOW!!
    END 
    
Sign In or Register to comment.