Robotic device

By detecting and compensating for external forces and torques on the robot device, and using preload adjustment to restore the reference trajectory of the end effector, the problem of position error caused by unknown load is solved, and precise impedance control is achieved.

CN115175791BActive Publication Date: 2026-04-07DYSON TECH LTD
View PDF 3 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-02-19
Publication Date
2026-04-07

AI Technical Summary

Technical Problem

In impedance control, an unknown load may cause the end effector to deviate from the reference trajectory, affecting the position control accuracy, especially when precise task execution is required.

Method used

By detecting the applied external force and torque, the joint is adjusted and a preload torque or force is applied to restore the reference trajectory of the end effector. The influence of unknown loads is compensated using impedance control methods, and the external force and torque are estimated using sensorless methods such as proprioceptive sensors and momentum observers.

Benefits of technology

Without altering the impedance control behavior of the robot device, it compensates for position errors caused by unknown loads, maintains constant motion stiffness, and achieves precise position control.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115175791B_ABST
    Figure CN115175791B_ABST
Patent Text Reader

Abstract

Certain examples described herein provide a method of controlling a robotic device, the 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. The example method includes applying impedance control to the robotic device; determining a reference trajectory for the end effector; detecting an applied external force and / or torque on the robotic device that causes a deviation 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 restore the reference trajectory for the end effector.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to a method for controlling a robot device, a controller configured to perform the method, and a robot device including the controller. Background Technology

[0002] Impedance control is a known method for controlling robotic devices. For example, impedance control can be used to control robotic devices including robotic arms with end effectors configured to perform certain tasks, such as grasping, lifting, and manipulating objects, or writing on or wiping surfaces, for example. In this case, impedance control allows the end effector to be controlled based on the relationship between the force applied to it and its position. With impedance control, the ratio of force output to motion input can actually be controlled by modeling the robotic arm as a mass-spring-damper system. Impedance control can be particularly useful when performing such tasks in human environments. Specifically, for example, impedance control can be useful when it is desirable to correlate the force generated by human interaction with the robotic arm with how fast the arm should move. However, impedance control can also be applied to control robots in other non-human environments, such as in factory settings where it is important to avoid damage to objects in the environment.

[0003] During certain interactions with the environment, unknown loads may act on robotic devices. For example, as mentioned above, a robotic arm can undertake the task of lifting objects using an appropriate end effector. In some cases, the mass of the object being lifted may be unknown, and therefore the load acting on the end effector may be unknown. In typical impedance control schemes, this unknown load can cause errors in the desired position of the end effector, altering its equilibrium position as a mass-spring-damper system. This can also be referred to herein as a load that causes the end effector to deviate from its “reference trajectory.” This can be undesirable, especially when close control of the end effector’s position is required, such as when performing a specific task. Summary of the Invention

[0004] According to a first aspect of the invention, a method for controlling a robotic device is provided, the robotic device including a body, an end effector coupled to the body via one or more joints, and a propulsion system for driving one or more joints to control the state of the robotic device, the method comprising: applying impedance control to the robotic device; determining a reference trajectory for the end effector; detecting applied external forces and / or torques on the robotic device that cause deviation from the reference trajectory; calculating adjustments to be applied to one or more of the one or more joints to compensate for the detected applied external forces and / or torques; and using the calculated adjustments to control the one or more joints to actuate the end effector and restore the reference trajectory of the end effector.

[0005] The exemplary method according to the invention can be used to apply the effects of external forces and / or torques while continuing to control the end effector using an impedance control scheme. For example, external forces and / or torques can be compensated for without affecting the impedance control behavior of the robot device. For instance, the perceived stiffness of the robot device's motion can remain unchanged, while the static error in the end effector's position relative to a reference trajectory caused by external forces and / or torques is "corrected." Further advantages of the invention will become apparent from the remainder of this disclosure.

[0006] The method may further include estimating the joint forces and / or torques applied to one or more joints caused by the applied external forces and / or torques. Therefore, the effect of the external forces and / or torques on the robotic device relative to one or more joints can be estimated, allowing for the calculation of appropriate adjustments to compensate for this effect.

[0007] Adjustment can be a joint force and / or torque applied to one or more joints. For example, joint torque can be applied to provide adjustment. In some examples, this adjustment can be a “preload” torque and / or force applied to the joint, allowing compensation for the applied external force and / or torque while continuing to control the end effector by applying impedance control.

[0008] The detected applied external force and / or torque may be due to external forces acting on the end effector. Therefore, in some examples, this method can compensate for the effects of external forces applied to the end effector.

[0009] Calculating the adjustment to be applied to one or more joints to compensate for applied external forces and / or torques may include determining one or more components of the applied external forces and / or torques acting on the end effector along an axis, and determining the adjustment to be applied to one or more joints to compensate for one or more components of the external forces and / or torques acting along the axis. For example, this axis may be substantially perpendicular. In some examples, this may allow the adjustment to compensate for the effects of external forces and / or torques acting along a particular axis while filtering out components of external forces and / or torques that do not act along that particular axis. For example, in the case where the axis is substantially perpendicular, the weight of the load acting on the end effector may be compensated for while filtering out other effects not caused by the weight of the load.

[0010] Calculating the adjustment to be applied may include determining the projection of the applied external force and / or torque acting on the end effector into a vector subspace, and determining the adjustment as the joint torque and / or force to be applied to one or more joints to compensate for the projection of the external force into the vector subspace. This may allow compensation for the components of the external force and / or torque in any particular subspace, without compensating for other components of the external force and / or torque.

[0011] The applied external force and / or torque may be due to the weight of the load carried by the end effector. Therefore, this adjustment can compensate for the deviation from the reference trajectory caused by the weight carried by the end effector.

[0012] A reference trajectory can define the path along which a robotic device places a load on a surface, and the method can include fine-tuning to maintain the reference trajectory as the load is placed on the surface and the weight of the load acting on the end effector decreases. This allows the load to be smoothly transferred from the end effector to the surface.

[0013] Estimating joint forces and / or torques can include using data from one or more proprioceptive sensors on the robotic device. Therefore, in some examples, additional sensors capable of determining the external forces and / or torques acting on the robotic device are not required.

[0014] Estimating joint forces and / or torques can include using the momentum observer method. The use of the momentum observer method allows for the estimation of applied external joint forces and / or torques without using measured joint accelerations, as would be done using measured joint accelerations in the estimation if a direct estimation method were employed.

[0015] This method may include determining a calculated adjustment for controlling one or more joints at a rate, and using the calculated adjustment to control one or more joints to restore the reference trajectory of the end effector may include adjusting the impedance control at the determined rate. This may allow for a delay that allows for more effective maintenance of the resilient effect provided by the impedance control law while compensating for external forces and / or torques.

[0016] Determining the calculated adjustments used to control the rate of one or more joints may include applying a low-pass filter to a signal related to the detected applied external force and / or torque. The low-pass filter can provide a convenient means of processing the signal to provide the aforementioned delay, and can also filter out noise in the detected applied external force and / or torque that is not compensated for by the adjustment.

[0017] The method may further include determining a gravity-compensating torque applied to one or more joints to compensate for torques acting on the robot device due to its weight; and using the determined gravity-compensating torque to adjust impedance control to control one or more joints to compensate for torques acting on the robot device due to its weight. Therefore, in addition to external forces and / or torques, the example methods described herein can compensate for the effects of the robot device's weight.

[0018] According to a second aspect of the invention, a controller is provided for controlling a robotic device, the robotic device including a body, an end effector coupled to the body via one or more joints, and a propulsion system for driving one or more joints to control the state of the robotic device, the controller being configured to perform a method according to a first aspect of the invention.

[0019] According to a third aspect of the invention, a set of machine-readable instructions is provided that, when executed by a controller of a robotic device, cause the method according to the first aspect of the invention to be performed.

[0020] According to a fourth aspect of the invention, a machine-readable medium is provided, comprising a set of machine-readable instructions according to a third aspect of the invention.

[0021] According to a fifth aspect of the invention, a robotic device is provided, comprising: a body; an end effector coupled to the body via one or more joints; a propulsion system for driving one or more joints to control the state of the robotic device; and a controller configured to: apply impedance control to the robotic device; determine a reference trajectory for the end effector; detect external forces and / or torques applied to the robotic device that cause deviation from the reference trajectory; calculate adjustments to be applied to one or more of the one or more joints to compensate for the detected applied external forces and / or torques; and use the calculated adjustments to control one or more joints to actuate the end effector and restore the reference trajectory of the end effector.

[0022] Other features and advantages of the invention will become apparent from the following description of preferred embodiments of the invention with reference to the accompanying drawings, which are given by way of example only. Attached Figure Description

[0023] Figure 1 This is a flowchart representation of an example method for controlling a robot device;

[0024] Figures 2A to 2C This is a schematic diagram illustrating an example robot device applying the control method described in this article;

[0025] Figure 3 This is a schematic diagram of the example control method described in this article; and

[0026] Figure 4 This is a schematic diagram illustrating an example control component of an example robotic device. Detailed Implementation

[0027] Examples of the present invention relate to the control of a robotic device configured to use impedance control. Such a robotic device can be configured to interact with humans in a human environment. However, examples of the present invention can be applied in other fields, such as commercial robots designed to operate in non-human (e.g., factory) environments. Some examples of the present invention are configured to recover a reference trajectory when an external torque is applied to the end effector due to the end effector being loaded with an object of unknown weight. However, the same control methods described herein can be similarly used to compensate for other types of forces applied to the robotic device. In any case, methods for controlling a robotic device will now be described by example.

[0028] Figure 1 A flowchart illustrating an example method 1000 for controlling a robotic device shows that the robotic device includes a body (also referred to as a base link), an end effector coupled to the body via one or more joints, and a propulsion system that drives one or more joints to control the state of the robotic device. Driving one or more joints to control the state of the robotic device may include applying joint torque to the joints to control the rotation of the joints. In some examples, the robotic device may also include one or more joints that allow linear motion. Joints that allow linear motion can be controlled by joint forces applied by the propulsion system. Method 1000 includes applying impedance control to the robotic device at block 1002. Applying impedance control typically involves applying a control law that takes into account, for example, the state of the robotic device and a reference trajectory measured by one or more sensors, and determines the torque to be applied to one or more joints by the propulsion system. An example impedance control law is described in more detail below.

[0029] In box 1004, the method includes determining a reference trajectory for the end effector. The reference trajectory can define the path followed by the end effector in three-dimensional space within the environment in which the robot device 100 is located. For example, the reference trajectory can define the velocity, position, and / or orientation of the end effector, as well as its acceleration. In some examples, the reference trajectory can be a path followed by the end effector to allow it to perform a task, such as carrying an object or performing a writing task or wiping a surface. In other examples, the reference trajectory can include a stationary trajectory designed to hold the end effector in a fixed position.

[0030] In box 1006, method 1000 includes detecting applied external forces and / or torques acting on the robotic device and causing a deviation from a reference trajectory. The applied external forces and / or torques are external forces and / or torques acting on the robotic device, which may be, for example, due to external forces acting on the end effector. For example, the applied external forces and / or torques may be forces acting on the end effector due to the weight of a load carried by the end effector. The external forces and / or torques may alternatively or additionally be due to torques applied to the end effector, such as the torsional effect of a user's hand. In some examples, the external forces and / or torques may be forces / torques applied to the robotic device at a point outside the end effector. The applied external forces and / or torques may cause the end effector to deviate from the reference trajectory.

[0031] In some examples, the joint forces and / or torques applied to one or more joints due to applied external forces and / or torques can be estimated. This may be referred to herein as applied joint forces and / or torques or external joint forces and / or torques. Joint forces and / or torques can be estimated based on data indicating the state of the robot device, such as measurements by one or more sensors. The state of the robot device can be defined based on the corresponding positions, velocities, and accelerations of one or more joints. The data may come from one or more proprioceptive sensors. For example, proprioceptive sensors can detect joint angles and / or torques of one or more joints. In an example where one or more joints allow linear motion, one or more proprioceptive sensors can detect the joint positions and / or joint forces of the joints that allow linear motion. This may be referred to herein as estimating applied joint forces and / or torques using a “sensorless” estimation method, because no sensors other than proprioceptive sensors are used in the estimation process. Using a sensorless method eliminates the need for additional sensors capable of determining the load acting on the end effector, which can have benefits such as reduced production costs for robot devices. One example of a sensorless estimation method that can be used in the examples described herein is the "momentum observer" method, for example, as described in "Sensorless robot collision detection and hybrid force / motion control," A. De Luca and R. Mattone, in the proceedings of the 2005 IEEE International Conference on Robotics and Automation, which is incorporated herein by reference. In other examples, other sensorless methods for estimating applied joint forces and / or torques can be used. For example, applied joint forces and / or torques can be estimated directly, for example, using the method described in "An acceleration-based state observer for robot manipulators with elastic joints," A. De Luca, D. Schroder, and M. Thummel, in the proceedings of the 2007 IEEE International Conference on Robotics and Automation. In another example, a "joint velocity observer" method can be used, for example, as described in S. Haddadin's "Towards Safe Robots; Approaching Asimov's 1st Law, Springer Tracts in Advanced Robotics," 2014.In yet another example, the “energy observer” approach can be used, as described by A. De Luca, A. Albu Schaffer, S. Haddadin, and G. Hirzinger at the 2006 IEEE / RSJ International Conference on Intelligent Robots and Systems, “Collision detection and safe reaction with the DLR-III lightweight manipulator arm.” All of the foregoing documents are incorporated herein by reference.

[0032] In box 1008, adjustments are calculated to be applied to one or more of one or more joints to compensate for detected applied external forces and / or torques. In some examples, calculating the adjustments to be applied includes determining the components of the external forces and / or torques acting on the end effector in a specific vector subspace. For example, the applied external forces and / or torques may be external forces, and the projection of the external forces along a specific axis may be determined. Thus, for example, adjustments may be calculated to compensate for external forces acting along the axis. For example, this method may be used to compensate for forces acting on the end effector due to the weight of an external load acting on the end effector. In such an example, the axis may be substantially perpendicular to the axis. Determining the adjustments may then include determining adjustments to compensate for the effect of the weight of the external load on the end effector. This can be done by projecting the detected applied external forces and / or torques along the perpendicular axis. Thus, the weight of the external load can be compensated, while contributions to the applied external forces and / or torques not due to the weight of the external load are filtered out and not compensated. Examples of this will be described in more detail below.

[0033] In some examples, the method may further include determining the calculated rate at which an adjustment is used to control one or more joints. This adjustment can be applied to restore the reference trajectory of the end effector at the determined rate. This can provide a delay that allows the elastic effect provided by the impedance control law to be preserved. For example, since the estimate of the applied joint force and / or torque can be obtained in a short time, the applied force and / or torque can be compensated by directly adding the estimated joint force and / or torque to the impedance control force and / or torque to be applied to control the joint. However, in some examples, this approach can make the “spring” effect provided by the impedance control negligible. This can be prevented by introducing a delay by adjusting the impedance control at a determined rate. Determining the rate at which the adjustment is applied may include applying a low-pass filter to a signal associated with the detected applied force and / or torque. For example, a low-pass filter can be applied to a signal representing the detected applied force and / or torque. The low-pass filter can be adjusted as needed to provide the desired delay. Furthermore, using a low-pass filter can also filter out noise in the detected applied force and / or torque, such noise that is not adjusted for compensation, which may be undesirable.

[0034] Finally, at box 1010, method 1000 includes using a calculated adjustment to control one or more joints to actuate the end effector to restore the reference trajectory of the end effector. In some examples, using the adjustment at box 1010 may include adding a calculated preload torque to the joint torque determined by an impedance control law for controlling the end effector. In one example, in addition to the joint torque determined according to the impedance control law, the adjustment may therefore include the torque to be applied to the joint. In the case where one or more joints are linear joints, the adjustment may additionally include a joint force to be applied to the linear joint. By applying the adjustment, a preload force and / or torque can be applied, which allows the restoration of the reference trajectory to compensate for the applied external force and / or torque, while continuing to control the end effector by applying impedance control. Therefore, this method can be considered as a method of compensating for errors in the position and / or orientation of the end effector in force space, rather than a method of compensation in Cartesian space. This is because the adjustment is applied to restore the reference trajectory, rather than, for example, an attempt to directly correct the position of the end effector relative to a desired position.

[0035] Impedance control adjustments can be dynamic, allowing for compensation for variations in applied external forces and / or torques. For example, a robotic device can be configured to grip and lift an object, then lower it. When the object is gripped, its weight begins to act on the end effector. At this point, adjustments are calculated to compensate for detected external forces and / or torques applied by the object, and the calculated adjustments are used to regulate impedance control to restore a reference trajectory. When the process of placing the object on a surface begins, contact between the object and the surface is detected. As the object is lowered, the load on the end effector decreases until it reaches zero when the object is placed on the surface and no longer applies weight to the end effector. Therefore, in some examples, adjustments used to compensate for the object's weight, such as preload torque, may gradually decrease to zero as the object is placed on the surface. Once the calculated adjustment reaches zero, the end effector's grip on the object can be released. This allows the object to be smoothly transferred from the end effector to the surface.

[0036] Some example methods also include determining a gravity-compensating torque to compensate for the torque acting on the robot device due to its weight. In this approach, impedance control can be adjusted using the gravity-compensating torque in a known manner. Similar to how the weight of the robot device is compensated via gravity compensation methods, some example methods can also compensate for other effects acting on the robot device, such as the Coriolis effect.

[0037] Therefore, in some examples, the method described herein can be considered a means of correcting static errors in the position of the end effector relative to a reference trajectory due to unknown loads acting on it. The applied joint forces and / or torques acting on the joints of the robotic device due to unknown loads can be estimated, for example, by sensorless means, and can be compensated for by “preloading” the joints controlled by impedance control laws. This means that externally applied loads can be compensated for without affecting the impedance control behavior of the robotic device. That is, static position errors caused by applied external forces and / or torques can be corrected without modifying the desired position or Cartesian impedance. Instead, the robot’s force-displacement curve is offset by the preloaded force / torque, while the perceived “stiffness” of the robot’s motion may remain unchanged. Among other advantages, this allows the robotic device to continue performing tasks requiring impedance control with positional accuracy using the end effector even when unknown loads are applied to it.

[0038] Figure 2A A simplified representation of an example robot device 100 is shown, which is configured to perform the example control method described above. Figure 2AA side view of an example robotic device 100 is shown. The example robotic device 100 includes an actuated robotic arm 105, which includes a body 102 (which, as described above, may also be referred to as a base link), an end effector 112, and a plurality of joints. The robotic device 100 also includes a propulsion system (not shown) for actuating one or more joints. In some examples, the joints are powered joints, and the propulsion system includes a set of joint motors, wherein one of the joint motors controls one joint. The position of one or more joints is controlled to control the position and / or orientation of the end effector 112 in Cartesian space, such that the end effector 112 can move within the environment in which the robotic device 100 is located. For example, where the position and orientation of the end effector 112 are controlled by joints, the position and orientation of the end effector 112, which in some examples may be referred to as the “pose” of the end effector 112, can be controlled in 6-dimensional space.

[0039] In the example robotic device 100, the actuated robotic arm 105 includes six joints 114a-114f, which are configured to allow positioning of the end effector 112 with, for example, six degrees of freedom. The robotic device 100 may be referred to as a 6R robot. In another example, the robotic device 100 may have another number of degrees of freedom, such as seven. The joints 114a-114f of the actuated robotic arm 105 are connected via mechanical linkages or "linkages". Figure 2A A first link 115a is shown, mechanically connecting a first joint 114a to a second joint 115b. A second link 115b mechanically connects the second joint 114b to a third joint 114c. The robotic arm 105 also includes a third link 115c, a fourth link 115d, and a fifth link 115e, which respectively mechanically connect the third joint 114c to the fourth joint 114d, the fourth joint 114d to the fifth joint 114e, and the fifth joint 114e to a sixth joint 114f. The robotic device 100 may include additional joints and / or links not shown in the figures. For example, as described above, in some examples, in addition to joints allowing rotational movement, the robotic device may also include one or more joints allowing translational, i.e., linear movement. Each link may include a rigid, elongated member. Each link may be a single unit or multiple connected subunits. Each link may have solid and / or hollow portions. In one case, the link may include a hollow tube and / or a rigid material frame, such as steel, aluminum, or carbon fiber. In some examples, the tool (not shown in the figure) may be mechanically coupled to the end effector 112.

[0040] The robot device 100 is positioned on a surface 170 defining an xy-plane. The xy-plane can be a horizontal plane such that the z-axis is a vertical axis. However, this is not the case in all examples. The position and / or orientation of the end effector 112 relative to this three-dimensional coordinate system can be controlled by controlling the rotation of one or more of joints 114a-114f. Each of joints 114a-114f is configured to rotate about at least one axis to allow the end effector 112 to move within a specific degree of freedom. For example, in a given configuration of the robot device 100, one or more of joints 114a-114f can rotate about an axis parallel to the z-axis to allow control of the position of the end effector 112 in the xy-plane. Furthermore, one or more of joints 114a-114f can be configured to rotate to control the position of the end effector 112 along the z-axis. In some examples, one or more of joints 114a-114f may include ball joints or double-joint assemblies that allow rotation about axes parallel to the z-axis and y-axis, respectively.

[0041] The joints 114a-114f of the actuated robotic arm 105 can be rotated by applying corresponding joint torques to the joints 114a-114f. The joint torques are controlled by a controller that executes the control method. Figure 2A The calculation (not shown in -C) is performed as described herein. The calculated joint torque is applied to the joint by a propulsion system, which may include one or more electric motors. For example, the propulsion system may include multiple electric motors, and one of the electric motors may be located at each of joints 114a-114f. The robot device 100 also includes one or more sensors (not shown) for detecting the state of the robot device 100 and feeding it to a controller for use in a control method. For example, the sensors may detect the corresponding joint angles of joints 114a-114f and / or measure the torque applied to joints 114a-114f.

[0042] The controller is configured to apply control methods to control the position and orientation of the end effector 112 along a reference trajectory 160. The reference trajectory 160 may include a set of positions and velocities to be achieved at the end effector 112. The reference trajectory may define the path of movement of the end effector 112, for example, to perform a task such as carrying an object. In other examples, the reference trajectory may be a stationary trajectory defining a fixed, intended position for the end effector 112. Figure 2A An example reference trajectory 160 is shown, which includes a line in space along which an end effector 112 is controlled to move. Reference trajectory 160 is... Figure 2A-2C The dashed line in the middle represents...

[0043] Turning Figure 2B , Figure 2AThe robotic device 100 is shown holding an object 250 at an end effector 112. For example, the object 250 may be a load held by the end effector 112, and a reference trajectory 160 may define the path along which the end effector 112 is expected to move to carry the object 250. Figure 2B An example robotic device 100 is shown after the end effector 112 has loaded the object 250. Figure 2B In this configuration, the robot device 100 is in a state where the end effector 112 has deviated downward from the reference trajectory 160 due to the weight of the object 250 on it. Sensors of the robot device 100 can detect the externally applied force causing this deviation from the reference trajectory 160 due to the object 250. Input from the sensors can be used to estimate the applied external joint torque acting on one or more joints 114a-114f of the robotic arm 105 due to the object 250.

[0044] from Figure 2B At the position shown, the controller continues to execute the control method to apply adjustments to compensate for the effects of load 250. Figure 2C An example robot device 100 is shown once the adjustment has been applied and the reference trajectory 160 has been restored. That is, the position of the end effector 112 can be seen to have returned to the reference trajectory 160 while maintaining the load 250. From this position, the robot device 100 can continue to actuate the end effector 112 to move along the reference trajectory 160 while applying an impedance control law. For example, the applied control method can ensure that the stiffness of the robot device, defined by the parameters of the impedance control law, remains unchanged due to the presence of the load 250. This may mean that, in Figure 2C In the configuration shown, any additional external interaction with the robotic arm 105, such as random collisions, like collisions with a person, can be felt as if the robotic arm 105 has the same stiffness as when unloaded (i.e., as...). Figure 2A (As shown).

[0045] The time taken for the robotic device 100 to recover the reference trajectory 160 of the end effector 112, i.e., from Figure 2B The configuration shown is to Figure 2C The configuration shown can be determined by the parameters of the low-pass filter applied by the controller in the signal path, as described above and in more detail below.

[0046] Figure 3A schematic flowchart of an example control scheme 300 representing a robot device 100 is shown. Control scheme 300 includes applying impedance control to control the movement of the robot device 100 to interact with the environment 304. Impedance control block 310 of control scheme 300 represents an implementation of an impedance control method to determine control signals for controlling the joint torque to be supplied to the joints based on the state of the robot device 100 and a reference trajectory 160. State block 320 represents the state of the robot device 100 in control scheme 300. Impedance control block 310 receives the state of the robot device 100 as input from state block 320 and reference trajectory 160. Impedance control block 310 applies an impedance control law in a known manner. For example, impedance control block 310 can calculate an impedance control law of the following form:

[0047]

[0048] Where x des and These are the position and velocity defined by reference trajectory 160, x robot (q) and These are the position and velocity of the end effector 112 calculated from the state q of the robot device 100.

[0049] The control scheme 300 also includes an adjustment block 330, which is configured to apply adjustments to compensate for the effects of applied external forces and / or torques on the robot device 100, as will now be described.

[0050] Control scheme 300 includes an external force and / or torque compensation block 340. The external force and / or torque compensation block 340 is configured to determine the applied external force and / or torque acting on the robot device and causing a deviation from a reference trajectory. The external force and / or torque compensation block 340 includes an external joint torque estimation block 342, which takes the state of the robot device 100 as input from the state block 320. The external joint torque estimation block 342 estimates the joint torque acting on one or more joints of the robot device 100 due to the external force and / or torque. In this example, the external joint torque estimation block 342 estimates the applied external joint torque based on the robot state received from block 320. As described above, this can be described as using a sensorless method, i.e., relying solely on the proprioceptive sensors of the robot device 100 and not using data obtained from, for example, externally sensed load sensors or other sensors. An example of a sensorless method that can be used at the external force and / or torque estimation block 340 to estimate the applied external joint torque is the momentum observer method. In some examples, using the momentum observer method can be advantageous because it allows estimation of the applied external joint torque without requiring the measurement of joint accelerations that might be necessary using direct estimation methods. This is likely desirable because obtaining joint accelerations might require calculating the second derivative of the joint encoder measurement, which can be affected by noise. Furthermore, the momentum observer method does not require calculating the inverse of the mass matrix, making it potentially more computationally efficient than the velocity observer method, which typically requires calculating the inverse of the mass matrix in each of the many iterations involved in obtaining convergence for the applied external joint torque.

[0051] The externally applied joint torque estimated at external joint torque estimation block 342 is provided to adjustment block 330 to apply an adjustment, such as a preload torque, thereby compensating for the estimated applied external joint torque. However, in some examples, further steps are performed before the estimated applied external joint torque is provided to adjustment block 330 for adjusting the impedance control method. For example, in Figure 3In the example shown, the external force and / or torque compensation block 340 also includes a projection block 344. In the projection block 344, the estimated external joint torque can be used to calculate the applied external force and / or torque acting on the end effector, which can be referred to as the motion on the end effector 112. The projection of the applied external force and / or torque or motion acting on the end effector into a specific subspace is then determined. For example, the subspace to which the motion is projected can define a specific axis. This allows, for example, compensation of the load acting on the end effector 112 along a specific axis while excluding other external influences on the end effector 112. In the example, the projection block 344 is configured to project the estimated applied external force and / or torque into Cartesian space, thereby estimating a 6-dimensional motion on the end effector 112. The 6-dimensional motion includes three Cartesian components of force and three momentum components. Once projected into Cartesian space, the estimated motion at the end effector can be projected along a predetermined axis. For example, the projection block 344 can be configured to determine the projection of the load acting on the end effector 112 along a vertical axis. This allows the external force and / or torque compensation block 340 to compensate for the weight of the external load acting on the end effector 112, while excluding forces in other directions. Therefore, the effect of the load's weight on the end effector 112 can be taken into account, while filtering out other external influences.

[0052] exist Figure 3 In this embodiment, the external force and / or torque compensation block 340 includes a filter block 346. The filter block 346 is configured to compensate the rate of application of the external force and / or torque by introducing a delay control scheme 300. The filter block 346 in this example includes processing the detected applied external force and / or torque signal indicating the need for compensation using a low-pass filter. The low-pass filter can be tuned to provide the desired responsiveness when adjusting the applied external force / torque. The low-pass filter can also be used to filter out noise in the detected applied external force / torque signal, thereby smoothing the preload compensation action.

[0053] Filter block 346 in Figure 3 The diagram shows a projection block 334 following the external force and / or torque compensation block 340 in the signal path. However, in other examples, the filter block 346 can be placed at different locations in the signal path. For example, the filter block 346 can be positioned before the projection block 344 in the signal path, such that the projection block 344 projects the applied external force and / or torque that has been filtered.

[0054] External force and / or torque compensation block 340 calculates the adjustments to be made to compensate for the detected applied external force and / or torque, which, as described above, can be filtered and / or projected along a given axis and provided to adjustment block 330. Adjustment block 330 then applies the adjustments to the impedance control method. For example, adjustment block 330 can add an adjustment in the form of a preloaded torque to the joint torque output by impedance control block 310 for controlling one or more joints of robot device 100. Thus, method 300 in some examples can be considered as a method of adding a “preloaded” torque to the impedance control method. As described above, this means that externally applied loads can be compensated without changing the “stiffness” of the mass-spring-damper. Therefore, the example methods described herein can allow the benefits of applying impedance control to control the forces applied to and exerted by end effector 112 and to control the position of end effector 112, while compensating for position errors introduced by unknown loads acting on the end effector. Therefore, the reference trajectory of the end effector 112 can be recovered, for example, allowing the end effector 112 to perform a task encoded by the reference trajectory while restoring positional accuracy.

[0055] In some examples, control scheme 300 may also include a gravity compensation block 350. Gravity compensation block 350 is configured to calculate a gravity compensation torque to compensate for the weight of robot device 100. In an example, gravity compensation block 350 is used to provide a feedforward term to adjustment block 330. The gravity compensation torque can be calculated based on the state of robot device 100 provided by state block 320. The gravity compensation torque can then be used at adjustment block 330 to adjust impedance control and provide impedance control unaffected by errors caused by the weight of robot device 100. As described above, in some examples, additional effects such as the Coriolis effect can be compensated in a manner similar to how gravity compensation block 350 operates.

[0056] The principle employed by the external force and / or torque compensation block 340 in example method 300 will now be described in more detail. The external joint torque estimated by the sensorless joint torque estimation process at block 342 can be denoted as... A vector representing the external force and / or torque applied at the end effector 112 of the robot device 100. From Calculate according to the following formula:

[0057]

[0058] in, Represent the Moore-Penrose pseudoinverse of the transpose of the Jacobian matrix of robot device 100.

[0059] As described above, in some examples, the force and / or torque vector at the end effector 112 can be projected into a subspace, such as along a vertical axis. In the example where the projection is along the vertical axis, the determined applied external force and / or torque... The projection along the vertical axis can be expressed as and Related, and represented by the following expression, where P v It is the projection along the vertical axis.

[0060]

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

[0062]

[0063] In other examples, the projection along the vertical axis may not be consistent with the projection along the z-axis. For example, robot device 100 may be tilted relative to surface 170, so the frame of robot device 100 may not be aligned with the Cartesian coordinate system defined by surface 170. In such examples, a more general projection can be used, as follows. Where A is the basis of the linear space, the projection p of point b onto the linear space can be calculated as:

[0064] p = A(A T A) -1 A T b = P A b (5)

[0065] Wherein, the projection P on the linear space A A The definition is as follows.

[0066] P A =A(A T A) -1 A T (6)

[0067] It can be noted that the error e describes the component of b that is orthogonal to the linear space A, where

[0068] e = bP A b = (IP A )b (7)

[0069] Among them, (IP) A ) is A T The projection of A onto the null space is orthogonal to the column space of A.

[0070] The filter applied at filter block 346 can also be described using similar notation as described above, such as...

[0071]

[0072] In formula (8), Representation applied to vectors The low-pass filtering operation. However, it should be noted that L filt It is not a linear operator technically. For clarity, we retain this notation in the following description.

[0073] In this example, This represents the actual vector of the effective contact force to be compensated at the end effector 112. To determine the preload torque to be applied to the joint to provide preload compensation, the following expression is used: Project back to the joint torque space of the robot device 100.

[0074]

[0075] Therefore, the process for obtaining the preloaded torque can be summarized by the following expression, which can be obtained from the above equation.

[0076]

[0077] Figure 4 An example control system 400 for a robotic device 100 is shown for implementing the example methods described herein. The example control system 400 includes an internal body component 410, which may be provided as part of the body of the robotic device (e.g., it may be mounted on or within the body, for example, in the base links and / or other links of the device). The internal body component 410 includes a controller 420 and a set of joint control systems 440 to 444. Figure 4 In this system, the set of joint control systems 440 to 444 includes a first joint control system 440 and a set of nth joint control systems 442 to 444. The first joint control system 440 can, for example, control a first joint 114a mounted on a base link of the robot device. The nth joint control systems 442 to 444 can control multiple joints outside the main body of the robot device, such as the second to sixth joints 114b-114f of the previously described robot device 100. This set of joint control systems 440 to 444 can be connected in various ways known in the art, including a series daisy-chain arrangement or a parallel connection. This is achieved by... Figure 4 The dashed arrows in the diagram indicate this. The drive control systems 440 to 444 can control the torque applied by one or more motors arranged at the joint in response to signals received from the controller 420.

[0078] Controller 420 may include one or more processors, including one or more microprocessors, a central processing unit and / or a graphics processing unit, and memory (or multiple memories). Controller 420 is communicatively coupled to the example control unit to control the actions of the robotic device. Figure 4 In this configuration, such connection is achieved via system bus 460. Different levels of control can be provided. For example, in one case, controller 420 can provide the desired joint torque, which is converted into joint actuator commands by a set of joint control systems 440 to 444. Alternatively, in another case, controller 420 can provide the joint actuator commands themselves, which are then implemented by a set of joint control systems 440 to 444.

[0079] As described above, while some examples depict applied external forces and / or torques projected along a vertical axis to account for the weight of the external load, in other examples, the projection can be in another vector subspace, such as along any other axis. For example, the methods described herein can be used to compensate for external forces in different directions or torques around different axes, where these forces / torques are independent of gravity. For instance, the applied external torque could be due to a biasing force acting on the end effector in a specific direction. In this case, the predetermined projection axis can be aligned with the direction in which the biasing force acts.

[0080] Although some of the examples above describe actions on the end effector of a robotic device, the methods described here can be used to compensate for actions at another point on the device, such as actions at the point of contact between the device and an external object.

[0081] Some of the examples described herein are depicted as including actuated robotic arms. In these examples, the term "actuated" is used to indicate that one or more joints of the robotic arm can be moved by a propulsion system. For example, the propulsion system may include one or more actuators, such as joint motors or electroactive polymers. Thus, the actuated robotic arm is configured to move in its environment. Although the term "arm" may be used in some examples, a robotic arm can be any form of articulated limb or mechanical component capable of moving an end effector within space. It should be noted that an actuated robotic arm may be related to... Figure 2A The design differs from that shown in -C, but still provides multiple degrees of freedom for the end effector in the environment. For example, an electroactive polymer can be arranged around the pivot joint and controlled by an electric current. Depending on the type of actuation of the joint, different types of sensors can be used to provide measurements of the robot's state. For example, measuring the current used to actuate the joint can provide an indication of the device's state. In some cases, a camera device can be mounted on the robot to provide visual feedback on the end effector's position in three-dimensional space.

[0082] It should be noted that the example robot device 100 is only one of many potential configurations of a robot device with an actuated robotic arm. At least different joint arrangements and different body arrangements are envisioned.

[0083] The examples above should be understood as illustrative. Further examples are conceivable. Any feature described with respect to any example may be used alone or in combination with other described features, and may also be used in combination with one or more features of any other example or any combination of other examples. Furthermore, equivalents and modifications not described above may be employed without departing from the scope of the invention as defined in the appended claims.

Claims

1. A method for controlling a robotic device, the robotic device comprising a body, an end effector coupled to the body via one or more joints, and a propulsion system for driving the one or more joints to control the state of the robotic device, the method comprising: Apply impedance control to the robotic device; Determine the reference trajectory of the end effector; Detect the applied external forces and / or torques on the robot device that cause deviation from the reference trajectory; Calculate the 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 The calculated adjustments are used to control the one or more joints to actuate the end effector and restore the reference trajectory of the end effector. The applied external force and / or torque is caused by the weight of the load carried by the end effector. The reference trajectory defines the path along which the robotic device places a load on a surface, and the method includes refining the adjustment to maintain the reference trajectory as the weight of the load acting on the end effector decreases when the load is placed on the surface. As the load is placed on the surface, the adjustment gradually decreases to zero, and once the adjustment reaches zero, the end effector releases the load.

2. The method of claim 1, further comprising estimating joint forces and / or torques applied to the one or more joints caused by the applied external forces and / or torques.

3. The method according to claim 1 or 2, wherein, The adjustment is to apply joint force and / or torque to the one or more joints.

4. The method according to any one of claims 1 to 3, wherein, The detected applied external force and / or torque is caused by the external force acting on the end effector.

5. The method according to claim 4, wherein, Calculating the adjustment to be applied to the one or more joints to compensate for the applied external force and / or torque includes determining one or more components of the applied external force and / or torque acting on the end effector along an axis, and determining 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.

6. The method according to claim 5, wherein, The axis is a substantially vertical axis.

7. The method according to any one of claims 2 to 6, wherein, Estimating joint forces and / or torques involves using data from one or more proprioceptive sensors on the robotic device.

8. The method according to claim 7, wherein, Estimating the joint forces and / or torques includes using a momentum observer method.

9. The method according to any one of the preceding claims, comprising determining a calculated adjustment for controlling the one or more joints at a rate, and using the calculated adjustment to control the one or more joints to restore a reference trajectory of the end effector, comprising adjusting impedance control at the determined rate.

10. The method according to claim 9, wherein, Determining the calculated adjustments for controlling the rate of the one or more joints includes applying a low-pass filter to signals related to the detected applied external force and / or torque.

11. The method according to any one of the preceding claims, further comprising: Determine the gravity compensation torque to be applied to the one or more joints to compensate for the torque acting on the robot device due to the weight of the robot device; and A defined gravity-compensated torque-adjusted impedance control is used to control one or more joints to compensate for the torque acting on the robot device due to its weight.

12. A controller for controlling a robotic device, the robotic device comprising a body, an end effector coupled to the body via one or more joints, and a propulsion system for driving the one or more joints to control the state of the robotic device, the controller being configured to perform the method according to any one of claims 1 to 11.

13. A set of machine-readable instructions, when executed by a controller of a robotic device, cause the execution of the method according to any one of claims 1 to 11.

14. A machine-readable medium comprising a set of machine-readable instructions as claimed in claim 13.

15. A robotic device, comprising: main body; An end effector, connected to the body via one or more joints; A propulsion system for driving the one or more joints to control the state of the robotic device; and The controller is configured as follows: Impedance control is applied to the robotic device; Determine the reference trajectory of the end effector; Detect the applied external forces and / or torques on the robot device that cause deviation from the reference trajectory; Calculate the 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 The calculated adjustments are used to control the one or more joints to actuate the end effector and restore the reference trajectory of the end effector. The applied external force and / or torque is caused by the weight of the load carried by the end effector. The reference trajectory defines the path along which the robot places a load on the surface, and the controller is configured to refine this adjustment to maintain the reference trajectory as the weight of the load acting on the end effector decreases when the load is placed on the surface. As the load is placed on the surface, the adjustment gradually decreases to zero, and once the adjustment reaches zero, the end effector releases the load.

Citation Information

Patent Citations

  • Robot controller, robot system, robot control method

    US20130184869A1

  • Constraining robotic manipulators with redundant degrees of freedom

    US20140081461A1

  • Method for Robot-Supported Stacking of Objects

    US20160184992A1