Warehouse Documentation & Docker

- Add instructions for running warehouse simulation to README
- Create new warehouse docker service based on gazebo service
- Add new warehouse Dockerfile with commands for installing GEAR
This commit is contained in:
Sravan Balaji 2020-04-12 11:51:52 -04:00
parent 30f39c7fdd
commit 60bc79aea5
3 changed files with 96 additions and 9 deletions

View File

@ -8,8 +8,8 @@
- [Docker Compose Services](#docker-compose-services)
- [GUI Support](#gui-support)
- [Running Docker Containers](#running-docker-containers)
- [Building the simulation environment](#building-the-simulation-environment)
- [Running the simulation](#running-the-simulation)
- [Warehouse Simulation](#warehouse-simulation)
- [Gazebo Grasping Simulation](#gazebo-grasping-simulation)
## Contributors
@ -100,18 +100,40 @@ Additionally, be sure to update the `IP_ADDRESS` variable in [.env](src/.env) wi
4. Use Docker Compose to run a service (refer to [docker-compose.yml](src/docker-compose.yml) or [Docker Compose Services](#docker-compose-services))
- `docker-compose run --rm <service_name>`
### Building the simulation environment
### Warehouse Simulation
1. Clone repo
- HTTPS: `git clone https://github.com/EECS-467-W20-RRRobot-Project/RRRobot.git`
- SSH: `git clone git@github.com:EECS-467-W20-RRRobot-Project/RRRobot.git`
2. Go to `RRRobot` folder
- `cd /PATH/TO/RRRobot`
3. Get submodule(s)
- `git submodule init`
4. Go to `docker_env` folder
- `cd /PATH/TO/RRRobot/docker_env`
5. Start gazebo docker container
- `docker-compose run --rm warehouse`
6. Source ROS Setup
- `source /opt/ros/melodic/setup.bash`
7. Go to warehouse folder in container
- `cd /app/rrrobot_src/warehouse`
8. Build package
- `catkin_make clean`
- `catkin_make`
- `catkin_make install`
- `source devel/setup.bash`
9. Run sample environment
- `roslaunch osrf_gear sample_environment.launch`
### 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`
### Running the simulation
1. Start ros master node
3. Start ros master node
- `roscore &`
2. Run the gazebo simulator - this will bring up gazebo with a robotic arm
4. Run the gazebo simulator - this will bring up gazebo with a robotic arm
- `gazebo /app/rrrobot_src/world/rrrobot.world`
3. Run control and perception programs
5. Run control and perception programs

View File

@ -70,3 +70,19 @@ services:
hostname: "rrrobot-env"
networks:
- ros
# Warehouse Production Service
warehouse:
# Use Dockerfile in warehouse folder
build: ./warehouse
# Mount warehouse folder on host to app folder in container
volumes:
- ../rrrobot_src:/app/rrrobot_src
# Set DISPLAY variable and network mode for GUIs
environment:
- DISPLAY=${IP_ADDRESS}:0.0
# Set working directory in container to app folder
# working_dir: /home/rrrobot
hostname: "rrrobot-env"
networks:
- ros

View File

@ -0,0 +1,49 @@
# Warehouse Dockerfile
# Use official image for Gazebo 9.x
FROM gazebo:gzserver9
RUN apt-get update
# Install packages required for developing with gazebo
RUN apt-get install -y libgazebo9-dev
RUN sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
RUN apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
RUN apt-get install -y curl
RUN curl -sSL 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0xC1CF6E31E6BADE8868B172B4F42ED6FBAB17C654' | apt-key add -
RUN apt-get update
# Install packages required for developing with ROS
RUN apt-get install -y ros-melodic-desktop-full
RUN echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
RUN apt install -y python-rosdep
RUN rosdep init
RUN rosdep update
# user id 1000 should be the same as the host user, so that you can access files
# from inside the docker container and also on the host
RUN useradd -u 1000 rrrobot
# set to no password
RUN passwd --delete rrrobot
# add to sudo users
RUN usermod -aG sudo rrrobot
# set the entry point
WORKDIR /home/rrrobot
RUN chown -R rrrobot:rrrobot /home/rrrobot
# Initialize the environment in .bashrc
RUN echo "source /opt/ros/melodic/setup.bash" >> /home/rrrobot/.bashrc
RUN echo "source /usr/share/gazebo/setup.sh" >> /home/rrrobot/.bashrc
RUN echo "export GAZEBO_MODEL_PATH=/home/rrrobot/rrrobot_src/src/gazebo_models:\$GAZEBO_MODEL_PATH" >> /home/rrrobot/.bashrc
RUN echo "export GAZEBO_PLUGIN_PATH=/home/rrrobot/rrrobot_src/lib:\$GAZEBO_PLUGIN_PATH" >> /home/rrrobot/.bashrc
USER rrrobot
RUN sudo apt-get update && \
sudo apt-get install -y \
wget
RUN sudo sh -c 'echo "deb http://packages.osrfoundation.org/gazebo/ubuntu-stable bionic main" > /etc/apt/sources.list.d/gazebo-stable.list' && \
wget http://packages.osrfoundation.org/gazebo.key -O - | sudo apt-key add - && \
apt-get update && \
apt-get install -y \
ariac3
CMD ["/bin/bash"]