START HERE!

PyCKBot will prevent the proliferation of reinvented wheels!

It is very common for beginning roboticists to approach robotics as primarily a programming challenge. This narrow view leads to many wasted hours. Robots are hardware and software combined. Every challenge has multiple solutions. Always solve problems where they are easiest for you to solve.

REVZEN’S 0th LAW: “Solve problems where they are easiest to solve!”

PyCKBot will solve many common software problems for you–if you let it!

Consider the Chicken

In nature, intelligence and adaptability are properties of the whole body (i.e., the hardware/software), not just the mind (i.e., the software). A robin can be taught to fly. A chicken cannot. This is not a software problem; chicken’s have the appropriate software for flight. Throw a chicken. She flaps, she adjusts her wings’ angle of attack, she pulls up her legs, she fans her tail. Clearly, chickens know how flight should work. The software is fine; the hardware is sub-optimal.

Contrastingly, throw a child: She flails uselessly. Clearly, human children have no clue how to fly. Strap that child to a hang-glider (i.e., modify the hardware), throw her again, and you will get something flight-like immediately–you may even have a successfully first flight. With relatively small adjustments to the software (i.e., a few minutes of training–or even just a few minutes of letting her mess around on her own) that child will slip the surly bonds of earth in contempt of all that nature has pre-ordained.

REVZEN’S 1st LAW: “Robotics is not (just) a software problem!”

Always remember that robotics shouldn’t be an exercise in teaching chickens to fly: Don’t waste time giving the chicken a pep talk or sign her up for hang-gliding lessons. Get the hardware right and the software will almost take care of itself–provided you use the software mindfully.

PyCKBot: Software for Rapidly Prototyping Robots

Clearly, robotics has a significant hardware problem. Changing hardware is glacially slow (and potentially expensive). Changing software can (and should) be fast and cheap. We want you to have as much time as possible to address those hardware challenges, so PyCKBot was specifically made to solve the common software challenges you are likely to encounter. It includes many tools to greatly reduce your frustration in programming, testing, debugging, and running your robots. These features include:

  • “Brain in a Jar” mode–run your code with no robot attached
  • Posable programming–quickly prototype robot motion by recording sequences of poses for playback (see demo-playback.py)
  • Control options–control your robot via tether or wireless using almost any event on any device: keyboard, mouse, trackpad, joystick, game controller, MIDI device, etc.
  • Feedback–PyCKbot has many ways to tell you what is happening inside the software in real time: graphical feedback, logs, messages printed to the terminal, speech synthesis, etc.
  • Sequential behaviors–PyCKbot handles these in a clear and structured way to prevent all of the classic pitfalls of multi-threaded programming
  • Naming modules–Giving modules easily recognizable names makes your life much easier, especially while debugging or attempting to escape the “Curse of the Live Demo” (see Tutorial 0: Start on the Right Foot)

Please Do Not Re-invent Our Wheels

Nonetheless, many of you will waste a great deal of time and frustrate yourselves enormously by “solving” problems that PyCKBot solves for you. There are two persistently re-invented wheels that devour enormous amounts of student time and sanity:

  1. Keyboard interaction & live control
  2. Sequential and non-instantaneous behavior
    • Students are forever creating terrible hacks meant to pause and wait for behaviors to complete. PyCKbot handles parallel and sequential composition of behaviors for you, if you let it.

REVZEN’S 2nd LAW: “In robotics sleep is a sin!” (i.e., You must sleep the right way)

Please do not reinvent these wheels. Spend twenty minutes understanding Tutorial 0 and Tutorial 1 now, and save yourself two days of misery later.


Improve this page