diff --git a/scripts/docker/gazebo/gzserver/Dockerfile b/scripts/docker/gazebo/gzserver/Dockerfile deleted file mode 100644 index a049d4b55..000000000 --- a/scripts/docker/gazebo/gzserver/Dockerfile +++ /dev/null @@ -1,22 +0,0 @@ -FROM ubuntu:xenial -MAINTAINER Aitor Martínez Fernández+aitor-martinez.fernandez@gmail.ocm - -# setup keys -RUN apt-key adv --keyserver ha.pool.sks-keyservers.net --recv-keys D2486D2DD83DB69272AFE98867170598AF249743 - -# setup sources.list -RUN echo "deb http://packages.osrfoundation.org/gazebo/ubuntu-stable xenial main" > /etc/apt/sources.list.d/gazebo-latest.list - -# install gazebo packages -RUN apt-get update && apt-get install -q -y \ - gazebo7\ - && rm -rf /var/lib/apt/lists/* - -# setup environment -EXPOSE 11345 - -# setup entrypoint -COPY ./gzserver_entrypoint.sh / - -ENTRYPOINT ["/gzserver_entrypoint.sh"] -CMD ["gzserver"] diff --git a/scripts/docker/gazebo/gzserver/gzserver_entrypoint.sh b/scripts/docker/gazebo/gzserver/gzserver_entrypoint.sh deleted file mode 100644 index 3fd666867..000000000 --- a/scripts/docker/gazebo/gzserver/gzserver_entrypoint.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/bash -set -e - -# setup gazebo environment -source "/usr/share/gazebo/setup.sh" -exec "$@" diff --git a/scripts/docker/jderobot/base/Dockerfile b/scripts/docker/jderobot/base/Dockerfile deleted file mode 100644 index 8cda91f24..000000000 --- a/scripts/docker/jderobot/base/Dockerfile +++ /dev/null @@ -1,55 +0,0 @@ -FROM jderobot/gzserver - -MAINTAINER Aitor Martinez+aitor.martinez.fernandez@gmail.com - -LABEL Usage.run="docker run -itP --rm jderobot/jderobot:base world [world_name]" -LABEL Usage.listWorlds="docker run --rm jderobot/jderobot:base lsworld" -LABEL Usage.enter="docker run -itP --rm jderobot/jderobot:base" - - -RUN sh -c 'echo deb http://zeroc.com/download/apt/ubuntu16.04 stable main > /etc/apt/sources.list.d/zeroc.list' -RUN apt-key adv --keyserver keyserver.ubuntu.com --recv 5E6DA83306132997 - -RUN sh -c 'echo "deb http://jderobot.org/apt xenial main" > /etc/apt/sources.list.d/jderobot.list' - -RUN apt-key adv --keyserver ha.pool.sks-keyservers.net --recv-keys B0E7F58E82C8091DF945A0453DA08892EE69A25C - - -# JdeRobot -RUN apt-get update && apt-get -y install \ - jderobot \ - xvfb \ - && rm -rf /var/lib/apt/lists/* - -# setup environment JdeRobot -EXPOSE 8990 -EXPOSE 8991 -EXPOSE 8992 -EXPOSE 8993 -EXPOSE 8994 -EXPOSE 8995 -EXPOSE 8996 -EXPOSE 8997 -EXPOSE 8998 -EXPOSE 8999 -EXPOSE 9000 -EXPOSE 9800 -EXPOSE 9900 -EXPOSE 9989 -EXPOSE 9990 -EXPOSE 9991 -EXPOSE 9992 -EXPOSE 9993 -EXPOSE 9994 -EXPOSE 9995 -EXPOSE 9996 -EXPOSE 9997 -EXPOSE 9998 -EXPOSE 9999 - -COPY ./base_entrypoint.sh / - -ENTRYPOINT ["/base_entrypoint.sh"] - -CMD ["bash"] - diff --git a/scripts/docker/jderobot/base/README.md b/scripts/docker/jderobot/base/README.md deleted file mode 100644 index 86814dd20..000000000 --- a/scripts/docker/jderobot/base/README.md +++ /dev/null @@ -1,26 +0,0 @@ -JdeRobot Base -======== - -Docker image with gazebo 7, Ice 3.6 and all gazebo plugins of JdeRobot installed - -# Use - -There are Three ways to use it: - -* run without arguments: open a bash to access to docker. - -```sh -$ docker run -tiP --rm jderobot/jderobot:base -``` - -* See all posibles worlds: - -```sh -$ docker run -tiP --rm jderobot/jderobot:base lsworld -``` - -* Run a world: - -```sh -$ docker run -tiP --rm jderobot/jderobot:base world world_name -``` diff --git a/scripts/docker/jderobot/base/base_entrypoint.sh b/scripts/docker/jderobot/base/base_entrypoint.sh deleted file mode 100755 index 0f8313922..000000000 --- a/scripts/docker/jderobot/base/base_entrypoint.sh +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/bash -set -e - -source /usr/local/share/jderobot/gazebo/gazebo-setup.sh - -if [ "$1" = 'world' ]; then - - Xvfb -shmem -screen 0 1280x1024x24 & - - DISPLAY=:0 gzserver $2 - -elif [ "$1" = 'lsworld' ]; then - - ls /usr/local/share/jderobot/gazebo/worlds - -else - exec "$@" -fi - - diff --git a/scripts/docker/jderobot/base/installJderobot.sh b/scripts/docker/jderobot/base/installJderobot.sh deleted file mode 100755 index 827a8f14d..000000000 --- a/scripts/docker/jderobot/base/installJderobot.sh +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/bash - -mkdir git - -cd git - -git clone -b docker2 https://github.com/aitormf/JdeRobot.git - -cd JdeRobot - -mkdir build - -cd build - -cmake .. -Dbuild-default=OFF -Dbuild_gazeboserver=ON -Dbuild_car=ON -Dbuild_turtlebot=ON -Dbuild_flyingKinect2=ON -Dbuild_pioneer=ON -Dbuild_quadrotor2=ON -Dbuild_f1=ON - -make - -make install - -cat /usr/local/share/jderobot/gazebo/gazebo-setup.sh >> ~/.bashrc diff --git a/scripts/docker/jderobot/gzweb/Dockerfile b/scripts/docker/jderobot/gzweb/Dockerfile deleted file mode 100644 index 385ec7e79..000000000 --- a/scripts/docker/jderobot/gzweb/Dockerfile +++ /dev/null @@ -1,44 +0,0 @@ -FROM jderobot/jderobot:base - -MAINTAINER Aitor Martinez+aitor.martinez.fernandez@gmail.com - -LABEL Usage.run="docker run -itP --rm -p 7681:7681 jderobot/jderobot:gzweb world [world_name]" -LABEL Usage.listWorlds="docker run --rm jderobot/jderobot:gzweb lsworld" -LABEL Usage.enter="docker run --rm jderobot/jderobot:gzweb" - -# install packages gzweb dependences -RUN apt-get update && apt-get install -q -y \ - build-essential \ - cmake \ - libgazebo7-dev \ - imagemagick \ - libboost-dev \ - libgts-dev \ - libjansson-dev \ - libtinyxml-dev \ - mercurial \ - nodejs \ - nodejs-legacy \ - npm \ - pkg-config \ - psmisc \ - && rm -rf /var/lib/apt/lists/* - -# clone gzweb -RUN hg clone https://bitbucket.org/aitormf/gzweb ~/gzweb - -# build gzweb -COPY ./installGzweb.sh / -RUN /installGzweb.sh - - -# setup environment GzWeb -EXPOSE 8080 -EXPOSE 7681 - -COPY ./gzweb_entrypoint.sh / - -ENTRYPOINT ["/gzweb_entrypoint.sh"] - -CMD ["bash"] - diff --git a/scripts/docker/jderobot/gzweb/README.md b/scripts/docker/jderobot/gzweb/README.md deleted file mode 100644 index 1cff5032f..000000000 --- a/scripts/docker/jderobot/gzweb/README.md +++ /dev/null @@ -1,28 +0,0 @@ -JdeRobot GzWeb -======== - -Docker image with gazebo 7, Ice 3.6, gzweb as gazebo GUI and all gazebo plugins of JdeRobot installed - -# Use - -There are Three ways to use it: - -* run without arguments: open a bash to access to docker. - -```sh -$ docker run -tiP --rm jderobot/jderobot:gzweb -``` - -* See all posibles worlds: - -```sh -$ docker run -tiP --rm jderobot/jderobot:gzweb lsworld -``` - -* Run a world: - -```sh -$ docker run -tiP --rm -p 7681:7681 jderobot/jderobot:gzweb world world_name -``` - -[![Introrob_py + GzWeb in Windows](https://img.youtube.com/vi/YoJYahFtEyg/0.jpg)](https://www.youtube.com/watch?v=YoJYahFtEyg) diff --git a/scripts/docker/jderobot/gzweb/gzweb_entrypoint.sh b/scripts/docker/jderobot/gzweb/gzweb_entrypoint.sh deleted file mode 100755 index f80ae2ab0..000000000 --- a/scripts/docker/jderobot/gzweb/gzweb_entrypoint.sh +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/bash -set -e - -source /usr/local/share/jderobot/gazebo/gazebo-setup.sh - -if [ "$1" = 'world' ]; then - - Xvfb -shmem -screen 0 1280x1024x24 & - - /root/gzweb/start_gzweb.sh && DISPLAY=:0 gzserver $2 - -elif [ "$1" = 'lsworld' ]; then - - ls /usr/local/share/jderobot/gazebo/worlds - -else - exec "$@" -fi diff --git a/scripts/docker/jderobot/oficial/Dockerfile b/scripts/docker/jderobot/oficial/Dockerfile new file mode 100644 index 000000000..1d46d0cd8 --- /dev/null +++ b/scripts/docker/jderobot/oficial/Dockerfile @@ -0,0 +1,144 @@ +FROM ubuntu:xenial + + +MAINTAINER Aitor Martínez Fernández+aitor-martinez.fernandez@gmail.com + +########## USAGE ############## + +LABEL Usage.run="docker run -itP --rm -p 7681:7681 jderobot/jderobot" +LABEL Usage.cameraserver="docker run -itP --rm jderobot/jderobot video [video_name]" +LABEL Usage.listVideos="docker run --rm jderobot/jderobot lsvideo" + + + +########## setup Repositories ############## + +## Gazebo ## +RUN apt-key adv --keyserver ha.pool.sks-keyservers.net --recv-keys D2486D2DD83DB69272AFE98867170598AF249743 + +RUN echo "deb http://packages.osrfoundation.org/gazebo/ubuntu-stable xenial main" > /etc/apt/sources.list.d/gazebo-latest.list + +## ZeroC ## +RUN sh -c 'echo deb http://zeroc.com/download/apt/ubuntu16.04 stable main > /etc/apt/sources.list.d/zeroc.list' + +RUN apt-key adv --keyserver keyserver.ubuntu.com --recv 5E6DA83306132997 + + +## JdeRobot ## +RUN sh -c 'echo "deb http://jderobot.org/apt xenial main" > /etc/apt/sources.list.d/jderobot.list' + +RUN apt-key adv --keyserver ha.pool.sks-keyservers.net --recv-keys B0E7F58E82C8091DF945A0453DA08892EE69A25C + + +########## Install JdeRobot ############## +RUN apt-get update && apt-get -y install \ + jderobot \ + xvfb \ + nano \ + wget \ + && rm -rf /var/lib/apt/lists/* + + + +####### Install gzweb dependences ######## +RUN apt-get update && apt-get install -q -y \ + build-essential \ + cmake \ + libgazebo7-dev \ + imagemagick \ + libboost-dev \ + libgts-dev \ + libjansson-dev \ + libtinyxml-dev \ + mercurial \ + nodejs \ + nodejs-legacy \ + npm \ + pkg-config \ + psmisc \ + && rm -rf /var/lib/apt/lists/* + + +####### clone gzweb ####### +RUN hg clone https://bitbucket.org/aitormf/gzweb ~/gzweb + +####### build gzweb ####### +COPY ./installGzweb.sh / +RUN /installGzweb.sh + + + + +####### setup environment JdeRobot ####### +EXPOSE 8990 +EXPOSE 8991 +EXPOSE 8992 +EXPOSE 8993 +EXPOSE 8994 +EXPOSE 8995 +EXPOSE 8996 +EXPOSE 8997 +EXPOSE 8998 +EXPOSE 8999 +EXPOSE 9000 +EXPOSE 9001 +EXPOSE 9800 +EXPOSE 9900 +EXPOSE 9989 +EXPOSE 9990 +EXPOSE 9991 +EXPOSE 9992 +EXPOSE 9993 +EXPOSE 9994 +EXPOSE 9995 +EXPOSE 9996 +EXPOSE 9997 +EXPOSE 9998 +EXPOSE 9999 + +####### setup environment GzWeb ####### +EXPOSE 8080 +EXPOSE 7681 + +####### WebSockets for kobukiviewerjs ####### + +EXPOSE 7777 +EXPOSE 11000 +EXPOSE 11001 + + + +########## Configurations for Teaching Robotics ############## +COPY cfg /cfg + +COPY bin /usr/bin + +RUN mkdir /videos + +RUN cd /videos && \ + wget http://jderobot.org/store/amartinflorido/uploads/curso/pelota_roja.avi + +RUN cd /videos && \ + wget http://jderobot.org/store/amartinflorido/uploads/curso/pelotas_roja_azul.avi + +RUN cd /videos && \ + wget http://jderobot.org/store/amartinflorido/uploads/curso/drone1.mp4 + +RUN cd /videos && \ + wget http://jderobot.org/store/amartinflorido/uploads/curso/drone2.mp4 + +COPY ./turtlebotplugin.cfg /usr/local/share/jderobot/conf + + + + +########## ENTRYPOINT ############## +COPY ./jderobot_entrypoint.sh / + +ENTRYPOINT ["/jderobot_entrypoint.sh"] + +CMD ["bash"] + + + + diff --git a/scripts/docker/jderobot/oficial/README.md b/scripts/docker/jderobot/oficial/README.md new file mode 100644 index 000000000..eeae1a45e --- /dev/null +++ b/scripts/docker/jderobot/oficial/README.md @@ -0,0 +1,43 @@ +JdeRobot Oficial Image +======== + +This is the official Docker image of [JdeRobot project](http://jderobot.org), a software framework for developing applications in robotics, computer vision. + +It contains all the necessary components to be used with [Teaching Robotics](http://jderobot.org/Teaching_robotics_with_JdeRobot): +* JdeRobot package installed +* Gzweb prepare to use +* Videos for be used with cameraserver component +* Nano TextEditor installed ... + +# Usage +* Download and run: +```sh +docker run -tiP --rm -p 7681:7681 jderobot/jderobot +``` +* Cameraserver with video: +```sh +docker run -tiP --rm -p 9000:9000 jderobot/jderobot video [video_name] +``` +* Show all posibles videos: +```sh +docker run -tiP --rm -p 9000:9000 jderobot/jderobot lsvideos +``` +* Run a world with gazebo: +```sh +docker run -tiP --rm -p 7681:7681 jderobot/jderobot +rungzserver [world_name] +# After seeing the traces of the plugin +rungzweb +``` + + +# Notes + See all mapped ports: +* linux: +```sh +docker ps | tail -n 1 | perl -lae '$,="\n";foreach(@F){/tcp,?$/&&push(@x,$_)};print(@x)' +``` +* Windows: you need to use Kitematic + + +[![Introrob_py + GzWeb in Windows](https://img.youtube.com/vi/YoJYahFtEyg/0.jpg)](https://www.youtube.com/watch?v=YoJYahFtEyg) diff --git a/scripts/docker/jderobot/oficial/bin/kobukiviewerjs b/scripts/docker/jderobot/oficial/bin/kobukiviewerjs new file mode 100755 index 000000000..a38691aae --- /dev/null +++ b/scripts/docker/jderobot/oficial/bin/kobukiviewerjs @@ -0,0 +1,7 @@ +#!/bin/bash + +wd=$(pwd) +cd /usr/local/share/jderobot/webtools/kobukiviewerjs/ +nodejs run.js & + +cd $wd diff --git a/scripts/docker/jderobot/oficial/bin/lsworlds b/scripts/docker/jderobot/oficial/bin/lsworlds new file mode 100755 index 000000000..2292e166f --- /dev/null +++ b/scripts/docker/jderobot/oficial/bin/lsworlds @@ -0,0 +1,3 @@ +#!/bin/bash + +ls /usr/local/share/jderobot/gazebo/worlds diff --git a/scripts/docker/jderobot/oficial/bin/rungzserver b/scripts/docker/jderobot/oficial/bin/rungzserver new file mode 100755 index 000000000..15361a06d --- /dev/null +++ b/scripts/docker/jderobot/oficial/bin/rungzserver @@ -0,0 +1,7 @@ +#!/bin/bash + +source /usr/local/share/jderobot/gazebo/gazebo-setup.sh + +Xvfb -shmem -screen 0 1280x1024x24 & + +DISPLAY=:0 gzserver $1 & diff --git a/scripts/docker/jderobot/oficial/bin/rungzweb b/scripts/docker/jderobot/oficial/bin/rungzweb new file mode 100755 index 000000000..202796da0 --- /dev/null +++ b/scripts/docker/jderobot/oficial/bin/rungzweb @@ -0,0 +1,3 @@ +#!/bin/bash + +/root/gzweb/start_gzweb.sh diff --git a/scripts/docker/jderobot/oficial/cfg/drone1 b/scripts/docker/jderobot/oficial/cfg/drone1 new file mode 100644 index 000000000..7a6a18cca --- /dev/null +++ b/scripts/docker/jderobot/oficial/cfg/drone1 @@ -0,0 +1,22 @@ + +CameraSrv.DefaultMode=1 +CameraSrv.TopicManager=IceStorm/TopicManager:default -t 5000 -p 10000 + +#General Config +CameraSrv.Endpoints=default -h 0.0.0.0 -p 9000 +CameraSrv.NCameras=1 +CameraSrv.Camera.0.Name=cameraA +#0 corresponds to /dev/video0, 1 to /dev/video1, and so on... +CameraSrv.Camera.0.Uri = /videos/drone1.mp4 +#CameraSrv.Camera.0.Uri=0 +CameraSrv.Camera.0.FramerateN=25 +CameraSrv.Camera.0.FramerateD=1 +CameraSrv.Camera.0.Format=RGB8 +CameraSrv.Camera.0.ImageWidth=640 +CameraSrv.Camera.0.ImageHeight=480 + +# If you want a mirror image, set to 1 +CameraSrv.Camera.0.Mirror=1 + +NamingService.Enabled=0 +NamingService.Proxy=NamingServiceJdeRobot:default -h 0.0.0.0 -p 10000 diff --git a/scripts/docker/jderobot/oficial/cfg/drone2 b/scripts/docker/jderobot/oficial/cfg/drone2 new file mode 100644 index 000000000..6b8886976 --- /dev/null +++ b/scripts/docker/jderobot/oficial/cfg/drone2 @@ -0,0 +1,22 @@ + +CameraSrv.DefaultMode=1 +CameraSrv.TopicManager=IceStorm/TopicManager:default -t 5000 -p 10000 + +#General Config +CameraSrv.Endpoints=default -h 0.0.0.0 -p 9000 +CameraSrv.NCameras=1 +CameraSrv.Camera.0.Name=cameraA +#0 corresponds to /dev/video0, 1 to /dev/video1, and so on... +CameraSrv.Camera.0.Uri = /videos/drone2.mp4 +#CameraSrv.Camera.0.Uri=0 +CameraSrv.Camera.0.FramerateN=25 +CameraSrv.Camera.0.FramerateD=1 +CameraSrv.Camera.0.Format=RGB8 +CameraSrv.Camera.0.ImageWidth=640 +CameraSrv.Camera.0.ImageHeight=480 + +# If you want a mirror image, set to 1 +CameraSrv.Camera.0.Mirror=1 + +NamingService.Enabled=0 +NamingService.Proxy=NamingServiceJdeRobot:default -h 0.0.0.0 -p 10000 diff --git a/scripts/docker/jderobot/oficial/cfg/pelota_roja b/scripts/docker/jderobot/oficial/cfg/pelota_roja new file mode 100644 index 000000000..c07e64f08 --- /dev/null +++ b/scripts/docker/jderobot/oficial/cfg/pelota_roja @@ -0,0 +1,22 @@ + +CameraSrv.DefaultMode=1 +CameraSrv.TopicManager=IceStorm/TopicManager:default -t 5000 -p 10000 + +#General Config +CameraSrv.Endpoints=default -h 0.0.0.0 -p 9000 +CameraSrv.NCameras=1 +CameraSrv.Camera.0.Name=cameraA +#0 corresponds to /dev/video0, 1 to /dev/video1, and so on... +CameraSrv.Camera.0.Uri = /videos/pelota_roja.avi +#CameraSrv.Camera.0.Uri=0 +CameraSrv.Camera.0.FramerateN=25 +CameraSrv.Camera.0.FramerateD=1 +CameraSrv.Camera.0.Format=RGB8 +CameraSrv.Camera.0.ImageWidth=640 +CameraSrv.Camera.0.ImageHeight=480 + +# If you want a mirror image, set to 1 +CameraSrv.Camera.0.Mirror=1 + +NamingService.Enabled=0 +NamingService.Proxy=NamingServiceJdeRobot:default -h 0.0.0.0 -p 10000 diff --git a/scripts/docker/jderobot/oficial/cfg/pelotas_roja_azul b/scripts/docker/jderobot/oficial/cfg/pelotas_roja_azul new file mode 100644 index 000000000..62f4b88b9 --- /dev/null +++ b/scripts/docker/jderobot/oficial/cfg/pelotas_roja_azul @@ -0,0 +1,22 @@ + +CameraSrv.DefaultMode=1 +CameraSrv.TopicManager=IceStorm/TopicManager:default -t 5000 -p 10000 + +#General Config +CameraSrv.Endpoints=default -h 0.0.0.0 -p 9000 +CameraSrv.NCameras=1 +CameraSrv.Camera.0.Name=cameraA +#0 corresponds to /dev/video0, 1 to /dev/video1, and so on... +CameraSrv.Camera.0.Uri = /videos/pelotas_roja_azul.avi +#CameraSrv.Camera.0.Uri=0 +CameraSrv.Camera.0.FramerateN=25 +CameraSrv.Camera.0.FramerateD=1 +CameraSrv.Camera.0.Format=RGB8 +CameraSrv.Camera.0.ImageWidth=640 +CameraSrv.Camera.0.ImageHeight=480 + +# If you want a mirror image, set to 1 +CameraSrv.Camera.0.Mirror=1 + +NamingService.Enabled=0 +NamingService.Proxy=NamingServiceJdeRobot:default -h 0.0.0.0 -p 10000 diff --git a/scripts/docker/jderobot/gzweb/installGzweb.sh b/scripts/docker/jderobot/oficial/installGzweb.sh similarity index 100% rename from scripts/docker/jderobot/gzweb/installGzweb.sh rename to scripts/docker/jderobot/oficial/installGzweb.sh diff --git a/scripts/docker/jderobot/oficial/jderobot_entrypoint.sh b/scripts/docker/jderobot/oficial/jderobot_entrypoint.sh new file mode 100755 index 000000000..c0e2e6104 --- /dev/null +++ b/scripts/docker/jderobot/oficial/jderobot_entrypoint.sh @@ -0,0 +1,15 @@ +#!/bin/bash +set -e + +if [ "$1" = 'video' ]; then + + cd /cfg + cameraserver $2 + +elif [ "$1" = 'lsvideos' ]; then + + ls /cfg + +else + exec "$@" +fi diff --git a/scripts/docker/jderobot/oficial/turtlebotplugin.cfg b/scripts/docker/jderobot/oficial/turtlebotplugin.cfg new file mode 100644 index 000000000..820c828f1 --- /dev/null +++ b/scripts/docker/jderobot/oficial/turtlebotplugin.cfg @@ -0,0 +1,8 @@ +Turtlebot.Adapter.Endpoints=default -h 0.0.0.0 -p 9001:ws -h 0.0.0.0 -p 11001 +Turtlebot.Motors.Name=Motors +Turtlebot.Laser.Name=Laser +Turtlebot.Encoders.Name=Encoders +Turtlebot.Pose3D.Name=Pose3D +Turtlebot.CameraL.Name=CameraL +Turtlebot.CameraR.Name=CameraR +Turtlebot.Pose3DEncoders.Name=Pose3DEncoders