Setup each of the following, in order:
-
Ubuntu 16.04
-
ROS Kinetic (http://wiki.ros.org/kinetic/Installation/Ubuntu & http://wiki.ros.org/ROS/Tutorials)
-
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 -
PyperPlan (https://bitbucket.org/malte/pyperplan) a. Manually download the code to the src directory and rename it 'pyperplan'
-
cpDetect (https://github.com/choderalab/cpdetect.git)
-
Clone the RAPDR project
** At this point, the file heirarchy should take the following form:
catkin_ws/
catkin_ws/src/
catkin_ws/src/RAPDR/
catkin_ws/src/*all baxter gazebo packages*
catkin_ws/src/pyperplan/
catkin_ws/src/cpdetect/
-
Build:
cd ~/catkin_ws catkin_make source devel/setup.bash
Each of the following should be run in a separate terminal window:
-
Launch baxter sim.
roslaunch baxter_gazebo baxter_world.launch
-
Spawn the environment elements (table, buttons, object)
rosrun environment initialize_environment.py
-
Spawn the robot action server nodes (each in a seperate terminal window):
-
Service for obtaining object
rosrun agent obtain_object.py
-
Service for pressing button
rosrun agent press_button.py
-
-
Spawn data conversion node (converts raw data into predicate form)
rosrun environment scenario_data.py
-
Spawn the PDDL nodes (each in a seperate terminal window):
-
Service for generating pddl plans
rosrun pddl plan_generator.py
-
Service for executing pddl plans
rosrun pddl plan_executor.py
-
-
Spawn partial plan execution node (for executing segmentations)
rosrun agent partial_plan_executor.py
-
Spawn action primitive variation node
rosrun action_primitive_variation APV_server.py
-
Run the agent brain (creepy). All configs are set here.
rosrun agent brain.py
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 \n "right_gripper" - right gripper \n "block" - object to obtain \n "left_button" - left button \n "right_button" - right button \n
-
Many of the .py files might not be runnable. Navigate to their directories and run:
chmod +x [filename]
For example:
chmod +x brain.py