Differential Kinematics

  • Dragomir NenchevEmail author
Reference work entry


Kinematics play an essential role in motion analysis, motion generation, and control. This chapter focuses on the differential kinematic relations pertinent to open-loop and closed-loop kinematic chains. It is assumed that readers are familiar with the basic concepts concerning systems of rigid bodies, such as representations of positions and orientations, the kinematics of joints, coordinate frame assignment techniques for serial-link and parallel-link mechanisms, coordinate transformations, and the forward and inverse kinematic problems. First, the role of differential kinematics for instantaneous motion analysis is highlighted. The forward and inverse differential kinematic problems for open-loop systems are then formulated using first-order (velocity level) and second-order (acceleration level) relationships. Further on, instantaneous motion analysis and methods for motion generation at special (singular) configurations are discussed. Generic singular configurations for humanoid robots with and without kinematically redundant limbs are highlighted, and the notion of manipulability ellipsoid is introduced. Special attention is paid to solutions to the inverse instantaneous motion problem for kinematic chains with kinematic redundancy. Two basic cases are discussed for redundancy pertinent to a single limb and the whole-body chain. In the latter case, solution methods for multiple-task constraints are highlighted, covering both fixed and variable-priority tasks within a hierarchical structure. Finally, differential kinematic relations within chains with motion constraints stemming from contacts with the environment are derived.



The figures were created with the help of Jie Chen and Keita Sagara.


  1. 1.
    L. Sciavicco, B. Siciliano, Modelling and Control of Robot Manipulators (Springer Science & Business Media, London, 2000)Google Scholar
  2. 2.
    R. Featherstone, Rigid Body Dynamics Algorithms (Springer, Boston, 2008)CrossRefGoogle Scholar
  3. 3.
    J. Denavit, R. Hartenberg, A kinematic notation for lower-pair mechanisms based on matrices. Trans. ASME. J. Appl. Mech. 22, 215–221 (1955)Google Scholar
  4. 4.
    R.M. Murray, Z. Li, S.S. Sastry, A Mathematical Introduction to Robotic Manipulation (CRC Press, Boca Raton, 1994)Google Scholar
  5. 5.
    J. Yuan, Closed-loop manipulator control using quaternion feedback. IEEE J. Robot. Autom. 4(4), 434–440 (1988)CrossRefGoogle Scholar
  6. 6.
    H.G. Kwatny, G. Blankenship, Nonlinear Control and Analytical Mechanics: A Computational Approach (Springer, New York/Birkhauser, 2000)CrossRefGoogle Scholar
  7. 7.
    G. Strang, Linear Algebra and Its Applications, Cengage Learning, 4th edn., 19 July 2005Google Scholar
  8. 8.
    K. Kreutz-Delgado, M. Long, H. Seraji, Kinematic analysis of 7-DoF manipulators. Int. J. Robot. Res. 11(5), 469–481 (1992)CrossRefGoogle Scholar
  9. 9.
    A. Sekiguchi, Y. Atobe, K. Kameta, D. Nenchev, Y. Tsumaki, On motion generation for humanoid robot by the SC approach, in Annual Conference of the Robotics Society of Japan, vol. 2, 2003, p. 2A27Google Scholar
  10. 10.
    Y. Ogura, H.-O. Lim, A. Takanishi, Stretch walking pattern generation for a biped humanoid robot, in IEEE/RSJ International Conference on Intelligent Robots and Systems, 2003, pp. 352–357Google Scholar
  11. 11.
    R. Kurazume, S. Tanaka, M. Yamashita, T. Hasegawa, K. Yoneda, Straight legged walking of a biped robot, in 2005 IEEE/RSJ International Conference on Intelligent Robots and Systems, vol. 2 (IEEE, 2005), pp. 337–343Google Scholar
  12. 12.
    M. Morisawa, S. Kajita, K. Kaneko, K. Harada, F. Kanehiro, K. Fujiwara, H. Hirukawa, Pattern generation of biped walking constrained on parametric surface, in IEEE International Conference on Robotics and Automation, 2005, pp. 2405–2410Google Scholar
  13. 13.
    K. Kameta, A. Sekiguchi, Y. Tsumaki, D. Nenchev, Walking control using the SC approach for humanoid robot, in IEEE-RAS International Conference on Humanoid Robots, 2005, pp. 289–294Google Scholar
  14. 14.
    K. Takahashi, M. Noda, D. Nenchev, Y. Tsumaki, A. Sekiguchi, Static walk of a humanoid robot based on the singularity-consistent method, in IEEE/RSJ International Conference on Intelligent Robots and Systems, 2006, pp. 5484–5489Google Scholar
  15. 15.
    K. Kameta, A. Sekiguchi, Y. Tsumaki, Y. Kanamiya, Walking control around singularity using a spherical inverted pendulum with an underfloor pivot, in IEEE-RAS International Conference on Humanoid Robots, 2007, pp. 210–215Google Scholar
  16. 16.
    N. Handharu, J. Yoon, G. Kim, Gait pattern generation with knee stretch motion for biped robot using toe and heel joints, in IEEE-RAS International Conference on Humanoid Robots, Daejeon, Korea, 2008, pp. 265–270Google Scholar
  17. 17.
    Z. Li, N.G. Tsagarikis, D.G. Caldwell, B. Vanderborght, Trajectory generation of straightened knee walking for humanoid robot iCub, in IEEE International Conference on Control, Automation, Robotics and Vision, 2010, pp. 2355–2360Google Scholar
  18. 18.
    Y. Harada, J. Takahashi, D. Nenchev, D. Sato, Limit cycle based walk of a powered 7DoF 3D biped with flat feet, in 2010 IEEE/RSJ International Conference on Intelligent Robots and Systems, Oct 2010, pp. 3623–3628Google Scholar
  19. 19.
    S. Kotosaka, H. Ohtaki, Selective utilization of actuator for a humanoid robot by singular configuration. J. Robot. Soc. Jpn. 25(8), 115–121 (2007)CrossRefGoogle Scholar
  20. 20.
    H. Arisumi, S. Miossec, J.-R. Chardonnet, K. Yokoi, Dynamic lifting by whole body motion of humanoid robots, in 2008 IEEE/RSJ International Conference on Intelligent Robots and Systems, 2008, pp. 668–675Google Scholar
  21. 21.
    K. Levenberg, A method for the solution of certain non-linear problems in least squares. Q. J. Appl. Math. II(2), 164–168 (1944)MathSciNetCrossRefGoogle Scholar
  22. 22.
    Y. Nakamura, H. Hanafusa, Inverse kinematic solutions with singularity robustness for robot manipulator control. J. Dyn. Syst. Meas Control 108(3), 163 (1986)CrossRefGoogle Scholar
  23. 23.
    C.W. Wampler, Manipulator inverse kinematic solutions based on vector formulations and damped least-squares methods. IEEE Trans. Syst. Man Cybern. 16(1), 93–101 (1986)Google Scholar
  24. 24.
    T. Sugihara, Solvability-unconcerned inverse kinematics by the Levenberg-Marquardt method. IEEE Trans. Robot. 27(5), 984–991 (2011)CrossRefGoogle Scholar
  25. 25.
    D. Nenchev, Tracking manipulator trajectories with ordinary singularities: a null space-based approach. Int. J. Robot. Res. 14(4), 399–404 (1995)CrossRefGoogle Scholar
  26. 26.
    D. Nenchev, Y. Tsumaki, M. Uchiyama, Singularity-consistent parameterization of robot motion and control. Int. J. Robot. Res. 19(2), 159–182 (2000)CrossRefGoogle Scholar
  27. 27.
    S. Taki, D. Nenchev, A novel singularity-consistent inverse kinematics decomposition for S-R-S type manipulators, in IEEE International Conference on Robotics and Automation, Hong Kong, China, 2014, pp. 5070–5075Google Scholar
  28. 28.
    Y. Tsumaki, D. Nenchev, S. Kotera, M. Uchiyama, Teleoperation based on the adjoint Jacobian approach. IEEE Control Syst. Mag. 17(1), 53–62 (1997)Google Scholar
  29. 29.
    G.H. Golub, C.F. Van Loan, Matrix computations (Johns Hopkins University Press, Baltimore, 1996)Google Scholar
  30. 30.
    A.A. Maciejewski, C.A. Klein, The singular value decomposition: computation and applications to robotics. Int. J. Robot. Res. 8(6), 63–79 (1989)CrossRefGoogle Scholar
  31. 31.
    T. Yoshikawa, Manipulability of robotic mechanisms. Int. J. Robot. Res. 4(2), 3–9 (1985)Google Scholar
  32. 32.
    Y. Ogura, H. Aikawa, K. Shimomura, H. Kondo, A. Morishima, H.-O. Lim, A. Takanishi, Development of a new humanoid robot WABIAN-2, in IEEE International Conference on Robotics and Automation, 2006, pp. 76–81Google Scholar
  33. 33.
    T. Wimbock, D. Nenchev, A. Albu-Schaffer, G. Hirzinger, Experimental study on dynamic reactionless motions with DLR’s humanoid robot Justin, in 2009 IEEE/RSJ International Conference on Intelligent Robots and Systems (IEEE, St. Louis, 2009), pp. 5481–5486Google Scholar
  34. 34.
    K. Kaneko, F. Kanehiro, M. Morisawa, K. Akachi, G. Miyamori, A. Hayashi, N. Kanehira, Humanoid robot HRP-4 – humanoid robotics platform with lightweight and slim body, in IEEE International Conference on Intelligent Robots and Systems, 2011, pp. 4400–4407Google Scholar
  35. 35.
    I.-W. Park, J.-Y. Kim, J. Lee, J.-H. Oh, Mechanical design of the humanoid robot platform, HUBO. Adv. Robot. 21(11), 1305–1322 (2007)CrossRefGoogle Scholar
  36. 36.
    M. Zucker, S. Joo, M. Grey, C. Rasmussen, E. Huang, M. Stilman, A. Bobick, A general-purpose system for teleoperation of the DRC-HUBO humanoid robot. J. Field Robot. 32(3), 336–351 (2015)CrossRefGoogle Scholar
  37. 37.
    T. Buschmann, S. Lohmeier, H. Ulbrich, Humanoid robot Lola: design and walking control. J. Physiol. Paris 103(3–5), 141–148 (2009)CrossRefGoogle Scholar
  38. 38.
    A. Ben-Israel, T.N. Greville, Generalized Inverses – Theory and Applications. CMS Books in Mathematics, 2nd edn. (Springer, New York, 2003)Google Scholar
  39. 39.
    A. Liegeois, Automatic supervisory control of the configuration and behavior of multibody mechanisms. IEEE Trans. Syst. Man Cybern. 7(12), 868–871 (1977)Google Scholar
  40. 40.
    Y. Nakamura, Advanced Robotics: Redundancy and Optimization (Addison-Wesley Publishing Company, Reading, 1991)Google Scholar
  41. 41.
    T. Asfour, R. Dillmann, Human-like motion of a humanoid robot arm based on a closed-form solution of the inverse kinematics problem, in IEEE/RSJ International Conference on Intelligent Robots and Systems, Las Vegas (IEEE, 2003), pp. 1407–1412Google Scholar
  42. 42.
    M. Shimizu, H. Kakuya, W.-K. Yoon, K. Kitagaki, K. Kosuge, Analytical inverse kinematic computation for 7-DoF redundant manipulators with joint limits and its application to redundancy resolution. IEEE Trans. Robot. 24(5), 1131–1142 (2008)CrossRefGoogle Scholar
  43. 43.
    R.C. Luo, T.-W. Lin, Y.-H. Tsai, Analytical inverse kinematic solution for modularized 7-DoF redundant manipulators with offsets at shoulder and wrist, in IEEE/RSJ International Conference on Intelligent Robots and Systems, Chicago, 2014, pp. 516–521Google Scholar
  44. 44.
    J. Burdick, On the inverse kinematics of redundant manipulators: characterization of the self-motion manifolds, in IEEE International Conference on Robotics and Automation, Scottsdale, 1989, pp. 264–270Google Scholar
  45. 45.
    D. Whitney, Resolved motion rate control of manipulators and human prostheses. IEEE Trans. Man Mach. Syst. 10(2), 47–53 (1969)CrossRefGoogle Scholar
  46. 46.
    D. Nenchev, Redundancy resolution through local optimization: a review. J. Robot. Syst. 6(6), 769–798 (1989)CrossRefGoogle Scholar
  47. 47.
    B. Siciliano, Kinematic control of redundant robot manipulators: a tutorial. J. Intell. Robot. Syst. 3(3), 201–212 (1990)CrossRefGoogle Scholar
  48. 48.
    T. Yoshikawa, Analysis and control of robot arms with redundancy, in First International Symposium on Robotics Research, Pittsburg (MIT Press, Cambridge, MA, 1994), pp. 735–747Google Scholar
  49. 49.
    C.A. Klein, B.E. Blaho, Dexterity measures for the design and control of kinematically redundant manipulators. Int. J. Robot. Res. 6(2), 72–83 (1987)CrossRefGoogle Scholar
  50. 50.
    K.L. Doty, C. Melchiorri, C. Bonivento, A theory of generalized inverses applied to robotics. Int. J. Robot. Res. 12(1), 1–19 (1993)CrossRefGoogle Scholar
  51. 51.
    J. Baillieul, Avoiding obstacles and resolving kinematic redundancy, in IEEE International Conference on Robotics and Automation, 1986, pp. 1698–1704Google Scholar
  52. 52.
    H. Seraji, Configuration control of redundant manipulators: theory and Implementation. IEEE Trans. Robot. Autom. 5(4), 472–490 (1989)CrossRefGoogle Scholar
  53. 53.
    J. Park, W. Chung, Y. Youm, On dynamical decoupling of kinematically redundant manipulators, in IEEE/RSJ International Conference on Intelligent Robots and Systems, 1999, pp. 1495–1500Google Scholar
  54. 54.
    O. Kanoun, F. Lamiraux, P.-B. Wieber, Kinematic control of redundant manipulators: generalizing the task-priority framework to inequality task. IEEE Trans. Robot. 27(4), 785–792 (2011)CrossRefGoogle Scholar
  55. 55.
    M. Liu, A. Micaelli, P. Evrard, A. Escande, C. Andriot, Interactive virtual humans: a two-level prioritized control framework with wrench bounds. IEEE Trans. Robot. 28(6), 1309–1322 (2012)CrossRefGoogle Scholar
  56. 56.
    M. Brandao, L. Jamone, P. Kryczka, N. Endo, K. Hashimoto, A. Takanishi, Reaching for the unreachable: integration of locomotion and whole-body movements for extended visually guided reaching, in IEEE-RAS International Conference on Humanoid Robots, 2013Google Scholar
  57. 57.
    A.E. Albert, Regression and the Moore-Penrose Pseudoinverse, 1st edn. (Academic Press, New York, 1972)Google Scholar
  58. 58.
    M.S. Konstantinov, M.D. Markov, D. Nenchev, Kinematic control of redundant manipulators, in 11th International Symposium on Industrial Robots, Tokyo, 1981, pp. 561–568Google Scholar
  59. 59.
    H. Hanafusa, T. Yoshikawa, Y. Nakamura, Analysis and control of articulated robot arms with redundancy, in Prep. of the IFAC ’81 World Congress, 1981, pp. 78–83.CrossRefGoogle Scholar
  60. 60.
    D. Nenchev, Restricted Jacobian matrices of redundant manipulators in constrained motion tasks. Int. J. Robot. Res. 11(6), 584–597 (1992)CrossRefGoogle Scholar
  61. 61.
    D. Nenchev, Recursive local kinematic inversion with dynamic task-priority allocation, in IEEE International Conference on Robotics and Automation, Munich, 1994, pp. 2698–2703Google Scholar
  62. 62.
    B. Siciliano, J.-J. Slotine, A general framework for managing multiple tasks in highly redundant robotic systems, in Fifth International Conference on Advanced Robotics (IEEE, 1991), pp. 1211–1216Google Scholar
  63. 63.
    G. Antonelli, Stability analysis for prioritized closed-loop inverse kinematic algorithms for redundant robotic systems. IEEE Trans. Robot. 25(5), 985–994 (2009)CrossRefGoogle Scholar
  64. 64.
    H. Sadeghian, L. Villani, M. Keshmiri, B. Siciliano, Dynamic multi-priority control in redundant robotic systems. Robotica 31, 1–13 (2013)CrossRefGoogle Scholar
  65. 65.
    L. Sentis, O. Khatib, Synthesis of whole-body behaviors through hierarchical control of behavioral primitives. Int. J. Humanoid Robot. 2(4), 505–518 (2005)CrossRefGoogle Scholar
  66. 66.
    A.A. Maciejewski, C.A. Klein, Obstacle avoidance for kinematically redundant manipulators in dynamically varying environments. Int. J. Robot. Res. 4(3), 109–117 (1985)CrossRefGoogle Scholar
  67. 67.
    O. Khatib, Real-time obstacle avoidance for manipulators and mobile robots. Int. J. Robot. Res. 5(1), 90–98 (1986)Google Scholar
  68. 68.
    K. Glass, R. Colbaugh, D. Lim, H. Seraji, Real-time collision avoidance for redundant manipulators. IEEE Trans. Robot. Autom. 11(3), 448–457 (1995)CrossRefGoogle Scholar
  69. 69.
    D. Nenchev, Z. Sotirov, Dynamic task-priority allocation for kinematically redundant robotic mechanisms, in IEEE/RSJ International Conference on Intelligent Robots and Systems, Munich, 1994, pp. 518–524Google Scholar
  70. 70.
    O. Brock, O. Khatib, S. Viji, Task-consistent obstacle avoidance and motion behavior for mobile manipulation, in IEEE International Conference on Robotics and Automation, 2002, pp. 388–393Google Scholar
  71. 71.
    A. Dietrich, T. Wimbock, A. Albu-Schaffer, G. Hirzinger, Reactive whole-body control: dynamic mobile manipulation using a large number of actuated degrees of freedom. IEEE Robot. Autom. Mag. 19(2), 20–33 (2012)CrossRefGoogle Scholar
  72. 72.
    F. Keith, P.-B. Wieber, N. Mansard, A. Kheddar, Analysis of the discontinuities in prioritized tasks-space control under discreet task scheduling operations, in IEEE International Conference on Intelligent Robots and Systems, 2011, pp. 3887–3892Google Scholar
  73. 73.
    J. Lee, N. Mansard, J. Park, Intermediate desired value approach for task transition of robots in kinematic control. IEEE Trans. Robot. 28(6), 1260–1277 (2012)CrossRefGoogle Scholar
  74. 74.
    T. Petrič, L. Žlajpah, Smooth continuous transition between tasks on a kinematic control level: Obstacle avoidance as a control problem. Robot. Auton. Syst. 61(9), 948–959 (2013)CrossRefGoogle Scholar
  75. 75.
    D. Nenchev, Y. Tsumaki, M. Uchiyama, Real-time motion control in the neighborhood of singularities: a comparative study between the SC and the DLS methods, in IEEE International Conference on Robotics and Automation, 1999, pp. 506–511Google Scholar
  76. 76.
    N. Mansard, O. Khatib, A. Kheddar, A unified approach to integrate unilateral constraints in the stack of tasks. IEEE Trans. Robot. 25(3), 670–685 (2009)CrossRefGoogle Scholar
  77. 77.
    T. Petrič, A. Gams, J. Babič, L. Žlajpah, Reflexive stability control framework for humanoid robots. Auton. Robots 34(4), 347–361 (2013)CrossRefGoogle Scholar
  78. 78.
    A. Dietrich, T. Wimbock, A. Albu-Schaffer, G. Hirzinger, Integration of reactive, torque-based self-collision avoidance into a task hierarchy. IEEE Trans. Robot. 28(6), 1278–1293 (2012)CrossRefGoogle Scholar
  79. 79.
    H. Sugiura, M. Gienger, H. Janssen, C. Goerick, Real-time collision avoidance with whole body motion control for humanoid robots, in IEEE/RSJ International Conference on Intelligent Robots and Systems, 2007, pp. 2053–2058Google Scholar
  80. 80.
    O. Stasse, A. Escande, N. Mansard, S. Miossec, P. Evrard, A. Kheddar, Real-time (self)-collision avoidance task on a HRP-2 humanoid robot, in IEEE International Conference on Robotics and Automation (IEEE, 2008), pp. 3200–3205Google Scholar
  81. 81.
    J. Zhao, N.I. Badler, Real time inverse kinematics with joint limits and spatial constraints. Tech. Rep., University of Pennsylvania, 1989Google Scholar
  82. 82.
    M. De Lasa, A. Hertzmann, Prioritized optimization for task-space control, in IEEE/RSJ International Conference on Intelligent Robots and Systems, 2009, pp. 5755–5762Google Scholar
  83. 83.
    H. Isermann, Linear lexicographic optimization. OR Spektrum 4(4), 223–228 (1982)CrossRefGoogle Scholar
  84. 84.
    D.E. Stewart, J.C. Trinkle, An implicit time-stepping scheme for rigid body dynamics with inelastic collisions and coulomb friction. Int. J. Numer. Methods Eng. 39(15), 2673–2691 (1996)MathSciNetCrossRefGoogle Scholar
  85. 85.
    K. Yamane, Y. Nakamura, A numerically robust LCP solver for simulating articulated rigid bodies in contact, in Robotics: Science and Systems IV, Zurich (MIT Press, 2008), pp. 89–104Google Scholar
  86. 86.
    N. Mansard, F. Chaumette, Task sequencing for high-level sensor-based control. IEEE Trans. Robot. 23(1), 60–72 (2007)CrossRefGoogle Scholar
  87. 87.
    N. Mansard, O. Khatib, Continuous control law from unilateral constraints, in IEEE International Conference on Robotics and Automation, 2008, pp. 3359–3364Google Scholar
  88. 88.
    N. Mansard, A. Remazeilles, F. Chaumette, Continuity of varying-feature-set control laws. IEEE Trans. Autom. Control 54(11), 2493–2505 (2009)MathSciNetCrossRefGoogle Scholar
  89. 89.
    O. Kanoun, F. Lamiraux, P.-B. Wieber, F. Kanehiro, E. Yoshida, J.-P. Laumond, Prioritizing linear equality and inequality systems: application to local motion planning for redundant robots, in IEEE International Conference on Robotics and Automation, 2009, pp. 2939–2944Google Scholar
  90. 90.
    A. Escande, N. Mansard, P.-B. Wieber, Fast resolution of hierarchized inverse kinematics with inequality constraints, in IEEE International Conference on Robotics and Automation, 2010, pp. 3733–3738Google Scholar
  91. 91.
    O. Kanoun, Real-time prioritized kinematic control under inequality constraints for redundant manipulators, in Robotics: Science and Systems VII, ed. by H. Durrant-Whyte, N. Roy, P. Abbeel (MIT Press, Cambridge, MA, 2012), pp. 145–152Google Scholar
  92. 92.
    D. Montana, The kinematics of contact and grasp. Int. J. Robot. Res. 7(3), 17–32 (1988)CrossRefGoogle Scholar
  93. 93.
    K.H. Hunt, Structural kinematics of in-parallel-actuated robot-arms. J. Mech. Trans. Autom. Des. 105(4), 705 (1983)CrossRefGoogle Scholar
  94. 94.
    A. Dietrich, C. Ott, A. Albu-Schaffer, Multi-objective compliance control of redundant manipulators: Hierarchy, control, and stability, in IEEE/RSJ International Conference on Intelligent Robots and Systems (IEEE, 2013), pp. 3043–3050Google Scholar
  95. 95.
    L. Sentis, J. Petersen, R. Philippsen, Implementation and stability analysis of prioritized whole-body compliant controllers on a wheeled humanoid robot in uneven terrains. Auton. Robots 35(4), 301–319 (2013)CrossRefGoogle Scholar
  96. 96.
    A. Rennuit, A. Micaelli, X. Merlhiot, C. Andriot, F. Guillaume, N. Chevassus, D. Chablat, P. Chedmail, Passive control architecture for virtual humans, in IEEE/RSJ International Conference on Intelligent Robots and Systems, 2005, pp. 1432–1437Google Scholar
  97. 97.
    C. Ott, A. Dietrich, A. Albu-Schaffer, Prioritized multi-task compliance control of redundant manipulators. Automatica 53, 416–423 (2015)MathSciNetCrossRefGoogle Scholar
  98. 98.
    B. Dariush, G.B. Hammam, D. Orin, Constrained resolved acceleration control for humanoids, in IEEE/RSJ International Conference on Intelligent Robots and Systems, 2010, pp. 710–717Google Scholar
  99. 99.
    G.B. Hammam, P.M. Wensing, B. Dariush, D.E. Orin, Kinodynamically consistent motion retargeting for humanoids. Int. J. Humanoid Robot. 12, 1550017 (2015)Google Scholar

Copyright information

© Springer Nature B.V. 2019

Authors and Affiliations

  1. 1.Department of Mechanical Systems EngineeringTokyo City UniversityTokyoJapan

Personalised recommendations