RRRobot/docs/documentation.md
Sravan Balaji 1490e427bd Documentation Updates
- Add page links at the top of each website page
- Add link to draft video to home.md
- Fix links that don't point to files in the docs folder to point to file in GitHub repo
- Add instructions for using run_all.sh script to gear.md
- Add documentation.md to describe file structure and what each of the files are for
2020-04-27 12:35:02 -04:00

4.5 KiB

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.

  • arm_controller_node.cpp receives a pose from rrrobot_node to pick up the object, then uses inverse kinematics to determine the joint positions that will achieve the desired end-effector pose.
  • arm_representation_node.cpp interfaces with KDL to perform inverse and forward kinematics on our ur10 robot arm model.
  • cv_model.py uses pytorch_pretrain_model.pt to classify images that it receives and send the classification to rrrobot_node.
  • depth_camera_node.cpp takes depth camera information and determines an end-effector pose for the robot arm to reach so it can pick up the object.
  • image_display.py is a test script that uses matplotlib to display images.
  • model_insertion_plugin.cpp and object_spawner_node.cpp interface with gazebo to spawn the items in the simulation so the arm can sort them.
  • rrrobot_node.cpp is the main node that handles interactions between the different 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).