-
Notifications
You must be signed in to change notification settings - Fork 21
Intallation
The following section will explain the required steps to bring the project to work.
Note: This repository supports ROS Kinetic and newer distributions.
- Prerequisites
- Required Repositories
- Dependencies
- Required Motoman driver changes
- Consistent USB port assignment
- Recommendations
- 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).
Clone this and the following repositories in your catkin workspace (some of the packages have installation instructions to follow):
Robot related dependencies
- Motoman packages - Kinetic Devel
-
Motoman experimental - motoman_csda10f_support - Kinetic Devel (Only the
motoman_csda10f_support
package is required, after cloning delete all other packages of this repo).
Robotiq gripper related dependencies
- Danfoa/robotiq_2finger_grippers: Package containing all configuration and functionalities of the Robotiq 2 Finger grippers (both 85mm and 140mm ones).
Force/Torque sensing dependencies
- robotiq/robotiq_ft_sensor: Package allowing the connection to the FT300 Robotiq sensor (Download only this package from the robotiq meta-package)
-
invite-robotics/force_sensor_utils: ROS
package containing utility functions to process
geometry_msgs/WrenchStamped
messages.
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
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.
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.
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
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.
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
Invite-Robotics
-
Tutorials