Method for controlling a modular robotic arm
The method allows modular robotic arms to follow complex trajectories by calculating a virtual target path that accounts for module constraints, ensuring precise path adherence and flexibility.
Patent Information
- Application Number
- FR2024008599
- Authority / Receiving Office
- FR · FR
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-08-02
- Publication Date
- 2026-02-06
AI Technical Summary
Existing methods for controlling modular robotic arms, such as leader-follower tracking algorithms, fail to allow the arm to follow complex trajectories closely due to constraints between modules and environmental factors, leading to suboptimal path adherence.
A method involving a control system that calculates a virtual target path by altering a reference path based on movement commands, considering module constraints, and adjusts each module's position and orientation to closely follow the target path while respecting geometric and functional limits.
Enables the modular robotic arm to optimally follow movement commands despite complex trajectories and module constraints, ensuring precise path adherence and flexibility in constrained environments.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
Title of the invention: Method for controlling a modular robotic arm
[0001] The invention relates to the field of modular robotic arms and the control of the trajectory of these modular robotic arms with regard to a given movement order.
[0002] Modular robotic arms are used for various applications requiring access to confined, hazardous, and complex environments. They are notably used in inspection and / or maintenance operations of industrial or nuclear facilities, for welding tasks in hard-to-reach places due to limited space or the complexity of the access path, or for surgical interventions, reaching remote work sites via complex paths, for example inside an engine or a human body.
[0003] To carry out these operations, modular robotic arms, also called redundant hybrid robots, or even hyper-redundant robots, or snake robots, are made up of a succession of articulated segments, modules, or sections, at the end of which an end effector is mounted. This end effector is chosen according to the intended application and may thus include a camera, a remote sensing system or LIDAR, a measuring instrument such as a sensor, a probe, or an electrode, a tool such as a welding head, a laser cutting head, a gripper, or a suction head.
[0004] There are different methods for controlling the movement of the end effector. Robots can be manually teleoperated by an operator, or move in a programmed manner along a given trajectory, or even automatically with regard to an objective to be achieved and based on information about the robot's environment from the end effector or another system.
[0005] In this context, to control the movement with respect to the order of motion applied to the end effector, it is known to apply leader-follower or head-following type tracking algorithms, according to which the robot module connected to the end effector is guided along a path and each module follows the movement of the preceding module as the end effector advances, each module being, in a sense, pulled along the path by the preceding module. This type of algorithm has several drawbacks. Given that each module follows the module preceding it, the robot's overall trajectory is constrained by the movement capacity of the leader module. It is therefore impossible for the robot follow a given path as closely as possible, especially when that path is constrained by a complex trajectory. Furthermore, these algorithms do not take into account potential constraints on the movement of modules relative to each other, so it may be impossible for a given module to follow the movement of the preceding module, particularly in cases of heterogeneity between modules.
[0006] Although there are other methods of controlling the displacement, such as methods of propagating a sinusoidal wave along the robot, these methods do not overcome the aforementioned disadvantages.
[0007] There is therefore a need for a method of controlling a modular robotic arm which allows the modular robotic arm to follow as closely as possible a movement order given to it, regardless of the complexity of the trajectory implied by this order, in particular with regard to the environment of the robot, and regardless of the movement constraints of the robot modules between them.
[0008] The present invention falls within this context and aims to meet this need.
[0009] To this end, the invention relates to a method for controlling a robotic arm modular arm connected to a base, comprising: a. a succession of modules linked in pairs, with a first module connected to the base and each subsequent module being connected to the previous module; b. a plurality of driving means, each associated with one of the modules and capable of causing a movement of all the subsequent modules, this movement being limited by displacement constraints, and c. a control system capable of controlling each driving means.
[0010] The process according to the invention is characterized in that it comprises the following steps: a. reception by the control system of a movement command of the modular robotic arm with respect to a virtual reference path along which the modules are positioned; b. calculation by the control system of a virtual target path by altering the reference path according to the movement order received; c. calculation by the control system of the target position of each module so that this target position is located as close as possible to the virtual target path, taking into account the constraints of movement of said module; d. calculation, for each module, of a displacement instruction allowing the said module to be positioned at the target position; e. control of each motor means to drive a movement of the associated module according to the movement instruction calculated for that module.
[0011] According to the invention, each motor means can thus modify the orientation of the module associated with it and / or reconfigure the geometric arrangement of this module to cause a movement of the series of modules that follows it. This movement is, however, limited by movement constraints, which may be specific to the drive means causing this movement, to the module associated with these drive means, or even to all or part of the modules preceding this module and / or their associated drive means. These movement constraints may be geometric constraints, for example, of the joint limit type, such as maximum rotation angles of the modules relative to each other or of each module, or of the curvature limit type, such as a maximum radius of curvature of the robotic arm, or even functional constraints, such as a limit on the speed, torque, or acceleration of the drive means.
[0012] At any time, it is possible to define a virtual reference path along which the modules of the robotic arm are positioned. The method according to the invention thus proposes, when a movement command is received, to alter this virtual reference path to define a virtual target path along which the modules must be positioned to comply with this movement command. It is then possible to determine a target position for each module, allowing the module to be placed as close as possible to the virtual target path without exceeding the movement constraints imposed on that module. A movement command can be calculated from this target position and then applied to the motor means associated with the module to move that module to this target position. The modular robotic arm is thus placed in a configuration that optimally corresponds, with regard to the movement constraints, to the movement command that was received.
[0013] Advantageously, the steps of calculating the target virtual path, calculating the target position of each module, calculating a movement command for each module, and controlling each motor are repeated periodically by the control system, for example, at a frequency on the order of tens of Hz. It may be provided that, in the step of calculating the target virtual path, the reference virtual path is altered only if a movement command is received by the control system. At the end of the step controlling the motors, the target virtual path becomes the reference virtual path for the step of calculating the target virtual path of the following iteration. Alternatively or cumulatively, a new reference virtual path may be calculated for the step of calculating the target virtual path of the following iteration.
[0014] In the context of the present invention, and by way of non-limiting example, a "module of a modular robotic arm" means any module, elementary block, or unit designed to be interconnected with at least one other similar module to form a modular robotic arm, and capable of being moved, oriented, and / or reconfigured to cause movement of all the modules connected to it. directly or indirectly related. A module could, for example, be a simple rotary joint module, a double rotary joint module, notably equipped with a pair of rotating ferrules, a spherical joint module, a prismatic joint module, a telescopic module, a flexible module, or even a torsion module, or any combination of these types of modules.
[0015] Advantageously, the modular robotic arm includes an end effector connected to one of the modules in the sequence of modules, in particular to the last module in the sequence of modules. The end effector may include one or more of the following elements: a camera, a remote sensing system or LIDAR, a measuring instrument such as a sensor, a probe or an electrode, a tool such as a welding head, a laser cutting head, a gripper or a suction head.
[0016] Advantageously, the base may be provided with a winder capable of receiving the modular robotic arm in a resting configuration in which the modular robotic arm is wound up. The base may also be provided to be mobile and equipped with motors that can be controlled by the control system. This base thus allows the modular robotic arm to have one or more additional degrees of freedom.
[0017] In the context of the present invention, and by way of non-limiting example, the term "control system" means one or more electronic, computer, and / or software components capable of receiving a movement command and designed to perform calculation and control operations on the motor means of a robotic arm. The control system may be equipped with one or more microcontrollers and / or processors, arranged to execute instructions from one or more computer programs in order to implement the calculation and control steps of the process according to the invention. Alternatively, the control system may be integrated into the modular robotic arm, or alternatively, all or part of the control system may be located remotely from the base and the associated modules and motor means, while being connected to them by wired or wireless means.If necessary, the control system can be distributed across several computer devices, including one or more computer servers, so that all or part of the calculation and control steps can be implemented remotely from the modular robotic arm.
[0018] In the context of the present invention, and by way of non-limiting example, "movement command" means one or more signals, instructions, commands, or data intended to modify a spatial configuration of all or part of the modular robotic arm, and in particular of an end effector of this modular robotic arm. The movement command may, for example, include a Cartesian displacement command of the last module of the modular robotic arm or of the end effector, for example in the form of a translation command in a given direction and / or a rotation command around a given axis of rotation and / or Cartesian coordinates to be reached and / or an orientation to be followed. The movement command may also include a command to move the modular robotic arm along the virtual reference path, forward or backward, without altering the shape of this path. The movement command may also include a high-level instruction, for example, indicating a task to be performed that requires movement of the modular robotic arm, or an obstacle to be avoided in the environment of the modular robotic arm that requires a change in trajectory or geometric configuration of the modular robotic arm.
[0019] The movement command may, in particular, originate from a controller of the modular robotic arm, for example, one manually operated by an operator. The controller may, for example, be a control stick, also known as a joystick, or a computer keyboard. Alternatively, the movement command may originate from a computer program, and in particular be determined from a trajectory programmed beforehand or calculated automatically from information representative of the modular robotic arm's environment.
[0020] In the context of the present invention, and by way of non-limiting example, a "virtual path" is understood to mean a mathematical or geometric representation, two-dimensional or three-dimensional, of a configuration or shape of the modular robotic arm in its environment. A virtual path may comprise a set of points, in particular at least two points, positioned in a given two-dimensional or three-dimensional reference frame. Alternatively, a virtual path may comprise one or more sections described by mathematical equations defining one or more curves in a given two-dimensional or three-dimensional reference frame.
[0021] In the context of the present invention, and by way of non-limiting example, "alteration of the reference path" means any operation, modification or transformation, or sequence and / or combination of operations, modifications and transformations, that can be applied to all or part of the virtual reference path to generate a target virtual path. This alteration may, for example, include modifications to the positions of all or part of the points of the reference path, geometric transformations of the reference path, such as a change in curvature, rotation, translation or scaling, additions of points upstream and / or downstream of the reference path to increase its length or change its shape, deletions of points upstream and / or downstream of the reference path to reduce its length or eliminate an irrelevant section, or even a complete replacement of the points of the virtual reference path with new points.
[0022] In the context of the present invention, and by way of non-limiting example, the term "target position of a module" means a spatial position and / or spatial orientation of at least one point of the module in a given reference frame. This could, for example, be the Cartesian coordinates of a particular point of the module or the relative position of a module with respect to another module or to a fixed point of the modular robotic arm.
[0023] In the context of the present invention, and by way of non-limiting example, "movement command" means a signal, instruction, setpoint or data indicating a movement, change of orientation and / or change of configuration necessary for the module to reach its target position.
[0024] In one embodiment of the invention, the step of calculating the target virtual path includes a substep of calculating a target position of the first module and / or the last module of the robotic arm with respect to the reference virtual path, the reference path being altered according to said target position. Advantageously, said target position is determined from the movement sequence of the modular robotic arm. In this example, the reference path is altered directly from a target position to be reached by the first module and / or the last module, which notably allows for the generation of arm movements along a pre-established path, forward to continue a movement or backward to prepare for a change of direction or a return to a resting configuration, or even for modifying the curvature of the path along which the arm moves, for example, to bend it.
[0025] Preferably, the virtual reference and virtual target paths are at least as long as the modular robotic arm, between the positions of the first and last modules. Even more preferably, the virtual reference path has an initial section corresponding to the shape of the modular robotic arm in its initial or resting configuration. In this way, it is possible to store information relating to the initial or resting configuration of the modular robotic arm in the path, so that the arm can be returned to this initial or resting configuration at any time.
[0026] According to one embodiment, the reference virtual path is formed by a set of points, and the step of calculating the target virtual path involves adding one or more points, removing one or more points and / or moving one or more points of the reference path according to said target position to form the target virtual path.
[0027] Advantageously, when the movement command received by the control system includes a command to move the modular robotic arm along the virtual reference path, the calculation step of the target virtual path includes a substep, depending on said target position, of adding one or more points to the reference path, extending the reference path and / or removing one or more points from the reference path, located at one and / or the other end of the reference path, to form the target virtual path. According to these characteristics, points can thus be progressively added to the beginning and / or end of the virtual reference path to make it grow or shrink, depending on whether the movement command indicates an advance or a retreat, without altering the shape of the virtual reference path.
[0028] In particular, it may be provided that, in the event that the movement command indicates a retreat, the points of the virtual reference path extending beyond the target position of the last module are removed, pruning this virtual reference path allowing the robotic arm to prepare for a change of direction. It may also be provided, in this case, that points are added at the beginning of the virtual reference path to ensure that the virtual path is long enough to accommodate the entire modular robotic arm.
[0029] According to another example, when the movement command received by the control system includes a command to move the modular robotic arm with an inflection of the virtual reference path, the step of calculating the target virtual path includes a substep, depending on said target position, of adding one or more points to the reference path and / or removing one or more points from the reference path, located at one and / or the other end of the reference path, to form the target virtual path. The position of each of the points added and / or removed can be determined from the target position, and in particular from the relative position of this target position with respect to the points located at said end of the reference path.Based on these characteristics, points can be progressively added to the beginning and / or end of the virtual reference path to modify its curvature as the arm progresses along this path.
[0030] In another embodiment of the invention, when the movement command received by the control system includes a Cartesian displacement command for a part of the modular robotic arm, the step of calculating the target virtual path includes a substep for calculating the current position of a given module on the reference path, a substep for calculating a set of points using an inverse kinematic solver algorithm to which are provided as input the current position of said module and a position of said part of the modular robotic arm determined from the displacement command, the inverse kinematic solver being arranged to Identify a set of pairwise connected points forming the virtual target path and linking the current position of the module to the position of the modular robotic arm part, the set of points respecting the movement constraints. The modular robotic arm part can be the end effector, the base, or one or more modules of the modular robotic arm.
[0031] In this embodiment, all or part of the virtual reference path must be replaced by a new virtual target path enabling the movement of said part of the modular robotic arm while respecting the physical limits of the modular robotic arm defined by the displacement constraints. A kinematic solver is thus used to identify a set of points forming a kinematic chain limited by the displacement constraints.
[0032] Said given module may, in particular, be the first module or an intermediate module between the first and last modules. In the latter case, only a portion of the virtual reference path downstream of the position of said intermediate module is modified, the remainder staying fixed, so that only the modules upstream of the intermediate module are moved at the end of the control step. Similarly, if the virtual reference path extends beyond the position of the first module, for example, so that this virtual reference path retains the initial configuration of the modular robotic arm, only the portion of the virtual reference path downstream of this position of the first module is replaced, the upstream portion being retained in the target virtual path.
[0033] In particular, a sub-step for selecting said given module from among all the modules of the modular robotic arm may be provided. This selection sub-step may be a manual step, implemented by an operator through a control system interface, or an automatic step, with said given module being selected by the control system, for example, based on the movement command, and in particular according to the desired amplitude and / or Cartesian angle of movement.
[0034] Advantageously, in the event of failure to identify said set of points by the inverse kinematic solver from the current position of said module and the position of said part of the modular robotic arm, the step of calculating the target virtual path includes a step of modifying the current position of the first module and / or the position of said part of the modular robotic arm, the step of calculating a set of points using an inverse kinematic solver type algorithm being renewed from the new current position of the first module and / or the new position of said part of the modular robotic arm.
[0035] The desired Cartesian displacement may be unattainable given the constraints on the movement of the robotic arm module, which leads to a failure in convergence. of the inverse kinematics solver. This convergence may also require excessive computation time relative to the iteration frequency of the calculation and process control steps according to the invention. This embodiment therefore proposes modifying the inputs provided to the solver, either by changing the target position of said part of the modular robotic arm or by moving the base of the modular robotic arm if this base is mobile. This modification, or these modifications, are repeated until the inverse kinematics solver converges to a solution compatible with the displacement constraints and within a timeframe compatible with the iteration frequency of the process.
[0036] The modification step may be implemented automatically by the control system, for example by interpolating a new target position for said part of the modular robotic arm. Alternatively, the modification step may include displaying an alert on a screen visible to an operator of the modular robotic arm, prompting them to move the base or request another Cartesian movement of said part of the modular robotic arm.
[0037] In one embodiment of the invention, the method comprises, at the end of the step of controlling the motor means, a step of comparing the position of each module with respect to the target virtual path, and according to said comparison, a step of estimating one or more curves passing through said positions of the modules, a step of sampling said or said curves to define a new reference virtual path.
[0038] It is possible that, at the end of the control step, the modular robotic arm may not be perfectly aligned with the target virtual path. If the latter becomes the new reference virtual path for the next iteration, this discrepancy can pose a problem, particularly in the case of a movement command indicating a change of trajectory. These characteristics thus make it possible to redefine a new reference virtual path based on the actual positions of the modules. Otherwise, the target virtual path becomes the new reference virtual path for the next iteration.
[0039] For example, it may be provided that the comparison step includes a sub-step for estimating the positions of each module, a sub-step for calculating a value of a given metric, representative of a distance between these positions and the target virtual path, and a sub-step for thresholding this value.
[0040] In one embodiment of the invention, each subsequent module is connected to the preceding module by a ball joint; and the attachment point of the ball joint of a module to the preceding module is the attachment point of the ball joint of said module to the following module, the distance between the attachment points of the joint between these modules being fixed. Where applicable, the step of calculating the target position of each module is a step of calculating a target position of the attachment point of the joints. ball joints of this module. In this example, the modular robotic arm can thus be considered as a chain of ball joint links, notably at the same distance from each other, and the target position of each module thus corresponds to a target position of the fixing points, or connection points, of the ball joint links between them.
[0041] Advantageously, the step of calculating the target position of each module includes a substep of calculating a target position for the first module to place said target position on the target path, the target position of each subsequent module being determined from the target position of the preceding module to place said target position on the target path according to said fixed distance separating the attachment points of the link between these modules. In other words, the target positions are calculated step by step, starting from the first module, until reaching the last module.
[0042] Advantageously, each ball joint connecting a preceding module to the following module allows the following module to move through an angle limited by the maximum displacement angle of the ball joint. Where applicable, when the target position of the following module on the target path requires an angle greater than the maximum displacement angle of the ball joint connecting that module to the preceding module, the calculation step includes a substep for modifying the target position by placing a new target position in the plane formed by the target position and the target positions of the two preceding modules, requiring an angle identical to the maximum displacement angle of the ball joint.According to these characteristics, each target position of a ball joint is determined to satisfy a geometric criterion for connection with the previous ball joint and to be placed as close as possible to the virtual target path with regard to the actual movement limits of the modular robotic arm. The maximum movement angle can, for example, be determined from geometric constraints of the modules, in particular the maximum deflection angle of the modules, and / or functional constraints, in particular the maximum speed or acceleration that the drive means can generate with regard to the iteration frequency of the process according to the invention.
[0043] In one embodiment of the invention, the calculation step, for each module, of said displacement command enabling the positioning of said module to the target position, includes a substep of converting said target position into a pair of target inclination and azimuth angles, referred to as revolute angles, between the target positions of said module, the preceding module, and the following module, and a substep of converting said target revolute angles into an angular displacement command enabling the rotation of the ball joints between said module and the preceding and following modules from their current orientations to orientations corresponding to said target revolute angles. In this example, the Cartesian coordinates representing the target position of each module can be converted into an angular configuration between this module and its adjacent modules, represented by revolute angles, using Cartesian coordinates representing the target positions of the adjacent modules. These revolute angles can then be converted into an angular displacement command allowing the drive means to orient these modules relative to each other according to the angular configuration represented by these revolute angles.
[0044] According to one embodiment of the invention, each module comprises two half-vertebrae positioned opposite each other and connected by a constant velocity joint and an outer casing formed by two ferrules, each comprising a truncated trapezoidal cylinder shape. The drive means associated with each module comprise first drive means capable of driving a rotation of a first ferrule of the module and second drive means capable of driving a rotation of a second ferrule of the module. Where applicable, the substep of converting said target ball-and-socket angles of a module to an angular displacement setpoint includes a calculation of target rotation angles, referred to as articular angles, of each of the ferrules of said module, enabling the ball-and-socket joints between said module and the preceding and following modules to be pivoted from their current orientations to orientations corresponding to said target ball-and-socket angles.
[0045] According to this example, each module thus forms a finger joint defined by the center of the module, intended to be placed at the target position of the module, and by the centers of the distal ends of the ferrules. The modules are linked together in pairs such that the first ferrule of one module is coaxial with the second ferrule of the preceding module, and the second ferrule of said module is coaxial with the first ferrule of the following module. In other words, the axis defined by the center of said module and the center of the distal end of the first ferrule of said module coincides with the axis defined by the center of the preceding module and the center of the distal end of the second ferrule of the preceding module, and the axis defined by the center of said module and the center of the distal end of the second ferrule of said module coincides with the axis defined by the center of the following module and the center of the distal end of the first ferrule of the following module.The angular configuration of these three modules is thus defined by the rotatory angles of this central module, which represent the angle formed by the axis defined by the center of said module and the center of the distal end of the first ferrule of said module and the axis defined by the center of said module and the center of the distal end of the second ferrule of said module.
[0046] Furthermore, according to this example, each ferrule of a module has the shape of a truncated trapezoidal cylinder, namely a portion of a cylinder with at least one ellipsoidal section inclined with respect to the axis of revolution of the cylinder. Therefore, given this shape, the rotation of each ferrule thus allows its axis to be rotated. The The angular configuration is therefore also defined by the joint rotation angles of the central module. It is thus possible to calculate, from the target ball-and-socket angles, the joint rotation angles of the ferrules. Each ferrule can therefore be rotated independently of the others, via dedicated drive mechanisms, according to its target joint rotation angle, so as to orient the central module and its adjacent modules according to the joint configuration corresponding to the target ball-and-socket angles and thus to place the center of the central module in the target position.
[0047] In the invention, the first ferrule of a module may be provided to be connected to the second ferrule of an adjacent module by a pivot joint. For example, each half-vertebra of each module may include a crown, which interacts with the crown of one of the half-vertebrae of the adjacent module to form this pivot joint. Each module is thus connected to its adjacent modules by two pivot joints, driven by the drive means of the ferrules and therefore independent of each other, these pivot joints together forming the finger joint.
[0048] In one embodiment of the invention, the method comprises a step of extrapolating the target virtual path and a step of providing the extrapolated target virtual path to a computer terminal. These steps enable a prediction of the future trajectory of the modular robotic arm, which can be displayed on a screen of said computer terminal, for example, by being embedded in a 3D model of the modular robotic arm's environment. This prediction thus allows an operator to visualize this future trajectory, in the case where they only act on the advance of the modular robotic arm along the path.
[0049] The invention also relates to a modular robotic arm connected to a base, the arm comprising: a. a succession of modules linked in pairs, with a first module connected to the base and each subsequent module being connected to the previous module; b. a plurality of driving means, each associated with one of the modules and capable of causing a movement of all the subsequent modules, this movement being limited by displacement constraints, and c. a control system capable of controlling each motor means; characterized in that the control system is configured to implement the method of controlling the modular robotic arm according to the invention.
[0050] It may be provided that the modular robotic arm includes a motor means controller, capable of being operated manually by an operator and / or a computer terminal equipped with a screen.
[0051] The invention also relates to a computer program product comprising instructions which, when the program is executed by a processor, lead the latter to implement the steps of the process according to the invention.
[0052] The invention further relates to a computer-readable storage medium comprising portions of code from a computer program intended to be executed by a processor to implement the steps of the process according to the invention.
[0053] The present invention is now described by means of purely illustrative and in no way limiting examples of the scope of the invention, and from the accompanying drawings, in which the various figures represent:
[0054] [Fig-1] represents, schematically and partially, a perspective view of a modular robotic arm;
[0055] [Fig.2] represents, schematically and partially, a view of a section of the modular robotic arm of [Fig.1] comprising several modules;
[0056] [Fig.3] represents, schematically and partially, a method of controlling the robotic arm of the [Fig.1];
[0057] [Fig.4] represents, schematically and partially, the implementation of a calculation step of a target virtual path of the process of [Fig.3] according to a first order of motion;
[0058] [Fig.5] represents, schematically and partially, the implementation of a calculation step of a target virtual path of the process of [Fig.3] according to a second order of motion;
[0059] [Fig.6] represents, schematically and partially, the implementation of a step of calculating the target positions of the process of [Fig.3];
[0060] [Fig.7] schematically and partially represents the implementation of a calculation step for a displacement instruction of the process of [Fig.3]; and
[0061] [Fig.8] represents, schematically and partially, the control of a part of the robotic arm of [Fig.1] according to movement instructions during the implementation of a process control step of [Fig.3].
[0062] In the following description, identical elements, by structure or by function, appearing on different figures retain, unless otherwise specified, the same references.
[0063] The processes that will be described can also be implemented by software programs executable by a computer system. Furthermore, their implementation can be carried out interchangeably by distributed processing and / or parallel processing, in particular for processing several data points in parallel.
[0064] The figures described in this document are intended to provide a general understanding of the invention in various embodiments. These figures are not intended to serve as a complete description of all the elements and features of the devices, processors, and systems necessary for the invention. Many other embodiments of the invention, or combinations thereof, may be apparent to a person skilled in the art upon reading this description. combining the disclosed embodiments. Other embodiments may be derived from the description, so that structural and logical substitutions and changes may be made without departing from the scope of the present invention.
[0065] Furthermore, the description and figures should be considered illustrative rather than restrictive, and the appended claims are intended to cover all modifications, improvements, and other embodiments of the invention. Therefore, the scope of the following claims should be determined by the broadest possible interpretation of the claims and their equivalents and should not be restricted or limited by the preceding description.
[0066] A modular robotic arm according to an embodiment of the invention, designated as a whole by reference 1, is shown in [Fig.1].
[0067] The modular robotic arm 1 comprises at least one section 2 or several sections 2 placed end to end. Thus, the size of the modular robotic arm 1 is adaptable according to the intended use. For this purpose, the modular robotic arm 1 includes at one end a base 3 allowing it to be mounted, for example, on a trolley (not shown), and at the other end an end effector 4 chosen according to the intended use of the modular robotic arm 1.
[0068] There are different forms of embodiment of a base 3 and an effector 4 compatible within the framework of the invention, and in particular a winder type base, or a mobile base type allowing to give the modular robotic arm one or more additional degrees of freedom, or an effector of the camera type, remote sensing system or LIDAR, measuring instrument such as a sensor, probe or electrode, tool such as a welding head, laser cutting head, gripper or suction head.
[0069] According to the embodiment illustrated in [Fig. 1], the modular robotic arm 1 comprises four sections 2. Each section 2, in this example, comprises three modules 5;, a flange 6 separating each of the sections 2 while mechanically holding them together. Furthermore, a first module 5i is connected to the base 3, which is a movable base, and a final module 5n is connected to the end effector, which is a head capable of receiving a cutting object to rotate it.
[0070] In the invention, each module 5; may be a simple rotary joint module, a double rotary joint module, in particular equipped with a pair of rotating ferrules, a spherical joint module, a prismatic joint module, a telescopic module, a flexible module, or a torsion module, or any combination of these types of modules.
[0071] Figure 2 shows a view of a section 2 of the modular robotic arm, and of modules 5, 5, and 5i+i of this section. Section 2 is shown in a straight configuration.
[0072] According to the example in [Fig.1] and as represented in [Fig.2], a module 5; according to the invention comprises an outer envelope formed by two ferrules 7a, 7b. Each ferrule 7a, 7b comprises a truncated trapezoidal cylinder shape, namely a portion of a cylinder with at least one ellipsoidal section inclined with respect to the axis of revolution of the cylinder.
[0073] A ferrule 7a, 7b therefore comprises a main annular base 8 and, opposite it, a beveled annular base 9. The two ferrules 7a, 7b, each with a module of 5, are thus identical and joined on their respective beveled bases 9 by a pivot joint.
[0074] The beveled base 9 of a ferrule is contained in a plane forming an angle with the plane of the main base 8. According to the embodiment illustrated, this angle is between 10° and 20°.
[0075] It may be provided that the main bases 8 and the beveled bases 9 of the ferrules are each provided with bearing tracks.
[0076] A module 5 according to the invention also comprises an articulated internal architecture intended, in particular, to control the independent pivot joints of the ferrules 7 (not shown in [Fig. 2]). To this end, a module 5 comprises two opposing half-vertebrae connected by a constant velocity joint such as one or more Weiss joints, for example, encased in jaws of these half-vertebrae. Each half-vertebra is provided with a first ring intended to interact with one of the ferrules 7a, 7b of the module 5, and in particular with the bearing surface of the main base of this ferrule, as well as a second ring extending from the first ring along the longitudinal direction of the half-vertebra and intended to interact with the adjacent ferrule 7a, 7b of the module 5, and in particular with the bearing surface of the main base of this ferrule. Other methods of connecting and articulating the ferrules 7 with each other may be provided.
[0077] Each module 5; is therefore connected to its adjacent modules 5m and 5i+i by two pivot joints, independent of each other. These pivot joints together form a ball joint, the fixing point of the ball joint of a module 5; to the preceding module 5m being the fixing point of the ball joint of said module 5; to the following module 5i+i, the distance between the fixing points of the joint between these modules being fixed.
[0078] Each module 5 thus forms a finger joint defined by the center C2 of the module, and by the centers Ci and C3 of the main bases 8 of the ferrules 7a, 7b. The modules 5 are linked together in pairs, for example by interlocking, so that the first ferrule 7a of a module 5; either coaxial with the second ferrule 7b of the preceding module 5m and the second ferrule 7b of said module 5; or coaxial with the first ferrule 7a of the following module 5i+i. The angular configuration of these three modules 5m, 5i, 5i+i is thus defined by the angles of inclination and azimuth between the axes C2-C3 and C1-C2.
[0079] Each module 5i comprises first drive means capable of driving a rotation of the first ferrule 7a of the module 5i; and second drive means capable of driving a rotation of the second ferrule 7b of the module 5i. Insofar as the rotation of each ferrule 7a, 7b of a module 5i; is carried out around the axis of its main base 8, namely Ci-C2 for the first ferrule 7a and C2-C3 for the second ferrule 7b, these rotations thus allow control of the angular configuration of this module and of these adjacent modules.
[0080] Each ferrule 7a, 7b can therefore be pivoted independently of the other, through dedicated motor means, according to an angle of rotation qh q2, so as to orient the module 5; and its adjacent modules 5m and 5i+i according to a desired articulated configuration.
[0081] It will be noted that the rotation of one or the other of the ferrules 7a, 7b of a module 5; thus causes a displacement of the set of the following modules 5i+i to 5n, and therefore of the effector 4. This displacement is however limited by displacement constraints, specific to the modules 5i, such as geometric constraints, for example of the joint limit type, such as maximum rotation angles of the modules with respect to each other or of each module, or of the curvature limit type, such as a maximum radius of curvature of the robotic arm, or specific to the motor means, such as functional constraints, for example a speed, torque or acceleration limit of the motor means.
[0082] By way of example, each ball joint linking a module 5; to the next module 5i+i allows a displacement of said next module 5i+i, and therefore of the whole chain of the following modules up to the last module 5n, according to an angle limited by a maximum displacement angle 0max of said ball joint, defined both by the maximum deflection angle of the modules 5; and 5i+i between them and by the maximum speed or acceleration that can be generated by the driving means of module 5;.
[0083] In order to be able to control the movement of the effector 4, the modular robotic arm 1 includes a control system (not shown) capable of independently controlling each of the first and second motor means of each module 5i.
[0084] In one embodiment of the example in [Fig. 1], the modular robotic arm 1 includes a motor controller, which can be manually operated by an operator, such as a joystick, and / or a computer terminal equipped with a screen for entering instructions. The operator can thus define an order movement via this controller to initiate, modify or interrupt a movement of effector 4.
[0085] According to the examples that will be described later, this order of movement O(t), defined at a time t, may for example include a Cartesian displacement order of the effector 4, for example in the form of a translation order along a given direction x, y or z in a reference frame of the effector 4 and / or a rotation order along a given axis of rotation x, y or z in a reference frame of the effector 4, and / or a displacement order of the effector 4, forward or backward, with or without inflection of the curvature of the previously established displacement trajectory.
[0086] The present invention is not limited to this embodiment, and it may be provided that all or part of the control system is remote from the modular robotic arm 1. It may also be provided that the movement command concerns another part of the modular robotic arm 1, or is a high-level instruction, for example to indicate a task to be performed requiring movement of the modular robotic arm or an obstacle to be avoided in the environment of the modular robotic arm, this instruction being capable of being interpreted to deduce a change of trajectory or geometric configuration of the modular robotic arm 1. It may also be provided that the movement command is generated by a computer program, for example determined from a trajectory programmed beforehand or calculated automatically from information representative of the environment of the modular robotic arm.
[0087] In order to be able to control the modular robotic arm 1 and to carry out a movement of the end effector 4 in accordance with the movement order O(t) indicated by the operator, the control system is configured to implement a method of controlling the modular robotic arm 1.
[0088] An example of a method for controlling the modular robotic arm 1 according to an embodiment of the invention is thus represented in [Fig.3].
[0089] In a first step E0 of the process, the system receives the movement command O(t) from the end effector 4, this command indicating a movement of the end effector 4 relative to a virtual reference path PRef along which the modules 5i are positioned. In the example described, the centers of the finger joints formed by the modules 5i, namely the centers C2, are positioned on the virtual reference path PRef.
[0090] This virtual path PRef is a mathematical or geometric, two-dimensional or three-dimensional representation of a configuration or shape of the modular robotic arm 1 in its environment. In the example described, it is a set of points positioned in a given three-dimensional reference frame, this reference frame which can be a reference frame of base 3, of effector 4 or a reference frame arbitrarily chosen by the control system.
[0091] In a second step El, the control system alters the reference path PRef according to the movement order O(t) it has received to define a virtual target path PTar.
[0092] Different algorithms for altering the reference path PRef can be used by the control system to determine the virtual target path PTar. The method may thus include a substep for selecting a reference path alteration algorithm PRef from among a plurality of predetermined algorithms, based on the movement command O(t) received in step E0.
[0093] A first example of an algorithm is shown in [Fig.4] in which the virtual reference path PRef is altered by adding one or more points, removing one or more points and / or moving one or more points when the movement order received by the control system includes a movement order for the modular robotic arm 1 along the virtual reference path PRef.
[0094] In a substep El 1, the control system estimates a target position XTar of the center C2 of the first module 5i and / or the last module 5n with respect to the virtual reference path PRef, from the movement order O(t) of the modular robotic arm 1.
[0095] Said target position XTar can be obtained by translating the current position of the center C2 of the first module 5i and / or last module 5n along the reference path, which is estimated beforehand by the control system. The translation can be performed forward or backward along the virtual reference path PRef, depending on whether the movement command O(t) indicates an advance or a retreat of the effector 4. The amplitude of the translation can be determined from the amplitude of the movement indicated by the movement command O(t) and / or the elementary movement that the first and second motor means of module 51 and / or 5n are likely to cause in a given elementary time.
[0096] In the example shown in [Fig. 4], the movement order O(t) is a lead order of the end effector 4 along the reference path. In step El 1, the target position XTar is therefore a target position of the last module 5n, obtained by translating the position of the center C2 of the last module 5n.
[0097] It will be noted that part of the reference path PRef extends substantially behind the position of the center C2 of the first module 5i, in order to retain in the reference path PRef information relating to the initial configuration of the modular robotic arm 1, so as to be able to return the arm 1 to this initial configuration at any time.
[0098] In a substep E12, depending on the target position XTar, one or more points are added to the reference path PRef, extending from this reference path, and / or are removed from the reference path PRef, located at one or both ends of this reference path. The set of points determined at the end of step E12 thus forms the virtual target path PTar. The shape of the virtual reference path PRef is therefore preserved in this virtual target path PTar.
[0099] More specifically, in the case where the movement order O(t) indicates an advance, as in the example in [Fig. 4], points Psup are added to the reference path PRef, downstream of the position of the center C2 of the last module 5n, and extending this reference path at least as far as the target position XTar. The points of the reference path PRef, upstream of the position of the center C2 of the first module 5i, are retained, so that the entire virtual target path PTar can accommodate the whole of the arm 1 and that this virtual target path PTar retains the initial configuration of the modular robotic arm 1.
[0100] In an alternative embodiment of [Fig.4], it may be provided that points of the reference path PRef, upstream of the position of the center C2 of the first module 5i, are removed while ensuring that the entire virtual target path PTar can accommodate the whole of the arm 1.
[0101] It will be noted that in the case where the movement order O(t) indicates a retreat, points will be added to the reference path PRef, upstream of this path, only in the case where the path is not capable of accommodating the entire arm 1. Furthermore, the points of the virtual reference path PRef extending beyond the position of the center C2 of the last module 5n will be removed, the pruning of this virtual reference path PRef, allowing the modular robotic arm 1 to prepare a change of direction during its next advance.
[0102] The invention is not limited to the example in [Fig.4] and other algorithms for altering the reference path PRef by adding, removing or moving points according to the movement order O(t) received may be considered, in particular when this movement order involves a change in the curvature of the shape of the modular robotic arm.
[0103] A second example of an algorithm is shown in [Fig. 5] in which the virtual reference path PRef is replaced by a new virtual target path PTar, enabling a Cartesian displacement of the end effector 4 in the order O(t), while respecting the physical limits of the modular robotic arm 1 defined by the displacement constraints.
[0104] In a substep E13, the control system determines the current position of a center C2 of a module 5; given on the reference path PRef. In the example described in [Fig. 5], the module is the first module 5p
[0105] In unrepresented variants, it may be provided that module 5; is an intermediate module 5; between the first module 51 and the last module 5n, so that only a part of the virtual reference path PRef, downstream of the position of said intermediate module 5;, is replaced, the upstream part being kept in the target virtual path.
[0106] In addition, the control system determines a target position ETar of the effector 4, determined from the movement order O(t).
[0107] Finally, it should be noted that the part upstream of the position of the center C2 of the first module 5i is also retained, in order to retain the initial configuration of the modular robotic arm 1 in the virtual target path PTar.
[0108] In a substep E14, the current position of said module 5; given and the position of the effector 4 are provided as input to an inverse kinematic solver type algorithm, parameterized using the displacement constraints of the modular robotic arm 1.
[0109] This algorithm is thus configured to identify a set of points linked two-to-two, forming a kinematic chain limited by the displacement constraints, which link said current position of said module 5; to said position of the effector 4 which are provided to it.
[0110] In this embodiment, the portion of the reference path PRef downstream of the position of said given module 5i is thus replaced by the set of points resulting from the inverse kinematic solver, the set of points forming the virtual target path Pt A Tar*
[0111] In the absence of convergence of the solver, and in particular in the event of failure to identify said set of points with regard to the constraints of movement of the robotic arm module or of convergence in a given time, the process includes a substep E15 of modification of the current position of the given module 5; and / or of the position of the effector 4. The calculation substep E14 is then renewed from these new positions which are again provided as input to the solver.
[0112] These modifications can be implemented in different ways, either automatically, for example by interpolating a new target position of the effector 4, or manually, by moving the base 3 when it is mobile or by modifying the order of movement O(t).
[0113] The invention is not limited to the algorithms that have been presented, in particular through the examples in [Fig.4] and [Fig.5], and may be extended to other algorithms aimed in particular at modifying, from the order of movement O(t), positions of all or part of the points of the reference path PRef, geometric transformations of the reference path PRef, such as a change of curvature, a rotation, a translation or a change of scale, additions of points downstream and / or upstream of the reference path PRef to increase its length or change its shape, deletions of points downstream and / or upstream of the reference path PRef to reduce its length or eliminate an irrelevant section, or even a complete replacement of the points of the virtual reference path PRef with new points.
[0114] In a third step E2, the control system calculates a target position C2Tar>i of each module 5; so that this target position C2Tar,i is located as close as possible to the virtual target path PTar, taking into account the displacement constraints of said module 5i.
[0115] In the example described, said target position C2Tar>i of a module is a target position of the center C2 of the module, in particular with respect to the reference path reference frame PRef.
[0116] A simplified, two-dimensional example of the implementation of step E2 is shown in [Fig. 6], in which the target positions C2Tar,i are determined iteratively, step by step, from a target position of the first module 5p
[0117] In the example in [Fig. 6], the distance r between the centers C2 of two adjacent modules is considered constant for the entire modular robotic arm 1. The modular robotic arm 1 is thus considered as a chain of ball joints, all at the same distance from each other. Alternatively, this distance may be variable, although predetermined, from one module to another, particularly due to the presence of mounting flanges between the sections 2.
[0118] In an initial step E20, the control system determines a target position C2Tar,i of the first module 5i on the target path PTar. This target position C2Tar>i can be determined based on the preceding steps, depending on whether the movement order O(t) indicates a forward or backward movement of the end effector 4, or a Cartesian movement of the end effector. This target position C2Tar>i can thus be the current position of the center C2 of the first module 5i, or a target position of this center C2, determined during the previous step of calculating the target path PTar.
[0119] As indicated previously, each ball joint linking a module 5; to the next module 5i+i allows a displacement of said next module 5i+i, and therefore of the whole chain of the following modules up to the last module 5n, according to an angle limited by a maximum displacement angle 0max of said ball joint, defined both by the maximum deflection angle of the modules 5; and 5i+i between them and by the maximum speed or acceleration that can be generated by the driving means of module 5i.
[0120] In a first sub-step E21, the control system can therefore, from the target position C2l.ui of the first module 5b, position a point on the target path PTar, at a distance r from the target position C2Tar,i and contained within an angular range 0max around an axis defined by the target position C2Tar>iet and the point of attachment of the first module 5i to the base 3 of the modular robotic arm 1. This point thus forms the target position C2Tar2 of the center C2 of the second module 52.
[0121] Then, in iterations E2i similar to this step E21, for each module 5i, the control system can therefore, from the target position C2Tar,i of this module 5i, position a point on the target path PTar, at a distance r from the target position C2Tar>i and contained within an angular range 0max around an axis defined by the target position C2Tar,i of module 5i and the target position C2Tai,i of the previous module 5i. This point thus forms the target position C2Tar>i+i of the center C2 of the next module 5i+i.
[0122] It should be noted that, given the target path PTar, the distance r, and the displacement constraints, here represented by the angle 0max, the control system may fail to position a point on the target path PTar while respecting these displacement constraints. This is, for example, the case of the 4th iteration E24 of the example in [Fig. 6], where there is no point on the path PTar intersecting the circular arc defined by the distance r and the angle 0max. The target position C2Tar > i + i of the center C2 of the next module 5i + i is therefore found outside this circular arc.
[0123] In this case, the control system determines a new target position C2Tar,i+i' of the center C2 of the next module 5i+i as a point in the plane formed by said target position C2Tar>i+iet the target positions C2Tar>iet C2Tai., ,dcs two previous modules, placed at a distance r from the target position C2Tar,iet requiring an angle identical to the maximum displacement angle 0max.
[0124] Thus, each target position C2Tar,i is placed as close as possible to the virtual target path with regard to the actual movement limits of the modular robotic arm.
[0125] In a fourth step E3, the control system calculates, for each module 5; , a displacement command, in the form of a pair of target joint angles q1Tar>i, q2Tar>i according to which the ferrules 7a, 7b of said module 5; can be pivoted to pivot the ball joints between this module 5; and its adjacent modules so that the angular configuration of these three modules allows the center C2 of the module 5; to be positioned at the target position C2Tar,i determined in the previous step.
[0126] More specifically, for each module 5;, in a substep E31, the control system converts the target position C2Tar>i into a pair of target angles of inclination 0Tar>i and azimuth <pTar.i, entre les positions cibles dudit module, du module précédent et du module suivant. Ces angles 0Tar> i and <ptar>i are called rotatory angles.
[0127] Then, in a substep E32, the control system converts the revolute angles 0Tar>i and <ptar>i in a pair of target joint angles qlTar>i, q2Tar>i allowing control of the ferrules 7a, 7b.
[0128] A view of a module 5 is shown in [Fig. 7]; on which the rotatory angles 0 Tar>i and <ptar>i and the target joint angles q1Tar>i, q2Tar>i have been recorded. In addition, the two half-vertebrae 71a and 71b of module 5 are shown in [Fig.7]; and the homokinetic joint 72 connecting these half-vertebrae, the whole forming the finger-like patella.
[0129] It is recalled here that the modules 5; are linked together in pairs, for example by interlocking, so that the first ferrule 7a of a module 5; is coaxial with the second ferrule 7b of the preceding module 5m and the second ferrule 7b of said module 5; is coaxial with the first ferrule 7a of the following module 5i+i. In other words, the target positions C2Tar,ii , C2Tar,i , C2Tar,i+i of three adjacent modules 5m, 5i , 5; +i define the axes C2Tar i-C3 and Cr C2Tar>i of the module 5; and therefore the target rotatory angles 0Tar>i and <ptar>i- The control system can therefore convert these target positions C2Tar,M , C2Tar,i , C2Tar,i+i to the target rotatory angles 0Tar,i and cp^,.,.
[0130] Furthermore, the control system has a geometric model of module 5;. This geometric model allows the control system to convert the target patellar angles 0Tar>i and q>Tar>i into the target joint angles q1Tar>i, q2Tar>i, for example through the following equations:
[0131]
[0132] ^Tari / [Math.l] / -cmXa)(cvs(3Tarfy \ ^Tari - ^Tari " arCC0S \ sin{a)sir^Tari) / + 77
[0133] where a is the angle between the beveled base 9 of a ferrule 7a, 7b and the main base 8 of this ferrule 7a, 7b.
[0134] Each ferrule 7a, 7b of module 5; can therefore be pivoted independently of the other, through the first and second dedicated motor means, according to its target joint rotation angle q1Tar>i, q2Tar>i, so as to orient module 5; and its adjacent modules 5m and 5i+i according to the joint configuration corresponding to the target patellar angles 0Tar>i and <ptar>i- and therefore to place the center C2 of module 5; at the target position C2Tar,i- The target joint angles qlTar>iet q2Tar>i thus form a command to move module 5;.
[0135] It should be noted that substeps E31 and E32 can be merged into a single step, the control system in this case directly calculating the target rotatory angles 0Tar>i and <ptar>i from the target positions C2Tar,M , C2Tar>i , C2Tar,i+i.
[0136] The invention is not limited to this geometry of the modules, and extends to other types of modules capable of causing, by a displacement of the module or a Module reconfiguration involves moving all subsequent modules. This allows for the consideration of other methods for calculating movement instructions from target positions, adapted to other types of modules, without departing from the scope of the present invention.
[0137] In a fifth step E4, the target joint angles q1Tar>i and q2Tar>i are provided by the control system to the first and second motor means of each module 5; to drive a rotation of the ferrules 7a and 7b of this module 5; according to these target joint angles q1Tar>i and q2Tar>i and thus cause a displacement of this module 5; towards its target position C2Tar,i-
[0138] Figure 8 illustrates an example of implementing control step E4 on only one section 2 of the modular robotic arm. Section 2 is shown in the upper part in its configuration before implementing step E4, with the positions C2 of the module centers identified and the orientations of the ferrules 7a and 7b of each of the modules 5m, 5, and 5i+i indicated above these modules. The lower part represents the section after implementing step E4, with the target positions C2Tar,ii, C2Tar,i, and C2Tar,i+ides of the module centers identified and the movement commands indicated above these modules.
[0139] It will be noted that, although steps E2 and E3 have been described sequentially, it may be envisaged that these steps are implemented so that each target position C2Tar>i determined during step E2 gives rise to the calculation of the displacement setpoint qlTar>iet q2Tar>i, without waiting for the next target position to be determined.
[0140] The steps E1, E2, E3, and E4 described above are periodically repeated by the control system, for example at a frequency on the order of tens of Hz, so as to be able to adapt the trajectory of the end effector 4 in real time according to the evolution of the movement commands O(t) or to pursue a movement that is not feasible in a single iteration. Thus, at the end of the control step E4, the virtual target path PTar becomes the virtual reference path PRef of step E1 of the following iteration.
[0141] The method thus includes a step E5, implemented after step E4, in which the position of each module 5, relative to the target virtual path PTar, is estimated by the control system. If these positions are not aligned with the target path PTar, the control system estimates one or more curves passing through the module positions and samples this or these curves to define a new reference virtual path PRef. Otherwise, the target virtual path PTar becomes the new reference virtual path PRef for the next iteration.
[0142] Furthermore, the method includes a step E6 of extrapolating the virtual target path PTar in order to predict the future trajectory of the modular robotic arm 1, in the In this case, the modular robotic arm 1 would continue to advance along this path PTar. This extrapolation can then be displayed on a computer terminal screen, for example by being embedded in a 3D model of the modular robotic arm's environment.
[0143] The preceding description clearly explains how the invention achieves its objectives, namely, to provide a method for controlling a modular robotic arm that allows the modular robotic arm to follow a given movement command as closely as possible, regardless of the complexity of the trajectory implied by this command, particularly with regard to the robot's environment, and regardless of the movement constraints between the robot modules. These objectives are achieved by defining a reference path on which the robotic arm is positioned, altering this path according to the movement command, defining target positions for the arm modules with respect to the target path thus obtained, calculating the movement commands that allow the modules to be positioned at these target positions, and finally controlling the modules according to these movement commands.
[0144] In any event, the invention cannot be limited to the embodiments specifically described in this document, and extends in particular to all equivalent means and to any technically operative combination of these means.< / ptar> < / ptar> < / ptar> < / ptar> < / ptar> < / ptar>
Claims
Demands
1. Method for controlling a modular robotic arm (1) connected to a base (3), the arm comprising: a. a succession of modules (5;) connected in pairs, of which a first module (5i) is connected to the base and each subsequent module is connected to the preceding module; a. a plurality of driving means, each associated with one of the modules and capable of causing a movement of all the subsequent modules, this movement being limited by displacement constraints, and a. a control system capable of controlling each driving element, characterized in that it comprises the following steps: i. (EO) reception by the control system of a movement command (O(t)) of the modular robotic arm with respect to a virtual reference path (PRef) along which the modules are positioned; i. (El) calculation by the control system of a target virtual path (PTar) by altering the reference path according to the received movement order; i. (E2) calculation by the control system of the target position (C2Tar,i) of each module so that this target position is located as close as possible to the virtual target path, taking into account the displacement constraints (0max) of said module; i. (E3) calculation, for each module, of a displacement instruction (qlTar>i, q2Tar>i) allowing the said module to be positioned at the target position; i. (E4) control of each motor means to drive a movement of the associated module according to the movement instruction calculated for that module.
2. A control method according to the preceding claim, characterized in that the calculation step (El) of the target virtual path (PTar) comprises a calculation substep (El 1) of a target position (XTar) of the first module (5i) and / or the last module (5n) of the robotic arm (1) with respect to the virtual reference path (PRef), the reference path being altered according to said target position.
3. A control method according to the preceding claim, wherein the reference virtual path (PRef) is formed by a set of points, and in that the calculation step (El) of the target virtual path (PTar) comprises the addition of one or more points (PSup), the removal of one or more points and / or the displacement of one or more points of the reference path (PRef) according to said target position (XTar) to form the target virtual path.
4. A control method according to any one of claims 2 to 3, characterized in that, when the movement command (O(t)) received by the control system includes a command to move the modular robotic arm (1) along the virtual reference path (PRef), the calculation step (El) of the target virtual path (PTar) includes a substep (E12), depending on said target position (XTar), of adding one or more points (PSup) to the reference path, extending the reference path and / or removing one or more points from the reference path, located at one and / or the other end of the reference path, to form the target virtual path.
5. A control method according to any one of the preceding claims, characterized in that, when the movement command (O(t)) received by the control system includes a Cartesian displacement command of a part (4) of the modular robotic arm (1), the calculation step (E1) of the target virtual path (PTar) includes a calculation substep (E13) of the current position (C2) of a given module (5i) on the reference path (PRef), a calculation substep (E14) of a set of points using an inverse kinematic solver-type algorithm to which are provided as input the current position of said module and a position (ETar) of said part of the modular robotic arm determined from the displacement command, the inverse kinematic solver being arranged to identify a set of pairwise connected points forming the target virtual path and linking said current position of said module to said position of said part of the modular robotic arm,the set of points respecting the displacement constraints (0max).
6. A control method according to the preceding claim, characterized in that, in the event of failure to identify said set of points by the inverse kinematic solver from the current position (C2) of said module (5;) and the position (ETar) of said part (4) of the modular robotic arm (1), the calculation step (El) of the target virtual path (PTar) includes a modification step (E15) of the current position of the first module and / or of the position of said part of the modular robotic arm, the calculation step (E14) of a set of points using an inverse kinematic solver type algorithm being renewed from the new current position of the first module and / or of the new position of said part of the modular robotic arm.
7. A control method according to any one of the preceding claims, characterized in that it comprises, at the end of the control step (E4) of the motor means, a step of comparing the position (C2) of each module (5i) with respect to the target virtual path (PTar), and as a function of said comparison, a step of estimating one or more curves passing through said positions of the modules, a step of sampling said or said curves to define a new reference virtual path (PRef).
8. A control method according to any one of the preceding claims, characterized in that each subsequent module (5i+i) is connected to the preceding module (5i) by a ball joint; in that the fixing point of the ball joint of a module to the preceding module is the fixing point of the ball joint of said module to the following module, the distance (r) between the fixing points of the joint between these modules being fixed; and in that the calculation step (E2) of the target position (C2Tar,i) of each module (5i) is a calculation step (E21, E2i) of a target position (C2Tar,i) of the fixing point of the ball joints of this module.
9. A method according to the preceding claim, characterized in that the calculation step (E2) of the target position (C2Tar>i) of each module (5;) comprises a sub-calculation step (E21) of a target position (C2Tar. i) of the first module (5i) to place said target position on the target path (PTar), the target position (C2Tar>i +[) of each subsequent module (5i+i) being determined from the target position (C2Tar>i) of the preceding module (5;) to place said target position on the path target according to said fixed distance (r) separating the fixing points of the link between these modules.
10. A control method according to the preceding claim, characterized in that each ball joint linking a previous module (5i) to the next module (5i+i) allows a displacement of said next module through an angle limited by a maximum displacement angle (0max) of said ball joint, and in that, when the target position (C2Tar,i +i) of said next module on the target path (PTar) requires an angle greater than said maximum displacement angle of the ball joint linking this module to said previous module, the calculation step includes a substep of modifying said target position by placing a new target position (C2Tar,i +i') in the plane formed by said target position (C2Tar,i +i) and the target positions (C2Tar,i, C2Tar,ii) of the two previous modules and requiring an angle identical to the maximum displacement angle of said ball joint.
11. A control method according to any one of claims 8 to 10, wherein the calculation step (E3), for each module (5;), of said displacement setpoint (q1Tar>i, q2Tar>i) enabling the positioning of said module at the target position (C2Tar>i), comprises a substep of conversion (E31) of said target position into a pair of target tilt and azimuth angles, called ball-and-zoom angles (0Tar>i, <ptar>i) between the target positions (C2Tar,i, C2Tar,ii, C2Tar,i +i) of said module, of the preceding module (5m) and of the following module (5i+i), and a conversion substep (E32) of said target revolute angles to an angular displacement command enabling the revolute joints between said module and the preceding and following modules to be rotated from their current orientations to orientations corresponding to said target revolute angles.
12. A control method according to the preceding claim, characterized in that each module (5i) comprises two half-vertebrae (71a, 71b) positioned opposite each other and connected by a constant velocity joint (72) and an outer casing formed by two ferrules (7a, 7b), each comprising a truncated trapezoidal cylinder shape, the drive means associated with each module comprising first drive means capable of driving a rotation of a first ferrule of the module and second drive means capable of driving a rotation of a second ferrule of the module; and in that the sub-step conversion (E32) of said target ball-and-socket angles (0Tar>i, Ç>Tar,i) of a module to an angular displacement setpoint (qlTar>i, q2Tar>i) includes a calculation of target rotation angles, called articular, (qlTar>i, q2Tar>i) of each of the ferrules of said module allowing the ball-and-socket joints between said module and the preceding and following modules to be pivoted from their current orientations to orientations corresponding to said target ball-and-socket angles.
13. A control method according to any one of the preceding claims, characterized in that it comprises an extrapolation step (E6) of the target virtual path (PTar) and a step of providing the extrapolated target virtual path to a computer terminal.
14. Modular robotic arm (1) connected to a base (3), the arm comprising: a. a succession of modules (5i) connected in pairs, of which a first module (5i) is connected to the base and each subsequent module is connected to the preceding module; a. a plurality of driving means, each associated with one of the modules and capable of causing a movement of all the following modules, this movement being limited by displacement constraints (0max), and a. a control system capable of controlling each driving means; characterized in that the control system is configured to implement the method of controlling the modular robotic arm according to one of the preceding claims.< / ptar>
Citation Information
Patent Citations
Articulated robot arm
WO2017032932A1