Autonomous exploration, active learning and human guidance with open-source Poppy humanoid robot platform and Explauto library. The folder ros contains a ROS package to be symlinked to your ROS workspace.
- Install ROS Comm http://wiki.ros.org/ROSberryPi/Installing%20ROS%20Indigo%20on%20Raspberry%20Pi
- Compile with
catkin_make_isolated -DPYTHON_EXECUTABLE=/home/poppy/miniconda/
- clone https://github.com/ros/common_msgs.git
- Set
export LC_ALL=C
in bashrc to preventterminate called after throwing an instance of 'std::runtime_error' what(): locale::facet::_S_create_c_locale name not valid
errors - Add the NIPS package to ros_ws/src now
catkin_make_isolated --pkg apex_playground
sudo apt-get install swig scons
pip install RPi.GPIO
cd ~/Repos && git clone https://github.com/ymollard/rpi_ws281x.git
scons && cd python && sudo python setup.py install
(install in system dir, not in miniconda, as root will run this code)- Replace the home page for the Poppy monitor, the ROS node will serve its server
sudo apt-get install python-pyaudio
sudo pip install flask flask-cors
ln -s ~/APEX_PLAYGROUND/ros/workstation.sh ~/catkin_ws/fuzz.sh
# Login as root as a fix to be able to connect to the LED strip (RPi's PWM pin)
ssh root@fuzz.local -X
cd /home/poppy/ros_ws/
./fuzz.sh
roslaunch apex_playground raspberry_pi.launch
cd ~/catkin_ws/fuzz.sh
./fuzz.sh
The BASH script hereabove setups ROS vairable to use fuzz.local
as the ROS master.
Then choose to start either the services/publishers OR the full experiment (services/publishers + controller) on your workstation:
roslaunch apex_playground workstation.launch
You are then able to monitor topics and call services of all nodes running on the workstation:
roslaunch apex_playground start.launch
You can also pass the following arguments:
source:=string
that will be used as a source experiment in case of time travelname:=<string>
that will be used to output log files (a pickle file inlogs/
). Be careful that this name is prefixed by the timestamp before using it as a source fileiterations:=<integer>
that will automatically stop the controller after a certain number of iteration (aka trials). If you're using a source file theniterations
must be greater than the number of iterations recorded in the source file.
For example:
roslaunch apex_playground start.launch name:=new_experiment old:=2016-11-29_14-48-12_old_experiment iterations:=6000
roscd apex_playground/logs
This command will bring you to the folder containing recored experiments, if any.