Blossom is an open-hardware, open-source tensile robot that you can handcraft and accessorize to your liking. You can read more about the project in Evan Ackerman's IEEE Spectrum article.
Here are two examples of Blossom robots:
For any questions (assembly or software related), please check/make public issues.
In a terminal, clone this repo
git clone https://github.com/hrc2/blossom-public/
Download through a package will be added in the future.
Make sure you're using Python 2.7
.
To check, run python2.7
in the terminal and make sure it says "Python 2.7...." on the first line.
Also ensure that pip
is installed.
Make a venv
(virtual environment) in the top blossom
directory:
virtualenv -p `which python2.7` venv
source venv/bin/activate
To install dependencies, run
pip install -r requirements.txt
Mac OSX: You may need to append --user
to the pip
command to circumvent installation issues:
pip install -r requirements.txt --user
If this still doesn't work, you may have to append sudo
before pip
:
sudo pip install -r requirements.txt --user
This may require you to run in sudo
for subsequent steps.
It may take a while to install the dependencies; you may want to run pip
verbose to make sure that it's still downloading: pip install -rv requirements.txt
If you run into an error opening a port, try changing Blossom's permissions: sudo chmod 777 /dev/ttyACM0
. Alternatively, rerun everything with admin privileges.
If you're using OSX and getting strange errors, try:
sudo chown -R $USER /Library/Python/2.7
Installation will take longer on a Raspberry Pi, and you may need additional dependencies:
sudo apt-get install xvfb
To be able to run the web UI or start the mobile app, install yarn.
Then cd
into the blossom_web
directory and run yarn install
.
To build your own Blossom, check out the Build Guide. The rest of this document will teach you how to set up the software to run the robot.
Note that you need to have the basic software set up to correctly build Blossom
To start the CLI, plug Blossom in and run
python start.py -n [robot_name]
For example, to start Woody:
python start.py -n woody
Additional flags:
-b do not start up web ui
-p denote the port
-i specify an IP address (won't work with localhost)
Linux may default to a loopback IP (127.0.1.1
); in this case you must specify the IP address using -i
.
To make Woody nod, type:
s
-> Enter -> yes
Available commands:
l
: list available sequencess
: perform a sequence, followed by the Enter key and the sequence name- To perform an idler (looped gesture), enter two sequence names separated by
=
, e.g.s
-> Enter ->yes=no
(playyes
then loopno
indefinitely until another sequence is played). q
: quit
The GUI should be accessible via localhost:8000
after starting up the CLI if -b
was not specified. Otherwise, the CLI should print a message stating the server url.
Installation
The app can be installed on Android via the Expo Client app. Then, find the last stable release by searching for https://exp.host/@psychomugs/blossom-app
.
Controlling the robot
In the app, tap the Settings
icon in the top right.
Enter the IP address of the host computer; this is listed under "Starting server on IP_address:8000" when first starting start.py
or can be found other ways.
Once the IP address is entered, go back to the controller and toggle on Control Robot
.
This allows you to control the robot's orientation (pitch, yaw, roll) by moving the phone and use sliders for the height.
If Blossom is not controllable at first, unfocus and refocus the app.