This ROS package contains the software implementation related to the work about motion and force generation with dynamical systems:
The practical experiments were performed with KUKA LWR IV+ robots.
First, make sure that your ssh key are correctly set up. This would be needed for installing the dependencies
Go in the src
directory of your catkin workspace and clone this package:
git clone https://github.com/walidAmanhoud/force_based_ds_modulation.git
Stay in the src
directory and run the script install_dependencies.sh:
source force_based_ds_modulation/install_dependencies.sh
This script should install the package dependencies and compile everything
The main dependencies are the following ones:
- ROS: Robot operating system
- CMake: Build system
- Eigen: A library for linear algebra
- libsvm: A library for Support Vector Machines (SVM)
- SVMGrad: A ROS-package to evaluate SVM decision function and its derivatives
- kuka-lwr-ros: A ROS-package to control the KUKA LWR IV+
- mocap_optitrack: A ROS-package to work with the NaturalPoint Optitrack motion capture system
- net-ft-sensor: A ROS-package to work with the ATI 6-axis force torque sensors
- sg_differentiation: A ROS-package implementing Savitzky-Golay smoothing and differentiation
- utils: A ROS-package implementing custom functions mainly for robot motion generation
Have a look to the dependencies.rosintall file in the package directory to get the package dependencies' addresses.
The file system is divided in several subfolders:
cfg
: contains .cfg files used by dynamic reconfigureconfig
: contains .yaml used by launch filesdata_grasping
: Contains the log files generated by the ObjectGrasping classdata_polishing
: Contains the log files generated by the SurfacePolishing classdata_surface
: Contains the log and model files generated by the SurfaceLearning classdata_workspace
: Contains the workspace model files generated for the KUKA LWR IV+. Please, refer to https://github.com/sinamr66/SCA_data_construction to understand how these files can be generatedcmake
: CMake FindXXX scriptsinclude
: contains class header fileslaunch
: contains .launch filessrc
: contains class implentations and source files to instantiate them:- SurfaceLearning: A class used to learn the model of a surface
- SurfacePolishing: A class used to perform a "circular" polishing on a surface with a KUKA LWR IV+ robot
- Workspace: A class used to evaluate the reachable workspace of the KUKA LWR IV+ robot
- ObjectGrasping: A class used to reach, grasp and manipulate an object with two KUKA LWR IV+ robots
- TwoRobotsTransform: A class publishing the TF transform between the two KUKA LWR IV+ robots (used for the object grasping task)
The data_grasping
, data_polishing
, and data_surface
directories are generated automatically during the installation.