ROBOTIC DEVICE

Certain examples described herein provide a method of controlling a robotic device including a body, an end effector coupled to the body by one or more joints and a propulsion system to drive the one or more joints to control a state of the robotic device. Example methods include applying impedance control to the robotic device; determining a reference trajectory of the end effector; detecting an applied external force and/or torque acting on the robotic device causing a departure from the reference trajectory; calculating an adjustment to be applied to one or more of the one or more joints to compensate for the detected applied external force and/or torque; and using the calculated adjustment to control the one or more joints to actuate the end effector and recover the reference trajectory of the end effector.

TECHNICAL FIELD

The present invention relates to a method of controlling a robotic device, a controller configured to perform the method, and a robotic device comprising the controller.

BACKGROUND

Impedance control is a known method of controlling a robotic device. Impedance control may, for example, be used to control a robotic device comprising a robotic arm having an end effector configured to perform certain tasks such as grasping, lifting and manipulating objects, or such as writing on a board or wiping a surface. In such circumstances, impedance control allows the end effector to be controlled based on a relationship between forces exerted on the end effector and a position of the end effector. With impedance control, the ratio of force output to motion input may be controlled by, in effect, modelling the robotic arm as a mass-spring-damper system. Impedance control may be particularly useful where such tasks are performed in a human environment. In particular, impedance control may be useful where it is desirable for the force produced by a human interacting with the robotic arm to be related to how fast the robotic arm should move, for example. However, impedance control may also be applied for controlling robots in other environments which are not human environments, for example, in cases where it is important to avoid the robotic device damaging objects existing in the environment, such as in a factory setting.

During some interactions with an environment, an unknown load may act on a robotic device. For example, as described above, a robotic arm may be tasked with lifting objects by use of an appropriate end effector. In some cases, the mass of an object being lifted may be unknown, and thus the load acting on the end effector may be unknown. In typical impedance control schemes, such an unknown load may result in an error in the desired position of the end effector, with the unknown load acting to alter an equilibrium position of the end effector which is acting as a mass-spring-damper system. This may also be referred to herein as the load causing the end effector to depart from its “reference trajectory”. This can be undesirable, particularly where close control of the position of the end effector is needed, for example, to perform a particular task.

SUMMARY

According to a first aspect of the present invention there is provided a method of controlling a robotic device comprising a body, an end effector coupled to the body by one or more joints and a propulsion system to drive the one or more joints to control a state of the robotic device, the method comprising: applying impedance control to the robotic device; determining a reference trajectory of the end effector; detecting an applied external force and/or torque on the robotic device causing a departure from the reference trajectory; calculating an adjustment to be applied to one or more of the one or more joints to compensate for the detected applied external force and/or torque; and using the calculated adjustment to control the one or more joints to actuate the end effector and recover the reference trajectory of the end effector.

Example methods according to the invention may for the effect of an applied external force and/or torque while continuing to control the end effector by use of an impedance control scheme. The external force and/or torque may, for example, be compensated for without the impedance control behaviour of the robotic device being affected. For example, the perceived stiffness of the movement of the robotic device may remain unchanged while a static error in the position of the end effector with respect to a reference trajectory caused by the external force and/or torque is “corrected”. Further advantages of the invention will become apparent from the remainder of this disclosure.

The method may further comprise estimating a joint force and/or torque applied to the one more joints caused by the applied external force and/or torque. Accordingly, an effect of the external force and/or torque on the robotic device, with respect to the one or more joints, may be estimated such that an appropriate adjustment to compensate for this effect can be calculated.

The adjustment may be a joint force and/or torque to be applied to the one or more joints. For example, a joint torque may be applied to provide the adjustment. The adjustment may, in some examples, act as a “pre-load” torque and/or force to be applied to the joints, allowing the applied external force and/or torque to be compensated for while continuing the control of the end effector by applying impedance control.

The detected applied external force and/or torque may be due to an external force acting on the end effector. The method may, accordingly, in some examples, compensate for the effect of an external force applied at the end effector.

Calculating the adjustment to be applied to the one or more joints to compensate for the applied external force and/or torque may comprise determining one or more components of the applied external force and/or torque acting on the end effector along an axis and determining the adjustment as the joint torque and/or force to be applied to the one or more joints to compensate for the one or more components of the external force and/or torque along the axis. The axis may, for example, be a substantially vertical axis. This may allow the adjustment, in some examples, to compensate for an effect of the external force and/or torque acting along a particular axis while filtering out components of the external force and/or torque which do not act along the particular axis. For example, where the axis is a substantially vertical axis, the weight of a load acting on the end effector may be compensated for while filtering out other effects not due to the weight of the load.

Calculating the adjustment to be applied may comprise determining a projection of the applied external force and/or torque acting on the end effector in a vector sub-space and determining the adjustment as the joint torque and/or force to be applied to the one or more joints to compensate for the projection of the external force in the vector sub-space. This may allow for components of the external force and/or torque in any particular sub-space to be compensated for while not compensating for other components of the external force and/or torque.

The applied external force and/or torque may be due to a weight of a load carried by the end effector. Accordingly, the adjustment may compensate for a departure from the reference trajectory caused by the weight carried by the end effector.

The reference trajectory may define a trajectory for the robotic device to lay the load on a surface and the method may comprise refining the adjustment to maintain the reference trajectory as the load is laid on the surface and the weight of the load acting on the end effector is reduced. This may allow for a load to be smoothly transferred from the end effector to a surface.

Estimating the joint force and/or torque may comprise using data from one or more proprioceptive sensors of the robotic device. Accordingly, in certain examples, no additional sensors capable of determining the external force and/or torque acting on the robotic device are required.

Estimating the joint force and/or torque may comprise using a momentum observer method. Use of a momentum observer method may allow for the applied external joint force and/or torque to be estimated without use of measured joint accelerations, such as may be used in the estimation if a direct estimation method is used.

The method may comprise determining a rate at which the calculated adjustment is to be used to control the one or more joints, and using the calculated adjustment to control the one or more joints to recover the reference trajectory of the end effector may comprise adjusting the impedance control at the determined rate. This may allow for providing a delay which allows for the elastic effect provided for by the impedance control law to be more effectively retained while the external force and/or torque is compensated for.

Determining the rate at which the calculated adjustment is to be used to control the one or more joints may comprise applying a low pass filter to a signal related to the detected applied external force and/or torque. A low pass filter may provide convenient means for processing the signal to provide the above-mentioned delay and also may provide for noise in the detected applied external force and/or torque to be filtered out such that the noise is not compensated by the adjustment.

The method may further comprise determining a gravity compensation torque for being applied to the one or more joints to compensate for a torque acting on the robotic device due to a weight of the robotic device; and adjusting the impedance control, using the determined gravity compensation torque, to control the one or more joints to compensate for the torque acting on the robotic device due to the weight of the robotic device. Examples methods herein may, accordingly, compensate for the effect of the weight of the robotic device in addition to the external force and/or torque.

According to a second aspect of the present invention there is provided a controller for controlling a robotic device comprising a body, an end effector coupled to the body by one or more joints and a propulsion system to drive the one or more joints to control a state of the robotic device, the controller being configured to perform a method according to the first aspect of the present invention.

According to a third aspect of the present invention there is provided a set of machine-readable instructions which when executed by a controller of a robotic device cause a method according to the first aspect of the present invention to be performed.

According to a fourth aspect of the present invention there is provided a machine-readable medium comprising a set of machine-readable instructions according to the third aspect of the present invention.

According to a fifth aspect of the present invention there is provided a robotic device comprising: a body; an end effector coupled to the body by one or more joints; a propulsion system to drive the one or more joints to control a state of the robotic device; and a controller configured to: apply impedance control to the robotic device; determine a reference trajectory of the end effector; detect an applied external force and/or torque on robotic device causing a departure from the reference trajectory; calculate an adjustment to be applied to one or more of the one or more joints to compensate for the detected applied external force and/or torque; and using the calculated adjustment, to control the one or more joints to actuate the end effector and recover the reference trajectory of the end effector.

DETAILED DESCRIPTION

Examples of the invention relate to control of a robotic device configured to use impedance control. Such a robotic device may be configured to interact with humans in a human environment. However, examples of the invention may find application in other areas, such as commercial robots intended to operate in a non-human, e.g. factory, environment. Certain examples of the invention are configured to recover a reference trajectory when an external torque is applied to an end effector due to loading of the end effector with an object, e.g., of unknown weight. However, the same control approach described herein may similarly be used to compensate for other types of forces exerted on a robotic device. In any event, a method of controlling a robotic device will now be described, by way of example.

FIG.1shows a flowchart representation of an example method1000of controlling a robotic device comprising a body, which may also be referred to as a base link, an end effector coupled to the body by one or more joints and a propulsion system to drive the one or more joints to control a state of the robotic device. Driving the one or more joints to control the state of the robotic device may comprise applying joint torques to the joints to control revolution of the joints. In some examples, the robotic device may also comprise one or more joints which allow linear movement. Joints which allow linear movement may be controlled by the application of joint forces by the propulsion system. The method1000comprises, at block1002, applying impedance control to the robotic device. Applying impedance control typically comprises applying a control law which takes into account a state of the robotic device, e.g. as measured by one or more sensors, and a reference trajectory and determining torques to be applied to the one or more joints by the propulsion system. An example impedance control law is described below in more detail.

At block1004, the method comprises determining a reference trajectory of the end effector. The reference trajectory may define a path for the end effector to follow in three-dimensional space in the environment in which the robotic device100is located. The reference trajectory may, for example, define a velocity, a position and/or orientation and an acceleration for the end effector. In some examples, the reference trajectory may be a trajectory for the end effector to follow to allow the end effector to perform a task, for example carrying an object or performing a writing task or wiping a surface. In other examples, the reference trajectory may comprise a stationary trajectory intended to keep the end effector in a fixed position.

At block1006, the method1000comprises detecting an applied external force and/or torque acting on the robotic device and causing a departure from the reference trajectory. The applied external force and/or torque is an external force and/or torque acting on the robotic device which may, for example, be due to an external force acting on the end effector. For example, the applied external force and/or torque may be a force acting on the end effector due to a weight of a load carried by the end effector. The external force and/or torque may alternatively or additionally be due to a torque being applied to the end effector such as by a twisting effect by the hand of a user. The external force and/or torque may in some examples be a force/torque applied to the robotic device at a point other than the end effector. The applied external force and/or torque may result in a departure of the end effector from the reference trajectory.

In some examples, a joint force and/or torque applied to the one or more joints caused by the applied external force and/or torque may be estimated. This may be referred to herein as the applied joint force and/or torque or the external joint force and/or torque. The joint force and/or torque may be estimated from data indicating the state of the robotic device, e.g. as measured by one or more sensors. The state of the robotic device may be defined in terms of respective positions, velocities and accelerations of the one or more joints. The data may come from one or more proprioceptive sensors. The proprioceptive sensors may, for example, detect joint angles and/or torques of the one or more joints. In examples where one or more of the joints allow linear movement, one or more proprioceptive sensors may detect joint positions and/or forces of the joints which allow linear movement. This may be referred to herein as using a “sensorless” estimation method to estimate the applied joint force and/or torque since no sensors other than the proprioceptive sensors are used in the estimation process. Use of a sensorless method may remove the need for additional sensors capable of determining the load acting on the end effector which may have benefits such as reducing the cost of producing the robotic device. One example of a sensorless estimation method which may be used in examples described herein is a “momentum observer” method, for example, as described in “Sensorless robot collision detection and hybrid force/motion control”, A. De Luca and R. Mattone, Proceedings of the 2005 IEEE international conference on robotics and automation, 2005, which is incorporated herein by reference. In other examples, other sensorless methods of estimating the applied joint force and/or torque may be used. For example, the applied joint force and/or torque may be estimated directly, e.g. using a method as described in “An acceleration-based state observer for robot manipulators with elastic joints” by A. De Luca, D. Schroder and M. Thummel, Proceedings 2007 IEEE international conference on robotics and automation, 2007. In another example, a “joint velocity observer” method may be used, e.g. as described in S. Haddadin, Towards Safe Robots; Approaching Asimov's 1st Law, Springer Tracts in Advanced Robotics, 2014. In yet another example an “energy observer” method may be used, e.g. as described by A. De Luca, A. AlbuSchaffer, S. Haddadin and G. Hirzinger in “Collision detection and safe reaction with the DLR-III lightweight manipulator arm,”2006 IEEE/RSJ International Conference on Intelligent Robots and Systems, 2006. All of the preceding documents are incorporated herein by reference.

At block1008an adjustment is calculated to be applied to one or more of the one or more joints to compensate for the detected applied external force and/or torque. In some examples, calculating the adjustment to be applied comprises determining a component of an external force and/or torque acting on the end effector in a particular vector sub-space. For example, the applied external force and/or torque may be an external force, and a projection of the external force along a particular axis may be determined. The adjustment may, accordingly, for example, be calculated to compensate for the external force acting along the axis. For example, the method may be used to compensate for a force acting on the end effector due to the weight of an external load acting on the end effector. In such examples, the axis may be a substantially vertical axis. Determining the adjustment may then comprise determining an adjustment to compensate for the action of the weight of the external load on the end effector. This may be done by projecting the detected applied external force and/or torque along the vertical axis. Accordingly, the weight of the external load may be compensated for while contributions to the applied external force and/or torque which are not due to the weight of the external load are filtered out and are not compensated for. An example of this will be described below in more detail.

In some examples, methods may further comprise determining a rate at which the calculated adjustment is to be used to control the one or more joints. The adjustment may be applied to recover the reference trajectory of the end effector at the determined rate. This may provide a delay which allows for the elastic effect provided for by the impedance control law to be retained. For example, since the estimation of the applied joint force and/or torque may be obtained in a small amount of time, the applied external force and/or torque could be compensated for by directly adding the estimated joint forces/or torques to the impedance control forces and/or torques to be applied to control the joints. However, in certain examples, such an approach could make negligible the “spring” effect provided by the impedance control. Introducing a delay by adjusting the impedance control at a determined rate may prevent this. Determining the rate at which to apply the adjustment may comprise applying a low pass filter to a signal related to the detected applied external force and/or torque. For example, a low pass filter may be applied to a signal representing the detected applied external force and/or torque. The low pass filter may be tuned as necessary to provide the desired delay. Use of a low pass filter may, further, provide for noise in the detected applied external force and/or torque to be filtered out such that the noise is not compensated by the adjustment, which may be undesirable.

Finally, at block1010, the method1000comprises using the calculated adjustment to control the one or more joints to actuate the end effector to recover the reference trajectory of the end effector. Using the adjustment at block1010may in some examples comprise adding a calculated preload torque to joint torques determined by the impedance control law for controlling the end effector. In one example, the adjustment may thus comprise a torque to be applied to the joints in addition to joint torques determined according to the impedance control law. Where one or more of the joints is a linear joint, the adjustment may additionally comprise a joint force to be applied to the linear joints. By the application of the adjustment, a preload force and/or torque may be applied which allows the reference trajectory to be recovered to compensate for the applied external force and/or torque while continuing the control of the end effector by applying impedance control. Accordingly, the method may be considered a method of compensating in force space for an error in the position and/or orientation of the end effector, rather than compensating in Cartesian space. This is since the adjustment is applied to recover the reference trajectory, rather than, e.g., the method attempting to directly correct the position of the end effector with reference to a desired position.

The adjustment of the impedance control may be dynamic such that changes to the applied external force and/or torque can be compensated for. For example, the robotic device may be configured to grasp and lift an object and later to lay the object down. When the object is grasped, the weight of the object begins to act on the end effector. At this point, an adjustment to compensate for the detected applied external force and/or torque due to the object is calculated and the impedance control adjusted, using the calculated adjustment, to recover the reference trajectory. When the process of laying the object down on a surface begins, contact between the object and the surface is detected. As the object is laid down, the load on the end effector is reduced until it reaches zero when the object is laid on the surface and no longer weighs on the end effector. Accordingly, in some examples, the adjustment, e.g. preload torque, used to compensate for the weight of the object may be gradually reduced to zero as the object is laid down on the surface. Once the calculated adjustment reaches zero, the grasp of the end effector on the object may be released. This may allow for the object to be smoothly transferred from the end effector to the surface.

Certain example methods also comprise determining a gravity compensation torque to compensate for a torque acting on the robotic device due to a weight of the robotic device. The impedance control may in such methods be adjusted using the gravity compensation torque, in a known manner. In a similar manner to as how the weight of the robotic device may be compensated for by a gravity compensation method, certain example methods may also compensate for other effects such as a Coriolis effect acting on the robotic device.

Accordingly, in certain examples, methods described herein may be considered a means for correcting for a static error in the position of an end effector with respect to a reference trajectory due to an unknown load acting on the end effector. The applied joint force and/or torque acting on the joints of the robotic device due to the unknown load may be estimated, e.g. by sensorless means, and can be compensated by “preloading” the joints controlled by the impedance control law. This means that the external applied load may be compensated for without the impedance control behaviour of the robotic device being impacted. That is, the static positional error caused by the applied external force and/or torque can be corrected without modifying either the desired position or the Cartesian impedance. Instead, the force-displacement curve for the robot is offset by the preload force/torque while the perceived “stiffness” of the movement of the robotic device may remain unchanged. Among other advantages, this may allow the robotic device to use the end effector to continue to perform a task requiring impedance control with positional accuracy when an unknown load is applied to the end effector.

FIG.2Ashows a simplified representation of an example robotic device100configured to perform the example control method described above.FIG.2Ashows a side view of the example robotic device100. The example robotic device100comprises an actuated robotic arm105comprising a body102, which, as mentioned above, may also be referred to as a base link, an end effector112and a number of joints. The robotic device100also comprises a propulsion system (not shown) for actuating the one or more joints. In some examples, the joints are powered joints and the propulsion system comprises a set of joint motors, where a joint motor of the set of joint motors controls one of the joints. The positions of the one or more joints are controlled to control a position and/or the orientation of the end effector112within Cartesian space such that the end effector112can be moved in the environment in which of the robotic device100is located. For example, where the position and orientation of the end effector112is controlled by the joints, the position and orientation of the end effector112, which may in some examples be referred to as the “pose” of the end effector112, may be controlled in a 6-dimensional space.

In the example robotic device100, the actuated robotic arm105comprises 6 joints114a-114fwhich are configured to allow positioning of the end effector112with, for example, six degrees of freedom. The robotic device100may be referred to as a 6R robot. In another example, the robotic device100may have another number of degrees of freedom, for example seven degrees of freedom. The joints114a-114fof the actuated robotic arm105are coupled by mechanical linkages or “links”.FIG.2Ashows a first link115athat mechanically couples a first joint114ato a second joint115b. A second link115bmechanically couples a second joint114bto a third joint114c. The robotic arm105further comprises a third link115c, a fourth link115d, and a fifth link115ewhich respectively mechanically couple the third joint114cto a fourth joint114d, the fourth joint114dto a fifth joint114e, and the fifth joint114eto a sixth joint114fThe robotic device100may comprise further joints and/or links not shown in the figures. For example, as mentioned above, in some examples, the robotic device may comprise one or more joints which allow translational, i.e. linear, movement in additional to joints which allow rotational movement. Each link may comprise a rigid elongate member. Each link may be a single unit or multiple coupled sub-units. Each link may have solid and/or hollow portions. In one case, a link may comprise a hollow tube and/or a frame of rigid material such as steel, aluminium or carbon fibre. In some examples, a tool (not shown in the figures) may be mechanically coupled to the end effector112.

The robotic device100is positioned on a surface170defining an x-y plane. The x-y plane may be a horizontal plane such that the z-axis is a vertical axis. Though, this need not be the case in all examples. The position and/or orientation of the end effector112with respect to this three-dimensional co-ordinate system may be controlled by controlling the rotation of one or more of joints114a-114f. Each of the joints114a-114fis configured to rotate about at least one axis to allow movement of the end effector112within a particular degree of freedom. For example, one or more of the joints114a-114f, in a given configuration of the robotic device100, may rotate about an axis that is parallel to the z-axis, to allow a position of the end effector112within the x-y plane to be controlled. Further, one or more of the joints114a-114fmay be configured to rotate to control a position of the end effector112along the z-axis. In some examples, one or more of the joints114a-114fmay comprise either a ball joint or a two assembly that allows respective rotation around axes parallel to both the z and y axes.

The joints114a-114fof the actuated robotic arm105may be rotated by applying respective joint torques to the joints114a-114f. The joint torques are computed by a controller (not shown inFIGS.2A-C) performing a control method, as is described herein. The computed joint torques are applied to the joints by the propulsion system, which may comprise one or more electronic motors. For example, the propulsion system may comprise a plurality of electronic motors and one of the electronic motors may be located at each of the joints114a-114f. The robotic device100also comprises one or more sensors (not shown) for detecting a state of the robotic device100and feeding this to the controller for use in the control method. The sensors may, for example, detect respective joint angles of the joints114a-114fand/or measure torques being applied to the joints114a-114f.

The controller is configured to apply the control method to control the position and orientation of the end effector112along a reference trajectory160. The reference trajectory160may comprise a set of positions and velocities to be effected at the end effector112. The reference trajectory may define a path for movement of the end effector112, for example, to perform a task such as carrying an object. The reference trajectory may in other examples be a stationary trajectory defining a fixed intended position for the end effector112.FIG.2Ashows an example reference trajectory160comprising a line in space along which the end effector112is controlled to move. The reference trajectory160is represented by a dotted line inFIGS.2A-2C.

Turning toFIG.2B, the robotic device100ofFIG.2Ais shown holding at the end effector112an object250. The object250may, for example, be a load to be held by the end effector112, and the reference trajectory160may define a path along which the end effector112is desired to move to carry the object250.FIG.2Bshows the example robotic device100immediately following the end effector112being loaded with the object250. InFIG.2B, the robotic device100is in a state wherein the end effector112has departed downwardly from the reference trajectory160due to the object250weighing on the end effector112. The external applied force due to the object250which results in the departure from the reference trajectory160can be detected by the sensors of the robotic device100. Input from the sensors may be used to estimate the applied external joint torque acting on one or more of the joints114a-114fof the robotic arm105due to the object250.

From the position shown inFIG.2B, the controller continues to perform the control method to apply the adjustment to compensate for the effect of the load250.FIG.2Cshows the example robotic device100once the adjustment has been applied and the reference trajectory160recovered. That is, the position of the end effector112can be seen to have been returned the reference trajectory160while holding the load250. From this position, the robotic device100may continue to actuate the end effector112to move along the reference trajectory160while applying an impedance control law. For example, the control method applied may be such that the stiffness of the robotic device as defined by the parameters of the impedance control law is unchanged due to the presence of the load250. This may mean that in the configuration shown inFIG.2C, any additional external interaction with the robotic arm105, such as a random collision, e.g. with a person, may perceive the same stiffness that the robot arm105had when unloaded (i.e. as shown inFIG.2A).

The time taken for the robotic device100to recover the reference trajectory160for the end effector112, i.e. to go from the configuration shown inFIG.2Bto the configuration shown inFIG.2C, may be determined by the parameters of a low pass filter applied in the signal path by the controller, as is described above and as will be described below in more detail.

FIG.3shows a schematic flowchart diagram representing an example control scheme300for the robotic device100. The control scheme300comprises applying impedance control to control movement of the robotic device100to interact with the environment304. An impedance control block310of the control scheme300represents the implementation of the impedance control method to determine control signals for controlling joint torques to be provided to the joints based on the state of the robotic device100and the reference trajectory160. A state block320represents a state of the robotic device100in the control scheme300. The impedance control block310receives as inputs the state of the robotic device100from the state block320and the reference trajectory160. The impedance control block310applies an impedance control law, in a known manner. For example, the impedance control block310may compute an impedance control law in the form

where xd, and {dot over (x)}desare, respectively, a position and a velocity defined by the reference trajectory160and xrobot(q) and {dot over (x)}robot(q, {dot over (q)}) are, respectively, a position and velocity of the end effector112computed from the state q of the robotic device100.

The control scheme300further comprises an adjustment block330which is configured to apply the adjustment to compensate for an effect of an applied external force and/or torque on the robotic device100, as will now be described.

The control scheme300comprises an external force and/or torque compensation block340. The external force and/or torque compensation block340is configured to determine an applied external force and/or torque acting on the robotic device and causing a departure from the reference trajectory. The external force and/or torque compensation block340comprises an external joint torque estimation block342which takes as an input from the state block320the state of the robotic device100. The external joint torque estimation block342estimates the joint torque acting on the one or more joints of the robotic device100due to the external force and/or torque. In examples, the external joint torque estimation block342estimates the applied external joint torque from the state of the robot received from block320. As discussed above, this may be described as using a sensorless method, i.e. a method which relies only on the proprioceptive sensors of the robotic device100and which does not, for example, use data obtained from exteroceptive load sensors or other sensors. One example of a sensorless method which may be used at the external force and/or torque estimation block340to estimate the applied external joint torque is a momentum observer method. Using a momentum observer method may be advantageous in some examples since it may allow for the applied external joint torque to be estimated without use of measured joint accelerations which may be required by a direct estimation method. This may be desirable since obtaining joint accelerations may require computing a second derivative of joint encoder measurements which may be subject to noise. Further, the momentum observer method does not require inversions of the mass matrix to be computed, making it potentially more computationally efficient than a velocity observer method which typically requires mass matrix inversions to be computed at each of a plurality of iterations involved in obtaining convergence to the applied external joint torque.

The external applied joint torque estimated at the external joint torque estimation block342is provided to the adjustment block330to apply an adjustment, e.g. a preload torque, to compensate for the estimated applied external joint torque. However, in certain examples, further steps are performed before the estimated applied external joint torque is provided to the adjustment block330be used to adjust the impedance control method. For example, in the example shown inFIG.3, the external force and/or torque compensation block340further comprises a projection block344. At the projection block344, the estimated external joint torque may be used to compute the applied external force and/or torque acting on the end effector, which may be referred to as the action on the end effector112. A projection of the applied external force and/or torque acting on the end effector, or action, into a particular sub-space is then determined. The sub-space into which the action is projected may, for example, be define particular axis. This, for example, allows for compensating for a load acting on the end effector112along a particular axis while excluding other external effects on the end effector112. In an example, the projection block344is configured to project the estimated applied external force and/or torque into a Cartesian space and from this to estimate the 6-dimensional action on the end effector112. The 6-dimensional action comprises 3 Cartesian components of force and 3 moments. Once projected into the Cartesian space, the estimated action at the end effector may be projected along a pre-determined axis. For example, the projection block344may be configured to determine a projection of the load acting on the end effector112along a vertical axis. This may allow for the external force and/or torque compensation block340to compensate for the weight of an external load acting on the end effector112while excluding forces along other directions. Thus, it may be that the action on the end effector112due to the weight of the load may be taken into account while other external effects are filtered out.

InFIG.3, the external force and/or torque compensation block340comprises a filter block346. The filter block346is configured to control a rate at which the control scheme300compensates for the applied external force and/or torque by introducing a delay. The filter block346in examples comprises processing the signal indicative of the detected applied external force and/or torque to be compensated for with a low pass filter. The low pass filter may be tuned to provide the desired responsiveness in adjusting for the applied external forces/torques. The low pass filter may also act to filter out noise in the detected applied external force/torque signal, such that the preload compensation action is smoothed.

The filter block346is shown inFIG.3to follow the projection block334in the signal path of the external force and/or torque compensation block340. However, in other examples, the filter block346may be placed in a different position in the signal path. For example, the filter block346may be positioned prior to the projection block344in the signal path such that the projection block344projects the already filtered applied external force and/or torque.

The external force and/or torque compensation block340calculates the adjustment to be made to compensate for the detected applied external force and/or torque, which may be filtered and/or projected along a given axis as described above, and provides it to the adjustment block330. The adjustment block330then applies the adjustment to the impedance control method. The adjustment block330may, for example, add the adjustment in the form of a preload torque to the joint torques output by the impedance control block310for controlling the one or more joints of the robotic device100. Accordingly, the method300in certain examples may be considered a method of adding a “preload” torque to the impedance control method. As mentioned above, this means that the external applied load may be compensated for, without the “stiffness” of the mass-spring-damper being changed. Accordingly, example methods described herein may allow for retaining the benefits of applying impedance control in controlling the forces exerted on and by and the position of the end effector112while compensating for a positional error introduced by an unknown load acting on the end effector. Thus, the reference trajectory of the end effector112may be recovered, for example, allowing the end effector112to perform a task which is encoded by the reference trajectory while recovering positional accuracy.

In some examples, the control scheme300may further comprise a gravity compensation block350. The gravity compensation block350is configured to compute a gravity compensation torque to compensate for the weight of the robotic device100. In examples, the gravity compensation block350acts to provide a feedforward term to the adjustment block330. The gravity compensation torque may be computed based on the state of the robotic device100as provided by the state block320. The gravity compensation torque may then be used at the adjustment block330to adjust the impedance control and provide that the impedance control is not affected by an error due to the weight of the robotic device100. As mentioned above, additional effects such as a Coriolis effect may, in some examples, be compensated for in a similar method to how the gravity compensation block350operates.

The principles employed by the external force and/or torque compensation block340in the example method300will now be described in more detail. The external joint torques estimated by the sensorless applied joint torque estimation process at block342may be labelled {circumflex over (τ)}ext. The vector {circumflex over (F)}extrepresenting the external force and/or torque applied at the end effector112of the robotic device100can be computed from {circumflex over (τ)}extaccording to

where JT+represents the Moore-Penrose pseudo-inverse of the transpose of the Jacobian matrix of the robotic device100.

As mentioned above, the force and/or torque vector at the end effector112may in some examples be projected into a sub-space, such as a vertical axis. In the example where the projection is along the vertical axis, the projection along the vertical axis of the determined applied external force and/or torque {circumflex over (F)}extmay be represented as {circumflex over (F)}vand related to {circumflex over (F)}extby the following expression, where Pvis the projector along the vertical axis.

In certain examples, the vertical axis is aligned with the z-axis. In such examples, projection along the vertical axis coincides with projection along the z-axis and the following expression is true.

In other examples, projection along the vertical axis may not coincide with projection along the z-axis. For example, the robotic device100may be inclined with respect to the surface170and thus the frame of the robotic device100may not be aligned with the Cartesian frame defined by the surface170. In such examples, a more general projector may be used, as follows. Where A is the basis for a linear space, the projection p of a point b on the linear space can computed as

where the projector PAon the linear space A is defined as follows.

It may be noted that the error e describes the component of b orthogonal to the linear space A, where

and where (I−PA) is the projector in the nullspace of AT, which is orthogonal to the column space of A.

The filter applied at the filter block346may also be described, using similar notation to the above, as

In Equation (8), Lfilt{circumflex over (F)}zrepresents the low pass filtering operation applied on the vector {circumflex over (F)}z. It should, however, be noted that Lfiltis not technically a linear operator. We keep this symbol in the following description for the sake of clarity.

In this example, {circumflex over (F)}zlpis the actual vector representing the effective contact force at the end effector112which is to be compensated. In order to determine a preload torque to be applied to the joints to provide the preload compensation, {circumflex over (F)}zlpis projected back into the joint torque space of the robotic device100by use of the following expression.

The process for obtaining the preload torques can thus be summarised with the following expression, obtainable from the above equations.

FIG.4shows an example control system400for the robotic device100for implementing example methods described herein. The example control system400comprises internal body components410that may be supplied as part the body of the robotic device (e.g. may be mounted on or in the body, for example, in a base link and/or in other links of the device). The internal body components410comprise a controller420and a set of joint control systems440to444. InFIG.4, the set of joint control systems440to444comprise a first joint control system440, which may, e.g., control the first joint114amounted upon the base link of the robotic device, and a set of nth joint control systems442to444, which may control a plurality of joints that are external to the body of the robotic device, such as the previously described second to sixth joints114b-114fof the robotic device100. The set of joint control systems440to444may be coupled in a number of ways as known in the art, including a serial daisy-chain style arrangement or a parallel coupling. This is indicated by the dashed arrows inFIG.4. The drive control systems440to444may control a torque that is applied by one or more electric motors arranged at the joints in response to signals received from the controller420.

The controller420may comprise one or more processors, including one or more microprocessors, central processing units and/or graphical processing units, and a memory (or memories). The controller420is communicatively coupled to the example control components to control an action of the robotic device. InFIG.4, this coupling is achieved via a systems bus460. Different levels of control may be provided, e.g. in one case the controller420may provide desired joint torques that are converted by the set of joint control systems440to444into joint actuator commands or in another case the controller420may provide the joint actuator commands themselves, which are then effected by the set of joint control systems440to444.

As mentioned above, although certain examples above describe the applied external force and/or torque being projected along a vertical axis, in order to account for a weight of an external load. In other examples, projection may be in another vector sub-space, for example along any other axis. For example, methods described herein may be used to compensate for external forces along different directions or torques about different axes, where these external forces/torques are not related to gravity. For example, the applied external torque may be due to a biasing force acting on the end effector in a particular direction. The predetermined axis of projection could in such a case be aligned with the direction along which the biasing force acts.

Although certain examples above describe compensating for an action on the end effector of the robotic device, methods described herein may be used to compensate for an action at another point on the device, for example a contact point between the device and an external object.

Certain examples described herein are described as comprising an actuated robotic arm. In these examples, the term “actuated” is used to indicate that one or more joints of the robotic arm may be moved by way of a propulsion system. The propulsion system may, for example, comprise one or more actuators, such as joint motors or electro-active polymers. Hence, the actuated robotic arm is configured to move within its environment. Although the term “arm” may be used in some examples, the robotic arm may be any form of jointed limb or mechanical assembly that is capable of moving an end effector within space. It should be noted that an actuated robotic arm may differ from that shown inFIGS.2A-Cyet still provide for multiple degrees of freedom for the end effector within an environment. For example, electro-active polymers may be arranged around a pivoted joint and controlled by an electrical current. Different types of sensors may be used to provide measurements of the state of the robotic device depending on the type of actuation of the joints. For example, measurements of electrical current supplied for actuating the joints may provide an indication of the state of the device. In certain cases, a camera arrangement may be disposed on the robotic device to enable visual feedback of the position of the end effector within three-dimensional space.

It should be noted that the example robotic device100is but one of many potential configurations of a robotic device having an actuated robotic arm. At least different joint arrangements, and different body arrangements are envisaged.