diff --git a/dockerfiles/DevenvKinetic.Dockerfile b/dockerfiles/DevenvKinetic.Dockerfile index bb509a7cff35ccaddd5832a307975ae036382e1e..b3999519609fa9201e0748483e299bdb39bb204d 100644 --- a/dockerfiles/DevenvKinetic.Dockerfile +++ b/dockerfiles/DevenvKinetic.Dockerfile @@ -24,7 +24,7 @@ RUN apt-get -y install --no-install-recommends \ #git-lfs \ nano \ less \ - iproute2 \ + iproute2 \ procps \ lsb-release \ curl \ @@ -58,7 +58,7 @@ RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 7E72C5B411 RUN sh -c "echo 'yaml https://git.code.tecnalia.com/tecnalia_robotics-public/gitlab_templates/raw/master/rosdistro/rosdep_tecnalia.yaml' \ >> /etc/ros/rosdep/sources.list.d/20-default.list" -# Packages installed as dependecies of kawada_lab_aplication +# Packages installed as dependecies of kawada_lab_aplication RUN apt-get update && apt-get install -y \ cmake \ ros-kinetic-moveit-planners-ompl \ @@ -87,10 +87,11 @@ RUN apt-get update && apt-get install -y \ libqd-dev \ python-zmq \ python3-catkin-pkg-modules \ + zsh \ && rm -rf /var/lib/apt/lists/* # Update final image -RUN apt-get update && apt-get -y upgrade +RUN apt-get update && apt-get -y upgrade # Install code # SHELL ["/bin/bash", "-o", "pipefail", "-c"] diff --git a/dockerfiles/DevenvMelodic.Dockerfile b/dockerfiles/DevenvMelodic.Dockerfile index 5a62946655b3147b38ae2b929dbdb98f8b676c7c..52f3f45401d6c374249ce8d19e367ea98817857f 100644 --- a/dockerfiles/DevenvMelodic.Dockerfile +++ b/dockerfiles/DevenvMelodic.Dockerfile @@ -101,6 +101,7 @@ RUN apt-get install -y \ ros-melodic-joint-trajectory-controller \ ros-melodic-executive-smach-visualization \ ros-melodic-catkin-virtualenv \ + ros-melodic-rviz-visual-tools \ python-sqlalchemy \ python-zmq \ ros-melodic-trac-ik-kinematics-plugin \ @@ -122,6 +123,9 @@ RUN apt-get install -y \ ros-melodic-realsense2-camera \ ros-melodic-eigen-conversions +RUN apt-get install -y \ + libdouble-conversion-dev + RUN apt-get update \ && apt-get upgrade ca-certificates -y @@ -143,8 +147,6 @@ RUN apt-get install -y \ xdot \ ros-melodic-image-view -RUN python3 -m pip install xdot - # set the zsh theme ENV ZSH_THEME agnoster diff --git a/dockerfiles/TesseractIgnition.Dockerfile b/dockerfiles/TesseractIgnition.Dockerfile deleted file mode 100644 index 6c1981b5c392b1e160cdc145b389906429bc6397..0000000000000000000000000000000000000000 --- a/dockerfiles/TesseractIgnition.Dockerfile +++ /dev/null @@ -1,65 +0,0 @@ -FROM ubuntu:focal - -# Avoid warnings by switching to noninteractive -ENV DEBIAN_FRONTEND=noninteractive - -# Setup environment -RUN apt-get update && apt-get install -y \ - locales \ - && sed -i '/en_US.UTF-8/s/^# //g' /etc/locale.gen && locale-gen en_US.UTF-8 -ENV LANG en_US.UTF-8 -ENV LANGUAGE en_US:en -ENV LC_ALL en_US.UTF-8 - -# Configure apt and install packages -RUN apt-get -y install --no-install-recommends \ - apt-transport-https \ - ca-certificates \ - curl \ - gnupg-agent \ - software-properties-common \ - apt-utils dialog 2>&1 \ - # - # Verify if git, process tools, lsb-release (common in install instructions for CLIs) are installed - # Install the https transport support package for The Artifactory debian repository - git \ - git-lfs \ - nano \ - iproute2 \ - procps \ - lsb-release \ - curl \ - cmake \ - openssh-client \ - xterm \ - terminator \ - zsh \ - wget \ - && rosdep init || true - -# Packages installed as dependecies of tesseract-ignition -RUN sh -c 'echo "deb http://packages.osrfoundation.org/gazebo/ubuntu-stable `lsb_release -cs` main" > /etc/apt/sources.list.d/gazebo-stable.list' -RUN wget http://packages.osrfoundation.org/gazebo.key -O - | apt-key add - -RUN apt-get update \ - && apt install -y \ - libignition-common3-dev \ - libignition-common3-av-dev \ - libignition-common3-events-dev \ - libignition-common3-profiler-dev \ - libignition-msgs5-dev \ - libignition-rendering3-dev \ - libignition-rendering3-ogre1-dev \ - libignition-rendering3-ogre2-dev \ - libignition-transport8-dev \ - libignition-gui3-dev \ - libignition-math6-eigen3-dev - -# Update final image -RUN apt-get -y upgrade \ - && apt-get clean \ - && rm -rf /var/lib/apt/lists/* - -CMD ["bash"] - -# Switch back to dialog for any ad-hoc use of apt-get -ENV DEBIAN_FRONTEND= \ No newline at end of file diff --git a/dockerfiles/ros_entrypoint_SCP.sh b/dockerfiles/ros_entrypoint_SCP.sh deleted file mode 100644 index 0f49e16a782ddc26d616e768e261f2f47e672fc4..0000000000000000000000000000000000000000 --- a/dockerfiles/ros_entrypoint_SCP.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash - -# Setup ros environment -source "/opt/ros/$ROS_DISTRO/setup.bash" -source "/root/dev_ws/devel/setup.bash" - -#roslaunch godel_cr7ial_workspace_support cr7ial_blending.launch sim_laser:=false sim_sensor:=false use_sim:=false - -exec "$@" \ No newline at end of file diff --git a/dockerfiles/scanNplan.Dockerfile b/dockerfiles/scanNplan.Dockerfile deleted file mode 100644 index 64572c01ecb0cc58691b8315f4748deedb3d919f..0000000000000000000000000000000000000000 --- a/dockerfiles/scanNplan.Dockerfile +++ /dev/null @@ -1,191 +0,0 @@ -### FIRST LAYER TO DOWNLOAD GIT REPOS -FROM osrf/ros:melodic-desktop-full as intermediate - -RUN apt-get update - -################################# -# Add ssh private key -RUN apt-get install -y ssh - -ARG SSH_PRIVATE_KEY -RUN mkdir ~/.ssh/ -RUN echo "${SSH_PRIVATE_KEY}" > /root/.ssh/id_rsa -RUN chmod 600 ~/.ssh/id_rsa -RUN ssh-keyscan git.code.tecnalia.com >> /root/.ssh/known_hosts && chmod 644 /root/.ssh/known_hosts - -#Print SSH_PRIVATE_KEY (for test) -RUN echo "${SSH_PRIVATE_KEY}" - -RUN apt-get install -y git - -# Create workspace -RUN mkdir -p /root/dev_ws/src -WORKDIR /root/dev_ws/src - -# Install python-wstools -RUN apt-get install -y wget -RUN wget http://packages.ros.org/ros.key -O - | sudo apt-key add - -RUN apt-get update -RUN apt-get install -y python-catkin-tools -# Clone main package -WORKDIR /root/dev_ws/src -RUN git clone git@git.code.tecnalia.com:tecnalia_robotics/rosin/godel_fanuc_config.git -RUN cd godel_fanuc_config && git checkout Jon-O-laser-integration -# Populate dependencies with rosinstall -RUN mkdir /root/dev_ws/src/dependencies -WORKDIR /root/dev_ws/src/dependencies -RUN wstool init && wstool merge ../godel_fanuc_config/.rosinstall && wstool update - -# Preparing docker -FROM nvidia/cuda:11.3.0-base-ubuntu16.04 - -WORKDIR /root/ws -ENV ROS_DISTRO kinetic - -RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections - -# nvidia-container-runtime -ENV NVIDIA_VISIBLE_DEVICES \ - ${NVIDIA_VISIBLE_DEVICES:-all} -ENV NVIDIA_DRIVER_CAPABILITIES \ - ${NVIDIA_DRIVER_CAPABILITIES:+$NVIDIA_DRIVER_CAPABILITIES,}graphics - -# install basic packages -RUN apt-get update && apt-get install -q -y --no-install-recommends \ - dirmngr \ - gnupg2 \ - lsb-release \ - sudo \ - ocl-icd-libopencl1 \ - clinfo \ - && rm -rf /var/lib/apt/lists/* - -RUN mkdir -p /etc/OpenCL/vendors && \ - echo "libnvidia-opencl.so.1" > /etc/OpenCL/vendors/nvidia.icd - -# Setup environment -RUN apt-get update && apt-get install -y \ - locales \ - && sed -i '/en_US.UTF-8/s/^# //g' /etc/locale.gen && locale-gen en_US.UTF-8 -ENV LANG en_US.UTF-8 -ENV LANGUAGE en_US:en -ENV LC_ALL en_US.UTF-8 - -# Setup sources.list -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-get -y install --no-install-recommends \ - curl -RUN curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add - - -RUN apt-get update && apt-get install -y \ - ros-kinetic-desktop-full - -# Configure apt and install packages -RUN apt-get -y install --no-install-recommends \ - apt-transport-https \ - ca-certificates \ - software-properties-common \ - gnupg-agent \ - apt-utils dialog 2>&1 \ - git \ - #git-lfs \ - nano \ - less \ - iproute2 \ - procps \ - lsb-release \ - curl \ - cmake \ - openssh-client \ - python-catkin-tools \ - python-osrf-pycommon \ - python-rosdep \ - python-rosinstall \ - python-rosinstall-generator \ - python-wstool \ - build-essential \ - ros-${ROS_DISTRO}-rosmon \ - xterm \ - wget \ - clinfo \ - && rm -rf /var/lib/apt/lists/* - -# Install docker-ce -RUN curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add - -RUN add-apt-repository \ - "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" -RUN apt-get update && apt-get -y install --no-install-recommends \ - docker-ce-cli \ - && rm -rf /var/lib/apt/lists/* - -# Configure system to look for debian packages in the Artifactory repository -ARG USER_API_KEY_ARTIFACTS_TECNALIA -RUN sh -c "echo \ - 'deb https://${USER_API_KEY_ARTIFACTS_TECNALIA}@artifact.tecnalia.com/artifactory/tecnalia-robotics-debian xenial main' \ - >> /etc/apt/sources.list.d/tecnalia.list" - -# Import the key in order to be able to use the packages from the repository -RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 7E72C5B4111A50084C63C9489E7A9B1D990CF897 - -# Configure rosdep -RUN rosdep init -RUN sh -c "echo 'yaml https://git.code.tecnalia.com/tecnalia_robotics-public/gitlab_templates/raw/master/rosdistro/rosdep_tecnalia.yaml' \ - >> /etc/ros/rosdep/sources.list.d/20-default.list" -RUN rosdep update - -# Packages installed as dependecies of kawada_lab_aplication -RUN apt-get update && apt-get install -y \ - cmake \ - ros-kinetic-moveit-planners-ompl \ - ros-kinetic-moveit-ros-planning \ - ros-kinetic-ompl \ - ros-kinetic-moveit-kinematics \ - ros-kinetic-moveit-ros-planning-interface \ - ros-kinetic-moveit-ros-visualization \ - ros-kinetic-catkin-virtualenv \ - ros-kinetic-zivid-camera \ - ros-kinetic-abb-driver \ - ros-kinetic-industrial-robot-simulator \ - ros-kinetic-moveit-ros-move-group \ - ros-kinetic-moveit-core \ - ros-kinetic-srdfdom \ - ros-kinetic-urdfdom-py \ - ros-kinetic-moveit-ros-manipulation \ - ros-kinetic-moveit-simple-controller-manager \ - ros-kinetic-moveit-fake-controller-manager \ - ros-kinetic-moveit-setup-assistant \ - ros-kinetic-trac-ik-kinematics-plugin \ - ros-kinetic-swri-profiler \ - ros-kinetic-fanuc-cr7ia-support \ - ros-kinetic-fanuc-driver \ - ros-kinetic-fanuc-resources \ - libqd-dev \ - python-zmq \ - python3-catkin-pkg-modules \ - && rm -rf /var/lib/apt/lists/* - -# Update final image -RUN apt-get update && apt-get -y upgrade - -RUN wget https://www.zivid.com/hubfs/softwarefiles/releases/1.8.1+6967bc1b-1/u16/zivid-studio_1.8.1+6967bc1b-1_amd64.deb -RUN wget https://www.zivid.com/hubfs/softwarefiles/releases/1.8.1+6967bc1b-1/u16/zivid-tools_1.8.1+6967bc1b-1_amd64.deb -RUN dpkg -i zivid-studio_1.8.1+6967bc1b-1_amd64.deb -RUN dpkg -i zivid-tools_1.8.1+6967bc1b-1_amd64.deb - -# Set entrypoint -COPY ./ros_entrypoint.sh / -RUN chmod a+x /ros_entrypoint.sh - -# Copy workspace with dependencies created in the previous layer -COPY --from=intermediate /root/dev_ws /root/dev_ws -WORKDIR /root/dev_ws -RUN catkin init && catkin config --extend /opt/ros/kinetic && catkin build - -# Add source ros to .bashrc -RUN echo "#ROS\nsource /opt/ros/kinetic/setup.bash\nsource /root/dev_ws/devel/setup.bash" >> /root/.bashrc - -ENTRYPOINT ["/ros_entrypoint_SCP.sh"] -#CMD ["roslaunch godel_cr7ial_workspace_support cr7ial_blending.launch sim_laser:=false sim_sensor:=false use_sim:=false"] - -# Switch back to dialog for any ad-hoc use of apt-get -ENV DEBIAN_FRONTEND= \ No newline at end of file diff --git a/dotfiles/.zshrc b/dotfiles/.zshrc index 6c1ca247b30b638ca96ada8d44140e549fdb1650..650698773b85df647ee39ae5d2aadc8500f55d7c 100644 --- a/dotfiles/.zshrc +++ b/dotfiles/.zshrc @@ -107,6 +107,8 @@ setopt no_share_history # alias zshconfig="mate ~/.zshrc" # alias ohmyzsh="mate ~/.oh-my-zsh" +export ROS_DISTRO="noetic" + export EDITOR="code -r" export PATH=~/.venv/ddeploy_venv/bin:$PATH diff --git a/dotfiles/docker.bash b/dotfiles/docker.bash index a22211609c22d40d81bee6d01485d2a933156044..3a52da200ecbdc021eaa9d059b6fa6ce13dcfd11 100644 --- a/dotfiles/docker.bash +++ b/dotfiles/docker.bash @@ -20,16 +20,16 @@ function dsr() { docker stop $1;docker rm $1 } -function rdoc() { - rocker --home --user --nvidia --x11 --ssh --git --name melodic --net host devenv:melodic roscore +function runscan() { + rocker --home --user --nvidia --x11 --ssh --git --name scannplan scan_and_plan:latest $1 } function rundoc() { rocker --home --user --nvidia --x11 --ssh --git --volume /dev/video0:/dev/video0 --privileged --name melodic devenv:melodic $1 } -function runmelodic() { - rocker --home --user --nvidia --x11 --ssh --git --name melodic devenv:melodic $1 +function runbezier() { + rocker --home --user --nvidia --x11 --ssh --git --volume /dev/video0:/dev/video0 --privileged --name bezier devenv:bezier $1 } function runnoetic() { diff --git a/notes/ROS Industrial.md b/notes/ROS Industrial.md index a77d52967feb1dc2cf02f639ef487b87bc1b825f..950d92a2039190144368a810d9d262291501b831 100644 --- a/notes/ROS Industrial.md +++ b/notes/ROS Industrial.md @@ -237,4 +237,104 @@ https://ros-planning.github.io/moveit_tutorials/doc/trajopt_planner/trajopt_plan # Pilz Industrial Motion Planner Moved to MoveIt, to install the planner run: sudo apt install '^ros-noetic-pilz-.*' -To launch a demo run: roslaunch prbt_moveit_config moveit_planning_execution.launch pipeline:=pilz_industrial_motion_planner \ No newline at end of file +To launch a demo run: roslaunch prbt_moveit_config moveit_planning_execution.launch pipeline:=pilz_industrial_motion_planner + +# Bezier + +This repository is part of the ROS-Industrial program. + +This project has been developed by the Institut Maupertuis, a French research institute that is working on robotic industrial processes. This project goal is to create an automatic grinding path generator for 6-axis robots working on diverse/random meshes. + +Bezier planner generates robot poses (3D trajectories) in harmony with a grinding process, it is as 6D tool path planner. It is able to create rectilinear trajectories on complex surfaces (3D surfaces) and to dilate them in all directions in order to grind defects with a pass principle. + +Examples: https://github.com/ros-industrial-consortium/bezier_examples (3 years) +https://gitlab.com/InstitutMaupertuis/fanuc_grinding (2 years) This project is not maintained + +Goals +===== +Design a fully automated robotized grinding application + +Functions +- F1: Being able to scan the part with SLS-2 +- F2: Ensure a constant material removal rate (CAM) +- F3: Being able to respect the manufacturer's specifications (dimensions, manage tool wear) + +Automatically grind defects on a mechanical part thanks to: +- A robot +- 3D vision + +Defects types +- Shocks, deformations, welding spatters, weld bead ... +- Surface roughness + +How this plugin works +===================== + +1. Scanning 3D +-------------- + +With first 'Browse' button, you can import a CAD file, and visualize it if button 'Import CAD file' is pressed. +With second 'Browse' button, you can import a YAML file which contains a list of joint values for robot. +When 'Start scan' button is pressed, the YAML file will be parsed and the joint values will be executed in order to numerize the piece. + +| Parameters | Description +------------- | ----------- +`CAD file` | Location of the CAD file in the computer +`YAML file` | Location of the YAML file in the computer + +4. Path planning +---------------- +# :construction: In Construction! :construction: + +The path planning will be generated with Bezier planner. +Both labels on the top are used to indicate with which files we are dealing with ( CAD file and scan 3d ) +This tab has to be filled with these Bezier's parameters: + +| Parameters | Description +------------- | ----------- +`Covering percentage` | Percentage of covering (decimal value) +`Extrication frequency` | New extrication mesh generated each 1/`Extrication frequency` times +`Extrication coefficient` | Extrication depth equal of the percentage of `Depth of path` +`Grind diameter` | Width of the tool which is used +`Depth of path` | Grinding depth +`Axis of rotation` | Rotation axis for the lean angle of the effector +`Angle value` | Value around `Axis of rotation` + +When 'Compute trajectories' button is pressed, Bezier algorithm will compute trajectories with parameters given. +Buttons 'Visualize trajectory' and 'Simulate trajectory' are respectivly visualize trajectories in each pass and simulate robot positions during grinding process on each path. +Warning: A warning will appear if parameters given in Qt have been changed! You will have to press again on 'Compute trajectory' button if you want to compute trajectories with the new parameters, otherwise the trajectory will be the old one! + +5. Post processor +----------------- +# :construction: In Construction! :construction: + +This tab is used to convert path planning generated before in TP/LS Fanuc program. +So we have to fill different parameters to do it: + +| Parameters | Description +------------- | ----------- +`Program name` | Name for this program +`Location` | Location of the program in the computer +`Comment` | To fill in order to give useful information in program as comment. +`IP adress` | Robot's IP adress + +Hardware needed +--------------- +Generally speaking, this is what you need to get this package running on a real application case: +- A computer with ROS installed +- A 6 axis robot supported by ROS +- A grinding effector +- A 3D sensor (attached to the robot) supported by ROS +- A part to be grinded (you need the CAD of this part) + +In this application case, here is a list of the hardware: +- A computer with ROS installed +- A 6 axis Fanuc R1000iA robot with ROS installed +- A grinding effector +- A David SLS-2 3D sensor (attached to the robot) and a Windows PC acting as David software server +- A part to be grinded and it's CAD + +# Reuleaux +Realuex is a basic package for Robot Reachability and Base Placement. It provides tools for creating various types of robot reachability maps and finding optimal base locations for a given task specified by poses through those reachability maps. + +# Noether \ No newline at end of file