Computer-implemented method for generating a signal for compensating for a disturbance introduced by a component of a device
The computer-implemented method automatically generates a compensating signal to address disturbances in robotic devices, enhancing performance, reducing costs, and extending component lifespan.
Patent Information
- Application Number
- PCT/EP2024/079745
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-10-20
- Filing Date
- 2024-10-21
- Publication Date
- 2025-04-24
AI Technical Summary
Existing methods for compensating for disturbances in robotic devices, such as torque ripple in motors, are often inaccurate and labor-intensive, requiring manual calibration and relying on high-quality components to minimize disturbances, which increases costs.
A computer-implemented method for automatically generating a compensating signal to counteract disturbances in robotic devices by processing datasets characterizing the state of device components, computing motion signals, filtering frequencies, determining parameters, and generating a compensating signal using these parameters.
The method improves the performance of robotic devices, reduces maintenance and replacement costs, extends the lifespan of device components, and minimizes the risk of component failure by accurately compensating for disturbances in real-time.
Smart Images

Figure EP2024079745_24042025_PF_FP_ABST
Abstract
Description
[0001] Description COMPUTER-IMPLEMENTED METHOD FOR GENERATING A SIGNAL FOR COMPENSATING FOR A DISTURBANCE INTRODUCED BY A COMPONENT OF A DEVICE
[0002] FIELD
[0003] The invention relates to the field of computer-implemented signal processing methods.
[0004] More particularly, the invention relates to a computer-implemented method to compensate for at least one disturbance introduced by at least one component of a robotic device.
[0005] More specifically, the invention relates to a computer implemented method for generating and applying a countersignal to a motor of a robotic device to compensate for a disturbance introduced by at least one component of a motor of said robotic device.
[0006] BACKGROUND
[0007] Most devices will exhibit punctual or periodic disturbances while functioning that are caused by a state of at least one of their components.
[0008] For example, motors and motor-controller pairings may exhibit periodic torque disturbances, or torque ripple, throughout a rotation. These disturbances occur at fixed intervals throughout a rotation, and differ in their frequency (once per revolution, four times per revolution, seven times etc.), magnitude, and offset from a reference zero angle for the motor.
[0009] Currently, it exists solutions to provide mitigation in the form of torque compensation tables to counteract the disturbance torques, some with tools to aid with configuration, and others that rely on manual user calibration.
[0010] A drawback of manual calibration, maintenance or repairing of components of a device is that it is sometimes extremely time consuming and labor intensive.
[0011] Another problem stems from the fact that some disturbances introduced by some components, such as the torque ripple in a motor, may depend on multiple time dependent parameters which are intrinsic to the component itself, but may also depend on external parameters. This leads to multi-dimensional problems that are challenging and time consuming to solve. Moreover, some companies use systems that comprise a lot of various components for operation for which it is essential to minimize the disturbances, for example systems for precise positioning operations.
[0012] This result in the need for purchasing high quality components for building the devices, as well as frequent calibration and / or maintenance, both resulting in substantial costs.
[0013] Such devices may also embed a lot of electronic components in order to control the efficiency of the device, resulting in additional costs and a heavier device.
[0014] Methods for compensating for disturbances introduced by a component of a device are known in the prior art. For example, an article titled “Adaptive internal model-based suppression of torque ripple in brushless DC motor drives” by Yoni Mandel & Georges Weiss proposes a method to minimize torque ripple introduced by an electric method. However, such method lacks accuracy and do not allow for identifying and compensating for various sources of disturbances introduced by various components of a device.
[0015] As a result, there is a need to provide a more accurate and more adaptable method which can be applied for various kind of disturbances introduced by various components of a device, especially disturbances introduced by at least one component of a motor of a robotic device.
[0016] The invention aims at least at limiting the drawbacks of the method existing in the prior art.
[0017] SUMMARY
[0018] According to a first aspect, the invention relates to a computer- implemented method for automatically generating a compensating signal to compensate for at least one disturbance introduced by at least one component of a robotic device, the method comprising the following steps:
[0019] • Receiving, by means of a first communication interface, a first dataset characterizing a state of the at least one component of the robotic device;
[0020] • Performing the following steps by means of a first calculator: o Computing a motion signal using the first dataset, said motion signal resulting from at least one motion of the robotic device, and characterizing at least one disturbance introduced by at least one component of the robotic device; o Filtering the motion signal to remove frequencies outside of at least one frequency range of interest, said filtering allowing to generate at least one filtered motion signal characteristic of at least one disturbance source; o Determining at least one parameter related to the motion signal,
[0021] Automatically generating the compensating signal using said determined at least one parameter.
[0022] One advantage is to allow to improve the performances of the robotic device.
[0023] Another advantage is to allow to reduce the costs associated with the robotic device, such as maintenance costs or costs for replacement of a component.
[0024] Another advantage is to allow to improve the lifespan of at least one component of the robotic device.
[0025] Another advantage is to allow to reduce the risks of failure of at least one component of the robotic device.
[0026] In one embodiment, at least one calculated parameter related to the filtered motion signal comprises a phase shift of a graphical representation of said filtered motion signal.
[0027] One advantage is to calculate the parameter associated with the filtered motion signal more accurately, in order to generate a more efficient compensating signal.
[0028] In one embodiment, a mathematical function is fitted to the filtered motion signal, and at least one parameter is determined using an equation and / or a graphical representation of said mathematical function.
[0029] One advantage is to calculate the parameter associated with the filtered motion signal more accurately, in order to generate a more efficient compensating signal.
[0030] In one embodiment, at least one calculated parameter of the mathematical function comprises an amplitude of a graphical representation of said mathematical function. In one embodiment, the mathematical function is a sinusoidal function. In one embodiment, the mathematical function is a sinusoidal function whose equation is F3 = AF3*sin (271 fx + F3) with f a frequency parameter of the mathematical function, x a position parameter of the mathematical function, AF3 an amplitude of the mathematical function, and (|)F3 a phase-shift of the mathematical function.
[0031] One advantage is to facilitate the calculations necessary for generating the compensating signal.
[0032] In one embodiment, at least one parameter related to the motion signal is calculated using a plurality of coefficients obtained using a curve fitting method. It is meant by a “curve fitting method” a method allowing to fit a curve with a given mathematical equation to the filtered motion signal, such as a curve as close as possible to the shape of the filtered motion signal. For example, a sinusoidal curve may be fitted to the filtered motion signal. The plurality of coefficients may be part of the mathematical equation of the curve fitted to the filtered motion signal. Parameters related to the filtered motion signal, such as amplitude and / or phase shift, may be calculated using said coefficients.
[0033] One advantage is to facilitate the calculation of at least one parameter associated with the filtered motion signal.
[0034] Another advantage is to reduce the computing power necessary to generate the compensating signal.
[0035] In one embodiment, at least one component of the robotic device comprises at least one of the following and / or at least one part of the following: a motor, a controller device, an electronic circuit, a load.
[0036] In one embodiment, the received first input dataset comprises at least:
[0037] • First time data, motor position data and motor input current data and / or;
[0038] • Motor velocity data and second time data and / or,
[0039] • Motor torque data.
[0040] One advantage is to generate the compensating signal with minimum data.
[0041] In one embodiment, the first time data comprise the second time data. In one embodiment, the second time data comprise the first time data.
[0042] In one embodiment, the motion signal comprises a torque signal.
[0043] In one embodiment, the motion signal comprises an acceleration signal.
[0044] One advantage is to generate the compensating signal with different input data.
[0045] In one embodiment, the method comprises a step of receiving, by means of the first communication interface, a second input dataset comprising at least:
[0046] • temperature data and / or;
[0047] • magnetic field data and / or,
[0048] • mechanical data characterizing a state of wear of at least one mechanical component of the robotic device.
[0049] One advantage is to generate the compensating signal for perturbations associated to slow-drifting variables.
[0050] In one embodiment, the method comprises a step of executing, by means of the first calculator, a first learning function to automatically adjust the compensating signal.
[0051] One advantage is to allow to compensate for the disturbances introduced by at least one component of the robotic device more accurately.
[0052] The first learning function may comprise at least one machine learning algorithm.
[0053] In one embodiment, the first learning function comprises a first machine learning algorithm trained using an unsupervised learning method and / or trained using a supervised learning method and / or trained using a selfsupervised learning method and / or trained using a reinforcement learning method.
[0054] In one embodiment, the method comprises a step of automatically applying the compensating signal to the robotic device by means of the first calculator.
[0055] One advantage is to compensate for the disturbances in real time.
[0056] In one embodiment, the robotic device is a robotic device.
[0057] In one embodiment, the method is suitable for improving performances of the robotic device. This technical effect may be obtained by allowing to compensate for the disturbances introduced by at least one component of the robotic device. Alternatively, or in addition, this technical effect may be obtained by reducing the weight and congestion of the robotic device by reducing the needs for embedded electronic to monitor the components of the robotic device. Alternatively, or in addition, this technical effect may be obtained by allowing a wider modular selection of components of the robotic device, such as components which are more likely to perform better when associated with other specific components.
[0058] In one embodiment, the method is suitable for reducing the costs associated with robotic device.
[0059] This technical effect may be obtained by allowing for cheaper components in the robotic device, which inherently introduce more disturbances than more expensive components, but that the method allows compensating for in order to reach optimal performance results. Alternatively, or in addition, this technical effect may be obtained by reducing the needs in maintenance operation and / or calibration operations due to the method allowing to compensate for the disturbances introduced by the components. Alternatively, or in addition, this technical effect may be obtained by reducing the needs for embedded electronic material / components.
[0060] In one embodiment, the method is suitable for improving the lifespan of at least one component of the robotic device.
[0061] This technical effect may be obtained by allowing to compensate for the disturbances generated by the components, as well as by allowing to reduce the number of components embedded by the robotic device, such as electronic components.
[0062] In one embodiment, the method is suitable for reducing the risks of failure of at least one component of the robotic device.
[0063] This technical effect may be obtained by allowing to compensate for the disturbances generated by the components, as well as by allowing to reduce the number of components embedded by the robotic device, such as electronic components.
[0064] In one embodiment, the method is suitable for improving performances of a robotic telemanipulator system. In one embodiment, the method is suitable for reducing costs associated with a robotic telemanipulator system.
[0065] In one embodiment, the method is suitable for improving the lifespan of a robotic telemanipulator system.
[0066] In one embodiment, the method is suitable for reducing the risks of failure in a robotic telemanipulator system.
[0067] According to another aspect, the invention relates to a system comprising hardware and software means adapted for and / or configured to perform the method of the invention.
[0068] In one embodiment, the hardware and software means comprise the first communication interface.
[0069] In one embodiment, the first communication interface is adapted for receiving the first dataset characterizing a state of at least one component of the robotic device.
[0070] In one embodiment, the hardware and software means comprise the first calculator.
[0071] In one embodiment, the first calculator is configured to compute the motion signal using the first dataset.
[0072] In one embodiment, the first calculator is configured to filter the motion signal on at least one frequency range of interest using a filtering function, said filtering allowing to generate at least one parameter related to the filtered motion signal.
[0073] In one embodiment, the first calculator is configured to determine at least one parameter related to the filtered motion signal.
[0074] In one embodiment, the calculator is configured to automatically generate the compensating signal using at least one determined parameter.
[0075] In one embodiment, the calculator is configured to automatically apply the compensating signal to the robotic device. Alternatively, or in addition, the calculator may be configured to apply the compensating signal in response to a received command, such as a command received from an equipment of the system, or a command received from an external device.
[0076] In one embodiment, the system comprises the robotic device.
[0077] In one embodiment, the system comprises a second device. The second device may be a robotic device. The second device may be coupled to the robotic device, for example remotely coupled. The second device may be manipulate by a user.
[0078] In one embodiment, the second device is coupled to the robotic device in such a way that a change of state of at least one component of the robotic device causes a change of state of at least one component of the second device, or conversely. The change of state may be equivalent for the components of each device. It is meant by “equivalent change of state” that the change of state of the component is approximately the same, with a tolerated margin of error.
[0079] According to another aspect, the invention relates to a computerprogram product comprising instructions which, when the program is executed by a computer, causes the computer to carry out the steps of the method.
[0080] According to another aspect, the invention relates to a computer- readable storage medium having stored thereon the computer program product. The computer-readable storage medium is a tangible device. The computer-readable storage medium is not a transient signal.
[0081] According to another aspect, the invention relates to a computer implemented method for automatically generating a compensating signal to compensate for at least one disturbance introduced by at least one component of a motor of a robotic device, the method comprising:
[0082] • receiving, by means of a first communication interface, a first dataset comprising data characterizing a state of at least one component of the motor of the robotic device;
[0083] • performing the following steps by means of a calculator: o computing a motion signal using the first dataset, said motion signal comprising at least one portion of signal characterizing said disturbance introduced by said at least one component of said motor of said robotic device; o converting the motion signal from a time domain to a frequency domain using a mathematical function; o generating a filtered motion signal by filtering said motion signal on at least one frequency range of interest to isolate said at least one portion of the motion signal characterizing said at least one disturbance; o determining at least an amplitude of the filtered motion signal using at least one mathematical function;
[0084] • automatically generating said compensating signal using said determined amplitude of the filtered motion signal,
[0085] • automatically applying said generated compensating signal (Scorn p) to the robotic device to compensate for said at least one disturbance introduced by said at least one component of said motor of said robotic device.
[0086] In one embodiment, the method comprises:
[0087] • generating a first initial model of the amplitude and phase of disturbances introduced by at least one component of a motor using several motor input commands;
[0088] • generating a second initial model of an amplitude ratio and a phase shift between at least one motor input command and at least one motor output;
[0089] • generating a disturbance model of the amplitude and phase of the disturbance by combining the first initial model and the second initial model, wherein the compensating signal is automatically generated using said generated disturbance model.
[0090] In one embodiment, the step of generating the second initial model comprises a step of performing, by means of the calculator, a transient response analysis, wherein a step response of the second initial model is determined for several motor input commands.
[0091] In one embodiment, the step of generating the second initial model comprises using at least one identifier signal having a frequency different than a target frequency of the disturbance.
[0092] In one embodiment, the step of generating the second initial model comprises using at least one first identifier signal having a frequency below the target frequency of the disturbance and using at least one second identifier signal having a frequency above the target frequency of the disturbance.
[0093] In one embodiment, the step of generating the second initial model comprises performing a step of filtering to output perturbations at identifier frequencies to determine the amplitude ratio and phase shift of the second initial model at said identifier frequencies. In one embodiment, the step of generating the second initial model comprises performing a step of interpolation to determine the amplitude ratio and the phase shift.
[0094] In one embodiment, the method comprises performing, by means of the calculator, a step of on device parameter identification to determine at least one unknown parameter of the filtered motion signal, said step of on device parameter identification comprising:
[0095] • determining at least one parameter related to the filtered motion signal, said parameter comprising at least an amplitude of said filtered motion signal;
[0096] • determining a phase to minimize the amplitude of a combination of said filtered motion signal and a new compensating signal.
[0097] In one embodiment, the phase to minimize the amplitude of a combination of said filtered motion signal and a new compensating signal is determined by performing velocimetric and accelerometric phase searches.
[0098] In one embodiment, the parameters related to the filtered motion signal and a new compensating signal is determined by performing a haptic phase search
[0099] According to another aspect, the invention relates to a computer implemented method for automatically generating a compensating signal of a telemanipulating system comprising a first robotic device defining a remote device having at least one arm used for sorting waste and a second device defining a local device manipulable by a user and remotely coupled to the first robotic device in such a way that a change of state of at least one component of the first robotic device causes a corresponding change of state of at least one component of the second device of said telemanipulating system, said compensating signal being applied to a motor of the robotic device to compensate for at least one disturbance introduced by at least one component of said motor of the first robotic device, the method comprising the following steps:
[0100] • transmitting a first dataset characterizing a movement of the first robotic device resulting from a command and characterizing at least one disturbance introduced by said motor of the robotic device, said transmitted first dataset being sent by at least the first robotic device to a device controller having a remote first communication interface;
[0101] • Receiving said first dataset by means of a first communication interface,
[0102] • identifying the parameters of the counter signal by determining known parameters and estimating unknown parameters using a predefined model by performing the following steps by means of a first calculator: o computing a motion signal using the first dataset, said motion signal including the at least one disturbance introduced by at least one component of the robotic device; o converting the motion signal from a time domain to a frequency domain comprising resampling with respect to position o filtering the converted motion signal to remove frequencies outside of at least one frequency range of interest, said filtering allowing to generate at least one filtered motion signal characteristic of at least one disturbance introduced by said at least one source of perturbation; o generating a first initial model of the amplitude and phase of disturbances introduced by at least one component of a motor using several motor input commands; o generating a second initial model of an amplitude ratio and a phase shift between at least one motor input command and at least one motor output; o generating a disturbance model of the amplitude and phase of the disturbance by combining the first initial model and the second initial model,
[0103] • automatically generating a compensating signal to compensate for the disturbance introduced by the component using said determined at least one parameter using said generated disturbance model, • transmitting the generated compensated signal to the robotic device
[0104] • transmitting the first dataset and the generated compensated signal to the local device manipulable by the user.
[0105] According to another aspect, the invention relates to a system comprising the robotic device and comprising hardware and software means adapted to perform the method.
[0106] According to another aspect, the invention relates to a robotic telemanipulating system comprising a first robotic device defining a remote device having at least one arm used for sorting waste and a second device defining a local device manipulable by a user and remotely coupled to the first robotic device in such a way that a change of state of at least one component of the first robotic device causes a corresponding change of state of at least one component of the second device of said telemanipulating system, and comprising hardware and software means to perform the steps of the method.
[0107] According to another aspect, the invention relates to a computer program product comprising instructions which, when the program is executed by a computer, cause the computer to carry out the steps of the method.
[0108] According to another aspect, the invention relates to a computer- readable storage medium having stored thereon the computer program product.
[0109] BRIEF DESCRIPTION OF THE DRAWINGS
[0110] Other features and benefits that characterize embodiments of the present invention will be apparent upon reading the following detailed description and reviewing the associated drawings which illustrate:
[0111] Fig. 1 : A diagram of steps of the method for automatically generating a compensating signal to compensate for disturbances introduced by at least one component of a robotic device.
[0112] Fig. 2: A schematic representation of the system according to one aspect of the invention in one embodiment wherein it comprises a robotic device which is a robotic device and a calculator comprising a communication interface.
[0113] Fig. 3: An embodiment wherein the robotic device is a robotic device. Fig. 4: A right-side view of the right arm of the robotic device in one embodiment wherein the robotic device is a robotic device.
[0114] Fig. 5A: A front-side view of a forearm, wrist, and end effector of an arm of the robotic device in one embodiment wherein the robotic device is a robotic device.
[0115] Fig. 5B: A right-side view of a forearm, wrist, and end effector of an arm of the robotic device in one embodiment wherein the robotic device is a robotic device.
[0116] Fig. 6A: A top view of an end effector of an arm of the robotic device in one embodiment wherein the robotic device is a robotic device.
[0117] Fig. 6B: A bottom view of an end effector of an arm of the robotic device in one embodiment wherein the robotic device is a robotic device.
[0118] Fig. 6C: An isometric view of an end effector of an arm of the robotic device in one embodiment wherein the robotic device is a robotic device.
[0119] Fig. 7: A view of the left interior side of the right arm of the robotic device in one embodiment wherein the robotic device is a robotic device.
[0120] Fig. 8: A view of a system according to one aspect of the invention, comprising the robotic device, a second device and a calculator comprising a communication interface.
[0121] Fig. 9: A graphical representation of the computed motion signal.
[0122] Fig. 10: A graphical representation of the filtered motion signal.
[0123] Fig. 11 : A schematic representation of a hardware configuration of the system of the invention.
[0124] Fig.12: A flowchart of the method for applying the compensating signal.
[0125] Fig 13: An example of accelerometric / velocimetric search results.
[0126] Fig.14: A flowchart of the haptic search algorithm.
[0127] DETAILED DESCRIPTION
[0128] Objective of the invention
[0129] One objective of the invention is to compensate for a disturbance introduced by at least one component of a motor of a robotic device 100.
[0130] For this purpose, the method 10 allows generating a compensating signal Scomp, also called “countersignal Scomp” in the present description, to compensate for at least one disturbance introduced by at least one component of a motor a robotic device 100. Definitions
[0131] Below are definitions of the terms used in the present description.
[0132] In the present description:
[0133] • a “disturbance” refers to any kind of disruption introduced by a component of a motor of the robotic device 100. Examples of disturbances comprise, but not limited to:
[0134] ■ a vibration, a ripple such as a torque ripple, i.e periodic variations in torque output of a motor, typically an electric motor, during its operation;
[0135] ■ a torque such as a cogging torque, i.e. an undesired torque produced in electric motors, especially in permanent magnet motors, resulting from the interaction between the permanent magnets of the rotor and the stator's slots;
[0136] ■ a change of state of a component such as a fast change of state, for example an abrupt acceleration of a component, such as an abrupt acceleration of a motor shaft, or a slower change of state of a parameter, such as a variation of temperature of a control card of a motor or a change in magnitude of a magnetic field.
[0137] The invention is not limited to the above examples of disturbances, and it should be understood that any disturbance resulting from a change of state of any component of the motor of the robotic device 100 may be considered as a disturbance in the context of the invention.
[0138] • a frequency of interest, or target frequency, is a positional frequency of a disturbance introduced by the component of the motor of the robotic device 100, for example, but not limited to, a positional frequency of a torque ripple. The target frequency is for example a frequency comprised in a frequency range of interest on which a signal is filtered, such as a motion signal Smv, to isolate a filtered motion signal Smv’ comprising the disturbance. • an “input command signal” Motin refers to a command for controlling the motor of the robotic device 100, such as a current command Iqcmd, for example a quadrature command current sent to a current controller of said motor to run said motor at a desired speed or a desired torque.
[0139] • an “output motor signal” refers to an output signal characterizing a response of the motor of the robotic device 100 to the input command signal.
[0140] • a “compensating signal Scomp”, or “countersignal Scomp”, is a signal added to the input command signal in order to cancel out at least one disturbance manifesting at one or several frequencies of interest in the output motor signal. An illustrative non limiting example of a “countersignal Scomp” comprises a corrective current signal added to an input current signal sent to a current controller of the motor of the robotic device 100 following a sinusoidal function of the motor shaft angle at a target frequency, also called “frequency of interest in the present description, in order to cancel out a disturbance manifesting as a torque ripple at said target frequency. The compensating signal Scomp may be adapted to cancel out several disturbances at several frequencies of interest.
[0141] • an identifier signal is a signal added to the input in the form of a function of the position, with a positional frequency different from the frequencies of interest, or target frequencies.
[0142] • a perturbation model MODp is a model of one or several perturbations in the input command signal that would cause identical perturbations in the output. In other words, the perturbation model MODp allow to model the perturbation introduced by the component of the motor of the robotic device 100. An example of perturbation model is described as an Equivalent Commended Current Ripples ECCR, wherein ripples in the input commanded current would cause ripples in the output identical to a torque ripple of the motor. One advantage of modelling the perturbation(s) in terms of current is to ease the step of generating the countersignal Scomp. Indeed, by multiplying the countersignal Scomp by minus one and adding it to the input current of the motor of the robotic device 100, it is possible to create destructive interferences to negate the perturbation in the input current command fed to the current controller of said motor of the robotic device 100.
[0143] • “cycles per motor shaft revolution Cpr” refers to a unit of positional frequency of perturbations, such as torque ripples.
[0144] • a “target frequency” refers to a positional frequency of at least one perturbation introduced by the component of the motor, such as a torque ripple.
[0145] • an “identifier signal” refers to a signal added to the input command signal. Such signal may follow a sinusoidal function of position, with a positional frequency different from at least one target frequency, or frequency of interest.
[0146] • an “identifier frequency” refers to a positional frequency of an identifier signal.
[0147] • a “perturbation amplitude ratio” refers to a ratio of an amplitude of perturbations in the input command signal to an amplitude of perturbations in the output motor signal, such as a ratio of an amplitude of ripples.
[0148] • a “phase shift” refers to a result of subtracting a phase of at least one perturbation in an input signal from a phase of at least one perturbation in an output signal.
[0149] • a calculator 180 refers to a device or a plurality of devices, such as one or several controllers, capable of performing calculations using stored or received data, and capable of transmitting and receiving command signals encoding instructions, locally or remotely, to / from another device, through a wireless connection or a wired connection. For this purpose, the calculator 180 may comprise at least one communication interface to transmit and receive data, and at least one memory to store data. For example, the calculator 180 may comprise a controller of at least one motor of the robotic device 100 configured to send the input command signal to said motor of the robotic device 100.
[0150] Technical problem solved / advantages of the invention.
[0151] The invention relates to a computer implemented method 10 for automatically generating a compensating signal Scomp to compensate for at least one disturbance introduced by at least one component 101 of a motor of a robotic device 100.
[0152] For brevity, the computer implemented method 10 will be referred to as “the method 10” in the present description.
[0153] The method 10 advantageously allows to solve the technical problem linked to the appearance of disturbances introduced by components of a motor of a robotic device 100.
[0154] Robotic device
[0155] The method 10 is particularly adapted for generating a compensating signal Scomp to compensate for at least one disturbance introduced by at least one component of a motor of a robotic device 100.
[0156] However, the robotic device 100 may also comprise various types of robotic devices, such as an industrial robotic device, a medical robotic device, an exploration robotic device such as a device adapted to be deployed in areas presenting specific environmental constraints, for example space, underwater (as deep-sea), military environment or nuclear environment.
[0157] An example of the first robotic device 100 will now be described in reference to figure 3, which illustrates a non-limiting embodiment wherein the robotic device 100 is a robotic device comprising arms.
[0158] The robotic device 100 illustrated on figure 3 comprises a right arm 120a, a left arm 120b, a chest 102, a cable shield 103, a gripper 190, and an optical detection system 200 and a hoist 185 both mounted to the chest 102. The right arm 120a and the left arm 120b are coupled to the gripper 190. The optical detection system 200 may comprise one or several cameras 205. The optical detection system 200 may be coupled to at least one component and / or to at least one part of the robotic device 100. For example, at least one camera 205 may be coupled to the right arm 120a and / or to the left arm 120b.
[0159] Figure 4 illustrates a right-side view of the right arm 120a according to the non-limiting embodiment wherein the robotic device 100 is a robotic device. The right arm 120a comprises a shoulder 125, a shoulder cover 126, an upper arm 130, an elbow 135, a forearm 145, and a wrist 150.
[0160] The upper arm 130 and elbow 135 may be protected by a protecting device 131 , for example a flexible bag 131 cover.
[0161] The forearm 145 comprises forearm bearing 146 to facilitate arm swivel. The forearm 145 is coupled to a wrist 150 which is coupled to an end effector 190, such as gripper.
[0162] In one embodiment, the right arm 120a and / or the left arm 120b are free in motion according to one or several degrees of freedom, for example six degrees of freedom.
[0163] In one embodiment, the end effector 190 is free in motion according to at least one degree of freedom, for example one degree of freedom. In some embodiments, the gripper 190 may have one degree of movement. In some embodiments, the left arm 120b is a mirror of the right arm 120a.
[0164] In one embodiment, at least one camera 205 is coupled to the forearm 145.
[0165] Figures 5A and 5B illustrates a front and right-side views of an embodiment of the forearm 145, wrist 150, and end effector 190. In the depicted embodiment, a camera 205 is coupled to the forearm 145. The arm bearing 146 facilitates forearm 145 swivel during operations.
[0166] Figures 6A, 6B, and 6C illustrate an embodiment of the end effector 190. Figure 6A is a top view, Figure 6B is a bottom view, and Figure 6C is an isometric view of an embodiment of the end effector 190.
[0167] In this embodiment, the end effector 190 comprises a gripper. The gripper comprises a tendon 191 , fingers 192, linkages 193, springs 194, and a housing 195. The tendon 191 couples to the forearm 145. The fingers 192 are used to grasp tools or objects in the operating space. The linkages 193 and springs 194 facilitate movement of the fingers 192.
[0168] Figures 7 illustrates an embodiment of the left interior side of the right arm 120a. In this embodiment, the right arm 120a is controlled with seven actuators 105-111 , six at the base of the arm and one inside the shoulder cover 126.
[0169] In this embodiment, a first actuator 105 controls forearm swivel, a second actuator 106 controls gripper open / close, a third actuator 107 and a fourth actuator 108 control wrist rotation, a fifth actuator 109 and a sixth actuator 110 control shoulder pivot, a seventh actuator 111 controls upper arm 130 pivot. The fifth actuator 109 mates with a % quadrant gear and the sixth actuator 110 mates with a quadrant gear which control range of motion of the shoulder 125 pivot.
[0170] In one embodiment, the robotic device 100 is a control device of a telemanipulating system. The robotic device 100 may be remotely coupled to a remote device. The robotic device 100 may be adapted to remotely control a remote device, for example a remote robotic device comprising features of the example of robotic device described in reference to figures 3 to 7.
[0171] In one embodiment, the robotic device 100 is a remote device of a telemanipulating system. The robotic device 100 may be remotely coupled to a control device. The robotic device 100 may be adapted to be remotely controlled by a control device, for example a remote robotic device comprising features of the example of robotic device described in reference to figures 3 to 7.
[0172] The robotic device 100 may be adapted to operate in various environments. For example, the robotic device 100 may be adapted to operate in areas with various environmental conditions, such as areas wherein human presence is not recommended for safety, or areas wherein the conditions render access and performing operations complicated for an operator, such as underwater, nuclear environment, space, military environments, areas subject to weather hazards, areas with uneven ground surface, or more generally any environment with any environmental condition or any geometrical configuration in which human operation presents difficulties or risks, or any environment in which using a device allows better performances or cost savings compared to deploying an operator.
[0173] The robotic device 100 may be movable. For this purpose, the robotic device may comprise at least one motor, wheels and / or may be guided by means of a rail or any other means suitable to induce motion in the robotic device.
[0174] The robotic device 100 may be adapted to perform an operation. Examples of operations comprise, but not limited to, lifting; moving; sorting; operating controls such as levers, wheels, buttons, and switches; fitting; connecting and / or disconnecting equipment; manipulating wires, cables, slings, hooks, ropes, and lifting tackle; handling delicate receptacles; pouring liquids; operating pipettes with precision, etc.
[0175] The robotic device 100 may be configured to perform at least one operation automatically. For that purpose, the robotic device 100 may comprise a memory and a calculator, for example a microcontroller, to store one or several programs comprising instructions for automatically generating and sending commands to the robotic device 100 according to a set of predefined rules.
[0176] Advantageously, the robotic device 100 may comprise a calculator implementing a learning function. The learning function may be configured to take input data received by the robotic device, and to update the program based on the input data.
[0177] One advantage is to allow the robotic device 100 to adapt to its environment.
[0178] The input data of the learning function may be directly measured and / or calculated by the robotic device 100 or may be received from an external equipment by means of a communication interface.
[0179] The learning function may be a trained learning function. The learning function may comprise a machine learning algorithm. The learning function may comprise a neural network, such as a convolutional neural network. The learning function may be trained by means of a supervised method and / or an unsupervised method and / or a self-supervised method.
[0180] Alternatively, or in addition, the learning function may implement a random forest function.
[0181] In addition, or alternatively, the robotic device 100 may be configured by an operator.
[0182] In addition, or alternatively, the robotic device 100 may comprise a communication interface and a calculator configured to receive periodically or punctually data sent from an external device for updating at least one program stored on the robotic device 100, or for implementing a new program.
[0183] The robotic device 100 may be adapted to perform an operation using at least one tool. The robotic device 100 may be configured to perform this operation automatically.
[0184] Examples of such operations comprise, but not limited to, cutting up waste; removing infrastructure; taking environmental samples; cutting and replacing cables and wire; opening doors and hatches; fitting clips, strapping, electrical terminal blocks, and other fittings; tightening / loosening fastenings and bolts; inspecting and taking measurements; welding and completing welding prep; cutting with waterjets; operating industrial power tools and hand tools; applying / removing lubrication and / or seals; decontaminating with water jets; performing advanced inspections, etc.
[0185] In one embodiment, the robotic device 100 is configured to perform a maintenance operation. The robotic device 100 may be configured to perform this operation automatically. The robotic device 100 is for example adapted to perform maintenance operations in various environments.
[0186] One advantage is to limit human presence in risky environments, such as space, underwater, military environment, or nuclear environment.
[0187] In one embodiment, the robotic device 100 is configured to perform an inspection operation. The robotic device 100 may be configured to perform this operation automatically. Such operation may comprise reconnaissance operation, for example in potentially risky areas.
[0188] The robotic device 100 may comprise at least one sensor. The sensor may be used to measure or detect information about its environment. The sensor may be apt at sending information to at least one other device or component of the robotic device 100, such as a processor and / or a memory. The sensor may operate as a transducer and generate an electrical signal as a function of the measured property. The sensor may comprise a digital sensor and / or an analog sensor. For example, the sensor may provide digital information to a processor and / or to a memory. At least one sensor may provide analog information to a processor and / or a memory. In some embodiments, the information may be converted from one type to another type, e.g. , from digital to analog or from analog to digital. For example, in some embodiments, a processor of the robotic device may compare information to a set point. In some embodiments, analog information is amplified before being compared to the set point. In some embodiments, at least one sensor may be used to measure at least one physical parameter. At least one sensor may be used to measure one of the following, but not limited to: a position, a radiation, a temperature, a sound, a pressure and the like. At least one sensor may comprise a contact sensor and / or a non-contact sensor, humidity sensors. At least one sensor may comprise an image sensor. The image sensor may be apt at generating an image or a video. The image sensor may be apt at converting information such as a variable attenuation of radiation waves (infrared, visible, and / or ultraviolet spectrum radiation as well as other frequencies) into signals that convey the information, such as information to be used to generate an image. The image sensor may comprise, but not limited to, an electronic image sensor such as a charge-coupled device (CCD), an active-pixel sensor (CMOS sensor), or the like. The image sensor may be part of a camera or of another imaging device.
[0189] In one embodiment, the robotic device 100 is configured to perform sample collections. The robotic device 100 may be configured to perform this operation automatically. For that purpose, the robotic device 100 may comprise tools or any other arrangement of components suitable to collect samples in a given environment. The robotic device 100 may be configured to perform data collection on the collected sample. In addition, or alternatively, the robotic device 100 may be configured to perform direct measurements in areas of interest in a given environment.
[0190] In one embodiment, the robotic device 100 comprises an optical device adapted for decoding a support encoding data. The robotic device 100 may comprise a reader configured to decode a barcode, a QR-code, or any other support of encoded data.
[0191] In one embodiment, the robotic device 100 comprises an interior space adapted for receiving a human operator. In that case, the robotic device 100 may comprise a user interface in the interior space for allowing the operator to send commands to the robotic device 100. In that case, the robotic device 100 may be considered as a vehicle embarking a user.
[0192] In one embodiment, the robotic device 100 may comprise a component sized for accessing narrow areas, such as a hole in wall, for example a hole presenting a largest dimension inferior to ten centimeters. The robotic device 100 may for example comprise an arm equipped with sensors and / or devices, for example temperature sensors and cameras, for acquiring data in areas wherein the dimensions of the robotic device 100 do not allow it to access entirely.
[0193] In one embodiment, the robotic device 100 comprises a memory. The memory may allow to store data acquired by the robotic device 100, for example data acquired using the sensors. The memory may also allow to store data received from an external device. For that purpose, the robotic device 100 may comprise a communication interface apt to receive data from an external device, for example through a wireless link. The robotic device 100 may also comprise a communication interface apt to be connected to another device using a physical link. The robotic device 100 may also comprise a communication interface allowing exchange of data between components of said robotic device 100, for example exchange of data between a calculator and a memory. The robotic device 100 may also comprise a communication interface adapted to be connected to a server through a data network.
[0194] In one embodiment, the robotic device 100 comprises a medical device. The robotic device may be configured for performing medical operations, for example surgery operations or supporting rehabilitation therapy for patients working to regain motor functions.
[0195] In one embodiment, the robotic device 100 comprises at least one calculator.
[0196] The robotic device 100 may comprise a controller for controlling one or several components of the robotic device 100.
[0197] The robotic device 100 may comprise at least one processor. The processor may comprise an electric circuit, such as an integrated circuit configured to execute program instructions. The processor may be configured to perform operations such as arithmetic operations, logic operations, controlling operations, and / or input / output operations specified by the program instructions. The processor may comprise a control unit. The control unit may be configured to direct the operation of the processor 103 and / or instruct a memory, instruct the arithmetic logic unit, and instruct output devices how to respond to instructions in the program. The control unit may also direct a flow of data or information between the processor and other components of the controller. The control unit may also control the operation of other components, for example by providing timing and control signals. The processor may comprise any suitable configuration. For example, the processor can range from a simple processor specially built or configured to execute one or more programs for a specific application or device to a complex central processing unit configured to be used in a wide variety of ways and an equally wide variety of applications. Examples of processors include a general-purpose processor, a digital signal processor, an application specific integrated circuit, a central processing unit, a field programmable gate array or other programmable logic device, and / or discrete gate or transistor logic. The processor may also comprise any combination of the precited examples.
[0198] The controller may comprise an arithmetic logic unit. The arithmetic logic unit may comprise an electric circuit. The arithmetic logic unit may be configured to perform integer arithmetic and bitwise logic operations. The arithmetic logic unit may be part of the processor. The arithmetic logic unit may comprise a communication interface for receiving input in the form of data or information to be operated on and optionally code describing the operation to be performed. The arithmetic logic unit may provide a result of a performed operation as an output. The arithmetic logic unit may comprise status inputs and / or outputs to convey information about a previous operation or a current operation between said arithmetic logic unit and external status registers.
[0199] The robotic device 100 may comprise a storage device, such as a memory unit. The storage device may comprise, but not limited to, a hard disk storage device, a solid-state storage device, an optical storage device, a magnetic disk (e.g., disk drives), a laser beam (e.g., optical drives), a semiconductor (e.g., solid-state drives), and / or a magnetic tape. The storage device may comprise at least one memory, such as a primary memory, a main memory, a cache memory, a computer readable medium, a volatile memory such as a random-access memory and / or a non-volatile memory such as a read-only memory.
[0200] The storage device may be connected to the processor. The storage device may comprise a semiconductor device to store information for immediate use by the processor. The storage device may be connected to the processor in such a way that the processor can read and execute program instructions stored on the storage device. In addition, or alternatively, the storage device may be connected to the processor in such a way that the processor can store information on the storage device.
[0201] The storage device may store program instructions, for example program instructions to be executed by the processor. The program instructions may comprise software algorithms and / or application programs. The program instructions may be expressed in the form of methods or processes performed in part or entirely by any suitable component of the robotic device 100, such as the controller, or may be performed as instructions stored in a computer-readable medium such as the storage device in one embodiment. The program instructions may take the form of software (including firmware, resident software, micro-code, or the like). The program instructions may be stored on or transmitted over a computer-readable medium such as the storage device in one embodiment. In some embodiments, the program instructions may be contained in any tangible medium of expression having program code embodied in the medium. In some embodiments, the program instructions can be written in any combination of one or more programming languages. In some embodiments, the program instructions can include firmware such as a basic input / output system (BIOS), an operating system, one or more application programs, program data, and the like.
[0202] The robotic device 100 may comprise a communication system, such as system bus. The communication system may allow exchange of information between the storage device and the processor. Examples of communication systems comprise a front-side bus, a memory bus, a local bus, or a host bus. The communication system may also allow exchange of information between other devices or interfaces of the robotic device 100. The communication system may comprise additional input / output buses communicatively linking the various other devices and / or interfaces to the processor. The information shared through the communication system may comprise data, signals such as control signals, commands, bits, symbols, or the like. The information may be represented using a variety of different technologies and techniques. For example, in some embodiments, the information may be represented by voltages, currents, electromagnetic waves, magnetic fields or particles, optical fields, or the like. The communication system may use a variety of architectures, communication protocols, or protocol suites to communicatively link the processor, the storage device, and / or any of the other devices and / or interfaces. For example, suitable architectures for the communication system comprise Industry Standard Architecture (ISA), Extended Industry Standard Architecture (EISA), Micro Channel Architecture (MCA), Video Electronics Standards Association (VESA), Peripheral Component Interconnect (PCI), PCI Express (PCI-X), Personal Computer Memory Card Industry Association (PCMCIA or PC bus), Accelerated Graphics Port (AGP), Small Computer Systems Interface (SCSI), and the like. Suitable communication protocols comprise, but not limited to, TCP / IP, IPX / SPX, Modbus, DNP, BACnet, ControlNet, Ethernet / IP, or the like.
[0203] The robotic device 100 may comprise at least one display device. The display device may comprise a human-machine interface. The display device may comprise at least one screen. The display device may visually convey text, graphics, video, and / or other information. The display device may operate as an output device and / or an input device. For that purpose, the display device may comprise a user interface. The user interface may comprise a touchscreen, or any other kind of suitable user interface. The display device may be connected to the communication system, for example by way of one or more graphics interfaces. The graphic interface may be used to generate a feed of output images to the display device. At least one graphic interface may be a separate component such as a dedicated graphics card or chip. Alternatively, or in addition, at least one graphic interface may be part of the processor. The display device may comprise a variety of physical structures and / or display technologies. For example, the display device may comprise, but not limited to, a screen integrated into a specific application or technology, a separate screen such as a monitor, or the like, a liquid crystal display, a light emitting diode display, a plasma display, a quantum dot display, or the like.
[0204] The robotic device 100 may comprise at least one input device. The input device may be connected to the communication system, the processor and / or the storage device. The input device may comprise a digital and / or analog device. The input device may provide information in a digital or analog format. The input device may be used to provide user input for controlling the controller. Alternatively, or in addition, the input device may be used to provide operational input for controlling aspects of a specific application. The input device may comprise one or more sensors and / or one or more other miscellaneous input devices. It should be appreciated that the input device is not limited to only providing information. In some embodiments, the input device may also be configured to receive information. Such devices can be considered both an input device and an output device. The input device may comprise switches such as limit switches, level switches, vacuum switches, pressure switches, or the like, as well as buttons such as pushbuttons or the like, user interface components such as a pointing device, for example a mouse, text input devices, for example a keyboard, a touch screen, or the like.
[0205] The robotic device 100 comprises several components. It should be understood as “component” of the robotic device 100 any structural part of the robotic device and / or any part of a structural part of the robotic device 100. For example, a motor may be considered as a component of the robotic device 100 and / or a part of a motor may be considered as well as a component of the robotic device 100.
[0206] At least one component of the robotic device 100 may comprise, but not limited to, means for inducing a motion of the robotic device 100, such as a motor, such as an electrical motor, for example an alternating current motor or a direct current motor. At least one component of the robotic device 100 may comprise a motor comprising a given number of poles, such as a four poles motor or a seven poles motor. It should be understood by “poles” an arrangement of windings of the stator, each pair of poles corresponding to a pair of a north pole and a south pole of the magnetic field generated by the stator (two pairs of poles for a four poles motor and three pairs of poles with an additional pole for a seven poles motor).
[0207] One advantage to use a motor with a large number of poles is to reduce an amount of disturbance introduced by the motor, such as an amount of torque ripple. For example, a seven-pole motor may introduce less disturbance than a four-poles motor, or part of such means, such as a stator, a rotor, a shaft, bearings, housing, a cooling apparatus such as a cooling fan, electrical components such as electrical connectors and electrical wires.
[0208] The robotic device 100 may comprise a plurality of housing for receiving one or several components. At least two components of the robotic device 100 may be linked together by means of a physical link. In addition, or alternatively, at least two components of the robotic device 100 may be connected to each other remotely, for example by means of a wireless link.
[0209] Computer implemented method
[0210] In reference to figure 1 , the invention relates to a computer implemented method 10 for automatically generating a compensating signal Scomp to compensate for at least one disturbance introduced by at least one component 101 of a motor of a robotic device 100, the method 10 comprising: • Receiving RECi , by means of a first communication interface 130, a first dataset DATseti characterizing a state of the at least one component of the motor of the robotic device 100;
[0211] • Performing the following steps by means of a first calculator 120: o Computing CMPi a motion signal Smv using the first dataset DATseti , said motion signal Smv resulting from at least one motion of the robotic device 100, and characterizing at least one disturbance introduced by at least one component 101 of the robotic device 100; o Filtering FLTi the motion signal Smv to remove frequencies outside of at least one frequency range of interest Xa, ... , Xb, said filtering FLTi allowing to generate at least one filtered motion signal Smv’ characteristic of at least one disturbance source; o Determining DEMi at least one parameter Pi, ..., Px of the mathematical function F3, o Automatically generating GEN1 the compensating signal Scomp using said calculated parameter Pi , ..., Px of the mathematical function F3.
[0212] One advantage of the invention is to allow to accurately compensate for disturbances introduced by different kind of components, such as motors or parts of motors, loads or parts of loads, electronic circuitry, mechanical elements, etc. of different kind of devices, such as robotic devices, medical devices, telemanipulator systems, spatial devices, etc.
[0213] Another advantage of the invention is to reduce the costs by reducing the needs for time consuming operations and operations requiring operator interventions, such as regular maintenance or calibration of the components of a device, and by enabling a selection of more cost-efficient components, such as cheaper and / or more readily available motors with worse torque ripple, or different motor drive controllers with different performance. The invention advantageously allows to compensate for inherent disturbances introduced by cheaper / lower quality components.
[0214] Another advantage of the invention is to allow a wider modular selection of components without significantly impacting the design or implementation for different robotic devices. Reception of the first dataset
[0215] In reference to figure 1 , the method 10 comprises a step of receiving RECi , by means of a first communication interface 130, a first dataset DATseti characterizing a state of the at least one component of a robotic device 100.
[0216] The output motor signal may comprise the first dataset DATSETI .
[0217] The first communication interface 130 may be distant from the robotic device 100. In that case, the robotic device 100 may comprise its own communication interface to communicate with the remote communication interface 130. It is meant by “communicate” that the communication interface of the robotic device 100 may transmit signal to and / or receive signals from the first communication interface 130, and inversely. For that purpose, the communication interface of the robotic device 100 and the first communication interface 130 may comprise a transmitter and a receiver, such as an antenna.
[0218] The wireless signal may be transmitted by the robotic device 100 through its own communication interface to the remote communication interface through various transmission protocols. As such, both communication interface may be adapted to transmit and receive signals comprising, but not limited to, a Wi-Fi signal, a Bluetooth signal, a ZigBee signal, a LoRa signal, a 3G / 4G / 5G signal.
[0219] In addition, or alternatively, the wireless signal may be transmitted from the first robotic device 100 to the distant communication interface 130 through a remote server or a cloud service.
[0220] In one embodiment, the first robotic device 100 comprises the first communication interface 130. In that case, the first communication interface 130 may be connected to sensors arranged to measure the motor output signal. In that case, the motor output signal may be transmitted from said sensors to the first communication interface 130 through a direct data transmitting device, such as a data bus.
[0221] Advantageously, the received first dataset DATseti comprises data characterizing a motion of at least one component of the motor of the first robotic device 100. Such data may comprise, but not limited to, velocity data, acceleration data, time series of position data. For example, the first dataset DATseti may comprise data characterizing a motion of at least one motor or at least one component of at least one motor of the first robotic device 100. One advantage is to generate the compensating signal for perturbations linked to the motion of a component of the robotic device.
[0222] Advantageously, the received first dataset DATseti comprises data characterizing a physical parameter of at least one component 101 or characterizing an environment of at least one component 101 of the robotic device 100. For example, the first dataset DATseti may comprise temperature data comprising temperature data of a control card of at least one motor of the robotic device 100. In another example, the first dataset DATseti may comprise magnitude data characterizing at least one magnetic field close to at least one component of the motor of the robotic device 100. The first dataset DATseti may comprise at least one vector. The vector may comprise a strength component. The vector may comprise a direction component. For example, the first dataset DATseti may comprise a vector characterizing a magnetic field, said vector comprising a strength component and a direction component.
[0223] One advantage is to generate the compensating signal for perturbations associated to slow-drifting variables.
[0224] Advantageously, the received first dataset DATseti comprises data characterizing a value intrinsic to at least one component of the motor of the robotic device 100. For example, the first dataset DATseti may comprise dimensions of at least one component of the motor of the robotic device 100, such as cable lengths and / or sections, or such as a motor size. In another example, the first dataset DATseti may comprise mechanical data Dmeca characterizing a state of wear of at least one mechanical component of the motor of the robotic device 100.
[0225] One advantage is to generate the compensating signal Scomp for perturbations associated to a wear of components of the robotic device 100.
[0226] Advantageously, the received first dataset DATseti comprises data characterizing an input and / or an output of at least one component 101 of the motor of the robotic device 100. For example, the first dataset DATseti may comprise data characterizing a load supplying at least one motor of the robotic device 100, such as motor input current data Dcur, such as a commander quadrature current fed to the motor of the robotic device 100, or data characterizing a torque of at least one motor of the robotic device 100, such as motor torque data DTQ. One advantage is to generate the compensating signal for perturbations not only linked to the component itself, but also to perturbations linked to constraint applied to the component, such as a mechanical constraint, or any other type of constraint.
[0227] Computing the motion signal
[0228] In reference to figure 1 , the method 10 comprises a step of computing CMPi a motion signal Smv resulting from at least one motion of the robotic device 100 and characterizing at least one disturbance introduced by at least one component of a motor of the robotic device 100. It is meant by “motion signal” a signal which comprises at least one portion of signal characterizing a disturbance introduced by at least one component of the motor of the robotic device 100, for example a torque ripple.
[0229] Advantageously, the motion signal Smv is computed using the first dataset DATseti .
[0230] The motion signal Smv may be computed by means of the calculator 180. For example, the calculator 180 may comprise a controller, comprising the first communication interface 130. In that case, the calculator 180 may be configured to calculate the motion signal Smv using the first dataset DATseti .
[0231] The motion signal Smv may be computed using first time data Dtimi , motor position data Dposand motor input current data Dcur.
[0232] Alternatively, or in addition, the motion signal Smv may be computed using motor velocity data and second time data Dtim2.
[0233] Alternatively, or in addition, the motion signal Smv may be computed using motor torque data DTQ.
[0234] One advantage is to compute the motion signal more accurately.
[0235] Advantageously, the motion signal Smv is computed by measuring at least one parameter on at least one component of the motor of the robotic device 100, for example a torque or an acceleration of a motor of the robotic device 100.
[0236] One advantage is to ease the computation of the motion signal.
[0237] Advantageously, the computed motion signal Smv comprises an acceleration signal. The computed motion signal Smv may comprise an acceleration signal characterizing an acceleration of at least one motor of the robotic device 100. The acceleration signal may be measured directly on the robotic device 100, or may be calculated using the first dataset DATseti , for example using timestamped velocity data.
[0238] One advantage is to allow compensating for perturbation due to a change of velocity of a component, for example a motor.
[0239] Advantageously, the computed motion signal Smv comprises a motor torque signal. The computed motion signal Smv may comprise a motor torque signal measured directly on at least one motor of the robotic device 100. Alternatively, or in addition, the computed motion signal Smv may comprise at least one motor torque signal calculated using the first dataset DATseti .
[0240] One advantage is to allow compensating for disturbances introduced by a motor.
[0241] Advantageously, the computed motion signal Smv characterizes at least one ripple source in the robotic device 100. The computed motion signal Smv may characterize at least one torque ripple source in the robotic device 100, or at least one cogging torque source in the robotic device 100.
[0242] Filtering the motion signal
[0243] In reference to figure 1 , the method 10 comprises a step of filtering FLTi the motion signal Smv to remove frequencies outside of at least one frequency range of interest Xa, ..., Xb, also called “target frequency range of interest Xa, ..., Xb”, said filtering FLTi allowing to generate at least one filtered motion signal Smv’ characteristic of at least one disturbance source.
[0244] One advantage is to isolate one or several portion(s) of signal(s) of interest on one or several target frequency range(s). The portion of signal of interest may be characteristic of one or several disturbances introduced by at least one component of the motor of the robotic device 100. The filtered motion signal Smv’ may comprise at least one of those portions of signal.
[0245] Advantageously, the method 10 comprises a step of converting the motion signal Smv from a time domain to a frequency domain. The conversion may comprise a resampling step with respect to position.
[0246] This step may be performed using a mathematical function such as a Fast Fourier Transform, or any other suitable mathematical function allowing to convert a signal from a time domain to a frequency domain.
[0247] One advantage is to determine the disturbances that exist in the spatial frequencies, for example a torque ripple with a frequency of four cycles per motor turn. This step of conversion may be performed by the calculator 180 before the step of filtering FLTi the motion signal Smv.
[0248] One advantage is to perform the step of filtering FLTi in the frequency domain.
[0249] Advantageously, the motion signal Smv is filtered using a band-pass filter. Cutoff frequencies of the filter may be parameterized to allow isolating at least one portion of the signal characterizing at least one source of disturbance.
[0250] One advantage is to isolate at least one portion of signal characteristic of at least one disturbance.
[0251] Advantageously, the filtering FLTi allows to generate at least one filtered motion signal Smv’ characteristic of at least one ripple source at the frequency range of interest Xa, ..., Xb. For example, the filtered motion signal Smv’ may comprise at least one portion characteristic of a DC offset and / or may comprise at least one portion characteristic of an asymmetry and / or may comprise at least one portion characteristic of harmonics.
[0252] Identifying the counter signal: generating a perturbation model
[0253] In one embodiment, the method 10 comprises a step of identifying the counter signal SCOMP using a perturbation model MODp of amplitude and phase of perturbations.
[0254] In one embodiment, the method 10 comprises a step of generating the perturbation model MODp of amplitude and phase of perturbations, such as ripples, by means of the calculator 180.
[0255] Generating the perturbation model MODp from first principles and specifications
[0256] In one embodiment, the perturbation model MODp is generated from first principles and specifications of the motor of the robotic device 100.
[0257] An example is described below, wherein the perturbation model MODp is generated by means of the calculator 180 from a current command sent to the motor of the robotic device 100, starting from a voltage equation in the quadrature axes and direct axes of the motor of the robotic device 100, expressed as follows: wherein:
[0258] • Id is a direct-axis current (in Amperes)
[0259] • lqis a quadrature-axis current (in Amperes)
[0260] • Vd is a direct-axis voltage (in Volts)
[0261] • Vqis a quadrature-axis voltage (in Volts)
[0262] • R is a winding resistance (in Ohms)
[0263] • Ld is a direct-axis inductance (in Henrys)
[0264] • Lqis a quadrature-axis inductance (in Henrys)
[0265] • p is a number of pole pairs of the motor (dimensionless)
[0266] • co is a motor shaft angular velocity (in Radians per seconds)
[0267] • Am is a permanent magnet flux linkage (in Weber)
[0268] • dld / dt is a rate of change of d-axis current (in Amperes per seconds)
[0269] • dld / dt is a rate of change of q-axis current (in Amperes per seconds)
[0270] In that example, a controller of the motor is configured to keep the direct-axis current close to zero, so that Vq= RIq+ Lq
[0271] In that example, a torque constant Kt is calculated using the following equation: Kt = (3 / 2) * p * Am, so that the equation can be expressed the S- domain after performing a Laplace transform operation on said equation.
[0272] One advantage is to generate a proportional integral current control loop that relates the commanded current, to the actual current Ia, as follows:
[0273] Equation 1
[0274] Equation 1
[0275] Substituting Equation 2 into Equation 1 , we get:
[0276] Equation 2
[0277] Now, the mechanical system (motor shaft) has the following model: .lq
[0278] Equation 3 Where:
[0279] J: Moment of inertia of the rotor and load (kg m2)
[0280] B: Viscous friction coefficient (N m s / rad)
[0281] T: Electromagnetic torque (N m)
[0282] From Equation 4 and Equation 3, we get:
[0283] The frequency response function is obtained by replacing s with ja)e, where reis the electrical angular frequency and is related to the shaft angular velocity and the number of pole pair as follows: a)e= pat
[0284] Therefore, the frequency response function is:
[0285] Equation 5
[0286] One advantage of the transfer function of equation 6 is to obtain velocity-dependent models or look-up tables for the phase and amplitude of the perturbation model M0DP, and therefore of the countersignal Scomp. For example, if the perturbations, such as torque ripples are expected to have a fixed phase, for example in terms of shaft angle, then the countersignal Scomp may need to have a frequency phase shift with respect to a fixed value depending on angular velocity, and according to the transfer function. In another example, if the amplitude of the torque ripples is expected to be fixed, then the amplitude of the countersignal Scomp can be calculated from a factor obtainable from Equation 6, for a given angular velocity.
[0287] From Equation 4 we have: Combining Equation 6 with Equation 5, we get Equation 7: Equation 6
[0288] However, the step of generating the perturbation model MODPis not limited to this embodiment, and this step may be performed by means of the calculator 180 according to other methods.
[0289] Generating the perturbation model MODPfrom an empirical method
[0290] In one embodiment, the perturbation model MODPis generated by means of the calculator 180 using an empirical method. In that case, the perturbation model MODPmay be determined by combining several outputs of a plurality of methods, such as combining a generated first model which represents the amplitude and phase of the output for sinusoidal perturbations, or polynomial coefficients for non-sinusoidal perturbations, versus velocity and resistive torque, with a generated second dynamic model of a relation between an input motor command with an output motor signal.
[0291] Empirical method: first model
[0292] According to this embodiment, the step of generating the perturbation model MODPmay comprise a step of determining the first model.
[0293] According to this embodiment, the step of generating the first model may comprise a step of determining test data. The test data may be determined by running a motor in current-control model at different values of current command. The motor may be free spinning, (i.e. , with no resistive load, including gravitational load) or coupled to its shaft. Alternatively, a device with controllable resistive torque may be coupled to the motor shaft, to record data at different velocities and different torques.
[0294] According to this embodiment, the step of generating the first model may comprise a step of determining test data may comprise a step of dividing the determined test data into segments. Each segment may correspond to different current command values and / or different torque values.
[0295] According to this embodiment, the step of generating the first model may comprise a step of determining test data may comprise a step of resampling the test data with respect to position. It is meant by “resampling the test data with respect to position” that the discrete output data is recreated via interpolation in a way that results in an array of positions with a fixed increment. One advantage is to allow frequency analysis of ripples which are positional. For instance, for a 4-pole pair motor, the torque ripples due to current biases have a fundamental positional frequency of 4 cycles per motor shaft revolution, with harmonic frequencies at integer multiples of 4 cycles per motor shaft revolution.
[0296] According to this embodiment, the step of generating the first model may comprise a step of determining test data may comprise a step of filtering the re-sampled test data, for example using a band-pass filter.
[0297] One advantage is to isolate the perturbations at a target frequency range, also called frequency range of interest.
[0298] According to this embodiment, the step of generating the first model may comprise a step of determining test data may comprise a step of determining the average amplitude of the perturbations by multiplying the root mean square value of the re-sampled test data by the square root of two.
[0299] In that case, the average phase of amplitude of the perturbations may be determined in an iterative way, for example by trying multiple sine waves with said determined average amplitude of the perturbations and with different trial values of the phase, for example ranging from 0 to 2 IT radians.
[0300] One advantage is to generate a first initial model for sinusoidal perturbations.
[0301] Alternatively, the step of generating the first model may comprise a step of using polynomial functions to estimate the shape of the signal of the perturbation. According to this step, the polynomial coefficients may be determined by regression.
[0302] Empirical method: second dynamic model: transient response analysis
[0303] According to this embodiment, the step of generating the perturbation model MODPmay comprise a step of determining a second dynamic model. The second dynamic model correlates the system input to its output, for example a frequency response of the system, i.e. , the amplitude ratio and phase shift, at different time-frequencies.
[0304] According to this embodiment, the step of determining the second dynamic model may comprise a step of identifying an amplitude ratio and phase shift at the target positional frequency for example at different velocity and resistive torque values. One advantage is to identify the amplitude ratio and phase shift at a fixed target positional frequency where different time-frequencies correspond to different velocities.
[0305] In one embodiment, the step of determining the second dynamic model comprises a step of performing, by means of the calculator 180, a transient response analysis.
[0306] According to this embodiment, a step response of the second dynamic model may be determined at different speeds and torques, at each incremental change of the current command between different data segments. The data used according to this embodiment may comprise data that pertains to a transient period. The determination of the step response may be repeated at several increments of the input motor command, for example at each incremental change of a current command between different data segments.
[0307] Empirical method: second dynamic model: frequency response analysis with identifier signals
[0308] In one embodiment, the second dynamic model is determined using at least one identifier signal having a frequency different than a target frequency.
[0309] According to this embodiment, at least two identifier signals may be used, for example with frequencies below and above a target frequency, or frequency of interest.
[0310] One advantage is to allow to perform an interpolation operation.
[0311] According to this embodiment, the output perturbation at identifier frequencies may be gathered and extracted using at least one filter, for example a band pass filtering.
[0312] One advantage is to allow determining the amplitude and phase shift of the perturbations at identifier frequencies.
[0313] According to this embodiment, the amplitude and phase shift ratio of the second dynamic model may be determined using the amplitude and phase of the perturbations at the input, and their resulting perturbation at the output.
[0314] According to this embodiment, an interpolation operation may be performed to approximate an amplitude ratio and phase shift at a target frequency. According to this embodiment, several steps may be repeated for several segments with different values of current command and resistive torque, at which output ripples were recorded.
[0315] One advantage is to determine a system model for the same values of velocity and torque at which the output perturbations have been modelled.
[0316] Empirical method: Frequency analysis with a countersignal
[0317] In one embodiment, the second dynamic model is determined using a counter signal added to the input command at a target frequency.
[0318] One advantage is to cause the output perturbations to change compared to a case with no counter signal.
[0319] According to this embodiment, data may be gathered for the case with a counter signal added to the input command at a target frequency and for the case with no countersignal added to the input command at a target frequency.
[0320] One advantage is to find the effect of the countersignal on the output.
[0321] Another advantage is to determine the amplitude ratio and phase shift at a target frequency.
[0322] According to this embodiment, several steps may be repeated for all segments with different values of current command and resistive torque, at which output ripples were recorded.
[0323] One advantage is to determine a second dynamic model for the same velocities and torques at which the output perturbations have been modelled.
[0324] Empirical method: combining the models
[0325] In one embodiment, the first model and the second dynamic model are combined to determine the perturbation model MODp. The combination may be performed automatically using the calculator 180.
[0326] The step of combining the first model with the second dynamic model may comprise dividing the output amplitude by the amplitude ratio and subtracting the phase shift from the output phase.
[0327] One advantage is to determine the perturbation model MODp for sinusoidal perturbations.
[0328] The step of combining the first model with the second dynamic model may comprise combining the output perturbations with a transfer function, such as a digitally implemented transfer function, such as as equation 7 determined from first principles.
[0329] The step of combining the first model with the second dynamic model may be performed at all values of the current command at which output ripples and system dynamics were modelled, using interpolation.
[0330] One advantage is to improve accuracy in determining the perturbation model MODp.
[0331] On-device parameter identification
[0332] In one embodiment, the method 10 comprises a step of on device parameter identification. It is meant by “on-device parameter identification” that the motor remains coupled to the joint of the device, e.g., a robotic arm.
[0333] In this embodiment, figure 12 represents an example wherein the countersignal is being calculated and applied, while the searches are performed as explained in this section.
[0334] In one embodiment, a phase search operation is performed by estimating an amplitude of the countersignal. The phase search operation may be performed by applying identifier signal without applying a countersignal.
[0335] The motor may be moved in such a way that either speed or acceleration data may be used as the output of the system. The output may be filtered to extract perturbations at the identifier frequencies, as well as the target frequency.
[0336] The RMS value of the output ripples at these frequencies may be used to get their average amplitude. The average output amplitude may be divided at each identifier frequency, by the known amplitude of the corresponding identifier signal at the input.
[0337] One advantage is to provide an estimate of the amplitude ratio at the identifier frequencies.
[0338] An interpolation operation may be performed to estimate the amplitude ratio at the target frequency.
[0339] The perturbation model MODp may be determined using the amplitude ratio at the target frequency, together with the average output amplitude at the target frequency, to estimate the amplitude perturbation model MODp.
[0340] Accelerometric / velocimetric phase search In one embodiment, the phase search operation is performed using a velocimetric and accelerometric phase search operation. In this embodiment, a countersignal may be generated with an initial approximation of the amplitude, and a phase of the countersignal may be calculated in real-time from a model having a known velocity dependent part and a phase offset to be determined. To determine the phase offset, an iterative approach may be used, in which the phase offset changes over a range of 0 to 2TT radians. According to this approach, for each trial value of the phase offset, the motor is moved and data recorded. A bandpass filtering may be used to separate perturbations at the target frequency. The average amplitude of the output perturbations may be calculated and recorded for each value of the phase offset. In that case, the resulting data represents the average amplitude versus phase offset, and the minimum amplitude value corresponds to the best estimate of the phase offset.
[0341] According to this embodiment, a first search operation with trial values may be performed to determine the phase offset. A second search operation may be done by repeating the procedure but limiting the search range to the vicinity of the answer from the first search.
[0342] The estimated average amplitude ratio may be calculated using the identifier signals.
[0343] The output average amplitude at the target frequency may be divided by this ratio, to calculate the perturbation model M0DP. amplitude.
[0344] The perturbation model M0DP. amplitude may be plotted versus the phase offset, and a fourth-degree polynomial model may be fitted, to determine a phase offset corresponding to the minimum point on the sinusoidal model. One example is described on figure 13.
[0345] One advantage is to eliminate the variations in the output amplitude due to speed-inconsistency between different trials. The number of consecutive fine searches with decreasing search ranges may depend on the desired accuracy.
[0346] Haptic Phase search
[0347] In one embodiment, in reference to figure 14, the method 10 comprises a step of performing a haptic phase search operation. In this operation, the countersignal is created and applied, while the phase offset varies incrementally. As the phase offset changes, the perturbations felt by the user will change.
[0348] For each phase offset value, a user may move the motor and feel the motion, and then prompts the phase offset to change, via a user interface.
[0349] The user may prompt an increment of the phase offset to become reversed (from positive to negative and vice versa), via a user interface.
[0350] One advantage is to change the phase offset so that the user feels the motion become smoother.
[0351] The user may reverse the offset change and also reduce the increment size, depending on a desired accuracy.
[0352] Amplitude search
[0353] In one embodiment, the method 10 comprises performing an amplitude search operation. The amplitude search operation may be performed according to a velocimetric / accelerometric method and or a haptic method.
[0354] According to this embodiment, a first difference with the phase search operation is that the phase offset of the countersignal may be set equal to the answer obtained from the phase search and does not change during the search. Instead, the amplitude is varied over a range that contains the initial estimate.
[0355] According to this embodiment, a second difference with the phase search operation is that instead of fitting a fourth-degree polynomial model on the resulting data, a second-degree polynomial is fitted. This is because we expect to see one minimum point, which corresponds to the corrects value of the amplitude.
[0356] According to this embodiment, the search operation may be expanded and the search repeated.
[0357] One advantage is to determine a minimum point that resides outside of the two extreme ends of the search range.
[0358] Mathematical function / curve fitting / parameters
[0359] The method 10 comprises a step of determining DEMi at least one parameter Pi related to the filtered motion signal Smv’. The determined parameter Pi may comprise an amplitude of the motion signal Smv’. The received parameter Pi may comprise a phase shift of the filtered motion signal Smv’. The received parameter Pi may be calculated by means of a calculator, or received from a memory on which said parameter Pi was previously stored, or received from an external device by means of a communication interface.
[0360] One advantage is to allow calculating the compensating signal.
[0361] In one embodiment, at least one parameter Pi , ..., Px of the filtered motion signal Smv’ is calculated using said filtered motion signal Smv’. For example, an amplitude or a phase shift of the filtered motion signal Smv’ may be calculated at the frequency range of interest Xa, ... , Xb.
[0362] In one embodiment, at least two parameters Pi , ... , Px of the filtered motion signal Smv’ are calculated using said filtered motion signal Smv’. For example, an amplitude and a phase shift of the filtered motion signal Smv’ may be calculated at the frequency range of interest Xa, ... , Xb.
[0363] In one embodiment, the method 10 comprises a step of fitting CUVi at least one mathematical function F3 to the filtered motion signal Smv’. The fitting of the mathematical function F3 may be performed by means of a curve fitting method. The fitted mathematical function F3 may comprise a sinusoidal function. The fitted mathematical function F3 may comprise a sinusoidal function whose equation is F3 = A*sin(271 fx + ) with A the amplitude, f the frequency, x the position and is the phase shift.
[0364] One advantage is to allow calculating an amplitude and a phase shift of the mathematical function which can be used to calculate the compensating signal.
[0365] Advantageously, at least one parameter Pi , ..., Px of the mathematical function F3 is calculated using a plurality of coefficients obtained using a curve fitting method.
[0366] Generating the compensating signal
[0367] The method 10 comprises a step of automatically generating GEN1 a compensating signal Scomp using the received parameter Pi.
[0368] Advantageously, the compensating signal Scomp is generated using at least two parameters Pi , ..., Px related to the filtered motion signal Smv’. The two parameters may comprise an amplitude of the filtered motion signal Smv’ and a phase shift of the filtered motion signal Smv’.
[0369] One advantage is to generate the compensating signal more accurately. In one embodiment, the method 10 comprises a step of applying the compensating signal Scomp to the robotic device 100 by means of the calculator 120. The compensating signal Scomp may be applied automatically to the robotic device 100. The compensating signal Scomp may be applied in real-time to the robotic device 100. For example, the method 10 may be performed in real time in such a way that the method 10 allows for compensating periodically for disturbances introduced by at least one component 101 of the robotic device 100. In addition, or alternatively, the method 10 may be performed in such a way that when a received or calculated value is greater than a predefined threshold value, the compensating signal Scomp is automatically applied to the robotic device 100.
[0370] Machine learning
[0371] In one embodiment, the method comprises executing, by means of the first calculator 120, at least one machine learning algorithm to automatically adjust the compensating signal Scomp.
[0372] In one embodiment, the machine learning algorithm is configured to determine properties of at least one disturbance introduced by at least one component 101 of the robotic device 100. The machine learning algorithm may for example implement a statistical method.
[0373] In one embodiment, the machine learning algorithm is trained to output predicted values to compensate of at least one disturbance introduced by at least one component 101 of the robotic device 100.
[0374] In one embodiment, the machine learning algorithm comprises a neural network. The neural network is for example a convolutional neural network or a recurrent neural network, or a combination of convolutional neural networks and recurrent neural networks. An example of such neural network is a region based convolutional neural network, also designated by the appellation “R-CNN”. The neural network may comprise several layers among the following: convolutional layers, pooling layers, dropout layers, fully connected layers also known as dense layers, SoftMax layers, output layers.
[0375] In one embodiment, the machine learning algorithm implements a deep learning method.
[0376] In one embodiment, the machine learning algorithm is trained using a supervised method. In that case, machine learning algorithm may be trained by receiving labeled input data. In one embodiment, the machine learning algorithm is trained using a few-shots learning method. It should be understood by a “few shots learning method” that the machine learning algorithm is trained using a small amount of data.
[0377] Method applied to a robotic device of a telemanipulator system
[0378] According to another aspect, the invention relates to a computer- implemented method for automatically generating a compensating signal Scomp to compensate for at least one disturbance introduced by at least one component of at least one robotic device of a telemanipulator system, the method 10 comprising:
[0379] • Receiving RECi , by means of a first communication interface, a first dataset DATsetl characterizing a state of the at least one component of the robotic device;
[0380] • Performing the following steps by means of a first calculator : o Computing CMPi a motion signal Smv using the first dataset DATseti , said motion signal Smv resulting from at least one motion of robotic device, and characterizing at least one disturbance introduced by at least one component of the robotic device; o Filtering FLTi the motion signal Smv to remove frequencies outside of at least one frequency range of interest Xa, ... , Xb, said filtering FLTi allowing to generate at least one filtered motion signal Smv’ characteristic of at least one disturbance source; o Determining DEMi at least one parameter Pi , ... , Px of the mathematical function F3, o Automatically generating GEN1 the compensating signal Scomp using said calculated parameter Pi , ... , Px of the mathematical function F3.
[0381] System
[0382] According to another aspect, the invention relates to a system 400 comprising the robotic device 100, and comprising hardware and software means to perform the method 10.
[0383] The hardware and software means may comprise at least one communication interface 130 for receiving REC1 the first dataset DATseti characterizing a state of at least one component 101 of the robotic device 100. The hardware and software means may comprise at least one calculator 120 for:
[0384] • Computing CMPi the motion signal Smv using the first dataset DAT seti ;
[0385] • Filtering FLTi the motion signal Smv on at least one frequency range of interest Xa, ..., Xb using the filtering function F2, said filtering FLT1 allowing to generate at least one filtered motion signal Smv’ characteristic of at least one disturbance introduced by at least one component 101 of the robotic device 100;
[0386] • Determining DET1 at least one parameter Pi , Px related to the filtered motion signal smv’
[0387] • Automatically generating GEN1 the compensating signal Scomp using the determined parameter Pi , Px.
[0388] In one embodiment, the system 400 comprises a second device 200 remotely coupled to the robotic device 100.
[0389] The second device 200 may be coupled to the robotic device 100 in such a way that a change of state of at least one component 101 of the robotic device 100 causes a change of state of at least one component of the second device 200, or conversely. The change of state of at least one component 101 of the robotic device 100 may be equivalent to the change of state of the at least one component of the second device 200. It is meant by “equivalent” that the change of state of the components is approximately equivalent, with a tolerated margin of error.
[0390] The robotic device 100 may be a remote device of a telemanipulator system and the second device 200 may be a local device of said telemanipulator system.
[0391] According to another aspect, the invention relates to a computer program product comprising instructions which, when the program is executed by a computer, causes the computer to execute the steps of the invention.
[0392] According to another aspect, the invention relates to a storage medium having stored thereon the computer program product. The storage medium is a tangible support. The storage medium is not a transient signal.
[0393] Hardware configuration
[0394] Figure 11 illustrates an example of hardware configuration of the system 400 of the invention. The system 400 can be seen as a calculator interacting with a computer program.
[0395] The system 400 comprises a calculator 120. The calculator 120 comprises, for example, one or several processors adapted to interpret instructions in the form of computer programs. The processing may be executed by one processor sequentially or simultaneously, or according to another method, by one or several processors.
[0396] The calculator 120 may comprise a data processing module to perform calculations, a memory 121 connected to the data processing module, a computer readable medium and optionally a reader adapted to read a computer readable medium.
[0397] The system 400 may comprise an input module, an output module, and a communication interface 130.
[0398] Each function of the system 400 may be executed by making the data processing module to read a predetermined program on a material, such as the memory 121 , so that the data processing module executes calculations, commands communications to the communication interface and commands reading or writing data in the memory 121 and in the computer readable medium.
[0399] The method may be executed on one computer or on a distributed system between several computers (for example cloud computing).
[0400] The memory 121 may comprise a computer readable storing medium. The computer readable storing medium is a tangible support readable by a reader of the calculator 120, suitable for memorizing electronic instructions, and suitable for being coupled to at least one communication interface of the system 400. The computer readable storing medium is a tangible support. The computer readable storing medium is not a transient signal, such as radio waves, or others free-space propagation electromagnetic waves, such as light pulses or electronic signals. The computer readable storing medium is for example an electronic storing device, a magnetic storing device, an optical storing device, an electromagnetic storing device, a semiconductor storing device, or any combination of two or more of those examples. For example, the computer readable storing medium is an optical disk, a magneto-optical disk, a read-only memory (ROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), a random-access memory (RAM), a magnetic card or an optical card. The memory 121 may comprise an operating system to load the program of the invention. The memory 121 may comprise means for storing parameters variables created and modified during the execution of the precited program.
[0401] The calculator 120 may comprise at least one of the following elements: a set of one or several processors, such as a central processing unit (CPU), a graphical processing unit (GPU), a microcontroller, a digital signal processor (DSP), and suitable for reading instructions in the form of computer programs; a programmable logical circuit such as an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a programmable logical device (PLG), a system on chip (SOC) and / or an electronic card on which are stored steps of the method according to the invention. The computer product program may comprise the computer readable storing medium.
[0402] The program instructions may be stored on a computer readable storing support comprising, for example, a removable support, such as for example, and not limited to, a compact disc read only memory, a removable disc, a database, a server, or any other adapted storage support.
[0403] The program instructions may also come from an external source to be downloaded through a network. In that case, the computer product program may comprise a computer readable data support on which are stored the instructions of the program or a data support on which are encoded the instructions of the program.
[0404] The form of the program instructions may comprise, for example, a form of source code, a form of computer executable, or any form intermediate between a source code and a form of computer execution, such as a form resulting from the conversion of source code via an interpreter, assembler, compiler, linker, or locator.
[0405] Alternatively, the program instructions may comprise firmware instructions, state definition data, integrated circuit configuration data (e.g., VHDL), or object code. The program instructions may be written in any combination of one or more programming languages, such as object-oriented programming language (e.g., C++, JAVA, Python), procedural programming language (e.g., C language). The system 400 may comprise a user interface 160 comprising an input device and an output device.
[0406] The input device comprises for example a keyboard and / or a pointing interface such as a mouse. The output device is adapted to return information to a user, electrically or sensory, for example visually or sonorously. The output device comprises for example a graphical user interface. The output interface may comprise the input device, for example in the case of a tablet.
[0407] The system 400 may comprise a set of at least one communication interface. The set of at least one communication interface allows communication between elements of the system 400, such as between the memory 121 and the calculator 120, and optionally between at least one element of the system 400 and one element external to the system 400. The set of at least one communication interface may establish a physical link or a wireless link between elements of the system 400 and / or between at least one element of the system 400 and at least one device external to the system 400.
Claims
CLAIMS1. Computer implemented method (10) for automatically generating a compensating signal (Scomp) to compensate for at least one disturbance introduced by at least one component of a motor of a robotic device (100), the method (10) comprising:• receiving (RECi), by means of a first communication interface (130), a first dataset (DATseti) comprising data characterizing a state of at least one component of the motor of the robotic device (100);• performing the following steps by means of a calculator (180): o computing (CMPi) a motion signal (Smv) using the first dataset (DATseti), said motion signal (Smv) comprising at least one portion of signal characterizing said disturbance introduced by said at least one component of said motor of said robotic device (100); o converting (CVTi) the motion signal (Smv) from a time domain to a frequency domain using a mathematical function; o generating (GENi) a filtered motion signal (Smv’) by filtering said motion signal (Smv) on at least one frequency range of interest (Xa, ... , Xb) to isolate said at least one portion of the motion signal (Smv) characterizing said at least one disturbance; o determining (DETi) at least an amplitude of the filtered motion signal (Smv ) using at least one mathematical function;• automatically generating (GENi) said compensating signal (Scomp) using said determined amplitude of the filtered motion signal (S mv’),• automatically applying said generated compensating signal (Scomp) to the robotic device (100) to compensate for said at least one disturbance introduced by said at least one component of said motor of said robotic device (100).
2. The method (100) according to claim 1 , comprising performing the following steps by means of the calculator (180):• generating a first initial model of the amplitude and phase of disturbances introduced by at least one component of a motor using several motor input commands;• generating a second initial model of an amplitude ratio and a phase shift between at least one motor input command and at least one motor output;• generating a disturbance model (MODP) of the amplitude and phase of the disturbance by combining the first initial model and the second initial model, wherein the compensating signal (Scomp) is automatically generated using said generated disturbance model (MODP).
3. The method (100) according to claim 2, wherein the step of generating the second initial model comprises a step of performing, by means of the calculator (180), a transient response analysis, wherein a step response of the second initial model is determined for several motor input commands.
4. The method (100) according to claim 2, wherein the step of generating the second initial model comprises using at least one identifier signal having a frequency different than a target frequency of the disturbance.
5. The method (100) according to claim 4, wherein the step of generating the second initial model comprises using at least one first identifier signal having a frequency below the target frequency of the disturbance and using at least one second identifier signal having a frequency above the target frequency of the disturbance.
6. The method (100) according to claim 5, wherein the step of generating the second initial model comprises performing a step of filtering to output perturbations at identifier frequencies to determine the amplitude ratio and phase shift of the second initial model at said identifier frequencies.
7. The method (100) according to any of claims 5 to 6, wherein the step of generating the second initial model comprises performing a step of interpolation to determine the amplitude ratio and the phase shift.
8. The method (100) according to any of claims 1 to 7, comprising performing, by means of the calculator (180), a step of on device parameter identification to determine at least one unknown parameter of the filtered motion signal (Smv’), said step of on device parameter identification comprising:• determining at least one parameter related to the filtered motion signal (Smv ), said parameter comprising at least an amplitude of said filtered motion signal;• determining a phase to minimize the amplitude of a combination of said filtered motion signal (Smv ) and a new compensating signal.
9. The method (100) according to claim 8, wherein the phase to minimize the amplitude of a combination of said filtered motion signal (Smv ) and a new compensating signal is determined by performing velocimetric and accelerometric phase searches.
10. The method (100) according to claims 8 to 9, wherein the parameters related to the filtered motion signal (Smv ) and a new compensating signal is determined by performing a haptic phase search.
11. Computer implemented method (10) for automatically generating a compensating signal (Scomp) of a telemanipulating system comprising a first robotic device (100) defining a remote device having at least one arm used for sorting waste and a second device defining a local device manipulable by a user and remotely coupled to the first robotic device(100) in such a way that a change of state of at least one component(101 ) of the first robotic device (100) causes a corresponding change of state of at least one component (201 ) of the second device (200) of said telemanipulating system, said compensating signal (Scomp) being applied to a motor of the robotic device (100) to compensate for at leastone disturbance introduced by at least one component (101 ) of said motor of the first robotic device (100), the method (10) comprising the following steps:• transmitting a first dataset (DATseti) characterizing a movement of the first robotic device (100) resulting from a command and characterizing at least one disturbance introduced by said motor of the robotic device, said transmitted first dataset (DATseti) being sent by at least the first robotic device (100) to a device controller having a remote first communication interface (130);• Receiving (RECi) said first dataset (DATseti) by means of a first communication interface (130),• identifying the parameters of the counter signal by determining known parameters and estimating unknown parameters using a predefined model by performing the following steps by means of a first calculator (120) : o computing (CMPi) a motion signal (Smv) using the first dataset (DATseti), said motion signal (Smv) including the at least one disturbance introduced by at least one component of the robotic device (100); o converting the motion signal Smv from a time domain to a frequency domain comprising resampling with respect to position; o filtering (FLTi) the converted motion signal to remove frequencies outside of at least one frequency range of interest (Xa, ... , Xb), said filtering (FLTi) allowing to generate at least one filtered motion signal (Smv ) characteristic of at least one disturbance introduced by said at least one source of perturbation; o generating a first initial model of the amplitude and phase of disturbances introduced by at least one component of a motor using several motor input commands; o generating a second initial model of an amplitude ratio and a phase shift between at least one motor input command and at least one motor output;o generating a disturbance model (MODp) of the amplitude and phase of the disturbance by combining the first initial model and the second initial model,• automatically generating (GENi) a compensating signal (Scomp) to compensate for the disturbance introduced by the component using said determined at least one parameter (Pi , ..., Px) using said generated disturbance model (MODp),• transmitting the generated compensated signal to the robotic device• transmitting the first dataset and the generated compensated signal to the local device manipulable by the user.
12. System (400) comprising the robotic device 100 and comprising hardware and software means adapted to perform the method (10) according to any of claims 1 to 10.
13. A robotic telemanipulating system comprising a first robotic device (100) defining a remote device having at least one arm used for sorting waste and a second device defining a local device manipulable by a user and remotely coupled to the first robotic device (100) in such a way that a change of state of at least one component (101 ) of the first robotic device (100) causes a corresponding change of state of at least one component (201 ) of the second device (200) of said telemanipulating system, and comprising hardware and software means to perform the steps of the method according to claim 11 .
14. A computer program product comprising instructions which, when the program is executed by a computer, cause the computer to carry out the steps of the method according to any of claims 1 to 10.
15. A computer-readable storage medium having stored thereon the computer program product of claim 14.
Citation Information
Patent Citations
Method for calibrating and compensating torque ripple of synchronous motor servo system on line
CN113572394A
Motor controller and industrial machine
US20180024572A1
Input shaper for robotic surgical system
WO2020171836A1
Cited By
Mechanical arm visual servo control method and system based on self-learning disturbance observer
CN122033991A