Commit f2a0174b authored by Gaël Écorchard's avatar Gaël Écorchard
Browse files

Merge branch 'master' of gitlab.fel.cvut.cz:robolab/deploy

parents f3950564 8dd0add8
singularity/*.simg
singularity/*.log
apt-utils
build-essential
crudini
curl
dialog
git
gitk
git-gui
mc
nano
net-tools
nmap
openssh-client
openssh-server
python-catkin-tools
python-pip
python-pip-whl
python-rosinstall
python-rosinstall-generator
python-scipy
python-virtualenv
python-wstool
python3-numpy
python3-pip
python3-scipy
ros-melodic-desktop-full
ros-melodic-ddynamic-reconfigure
ros-melodic-ddynamic-reconfigure-python
ros-melodic-ecl-streams
ros-melodic-kobuki-core
ros-melodic-kobuki-msgs
ros-melodic-octomap-ros
ros-melodic-rplidar-ros
ros-melodic-tf2-geometry-msgs
ros-melodic-tf2-sensor-msgs
ros-melodic-turtlebot3
ros-melodic-turtlebot3-simulations
ros-melodic-yocs-controllers
screen
sshpass
terminator
tmux
tree
vim
wget
- git:
local-name: kobuki
uri: https://github.com/yujinrobot/kobuki.git
version: melodic
- git:
local-name: point_cloud_color
uri: https://github.com/tpet/point_cloud_color.git
version: master
- git:
local-name: realsense-ros
uri: https://github.com/IntelRealSense/realsense-ros.git
version: development
- git:
local-name: robolab
uri: https://gitlab.fel.cvut.cz/robolab/robolab.git
version: master
- git:
local-name: ros_numpy
uri: https://github.com/eric-wieser/ros_numpy.git
version: master
- git:
local-name: tf_static_publisher
uri: https://github.com/tpet/tf_static_publisher.git
version: master
- git:
local-name: turtlebot
uri: https://github.com/turtlebot/turtlebot.git
version: melodic
- git:
local-name: turtlebot_simulator
uri: https://github.com/turtlebot/turtlebot_simulator.git
version: melodic
- git:
local-name: voxel_map
uri: https://bitbucket.org/tpetricek/voxel_map.git
version: catkin
python-catkin-tools
- git:
local-name: realsense-ros
uri: https://github.com/IntelRealSense/realsense-ros.git
version: development
......@@ -4,7 +4,7 @@
version: master
- git:
local-name: turtlebot
uri: https://gitlab.ciirc.cvut.cz/teaching/turtlebot.git
uri: https://gitlab.ciirc.cvut.cz/rop/teaching/turtlebot.git
version: master
- git:
local-name: ros_numpy
......
- git:
local-name: point_cloud_color
uri: https://github.com/tpet/point_cloud_color.git
version: master
- git:
local-name: voxel_map
uri: https://bitbucket.org/tpetricek/voxel_map.git
version: catkin
apt-utils
build-essential
crudini
curl
dialog
git
gitk
git-gui
mc
nano
net-tools
nmap
openssh-client
openssh-server
python-catkin-tools
python-pip
python-pip-whl
python-rosinstall
python-rosinstall-generator
python-scipy
python-virtualenv
python-wstool
python3-numpy
python3-pip
python3-scipy
ros-melodic-desktop-full
ros-melodic-ddynamic-reconfigure
ros-melodic-ddynamic-reconfigure-python
ros-melodic-ecl-streams
ros-melodic-kobuki-core
ros-melodic-kobuki-msgs
ros-melodic-octomap-ros
ros-melodic-rplidar-ros
ros-melodic-tf2-geometry-msgs
ros-melodic-tf2-sensor-msgs
ros-melodic-turtlebot3
ros-melodic-turtlebot3-simulations
ros-melodic-yocs-controllers
screen
sshpass
terminator
tmux
tree
vim
wget
- git:
local-name: kobuki
uri: https://github.com/yujinrobot/kobuki.git
version: melodic
- git:
local-name: realsense-ros
uri: https://github.com/IntelRealSense/realsense-ros.git
version: development
- git:
local-name: robolab
uri: https://gitlab.fel.cvut.cz/robolab/robolab.git
version: master
- git:
local-name: ros_numpy
uri: https://github.com/eric-wieser/ros_numpy.git
version: master
- git:
local-name: tf_static_publisher
uri: https://github.com/tpet/tf_static_publisher.git
version: master
- git:
local-name: turtlebot
uri: https://github.com/turtlebot/turtlebot.git
version: melodic
- git:
local-name: turtlebot_simulator
uri: https://github.com/turtlebot/turtlebot_simulator.git
version: melodic
- git:
local-name: tf2_client
uri: https://github.com/tpet/tf2_client.git
version: master
#!/bin/bash
# Install Gazebo library.
set -e
dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
sudo apt-get -y install curl
curl -sSL 'http://packages.osrfoundation.org/gazebo.key' | sudo apt-key add -
sudo sh -c 'echo "deb http://packages.osrfoundation.org/gazebo/ubuntu-stable $(lsb_release -cs) main" > /etc/apt/sources.list.d/gazebo-stable.list'
packages="
gazebo9
libgazebo9-dev
"
sudo apt-get -y update && sudo apt-get -y install ${packages}
#!/bin/bash
# Install Intel RealSense library.
set -e
dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
sudo apt-get -y install curl
curl -sSL 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0xF6E65AC044F831AC80A06380C8B3A55A6F3EFCDE' | sudo apt-key add -
sudo sh -c 'echo "deb http://realsense-hw-public.s3.amazonaws.com/Debian/apt-repo $(lsb_release -sc) main" > /etc/apt/sources.list.d/realsense.list'
packages="
librealsense2-dev
librealsense2-dkms
librealsense2-utils
"
sudo apt-get -y update && sudo apt-get -y install ${packages}
if ! modinfo uvcvideo | grep realsense; then
echo 'WARNING: Kernel not updated for Intel RealSense.'
fi
......@@ -2,45 +2,100 @@
set -e
dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
# Parse arguments.
usage="Setup robolab catkin workspace at specified directory.
Usage:
setup_catkin_workspace <workspace>
setup_catkin_workspace [<workspace>]
Options (environmental variables):
- extend: Workspace to extend.
- ros: ROS distribution (kinetic/melodic).
- extend: Workspace to extend.
- ros: ROS distribution (kinetic/melodic).
- rosdep: Install dependencies via rosdep? [y/n]
- rosinstall: Workspace rosinstall files.
- install: Path to install space. Don't install if not provided.
"
[ "$#" -gt 1 ] && echo 'ERROR: Invalid number of arguments.' && echo && echo "$usage" && exit 1
# Parse arguments.
if [ "$#" -gt 1 ]; then
echo 'ERROR: Invalid number of arguments.'
echo
echo "${usage}"
exit 1
fi
# Workspace
if [ "$#" -eq 1 ]; then
ws="$1"
fi
if [ ! "${ws}" ]; then
ws="$(pwd)"
fi
if [ ! "${ws}" ]; then
echo 'ERROR: Workspace not specified.'
exit 2
fi
ws=$(realpath "${ws}")
echo "Workspace: ${ws}"
[ "$#" -ge 1 ] && ws="$1"
[ ! "$ws" ] && ws="$(pwd)"
[ ! "$ws" ] && echo 'ERROR: Workspace not specified.' && exit 2
ws=$(realpath "$ws")
# ROS distribution
if [ ! "${ros}" ] && [ -d /opt/ros/melodic ]; then
ros=melodic
fi
if [ ! "${ros}" ] && [ -d /opt/ros/kinetic ]; then
ros=kinetic
fi
if [ ! "${ros}" ]; then
echo 'ERROR: No ROS distribution found.'
exit 3
fi
echo "ROS distribution: ${ros}"
[ ! "$ros" ] && [ -d /opt/ros/melodic ] && ros=melodic
[ ! "$ros" ] && [ -d /opt/ros/kinetic ] && ros=kinetic
[ ! "$ros" ] && echo 'ERROR: No ROS distribution found.' && exit 3
# Extended workspace
if [ ! "${extend}" ]; then
extend=/opt/ros/$ros
fi
extend=$(realpath "${extend}")
if [ ! "${extend}" ]; then
echo 'ERROR: Extended workspace not specified.'
exit 4
fi
echo "Extended workspace: ${extend}"
[ ! "$extend" ] && extend=/opt/ros/$ros
extend=$(realpath "$extend")
[ ! "$extend" ] && echo 'ERROR: Extended workspace not specified.' && exit 3
# Workspace rosinstall files
if [ ! "${rosinstall}" ]; then
rosinstall="${dir}/../rosinstall/robolab.rosinstall ${dir}/../rosinstall/robolab_${ros}.rosinstall"
fi
if [ ! "${rosinstall}" ]; then
echo 'ERROR: Workspace configuration rosinstall files not specified.'
exit 5
fi
echo "Workspace rosinstall files: ${rosinstall}"
# Clone main repositories from rosinstall files.
mkdir -p $ws/src
cd "$ws/src"
# Configure main repositories from provided rosinstall files.
mkdir -p "${ws}/src"
cd "${ws}/src"
wstool init
# Keep first entry with given key (-k).
# Make sure there are no duplicates in these curated lists.
wstool merge -k "$dir/../rosinstall/robolab.rosinstall"
wstool merge -k "$dir/../rosinstall/robolab_$ros.rosinstall"
wstool merge -k ${rosinstall}
wstool up -j 8
# Install rosdep dependencies.
if [ "${rosdep}" = "y" ]; then
cd "${ws}"
rosdep update
# Ignore librealsense2 to avoid installing older packages from ROS repos.
rosdep install --from-paths src --ignore-src --skip-keys=librealsense2 --rosdistro ${ros} -r -y
fi
# Initialize, configure, and build catkin workspace.
cd $ws
cd "${ws}"
catkin init
catkin config --extend "$extend"
catkin config --extend "${extend}"
catkin config --cmake-args -DCMAKE_BUILD_TYPE=Release
catkin build -c
if [ "${install}" ]; then
catkin config -i "${install}" --install
fi
if ! catkin build -c; then
echo 'ERROR: Catkin build incomplete!'
fi
Bootstrap: docker
From: ros:melodic-robot
%help
ROS Melodic for the Autonomous Robotics (ARO) course taught at
Department of Cybernetics, Czech Technical University in Prague.
See https://gitlab.fel.cvut.cz/robolab for more information.
%files
sudo /usr/bin/sudo
%runscript
/opt/ros/aro_melodic/devel/env.sh "$@"
%post
tmp="$(mktemp -d)"
cd "${tmp}"
git clone https://gitlab.fel.cvut.cz/robolab/deploy.git
cd deploy
scripts/install_librealsense
scripts/install_gazebo
apt-get update -y \
&& apt-get dist-upgrade -y \
&& xargs -a config/aro_melodic.apt apt-get install -y
ws=/opt/ros/aro_melodic
ros=melodic \
rosdep=y \
rosinstall=$(pwd)/config/aro_melodic.rosinstall \
scripts/setup_catkin_workspace "${ws}"
apt-get clean
......@@ -5,8 +5,11 @@ dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
cd "${dir}"
# Images ordered to reflect dependencies.
for f in ros_kinetic_robolab ros_melodic_robolab; do
sudo rm -f $f.simg
sudo singularity build $f.simg $f.txt
sudo chown $USER:$USER $f.simg
files="
robolab_melodic
"
for f in robolab_melodic; do
sudo rm -f "${f}.simg"
sudo singularity build "${f}.simg" "${f}.txt" 2>&1 | tee "${f}.log" \
&& sudo chown ${USER}:${USER} "${f}.simg"
done
Bootstrap: docker
From: ros:melodic-ros-core
%files
sudo /usr/bin/sudo
%post
sudo apt-get update -y && sudo apt-get dist-upgrade -y
tmp="$(mktemp -d)"
cd "${tmp}"
git clone https://gitlab.fel.cvut.cz/robolab/deploy.git
cd deploy
scripts/install_librealsense
xargs -a config/realsense.apt apt-get install -y
ws=/opt/ros/realsense
ros=melodic \
rosdep=y \
rosinstall=$(pwd)/config/realsense.rosinstall \
install="${ws}" \
scripts/setup_catkin_workspace "$(mktemp -d)"
apt-get clean
Bootstrap: docker
From: ros:melodic-robot
%help
ROS Melodic for courses taught at Department of Cybernetics,
Czech Technical University in Prague.
The main use is for the TurtleBots in the Robolab (KN:E-130).
See https://gitlab.fel.cvut.cz/robolab for more information.
%files
sudo /usr/bin/sudo
%runscript
/opt/ros/robolab/env.sh "$@"
%post
sudo apt-get update -y && sudo apt-get dist-upgrade -y
tmp="$(mktemp -d)"
cd "${tmp}"
git clone https://gitlab.fel.cvut.cz/robolab/deploy.git
cd deploy
scripts/install_librealsense
scripts/install_gazebo
xargs -a config/robolab_melodic.apt apt-get install -y
ros=melodic \
rosdep=y \
rosinstall=$(pwd)/config/robolab_melodic.rosinstall \
install=/opt/ros/robolab \
scripts/setup_catkin_workspace "$(mktemp -d)"
extend=/opt/ros/robolab \
ros=melodic \
rosdep=y \
rosinstall=$(pwd)/config/robolab_aro_melodic.rosinstall \
install=/opt/ros/aro \
scripts/setup_catkin_workspace "$(mktemp -d)"
apt-get clean
ros-kinetic-turtlebot-stdr
ros-kinetic-realsense2-camera
Bootstrap: docker
From: ros:kinetic-robot
%help
This image essentially contains ROS tuned for the teaching needs of the Czech Technical University, Faculty of Cybernetics. The main use is for the turtlebots in the Robolab (KN:E-130).
%files
sudo /usr/bin/sudo
......@@ -9,10 +12,13 @@ From: ros:kinetic-robot
%post
packages="
apt-utils
build-essential
crudini
dialog
git-gui
mc
nano
net-tools
nmap
openssh-client
......@@ -23,13 +29,15 @@ From: ros:kinetic-robot
python-rosinstall
python-rosinstall-generator
python-scipy
python3-scipy
python-virtualenv
python-wstool
python3-pip
python3-scipy
ros-kinetic-desktop-full
ros-kinetic-kobuki-description
ros-kinetic-octomap-ros
ros-kinetic-rplidar-ros
ros-kinetic-stdr-simulator
ros-kinetic-tf2-geometry-msgs
ros-kinetic-tf2-sensor-msgs
screen
......@@ -38,7 +46,10 @@ From: ros:kinetic-robot
tmux
tree
vim
wget
"
echo 'deb http://realsense-hw-public.s3.amazonaws.com/Debian/apt-repo xenial main' > /etc/apt/sources.list.d/realsense-public.list
apt-key adv --keyserver keys.gnupg.net --recv-key C8B3A55A6F3EFCDE || apt-key adv --keyserver hkp://keys.gnupg.net:80 --recv-key C8B3A55A6F3EFCDE
apt-get -y update && apt-get -y install $packages
apt-get clean
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment