Files
RRRobot/docs/home.md
Sravan Balaji 01e7902c1f Test Insert Object Quit Option
- Add option to stop test insert object
- Remove comments from model_insertion_plugin.cpp
- Update home.md to specify root user when attaching a new terminal
2020-04-19 19:40:57 -04:00

5.2 KiB

RRRobot!

Table of Contents

Contributors

Project Team

EECS 467 W20 Course Staff

Documents

  1. Project Poster
  2. Project Proposal
  3. Final Project - Overleaf (Read-Only)

Introduction

Repository for UMICH EECS 467: Autonomous Robotics (W20) RRRobot! project.

To get started, you will need to install Docker on your system. Information on what Docker is, how to install it, and how to use it can be found in Getting Started with Docker.

Development Guide

At this point, you should have Docker Desktop, Toolbox, or Engine setup on your host system. In this section, you will find a list of the different docker-compose services available and how to run them.

Docker Compose Services

ros-dev

ros-dev is the development container for ROS. This is used to provide all the necessary dependencies for working through the ROS tutorials and creating ROS packages.

ros-turtlesim

ros-turtlesim is a container that tests whether GUI support is working. This will install the ros tutorial packages and run the turtlesim GUI with keyboard control. If X forwarding is setup correctly, you should see a window open up with a turtle on a blue background. Use the arrow keys in the container terminal to move it around and press q to quit.

ros

ros is the production container for all ROS nodes we create. This is meant to run our final code and interface with the gazebo container for simulation.

gazebo

Similarly to ros, gazebo is the production container for gazebo. This is meant to run our final simulation.

gear

The GEAR container includes the Gazebo Environment for Agile Robotics from the Agile Robotics for Industrial Automation Competition 2019.

GUI Support

If using VcXsrv for Windows to enable GUI applications, run XLaunch using config.xlaunch. This will enable the following settings:

  • Display Settings
    • Multiple Windows
    • Display Number: -1
  • Client Startup
    • Start No Client
  • Extra Settings
    • Clipboard
      • Primary Selection
    • Native OpenGL
    • Disable Access Control

The main thing to note here is that Native OpenGL is disabled and Disable Access Control is enabled. When running Gazebo GUI applications through a Docker Container in WSL, enabling Native OpenGL resulted in the following errors:

libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast
libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast

As mentioned in No libGL libraries when running Gazebo from ROS, this can be resolved by disabling No native OpenGL in the VcXsrv configuration.

Additionally, be sure to update the IP_ADDRESS variable in .env with your computer's IP Address to enable X forwarding.

Running Docker Containers

  1. Start Docker Machine (default)
    • WSL: docker-machine.exe start default
    • Other: docker-machine start default
  2. Set Docker Machine Environment
    • WSL: docker-machine.exe env
    • Other: docker-machine env
  3. Navigate to src folder
    • cd /PATH/TO/rrrobot/src
  4. Use Docker Compose to run a service (refer to docker-compose.yml or Docker Compose Services)
    • docker-compose run --rm <service_name>

Gazebo Grasping Simulation

  1. Source ROS Setup
    • source /opt/ros/melodic/setup.bash
  2. Build the drivers for the simulation
    • cd /app/rrrobot_src/src/simulation_drivers/
    • source build.sh
  3. Start ros master node
    • roscore &
  4. Run the gazebo simulator - this will bring up gazebo with a robotic arm
    • gazebo /app/rrrobot_src/world/rrrobot.world
  5. Run control and perception programs

GEAR Simulation

Instructions for working in the GEAR Simulation can be found on the GEAR page.

Tips & Tricks

  • Clear space on docker machine
    • docker system prune --volumes
  • See running containers
    • docker ps
  • Attach a new terminal to a running container
    • docker exec -it -u root <container> bash