Skip to content

Intallation

Daniel Ordonez edited this page Aug 29, 2019 · 15 revisions

Installation instructions

The following section will explain the required steps to bring the project to work.

Note: This repository supports ROS Kinetic and newer distributions.

Content

Prerequisites

  • ROS Kinetic: For obtaining and configuring ROS follow the installation instructions for full-desktop kinetic installation.
  • Catkin workspace: If you don't have a workspace already configured follow this instructions to create one (it is recommended to create it in a directory where you have full access permissions).

Required Repositories

Clone this and the following repositories in your catkin workspace (some of the packages have installation instructions to follow):

Robot related dependencies

Robotiq gripper related dependencies

Force/Torque sensing dependencies

IDS N35 cameras dependencies

  • ensenso/ros_driver: Required only for the invite-vision package. (Delete it in case it wont be used)

Mysc

  • ros-drivers/audio_common: ROS package containing functionalities for speech synthesize (sometimes our Robot likes to talk)

For most of this repositories installation through apt-get or synaptic is not possible

Dependencies

To automatically install any missing dependencies of your ROS installation run the following commands on your terminal:

#------------------------ Install third party dependencies
sudo apt-get update
# Move to the root of the workspace
cd [path_to_your_catkin_package]
# Install all dependencies of packages in the workspace
rosdep install --from-paths src --ignore-src -r -y
# Build your workspace
catkin_make
source devel/setup.bash

Once the workspace build process is completed you are ready to start playing...have fun.

Install missing dependencies

If the catkin build fails, it occurs usually to missing package dependencies or missing third party (non-ros) packages. When this occurs the build log in the terminal indicates the name of the package dependency that it is missing, then try:

sudo apt-get update ros-kinetic-[package-name]
# separate the package name words with a '-'

If a package is not found it is probably a third-party dependency, google the name of the package and search for installation instructions: s.

Required Motoman driver changes

In order to operate multiple robot groups at the same time (both arms, or one arm and the torso) some modifications to the motoman_driver package are required since this functionality is at the moment not properly supported by the driver. The required changes can be found on the ros-industrial/motoman/pull/259 which addresses directly this issue.

Note: at the moment of writing this documentation the PR#259 was still not accepted and merged into the main branch of the Motoman repository. When this PR is accepted then the cloning of the main branch of the Motoman package should be enough to operate properly the CSDA10F, and this section of the documentation should be ignored and later removed

Consistent USB port assignment

For the correct operation of the grippers and the force sensors, which are all connected through USB adapters (in the case of the Robotiq grippers and sensors) it is important to configure consistent port assignment, which is theoretically not possible on Linux (i.e. USB ports get assigned by order of connection, which creates the issue that USB port /dev/ttyUSB0 can be sometimes assigned to the left gripper and sometimes to the right force sensor). In order to get consistent port assignment you have to create an new set of udev rules on your /etc/udev/rules.d folder, that looks somewhat like this (In the case you are in fact at INVITE, this is the exact file you need to set-up):

# File: /etc/udev/rules.d/your_awsome_rules.rules
SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", ATTRS{serial}=="AM00KJCI", SYMLINK+="ttyRobotiq0"
SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", ATTRS{serial}=="AH06SUT7", SYMLINK+="ttyRobotiq1"
SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6015", ATTRS{serial}=="DAK6ETZL", SYMLINK+="ttyFT300"

Where the attributes (ATTRS) of your connected devices are specific to your hardware. What these rules do is to create a link to the USB port that was assigned to a specific device. In this case for example, once the rules are configured properly when the left gripper is connected the virtual port /dev/ttyRobotiq0 will link to whatever USB port the left gripper was assigned to. See more information here.

Recommendations

IDE - Integrated Developing Environment

It is strongly recommended to use an IDE to edit and manage the Catkin workspace and all ROS related files, there are several IDS available that work properly with ROS, you can select the one you want, I recommend to use both of these:

  • RoboWare Studio since it is a free and specifically design for ROS application development.

  • Visual Studio Code is perfect for developing in C++, Python, XML, and other languages at the same time.

Note: You can use multiple IDS