This is Rongzhong from Pittsburgh. Eight months after my first post on OpenCat, I have quite a lot to update. Most importantly, I’m going to launch my first kitten on Indiegogo on Monday, Oct 22nd! The kitten’s name is Nybble. Links will be posted here, on my Twitter @PetoiCamp, or on Petoi.com.
Campaign is now funded through Indiegogo's InDemand program at https://igg.me/at/nybble
I will need your support to keep working on it full-time. Subscribe and share to your friends who may like it. You awesome makers can also teach it new tricks and bring more fun to people around the world!
I’m having an excellent marketing team helping me on the Indiegogo side, so I can keep this post more technical. The following figures should be quite self-explanatory. I’ll very briefly introduce Nybble’s features, the OpenCat framework, timeline, and what I learned during the efforts in pushing the project forward. Feel free to ask questions so that I can make a more comprehensive documentation for the project. I have an invitation-only Slack group. Contact firstname.lastname@example.org if you wish to join the community-wise discussion on the project. For general technical discussions, you can open issues on https://github.com/PetoiCamp/OpenCat. Please allow me more time to polish the codes though.
UPDATE: I'm writing up this Tutorial on assembling. Every can comment to help improve the contents and point out the missing parts. I've assembled tens of them, so I may miss some subtle but vital tricks when writing the tutorial.
I also have a playlist of detailed instructions.
Before going into every details, I wanted to ask the following questions:
- How much information does a machine need to walk?
- How much shall we invest to implement such a machine?
- How much does a cat eat?
I don’t have answers to the first two questions corresponding to software and hardware. But I do know that a cat doesn’t eat much to be an acrobat. Kitten, cat, Simba, they all move in a similar way. There should be some shared secret among Feloidea, and maybe across all walking mammals. I even tried baby crawling to remind myself of those secrets. It helped.
Nybble is probably the lightest and fastest robotic cat in the world that really walks. Its motion is driven by an Arduino compatible micro-controller. It stores instinctive "muscle memory" to move around. An optional AI chip, such as Raspberry Pi can be mounted on top of Nybble's back, to help Nybble with perception and decision. You can program in your favorite language, and direct Nybble walk around simply by sending short commands, such as "walk" or "turn left"!
Nybble is a kitten. Though lightweight in both hardware and software, Nybble is an optimized version from the grown-up OpenCat. And it doesn’t eat as much.
Nybble is based on the OpenCat framework to be covered in later paragraphs. The wooden frame is a retro design in honor of its popstick framed ancestor.
I also borrowed the wisdom from traditional Chinese woodwork (in honor of my ancestors), to make the major frame screw-free. You may also figure out the puzzles by yourselves.
Check out this playlist of tutorial in case you need some hints to solve it.
[video to be uploaded]
This clip shows how Nybble's springs work during collision. Again, don't try it at home!
The circuit is a quite conventional master-slave structure. The following block diagram works for a DIY version that I’m going to release after this busy season. All the adaptive movements you see are achieved on an ATmega328P chip, the same one as Arduino Uno. Of course there are faster chips at quite affordable prices. I’m just challenging myself on the question “How much information does a machine need to walk?” By limiting the power of the motion controller, it helps to clarify the duties of the hierarchical control layers. People with different expertise can contribute and optimize their part. It also helps to keep the rhythm of walking without disturbance from other threads.
Even without a Raspberry Pi in the kit, the codes on Nybble is always listening to higher level commands. You can send those commands either through Arduino IDE, Bluetooth UART, or serial connection to Raspberry Pi and other chips.
For example, if you want to move Nybble's leg, just type or encode the String "m8 30", it will rotate Nybble's 8th joint to 30 degree. Or you may try "kwkL", that means call Nybble's skill "walk Left", and Nybble will walk left, without you controlling every detailed limb movements.
My friend, Jian Yu, helped to design the all-in-one NyBoard V0, to ease the wiring and future development. It has on board power management with tunable output, various communication and controlling ports, and an optimized layout. We also used the highest frequency (20MHz) that ATmega328P supports, and added an external 8KB I2C EEPROM to store more skills or so-called instincts. I really appreciate Jian’s skill and patience when I pushed the design precision to 0.25mm, to fit the geometry not only for Nybble, but also for the full OpenCat, Raspberry Pi, and leave room for your favorite extension boards.
NyBoard was designed to avoid all the tall components on Pi that may conflict with installation. Its 2x5 communication socket accepts the pins on Pi. It powers Pi, listens to Pi, and there’s a jumper switch for changing I2C master. If you have another preferred chip to ATmega328P, just take full control of the board! The onboard chip can still watch the battery level for you. You do need to design a mount if the optional screw holes don’t match your board. By attaching a Pi or other AI chips, you will be able to add more talents to Nybble, make it listen, see, and think. In some joke conversations, we even wanted to market Nybble as “The most expensive Raspberry Pi case that walks”.
Nybble’s is adorable, but it’s still a precise instrument. Only people with careful and patient mind can make it walk. To help you through the challenges, we also include a nice gadget, the “L” tuner for calibrating your Nybble at times. Just turn Nybble to calibration mode and align the observation windows, type in proper calibrations and Nybble will remember them at once.
Below is a snapshot of Nybble kit. Nothing special, right? Note some parts may subject to change as I finalize every bit, such as color, length, and number of screws.
As you may find out, there's a FTDI to usb converter used for uploading and communicating with NyBoard, just as for an Arduino Pro Mini. I think it would resolve your concern that whether OpenCat will be open source. You WILL have the Arduino code to be uploaded, otherwise you can't play with it.
Parts not included are mini usb to USB cable (make sure you google mini usb and micro usb and understand their difference), 2 x 14500 3.7 V Li-ion batteries and a smart charger. Be careful with fake batteries that claim more than 850mAh capacity. I've been using EBL 800mAh batteries and they work well.
More batteries will allow you play longer with Nybble. I usually keep programming all night with one pair of batteries, but they would die out quickly if you just play with Nybble as a remote controlled toy.
I would say OpenCat is more open source on the software at this moment. Hardware takes serious investments. It's only possible to open once we pay off our bills.
After assembling Nybble, some entry level computer skills is needed to upload the code and tune Nybble to walking order. You will need higher level skills (or at least the willing to learn) to enjoy the tech behind Nybble and teach it new tricks. I used a lot of high school math!
I'm very bad at version control even with the help of Git. So I tried really hard to keep the code compatible with all my walking models. You may find some none existing shoulder joints "#defined" in the code. Just ignore it, wait for my new models, or start to build your own.
[video to be uploaded]
During the 2.5 years’ evolution of OpenCat, a rough framework is becoming clearer. It started from a Raspberry Pi kit, introduced an Arduino as the central pattern generator, and is open to any extensions/upgrade when needed. If the following figure appears confusing, just think about how you walk without thinking, and how you plan a jump across a gap.
Legged motion is challenging in both software and hardware. Now you have a cheaper platform besides simulation to study dynamic balancing and motion planning. Later when some precise and powerful actuator is ready, you can scale Nybble up to a dog, a horse, or even an elephant!
Nybble is a small step that an individual maker takes to overcome obstacles and bring his creation to the world. Nybble is also a bridge to fuse cool technologies, and connect the developers around it. Your support will define its future!
For the past eight months, I’ve been dealing with many life changes and hard decisions. There were some good offers, but I just got tired with endless talking. I wanted to keep working till I have a product, rather than a good story or market research to attract investors. So it's all up to your feedback whether I can continue on the project.
In June, I quit my job and moved to Pittsburgh, all-in my short unemployment gaps allowed on visa. Even until last month, I could not make large orders because of the possibilities to move again.
I was lucky to find Factory Unlocked (https://factoryunlocked.com/), a product commercialization center where I can have a working and manufacturing space. Unlike those investors who care more on profitability and sales strategy, they really care for what I want to create. I also won their free membership during their bootcamp to save budget for the project. I learned laser cutting from their training programs, watched Fusion360 tutorials, and started to design Nybble.
In August I turned 30, still unsettled and called my parents back in China. The second day, I managed to tune the first Nybble to walk and demonstrated it on the first Build412 Tech Showcase. I won their prize.
Since then I’ve been focused on Nybble's hardware, because it takes longer period to order new part and validate its performance with other dependencies. At this moment, the third version of NyBoard is still at PCBA services. It has to go through several certificates before it can be mass produced and sold. Other components also have approximately 20 days delivery time. Supply chain would be the biggest challenge to have those 50 early bird orders delivered by the holidays.
For the following month, I’ll focus more on the software and fulfilling your orders. You may see occasional pushes to the GitHub repo, but they won’t be the final version I’m happy with. Please allow me more time to polish my homework. Thanks for your patience!
The recent fantastic videos from Boston Dynamics and other larger beasts were so inspiring to demonstrate the potential of man-made machinery. It's almost like taking another degree when I struggled to feed my kitten. But I learned more outside technology by talking with people from all around the world. I learned that OpenCat could be used for Autism treatment, that so many people are working on walking robots (and they are doing great), and what a tiny plastic toy has to go through before coming to customers' hands. New experience brings new perspectives. Now when I see some stupid and useless product, I would think, "Wow they must have an extraordinary CFO!"
Lastly, thank you for reading my long post on the night before launching. No more talking, let's make it!
Campaign is live on https://igg.me/at/nybble