diff --git a/notes/descartes_capability.txt b/notes/descartes_capability.txt
new file mode 100644
index 0000000000000000000000000000000000000000..e5c289e1d02ef42546084d7f7b5cd631a6ad78f7
--- /dev/null
+++ b/notes/descartes_capability.txt
@@ -0,0 +1,64 @@
+Un proyecto de ejemplo donde se está planificando con Descartes desde Moveit es el siguiente:
+
+https://git.code.tecnalia.com/tecnalia_robotics/smart3d/smart3d_workcell.git
+
+Como podrás ver las dependencias de proyecto son:
+
+# UR
+- git:
+    local-name: Universal_Robots_ROS_Driver
+    uri: https://github.com/UniversalRobots/Universal_Robots_ROS_Driver.git
+    version: master
+- git:
+    local-name: universal_robot
+    uri: https://github.com/ros-industrial/universal_robot.git
+    version: melodic-devel-staging
+# Advance IK
+- git:
+    local-name: flexbotics_kinematics_plugin
+    uri: git@git.code.tecnalia.com:tecnalia_robotics/flexbotics_kinematics_plugin.git
+    version: noetic-devel
+# Descrates
+- git:
+    local-name: descartes
+    uri: https://github.com/tecnalia-advancedmanufacturing-robotics/descartes.git
+    version: melodic-collision-minimum
+- git:
+    local-name: descartes_capability
+    uri: https://github.com/tecnalia-advancedmanufacturing-robotics/descartes_capability.git
+    version: ikfast
+# Extras
+- git:
+    local-name: robotnik_sensors
+    uri: https://github.com/RobotnikAutomation/robotnik_sensors.git
+    version: melodic-devel
+- git:
+    local-name: smart3d_database
+    uri: git@git.code.tecnalia.com:tecnalia_robotics/smart3d/smart3d_database.git
+    version: main
+
+Conceptualmente, Descartes es una librería para buscar en un grafo. Las nuevas versiones <<Descartes Light>> han removido todo lo de modelo de la escena, robot y se enfocan únicamente en la construcción y búsqueda en el grafo.
+<<descartes_capability>> es un plugin para MoveIt que preparó PikNik Robotics, nosotros lo que hemos hecho es ponerlo en Noetic y con algunas modificaciones de Iñigo para que trabaje como se esperaría que lo hiciera. De ahí que usemos el fork.
+
+Descartes requiere de un solver de IK que regrese más de una solución por ello el uso de IKFast.
+
+Para generar el Plugin de MoveIt de IKFast en la dentro del repo tienes el paquete <<smart3d_workcell/smart3d_ikfast_manipulator_plugin>> como ejemplo.
+La clave está en la carpeta generate_ikfast, para que funcione necesitas:
+- docker
+- modelo URDF de la escena con el robot
+En el readme te darás cuenta que se puede llamar el script (autoría de Miguel / Jon Azpiazu) con dos opciones -i para que te de la información de la escena, lo tendrá que hacer para tomar unos numerillos y saber entre que números de joints está definido tu robot.
+Con esos números modificas el script genrate_ikfast.bash y al lanzarlo con la opción -g te generará la solución. <<Si no te aclaras me das una llamada y lo hacemos en on-line>>
+Una vez genberada la IK, queda en la carpeta /src/solvers del paquete un archivo con extensión .cpp.autogen con ese nombre en mente modicficas el CMakeLists.txt del proyecto para que la macro coja el archivo que te interese.
+Tambien madificas el ---ikfast_plugin_description.xml para que se exporte tu plugin y ahora moveit lo pueda "ver".
+
+Para que el descrates_capability esté disponible en MoveIt tienes que pasar unos argumentos cuando lanzas el move_group:
+
+<arg name="capabilities" value="descartes_capability/MoveGroupDescartesPathService"/>
+<arg name="disable_capabilities" value="move_group/MoveGroupCartesianPathService"/>
+
+Más detalles tienes en el archivo set_up_moveit.launch del paquete smart3d_workcell_launch.
+En la carpeta scripts del mismo paquete tienes entre otros, un ejemplo de interés: scan_moves.py, donde te darás cuenta que si todo está bien configurado usar descartes es tan simple como:
+(plan, fraction) = ur_group.compute_cartesian_path(waypoints, 0.01, threshold)
+donde waypoints son los puntos cartesianos sobre los que quieres planificar, usando la interfaz de MoveIt, por supuesto.
+
+