Research in Action Primitive Discovery in Robotics through Parameter Variation
Setup each of the following, in order:
-
Ubuntu 16.04
-
ROS Kinetic (http://wiki.ros.org/kinetic/Installation/Ubuntu & http://wiki.ros.org/catkin/Tutorials/create_a_workspace) SKIP the line 'sudo apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential
-
Gazebo 7 (Installs with ROS installation)
-
Baxter Gazebo Simulation (http://sdk.rethinkrobotics.com/wiki/Simulator_Installation) a. Note, we are not using the
baxter.sh sim
script -
Clone the RAPDR project
git clone https://github.com/Evana13G/RAPDR_babble.git
-
Run the setup.sh script in RAPDR_babble (Only need to run once after installation)
cd RAPDR_babble && ./setup.sh
-
Build:
cd ~/catkin_ws catkin_make source devel/setup.bash
To run the code, use the following:
Each of the following should be run in a separate terminal window:
-
Launch baxter sim:
roslaunch baxter_gazebo baxter_world.launch
-
Spawn RAPDR Nodes:
roslaunch agent RAPDR.launch
-
Run an experiment:
rosservice call /experiments_srv [tab complete for args] "experiment_name: 'experiment' demo_mode: false num_discover_strike_runs: 1 num_cook_runs: 0"
Name the experiment (experiment_name), which RAPDR will use to name the results in the results directory after running. Specify if you would like a demo of the agent accomplishing its goal in the 'original' scenario (demo_mode : true), otherwise the agent will enter the 'novel' scenerio. Specify the number of runs of each type of experiment you would like to run.
-
To run a test script:
rosservice call /[test name] [tab complete for args]
Examples:
rosservice call /test_actions_srv "{}" [No Args]
rosservice call /test_action_settings_srv "{}" [No Args]
For more instructions on writing/running test nodes, see below which will redirect to the developers wiki.
[FOR DEVELOPMENT MODE] See https://github.com/Evana13G/RAPDR_babble/wiki/Developers-Instructions
The URDF models are inside the baxter_simulation package in a folder that I believe is called baxter_sim_examples/models. The URDF model for the table and the wall is called cafe_table.
- For proof of concept scenario #1, we assume the following protocol:
"left_gripper" - left gripper
"right_gripper" - right gripper
"cup" - cup
"cover" - cover
-
Many of the .py files might not be runnable. Navigate to their directories and run:
chmod +x [filename]
For example:
chmod +x brain.py