Giter Site home page Giter Site logo

ros_docker's Introduction

ROS Docker files

ROS Noetic images: a containerized version of various ROS nodes.

This repository provides Dockerfile files to run ROS inside Docker containers:

Base ROS Noetic image

$ docker pull gramaziokohler/ros-noetic-base

Contains ROS and tools to use it over websockets with rosbridge-suite.

ROS Noetic + MoveIt!

$ docker pull gramaziokohler/ros-noetic-moveit

Contains MoveIt! configured with the packages for ABB, UR and Franke Emika (Panda) robots.

X11 NoVNC display container

$ docker pull gramaziokohler/novnc

Display X11 applications (e.g. RViz) from other containers directly in the browser.

How to use

First, make sure Docker is installed on your system.

Building the docker images

These images are built and published by Github Actions on every push. If a push includes a tag, the images will also be tagged with it.

Using the containers

  1. Copy & Paste the following content into a docker-compose.yml file in your computer:

    version: '2'
    services:
      moveit-demo:
        image: gramaziokohler/ros-noetic-moveit
        container_name: moveit-demo
        environment:
          - ROS_HOSTNAME=moveit-demo
          - ROS_MASTER_URI=http://ros-core:11311
        depends_on:
          - ros-core
        command:
          - roslaunch
          - --wait
          - panda_moveit_config
          - demo.launch
          - use_rviz:=false
    
      ros-core:
        image: gramaziokohler/ros-noetic-moveit
        container_name: ros-core
        ports:
          - "11311:11311"
        command:
          - roscore
    
      ros-bridge:
        image: gramaziokohler/ros-noetic-moveit
        container_name: ros-bridge
        environment:
          - "ROS_HOSTNAME=ros-bridge"
          - "ROS_MASTER_URI=http://ros-core:11311"
        ports:
          - "9090:9090"
        depends_on:
          - ros-core
        command:
          - roslaunch
          - --wait
          - rosbridge_server
          - rosbridge_websocket.launch
    
      ros-fileserver:
        image: gramaziokohler/ros-noetic-moveit
        container_name: ros-fileserver
        environment:
          - ROS_HOSTNAME=ros-fileserver
          - ROS_MASTER_URI=http://ros-core:11311
        depends_on:
          - ros-core
        command:
          - roslaunch
          - --wait
          - file_server
          - file_server.launch
  2. Start it all up with:

    $ docker-compose up -d
    
  3. MoveIt is now running headless on our container! Check more examples for accessing RVIZ and other options.

More examples

Check the examples folder for several examples of docker-compose files.

Notes

These images are maintained by Gramazio Kohler Research @gramaziokohler

They are used by the COMPAS FAB framework to provide a containerized ROS backend for planning and execution.

Credits

These docker images are only possible thanks to the huge contribution of the ROS and ROS-I community. Besides ROS itself, the following open source projects are built and included in them:

ros_docker's People

Contributors

claimhf avatar feihln avatar gonzalocasas avatar nizartaha avatar tetov avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ros_docker's Issues

Better shell experience inside containers

I've added two lines to my forks Dockerfiles that makes life a lot easier it's necessary to run a shell inside one of the ros containers.

echo "set +e" >> /ros_entrypoint.sh \
&& echo "source /ros_entrypoint.sh" >> /root/.bashrc

It gets annoying to remember to source /ros_entrypoint.sh and what's even more annyoing is having shell exit whenever a command returns a non zero.

See example here.

why not include docker-compose file?

why not provide docker-compose.yaml in the README.md as integral part of the repo?

I realize this repo is more of a dependency to other repos, perhaps providing a cross-reference is relevant? That goes visa-versa, IMO it could be more explicit that compas_fab is using these docker files ( perhaps linking as a submodule isn't a bad idea?

black viewport in RViz on noVNC

When running with the GUI option to have RViz in the browser, I have a black window in the 3d Viewport, can see and interact with the rest of the GUI, just nothing 3D-related. Had this problem on VMs in Parallels and using the LIBGL_ALWAYS_SOFTWARE=1 env variable always solved it. Not this time, cant seem to find a workaround. Wondering if you usually use that GUI mode and if so, if it's a common occurence?

I have tested a different image that also has ROS + RViz and noVNC and it works fine but is based on Ubuntu 20.04 and LXDE (https://hub.docker.com/r/tiryoh/ros-desktop-vnc), will do further testing to compare what seems to let it work, have seen that problem already?

I'm on a Macbook Pro with Intel Graphics, MacOS 12.5.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.