Documentation

Table of Contents

Directory Structure

In the RRRobot folder of our repository we have the following folders.

docker_env

This contains the docker-compose.yml file and folders for each docker service described in the home page. gear is the docker image used for our final simulation.

docs

This contains the markdown files used to generate the project website pages and project documents like the poster and proposal.

src

This contains the rrrobot_ws catkin workspace for our ROS development. Inside the rrrobot_ws folder is a run_all.sh that will run the final simulation. See the GEAR page for full instructions on using this.

In rrrobot_ws/src, we have a gazebo_models and rrrobot folder.

src/rrrobot_ws/src/gazebo_models

gazebo_models, as the name implies, contains 3D models we used in our testing. These include a fanuc robot arm with gripper, paper bag, plastic bottle, pop can, etc. For our final simulation, we decided to use simple cubes to represent trash (red) and recycling (green) items to make the ur10 arm’s vacuum suction gripper work well. We also have the images that are passed to the CV model for classification in the recycling_images and trash_images folders. model_mappings.txt defines the model to use, location of image, and ground truth classification in a comma separated format.

src/rrrobot_ws/src/rrrobot

Our ROS package contains several folders.

config contains the configuration .yaml files that we use to overwrite ARIAC’s default configuration. These files remove a bunch of the parts that we don’t need and specify that we only need 1 depth camera.

include contains the header files for the names of topics that are used by our ROS nodes and the class definition for ArmRepresentation.

launch contains the launch file that we use to overwrite ARIAC’s default launch file.

msg contains the definitions for the custom ROS messages used by our nodes.

scripts contains the bash scripts we used throughout testing. These include sending the arm to the home position, publishing a test message for the arm controller to listen to, and running the modified version of the GEAR simulation environment.

src contains the source code for our ROS nodes.

test contains some ROS nodes that we created to test forward and inverse kinematics.

CMakeLists.txt is used by our build system, CMake, to build and compile our ROS package.

package.xml defines the metadata for our ROS package.

src/rrrobot_ws/world

This folder contains the world files that we use to overwrite ARIAC’s defaults.

In gear.py we have disabled all but two of the bins as we only need to classify recycling and trash.

utils

This contains config.xlaunch which is used by VcXsrv to automatically start the server with the desired settings (see home page for more information).