gunthercox / Salvius

An open source humanoid robot made from recycled parts and open source technology
https://salvius.org
MIT License
89 stars 27 forks source link
robotics

Salvius

Code Climate Coverage Status

Salvius is a humanoid robot made from recycled materials. The robot is designed to be as easy as possible for anyone to build on a limited budget.

Salvius is a robot made out of recycled materials, designed to be able to perform a wide range of tasks by having a body structure that is similar to that of a human. The primary goal for Salvius is to create a humanoid robot that can function dynamically in a domestic environment.

Key features:

Setup

# Clone the git repo
git clone https://github.com/gunthercox/Salvius.git

# Move to the Salvius directory
cd Salvius

# Install the package using pip
sudo pip install . --upgrade

Software Documentation

Module documentation: https://docs.salvius.org/

Testing the installation

Once installed, you should be able to start Salvius by entering the command salvius into the terminal. After that, you should be able to view the robot's api in your browser by going to http://localhost:8000/api/

Configure Salvius to run at startup

To configure Salvius to start running when your device boots, execute the following from inside the scripts directory.

bash configure.sh

Note: that if you no longer wish to run Salvius at startup, you can disable this functionality by running bash deconfigure.sh from inside the scripts directory.

Verbal communication

Salvius uses the ChatterBot library to generate responses to verbal input.

Speech recognition

Speech recognition is accomplished using the pocketsphinx speech recognition library for Python. Salvius is currently only configured to recognize English language models, but it is possible to build grammars for other languages for pocketsphinx.

Speech synthesis

Salvius uses the Emic 2 Text-to-Speech Module to process text into verbal sounds. A guide for using the Emic board with your Raspberry Pi can be found here.

Non-verbal communication

Handwriting

The robot can hold a pen and write when given a string of text. The robot's handwriting is based on a grid in which each letter is created as a result of horizontal and vertical lines.

Note This functionality is being re-implemented. See https://github.com/gunthercox/Salvius/issues/5 for details.

Sign language

Salvius cannot yet communicate using sign language. There is an interesting opportunity for which humanoid robot's are uniquely suited. Accomplishing this still requires a great deal of research which I have not yet completed.

See https://github.com/gunthercox/Salvius/issues/48 for details.

Object recognition

This includes face recognition, object tacking and learning to recognize new items. Salvius currently does not have the ability to do this, however there is plans to implement this in the future.

Notes

SSH into Raspberry Pi

Building the Python module documentation

sphinx-build -b html docs_source/ docs/

Donating Parts and Supplies

If you are interested in donating parts to help build Salvius, see the Parts and supplies wishlist in the project wiki.

Other types of donations are helpful as well. Feel free to contact me at gunthercx@gmail.com for the best way to support this project.

Contributors

This project has been made possible with funding from the following sources: Jennifer Cox, Adam Iredale, Janet Wise, Glen Zenor, Boris Hofer, Señora Alderperson, Wilbraham Music, Chris Cox, June Cox, Rantz, Yuri Yerofeyev