All Projects → ct2034 → dockeROS

ct2034 / dockeROS

Licence: BSD-3-Clause license
Simply running ros nodes in docker containers on remote robots.

Programming Languages

python
139335 projects - #7 most used programming language
shell
77523 projects
Dockerfile
14818 projects
CMake
9771 projects

Projects that are alternatives of or similar to dockeROS

microstrain inertial
ROS driver for all of MicroStrain's current G and C series products. To learn more visit
Stars: ✭ 44 (-38.03%)
Mutual labels:  ros
vicon
Code for working with the Vicon tracking system
Stars: ✭ 20 (-71.83%)
Mutual labels:  ros
drl grasping
Deep Reinforcement Learning for Robotic Grasping from Octrees
Stars: ✭ 160 (+125.35%)
Mutual labels:  ros
teraranger
Ros nodes for single TeraRanger sensors
Stars: ✭ 19 (-73.24%)
Mutual labels:  ros
robotiq 2finger grippers
ROS packages enabling the control, visualization and simulation of the Robotiq 2 Fingers Adaptive Grippers model version C3
Stars: ✭ 59 (-16.9%)
Mutual labels:  ros
vapor master
high availability ros master
Stars: ✭ 17 (-76.06%)
Mutual labels:  ros
tensorflow ros cpp
Catkin-friendly C++ bindings for tensorflow.
Stars: ✭ 60 (-15.49%)
Mutual labels:  ros
magni robot
Starting point for Magni Robots. Includes launch files and configuration.
Stars: ✭ 33 (-53.52%)
Mutual labels:  ros
riptide setup
The software packages which power The OSU Underwater Robotics Team's AUV.
Stars: ✭ 31 (-56.34%)
Mutual labels:  ros
arm
Robot arm simulation using Gazebo, ROS Control and MoveIt.
Stars: ✭ 79 (+11.27%)
Mutual labels:  ros
py trees ros
ROS extensions and implementations for py_trees
Stars: ✭ 80 (+12.68%)
Mutual labels:  ros
roboclaw ros
ros for roboclaw
Stars: ✭ 38 (-46.48%)
Mutual labels:  ros
aws-robomaker-hospital-world
This Gazebo world is well suited for organizations who are building and testing robot applications in hospitals.
Stars: ✭ 114 (+60.56%)
Mutual labels:  ros
mycobot ros
A ros package for myCobot.
Stars: ✭ 76 (+7.04%)
Mutual labels:  ros
tr1 hardware interface
Hardware interface for ros_control for the TR1.
Stars: ✭ 29 (-59.15%)
Mutual labels:  ros
double laser mapping location
ros1 gazebo cartographer amcl
Stars: ✭ 41 (-42.25%)
Mutual labels:  ros
DDPG
End to End Mobile Robot Navigation using DDPG (Continuous Control with Deep Reinforcement Learning) based on Tensorflow + Gazebo
Stars: ✭ 41 (-42.25%)
Mutual labels:  ros
roskinectic src
This ROS kinectic workspace src folder, which was created on Ubuntu 16.04. Here I worked on ROS1 projects like 2d & 3D SLAM, Motion Planning, SWARM of drone, RL based drone, Surveilling Robot etc.
Stars: ✭ 44 (-38.03%)
Mutual labels:  ros
ackermann-drive-teleop
ROS keyboard and joystick teleoperation scripts for robots with ackermann steering
Stars: ✭ 33 (-53.52%)
Mutual labels:  ros
scikit-robot
A Flexible Framework for Robot Control in Python
Stars: ✭ 70 (-1.41%)
Mutual labels:  ros

dockeROS

Simply running ROS nodes in docker containers on robots.

PRs Welcome t: tavis_status bf: Build Status bf_doc: Build Status cc: Maintainability

Idea

This is supposed to deliver tools to use the methods of edge computing for ROS enabled robots. These methods include fast and seamless deployment of software to edge devices (i.e. robots, and others).

The dockeros library is designed to create and update docker images for ros packages. There is a CLI to use these capabilities in your development lifecycle that makes use of these tools in a client-server structure.

Media

Video

video

Presentation at ROS Industrial Conference 2018

Podcast

podcast

Podcast with Ricardo Tellez

Prerequesits

On your PC (the Server)

The python packages required by the server can be installed via pip install -r requirements.txt. To install docker, you can use this.

Optional: Registry

Without a registry, you will need to build the images on the robot they should run on. If you want to build them in a central place (the server), you need to run a docker registry on that server: docker run -d -p 5000:5000 --name registry registry. You can also use the unsafe_registry in this repository. It will allow CORS (which is why it is called unsafe).

On the Robot (Client)

On the robot you need to have a docker deamon running with an accesible API. To install docker, you can use this. A good way to do this on systems running systemd is can be found here. We strongly recommend to use TLS for your deamons socket

The CLI

usage: dockeros [-h] [-e | -i HOST:PORT] [-f DOCKERFILE] [-n]
                {build,run,stop,push} ...

Simply running ros nodes in docker containers on remote robots.

positional arguments:
  {build,run,stop,push}
                        build: Creates an image that can run roscommand
                        run: Runs an image with your_roscommand (and builds it first)
                        stop: Stops image that runs that command
                        push: Push image to predefined registry
  roscommand            Everything after the subcommand will be interpreted as the ros command to be run in your image

optional arguments:
  -h, --help            show this help message and exit
  -e, --env             use the existing docker environment (see https://dockr.ly/2zMPc17 for details)
  -i HOST:PORT, --ip HOST:PORT, --host HOST:PORT
                        set the host (robot) to deploy image to
  -f DOCKERFILE, --dockerfile DOCKERFILE
                        use a custom Dockerfile
  -n, --no-build        dont (re-)build the image before running

screencast of dockeros run

Contribution

All contributions are welcome. Especially important is at the moment:

Testing

Please open issues for all problems you encounter. Please make sure, that your problem is reproducible though: Add the rosdistro, package, exact command and Dockerfile (if applicable) that you are using

Troubleshooting

Registry with http

When you get this error: {"errorDetail":{"message":"Get https://YOUR_REGISTRY:5000/v2/: http: server gave HTTP response to HTTPS client"},"error":"Get https://YOUR_REGISTRY:5000/v2/: http: server gave HTTP response to HTTPS client"} while trying to push:

Add the server to your unsafe registries in daemon.json (default at /etc/docker/daemon.json )

"insecure-registries":["YOUR_REGISTRY:5000"]

and restart your docker deamon.

sudo systemctl restart docker

source

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].