Becca is a general learning program for use in any robot or embodied system. When using Becca, a robot learns to do whatever it is rewarded to do, and continues learning throughout its lifetime.
pip3 install becca
becca_test
, becca_viz
, and becca_toolbox
install automatically when you install becca
. It will also install numpy
, numba
, and matplotlib
if you don't have those in place already.
python3
>>>import becca_test.test as test
>>>test.suite()
If you want to integrate becca with your robot, simulation, or reinforcement learning benchmark, or you'd like to contribute to the code, you'll need to clone the GitHub repositories and install them locally. Here is the walkthrough.
Some videos show it in action.
A Hello-World example walks you through the process.
Becca aspires to be a brain for any robot, doing anything. It's not there yet, but it's getting closer. It may be able to drive your robot. Hook it up and see. Feel free to shoot me an email ([email protected]) if you'd like to talk it through.
I owe you this. It's on my To-Do list.
In the meantime, the reinforcement learner is similar to the one from Becca 7 (described in this video) and the unsupervised ziptie algorithm hasn't changed from Becca 6 (described on pages 3-6 of this pdf).
The code is also generously documented. I explain all my algorithmic tricks and justify some of my design decisions. I recommend starting at connector.py
and walking
through from there.
The good folks at OpenAI have created a playground called Gym for becca and agents like it. Learning on simulated robots of all types and complexities is a great opportunity to show what becca can do. Getting becca integrated with Gym is my next development goal. There are some intermediate steps, and I'll be working through them for the next several months.
We could use your help! There are several issues tagged entrypoint
. These are a fine place to start if you are coming
to the project for the first time and want to get your feet wet. Tehy aren't necessarily small tasks, or easy ones, but they don't presuppose a deep understanding of the code.
Feel free to add or comment on GitHub issues, tag the becca project on Twitter, or send me a personal email ([email protected]), as befits the situation.