WO2006018485A1 - Procede et systeme d'evitement de collision pour engins mobiles - Google Patents

Procede et systeme d'evitement de collision pour engins mobiles Download PDF

Info

Publication number
WO2006018485A1
WO2006018485A1 PCT/FR2004/001905 FR2004001905W WO2006018485A1 WO 2006018485 A1 WO2006018485 A1 WO 2006018485A1 FR 2004001905 W FR2004001905 W FR 2004001905W WO 2006018485 A1 WO2006018485 A1 WO 2006018485A1
Authority
WO
WIPO (PCT)
Prior art keywords
computer
points
machine
elements
collision
Prior art date
Application number
PCT/FR2004/001905
Other languages
English (en)
Inventor
François BEAULIEU
Vincent Brach
Jean-Claude Billebaut
Original Assignee
Societe De Materiel Industriel Et D'equipement-Smie
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Societe De Materiel Industriel Et D'equipement-Smie filed Critical Societe De Materiel Industriel Et D'equipement-Smie
Priority to EP04767728A priority Critical patent/EP1768821A1/fr
Priority to CNA200480043641XA priority patent/CN1997490A/zh
Priority to PCT/FR2004/001905 priority patent/WO2006018485A1/fr
Priority to CA002573967A priority patent/CA2573967A1/fr
Priority to AU2004322424A priority patent/AU2004322424B2/en
Priority to US11/632,657 priority patent/US20080119960A1/en
Priority to JP2007521969A priority patent/JP2008506611A/ja
Publication of WO2006018485A1 publication Critical patent/WO2006018485A1/fr

Links

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • B25J9/1666Avoiding collision or forbidden zones
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39082Collision, real time collision avoidance
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40468Using polytree intersection method
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40492Model manipulator by spheres for collision avoidance

Definitions

  • the present invention relates generally to collision avoidance devices, and more specifically to a collision avoidance method and system for avoiding collisions between at least two mobile vehicles.
  • Construction machinery such as cranes or hoists are well known in the art. In a site such as a building site, these machines are used to allow the transport, from one point to another of the site, of raw materials such as concrete or building elements. At a site such as a port wharf, loading cranes are used to load and unload cargo onto and from ships, and generally mobile equipment is used to move loads on industrial sites.
  • the devices of the prior art are limited at present to carrying out proximity detections using sensors such as proximity detection devices by ultrasound or the like, or by exchanging information making it possible to detect a risk. on the basis of the static positions of the craft or their load.
  • nuisance alarms have the drawback of unnecessarily distracting the attention of machine operators, with the risk that another very real problem remains unnoticed, because the attention of the driver (s) concerned is focused on a nonexistent problem.
  • the subject of the present invention is a method for avoiding collision between at least two physical entities, said at least two physical entities being made up of elements, said elements being defined by points, said points being able to be known in the form digital, said points being able to move simultaneously according to at least one degree of freedom, each of said simultaneous movements requiring a minimum variation of said corresponding degree of freedom before stopping, a computer type system being used to store and process said points under in digital form, said at least one computer type system making it possible to store and process said points in digital form, and which has the characteristic that a deformable digital model is defined inside said computer type system for each of said elements of said physical entities, said deformable model containing all of the positio ns that the points of said associated element are likely to take during any combination of simultaneous displacements according to said at least one degrees of freedom during said minimum variations before stopping, said computer type system calculating, for at least one entity, a distance between each of said deformable models of the elements of said at least one entity and each of said deformable models
  • said physical entities can be, for example, machines capable of being used in a workshop, on a construction site, public works or handling, or a port area.
  • each of said physical entities will comprise a computer type system
  • said at least one computer type system will usually comprise at least one display device making it possible to display said deformable models for an operator.
  • an alarm will generally be generated by said at least one computer-type system during said detection of said risk of collision, said alarm possibly being, for example, audible or visual.
  • said alarm will be intended for at least one of the operators of said machines.
  • said minimum variations before stopping can be determined or measured by said at least one computer system, and in this case, they can be assigned to a predefined value of an impossibility of determining or measuring said minimum variations before stopping.
  • the method of the invention allows the use of two-dimensional, or alternatively three-dimensional, deformable models.
  • said deformable models can be approximated by an encompassing prismatic volume obtained as the set of points traversed by a base consisting of a surface element during a displacement not included in said surface.
  • Said base can then be planar and in particular, its outline can be defined by a set of connected line segments and arcs.
  • said displacement can be rectilinear, and in particular, it can be perpendicular to the plane of said base.
  • At least two computer type systems will be used to process said points in digital form, and more particularly, a computer type system will be associated with each of said physical entities. Said at least two computer-type systems will then be able to exchange information in digital form, preferably a computer-type means of communication.
  • said computer type communication means will be a computer type network.
  • said at least one computer-type system can also exercise control over the variation of at least one degree of freedom of at least one of said at least two physical entities.
  • said control could consist of cutting the variation of said at least one degree of freedom, or as a variant, said control could consist of reducing the speed of variation of said at least one degree of freedom. In this case, in which said speed reduction may be inversely proportional to one of said distances between said physical entities.
  • a simple global envelope can also be defined in said computer type system for each of said at least two physical entities, two of said at least two physical entities being determined as not being able to collide if their global envelopes simple have an empty intersection.
  • said simple overall envelope will preferably be a prism obtained by displacement of a base surface along a path, said base surface being usually planar, for example, a circular disc. Said path will then generally be straight and perpendicular to said flat base.
  • At least one of said at least one computer type system will include a non-volatile memory said non-volatile memory then allowing the storage in digital form of the configuration of at least one of said entities , said non-volatile memory usually being a computer hard disk.
  • the invention also proposes a collision avoidance system between at least two physical entities, said at least two physical entities being made up of elements, said elements being defined by points, said points being able to be known in numerical form, said points being capable of moving simultaneously according to at least one degree of freedom, each of said simultaneous movements requiring a minimum variation of said corresponding degree of freedom before stopping, a computer type system being used to store and process said points in digital form, said at least one computer-type system for storing and processing said points in digital form, and which has the characteristic that it implements the method of the invention.
  • FIG. 1 represents an example of two gantry cranes on a site implementing the method of the invention
  • FIG. 2 represents the general flowchart of the program implementing the method of the invention in one of the computer systems of FIG. 1
  • FIG. 3 represents the flowchart of the "CalculQpa" sub-program appearing in step 204 of FIG. 2
  • Figure 4 shows the flowchart of the sub-program
  • FIG. 6 represents the flowchart of the "Additions Vz” function appearing in step 503 of FIG. 5;
  • FIG. 7 represents the flow diagram of the "Add Vz” function appearing in steps 603 and 605 of FIG. 6;
  • FIG. 8 represents the flowchart of the "AdditionsVxy” subroutine appearing in step 506 of FIG. 5;
  • FIG. 9 represents the flowchart of the "XY" sub-program appearing in step 801 of FIG. 8 and in step 1201 of FIG. 12;
  • Figure 10 shows the flowchart of the "Add Vxy" subroutine appearing in steps 803, 805 and 810 of Figure 8;
  • Figure 11 shows the flowchart of the sub-program
  • FIG. 15 represents the anti-collision vectors in the XY plane associated with a point of one of the elements of the vehicles of FIG. 1; figure 16 represents the table of the configurations of the machines of figure
  • Figure 18 shows the table of QPAs associated with the dynamic parameters of Figure 17;
  • FIG. 21 A and 21B show the table of deformable models of the elements of the machines of Figure 1.
  • the two devices used have a vertical plane of symmetry parallel to the plane YZ of the global coordinate system. Consequently, this plane was chosen as having the abscissa zero in the local coordinate system of the machine considered. Furthermore, the XZ plane is that of the proximal face of the elements 11, 21 of the machines 1, 2 and the XY plane is the common plane of the lower faces of the elements 11, 12, 21, 22.
  • the elements of the machines 1, 2 are constituted by parallelepipeds defined by two diagonally opposite points A M and B M for the machine of number "M", the points A and B being respectively the points of smaller and of larger coordinates in the reference frame of the "M" object concerned.
  • the dynamic parameters of positioning of the machine "M” are noted d M , g M and h M , and they are stored in the line “M” of the “Table Q of the dynamic parameters of the machines” represented in figure 17. They represent respectively, for the machine M, the distance from the plane of symmetry of the machine to the plane XY of the global coordinate system, the distance of the cable 15, 25 from the machine "M” to the first upright 11, 21 of the “M” machine, and the unwound length of the cable 15, 25. These parameters change over time as the machines 1, 2 are moved on the site.
  • the program implementing the method of the invention begins at step 201.
  • step 201 the computer 17 reads from its non-volatile memory the total number of machines "NbM” present on the site, the number “P” of the machine on which it is running, the safety distance “DS” minimum between the elements of the machines 1, 2 below which a risk of collision will be detected, of the time period " ⁇ t” between two successive readings of the dynamic parameters of the machines 1, 2, and the configuration parameters of the "NbM” gear.
  • variable P will have the value 1.
  • the configuration parameters of the "NbM” machines 1, 2 thus re-read are stored in the "Machine configuration table" represented in FIG. 16.
  • the eight columns of this table respectively contain the number of the machine, the number of l element in the machine, the abscissa, the ordinate and the dimension of the first point A of the diagonal defining the element, and the abscissa, the ordinate and the dimension of the second point B of the diagonal defining the element.
  • the computer 17 also reads back the number of elements "NbElem M” and the number of dynamic parameters "NbParam M " of each machine "M”.
  • the computer 17 also reads "NbParam P” values "c P " which will be described in relation to FIG. 3.
  • the computer 17 also reads "NbParam P " values " ⁇ P " representing increments associated with "NbParam P " parameters of the machine "M”, increments which will be described in relation to FIG. 12.
  • the computer 17 initializes to 0 the "NbParam P " dynamic parameters "q P " of the machine "P” that it manages. The computer 17 then goes to step 202.
  • step 202 the computer 17 saves the NbParam P current values of the dynamic parameters "q P " of the machine "P". These values, stored in the row of number "P" of the "Table Q of the dynamic parameters of the machines” represented in FIG. 17, are copied in the corresponding locations of the row of number "P” of the "Table Q 'of previous dynamic parameters of the machines "(not shown), which has the same structure as the table” Q ". The computer 17 then goes to step 203.
  • step 203 the computer 17 reads, using appropriate sensors (not shown), the "NbParam P " new values of the dynamic parameters "q P " of the own machine “P".
  • the computer 17 stores these values in the corresponding locations of the line of number "P" of the "Table Q of the dynamic parameters of machines "shown in Figure 17.
  • the parameters" q P-1 ",” q P. 2 ",” qp / stored in the row of number "P” in the table “Q” above are respectively the dynamic parameters d P , g P and h P described above.
  • the computer 17 then goes to step 204.
  • step 204 the computer 17 calls the subroutine "CalculQpa”, which will be described later in relation to FIG. 3, to calculate the Quantities to Browse before the Stop "QP A P " corresponding to the dynamic parameters "q P " of the clean machine "P". The computer 17 then goes to step 205.
  • step 205 the computer 17 calls the machine modeling subroutine "Machine Modeling", which will be described later in relation to FIG. 4, for the machine "P”, then it proceeds to the step 206.
  • step 206 the computer 17 initializes to 0 the numbers "NbVxy” and “NbVz” of anti-collision vectors respectively in the XY plane and along the Z axis, which will be described later in relation to FIG. 5. Similarly, the computer 17 initializes to 1 the loop index "M" for the opposite machines. The computer 17 then goes to step 207.
  • step 207 the computer 17 tests whether the index "M" is equal to "P". If the answer is positive, the computer 17 goes to step 211 which will be described later. If the answer is negative, that is to say, if the machine "M” is not the own machine "P” managed by the computer 17, the latter goes to step 208.
  • step 208 the computer 17 obtains from the opposite machine "M", via the network 3, the dynamic parameters "q M " of this machine, and it stores them in the corresponding locations of the line “M” from the "Table Q of dynamic parameters of machines".
  • the computer 17 likewise obtains from the opposite machine “M” the stopping distances "QPA M " corresponding to the q M above, and it stores these distances in the corresponding locations of the line “M” of the " QPA table of the quantities to be browsed before stopping the machines "shown in FIG. 18.
  • the computer 17 then goes to step 209.
  • step 209 the computer 17 calls the machine modeling subroutine "Machine Modeling", which will be described later in relation to FIG. 4, for the machine "M”, then it proceeds to the step 210.
  • step 210 the computer 17 calls the anti-collision treatment subroutine "Anti-collision Treatment”, which will be described later in relation to FIG. 5, for the vehicles "M” and "P”, then it proceeds to the 'step 211.
  • step 211 the computer 17 increments the loop index "M" for the opposite machines by one, then it proceeds to step 212.
  • the computer 17 tests whether the loop index "M" is greater than the total number of machines "NbM”. If the answer is negative, the computer 17 returns to step 207 previously described. If the answer is positive, that is to say if the "NbM" machines have been processed, the computer 17 goes to step 213.
  • step 213 the computer 17 calls the dynamic cut generation subroutine "GénérationCoupuresDynamiques", which will be described later in relation to FIG. 11. The computer 17 then goes to step 214.
  • step 214 the computer 17 waits until the time period " ⁇ t", read back at step 201, has elapsed since the start of the loop started at step 202.
  • the purpose of this wait is to leave sufficient network bandwidth for the other vehicles, and also, to ensure that a constant time interval " ⁇ t" elapses between two successive readings of the dynamic parameters of the vehicle "P". Once this predefined period of time " ⁇ t" has elapsed, the computer 17 returns to step 202 previously described.
  • This subroutine calculates the Quantities to Browse before the Stop "QP A P " for the "NbParam P " dynamic parameters of the clean machine "P". These "QPAp” values represent the amounts of movement, measured in the same units as the corresponding "q P " parameters, necessary to stop the movement of the machine "P” according to the degree of freedom considered.
  • the distance to be traveled before stopping for each of the "NbParam M " dynamic parameters "q M " of the machine “M” is modeled as being the product of a coefficient " c M / ', chosen conservatively, by the speed of variation of the only dynamic parameter "q M ,; ".
  • the sensors used provide only the current values of the dynamic parameters, and not the desired variation speeds.
  • the computer 17 implementing the method of the invention numerically estimates the speed of variation of each dynamic parameter as being the ratio between the difference of the last two measured values and the constant time period " ⁇ t" separating these two successive measurements.
  • the subroutine "CalculQpa” begins at step 301 of FIG. 3, where the computer 17 initializes the loop index "i” to the value 1.
  • the computer 17 then goes to step 302.
  • the computer 17 calculates the value "QPA P i " by the formula "c P ; * (q P r q'p ; ) / ⁇ t", in which "c P i " is a read constant in step 201 of FIG. 2, where "q P i " and “q ' P> i " represent respectively the last and the penultimate measured value of the dynamic parameter of number "i” of the machine “P ", and where" ⁇ t "is the constant period of time described above in relation to Figure 2.
  • the quantity represents a numerically approximated value of the average speed of variation of the parameter "q P i " of the machine "P” during the period " ⁇ t".
  • the computer 17 stores the value "QPA P i " thus calculated in the corresponding location of the table "Table QPA of the Quantities to Browse before Stopping the machines” shown in FIG. 18, then it proceeds to step 303.
  • step 303 the computer 17 increases the loop index "i" by one, then it proceeds to step 304.
  • step 304 the computer 17 tests whether the loop index "i" is greater than the number of dynamic parameters "NbParam P " of the machine "P". If the answer is negative, the computer 17 returns to step 302 previously described. If the answer is positive, that is, if the "NbParam P " values "QP A P " have been calculated for the "NbParam P " dynamic parameters "q p " of the machine "P", then the "CalculQpa” subroutine is then finished.
  • the "Machine Modeling" sub-program receives in parameter the number "M” of the machine to be modeled. This means that the value noted “M” in the "Machine Modeling” subroutine will have the value "P” of the calling program if this subroutine has been called since step 205 in FIG. 2, and will have the value "M “of the calling program if this subroutine has been called since step 209 of FIG. 2.
  • the function of the "ModelingEngine” subroutine is to define, for each of the elements "e” of the machine with number "M” passed as a parameter, a “deformable model” consisting of all the positions of the space that the element “e” can take, during simultaneous, independent and arbitrary variations of the "NbParam M " parameters "q M " in their corresponding variation intervals "q Mii " to "q M i + QPA M i ".
  • the deformable model associated with the element "e” of the machine “M” is a parallelepiped of diagonal (AL, BL), where the points AL and BL are the points of coordinates respectively minimal and maximum during the variation of the "NbParam M " parameters "q Mi " of the machine “M” in their respective variation intervals "q M i " to "q M, i + QPA M i ".
  • the coordinates of the extreme points A and B of all the elements of the machines 1, 2 depend only on one parameter at a time. Consequently, the minimum values of the coordinates of point A and the maximum values of the coordinates of point B can be obtained by varying only one parameter at a time.
  • the "Machine Modeling" subroutine begins at step 401.
  • step 401 the computer 17 initializes to 1 the loop index "e" for the "NbElem M " elements of the machine "M”, then it proceeds to step 402.
  • step 402 the computer 17 initializes the points AL M e and BL M e respectively at the points A M ⁇ and B M e of the element "e" of the machine "M” by evaluating the corresponding expressions appearing in the "Machine configuration table" presented in FIG. 16, for the current values of the "NbParam M " parameters "q M, i" of the machine M. The computer 17 then goes to step 403.
  • step 403 the computer 17 initializes to 1 the loop index "i" for the "NbParam M " parameters of the machine "M”, then it proceeds to step 404.
  • step 404 the computer 17 firstly increases the parameter "q Mi " by the quantity "QPA M / '. Then, it calculates each of the local coordinates of the point AL M e as the minimum of the current value of this coordinate of AL M e and of the corresponding value obtained for the parameter q M; increased by the quantity QP A M i5 using the corresponding expressions of the coordinates of the points A M e of the element "e” of the machine "M” appearing in the "Machine configuration table" presented in figure 16.
  • the computer 17 calculates each of the local coordinates of the point BL M e as the maximum of the current value of this coordinate of BL M e and the corresponding value obtained for the parameter "q M) i " increased by the quantity "QPA M i " using the corresponding expressions of the coordinates of the points B M e of the element "e” of the machine “M” appearing in the "Table of configuration of the machines” presented in figure 16.
  • the computer 17 restores the parameter "q Mii " to its initial value, that is to say that it decreases the parameter "q M i " by the quantity "QPA M ;”.
  • the computer 17 then goes to step 405.
  • step 405 the computer 17 increases the loop index "i" by one, then it proceeds to step 406.
  • step 406 the computer 17 tests whether the loop index "i" is greater than the number of dynamic parameters "NbParam M " of the machine "M". If the answer is negative, the computer 17 returns to step 404 previously described. If the answer is positive, that is to say if the "NbParam M " parameters "q M, i" have been processed, then the computer 17 goes to step 407.
  • step 407 the computer 17 increases the loop index "e" by one, then it proceeds to step 408.
  • step 408 the computer 17 tests whether the loop index "e" is greater than the number of elements "NbElem M " of the machine "M". If the answer is negative, the computer 17 returns to step 402 previously described. If the answer is positive, that is to say if the "NbElem M " elements of the machine "M” have been processed, then the computer 17 goes to step 410.
  • step 410 the computer 17 initializes to 1 the loop index "e" for the "NbElem M " elements of the machine "M”, then it proceeds to step 411.
  • step 411 the computer 17 calculates the coordinates of the extreme points AG M e and BG M e of the element "e" of the machine "M" in the global reference frame of the site from the coordinates of the points AL M e and BL M e in the local coordinate system of the machine "M".
  • the references R 1 and R 2 of the machines 1, 2 are obtained by translation of the global reference of the site, the coordinates of the extreme points AG M e and BG M e of the element "e" of the machine "M” in the global benchmark of the site is obtained simply by adding the coordinates of the origin R M of the benchmark of the machine "M” to the coordinates of the points AL M e and BL M e in the local reference of the machine "M".
  • the computer 17 then goes to step 412.
  • step 412 the computer 17 increases the loop index "e" by one, then it proceeds to step 413.
  • step 413 the computer 17 tests whether the loop index "e" is greater than the number of elements "NbElem M " of the machine "M”. If the answer is negative, the computer 17 returns to step 411 previously described. If the answer is positive, that is to say if the global coordinates of the "NbElem M " elements of the machine "M” have all been calculated, the "ModelingEngine” subroutine appearing in steps 205 and 209 of the Figure 2 is then finished.
  • step 411 The results calculated in step 411 are stored in the "NbElem M " lines corresponding to the "NbElem M " elements of the machine of number "M” from the "Table of the deformable models of the elements of the machines" represented in FIGS. 22A and 22B.
  • the "Anticollision Treatment” subroutine receives a parameter "M” indicating the number "M” of the opposite machine for which the anti-collision treatment must be carried out with the clean machine of number "P".
  • the number "P” is that described above in relation to FIG. 2.
  • the "Anticollision Treatment” subroutine begins at step 501.
  • step 501 the computer 17 initializes at 1 the loop variable "E P " describing the numbers of the elements of the own machine "P", then it proceeds to step 502.
  • step 502 the computer 17 initializes at 1 the loop variable "E M " describing the numbers of the elements of the opposite machine "M”, then it proceeds to step 503.
  • step 503 the computer 17 calls the "Additions Vz” function with the arguments "E r ,” M “and” E M ,,.
  • This function which will be described later in relation to FIG. 6, returns the boolean value "true” if it has added new collision avoidance vectors to the table "Vz” (not shown) of collision avoidance vectors along the Z axis.
  • the computer 17 goes to step 504 described below. If no anti-collision vector has been added along the Z axis, the computer 17 goes to step 511 which will be described below, which means that it skips any search for collision in the XY plane, because a such a collision cannot occur, because of a sufficient vertical distance between the machines "P" and "M”.
  • step 504 the computer 17 initializes at 1 the index "K P " of the points of the rectangular base of the element "E P " of the machine "P", then it goes to step 505
  • the index "Kp” takes the values 1, 2, 3 and 4 respectively for the coordinate points
  • step 505 the computer 17 initializes at 1 the index "K M " of the points of the rectangular base of the element "E M " of the machine "M", then it proceeds to step 506
  • the index "K M " takes the values 1, 2, 3 and 4 respectively for the coordinate points
  • step 506 the computer 17 calls the subroutine "Additions Vxy", which will be described later in relation to FIG. 8, with the arguments "E P ", "K P ", "M”, " E M "and” K M ". It then proceeds to step 507.
  • step 507 the computer 17 increases the loop index "K M " by one for the points of the rectangular base of the element "E M " of the machine "M”, then it passes at step 508.
  • step 508 the computer 17 tests whether the loop index "K M " is greater than 4. If the answer is negative, the computer returns to step 506 previously described. If the answer is positive, that is, if the four points of the rectangular base of the element "E M " of the machine "M” have been processed, the computer goes to step 509 .
  • step 509 the computer 17 increases the loop index "K P " by one for the points of the rectangular base of the element "E P " of the machine "P”, then it passes in step 510.
  • step 510 the computer 17 tests whether the loop index "K P " is greater than 4. If the answer is negative, the computer returns to step 505 previously described. If the answer is positive, that is, if the four points of the rectangular base of the element "E P " of the machine "P" have been processed, the computer goes to step 511 .
  • step 511 the computer 17 increases the loop index "E M " for the elements of the machine "M” by one, then it proceeds to step 512.
  • step 512 the computer 17 tests whether the loop index "E M " is greater than the number "NbElem M " of elements of the machine "M". If the answer is negative, the computer 17 returns to step 503 previously described. If the answer is positive, that is to say, if the "NbElem M " elements of the machine "M" have been processed, the computer goes to step 513.
  • the computer 17 increases the loop index "E P " for the elements of the machine P by one, then it proceeds to step 512.
  • step 512 the computer 17 tests whether the loop index "E P " is greater than the number NbElem P of elements of the machine "P". If the answer is negative, computer 17 returns to step 502 previously described. If the answer is positive, that is to say, if the "NbElem P " elements of the machine "P" have been processed, the "Anticollision Treatment" sub-program is then terminated.
  • the "AddsVz” function receives from the program calling the parameters "e", "M” and “f respectively indicating the number of the element to be processed in the machine” P ", the number” M “of the machine opposite to process, and the number “f 'of the element to be processed in the machine” M ". Its purpose is to add an anti-collision vector along the Z axis to the table “Vz” (not shown) if there is a risk of collision along the Z axis between the elements "e” and “P of the respective devices” P “and” M ".
  • This function returns a Boolean indicator having the value "true” if it has added at least one anti-collision vector to the table "Vz" of the anti-collision vectors according to Z, and "false” otherwise.
  • the "AddsVz” function begins at step 601.
  • step 601 the computer 17 initializes to the boolean value "false” the variable “cr” containing the boolean value which will be returned by the function "AddsVz", then it proceeds to step 602.
  • step 602 the computer 17 tests whether the lower dimension of the element "f of the machine” M "is less than the upper dimension of the element” e “of the clean machine” P "increased of the safety distance "DS" previously described in relation to FIG. 2. If the response is negative, then the computer 17 goes to step 604 described below. If the response is positive, then there is a risk collision between the upper part of the element "e” of the machine "P” and the lower part of the element "f of the machine” M ", and the computer 17 then goes to step 603 .
  • step 603 the computer 17 calls the subroutine "AddVz", which will be described later in relation to FIG. 7, with the arguments "e", “true” and “ z AG, M, r z BG, p , e "-
  • the argument” true “above indicates that the upper face of the element” e “of the machine” P "is that concerned by the risk of collision.
  • the computer 17 stores the boolean value "true” in the variable "cr” to indicate that a collision avoidance vector in Z has been added. It then proceeds to step 604.
  • step 604 the computer 17 tests whether the upper dimension of the element "f of the machine” M "is greater than the lower dimension of the element” e “of the clean machine” P "reduced of the safety distance "DS”. If the answer is negative, then the computer 17 returns the value "cr" to the calling program, and the subroutine "AddsVz” is then finished. If the answer is positive, then it there is a risk of collision between the lower part of the element "e” of the machine "P" and the upper part of the element "f” of the machine M, and the computer 17 then goes to step 605.
  • step 605 the computer 17 calls the "Add Vz” function with the arguments “e", “false” and “z BG M r z AG P e ".
  • the "false” argument above indicates that the underside of element "e” of the vehicle "P” is the one affected by the risk of collision.
  • the computer 17 stores the boolean value "true” in the variable "cr” to indicate that a collision avoidance vector in Z has been added. The computer 17 then returns the value "cr" to the calling program, and the subroutine "Additions Vz" is then terminated.
  • the "AddVxy” subroutine receives the parameters "e", "h” and "z” passed by the calling program. Its function is to add an anti-collision vector to the "Vz” table (not shown) with three columns of anti-collision vectors parallel to the Z axis.
  • the "AddVz" subroutine consists of the single step 701.
  • the computer 17 increases the number "NbVz” of anti-collision vectors along the Z axis by one, then stores in the three locations of the corresponding "NbVz” line of the "Vz” table the three parameters "e", "h” and "z” passed to it by the calling program.
  • the subroutine "Vxy Additions" receives from the program calling the parameters "e", “k”, “M”, “f and” 1 ", and its function is to determine the collision avoidance vectors of length less than” DS "associated at point "k” of the base in the XY plane of the element "e” of the apparatus "P", opposite the segment of the base of the element “f of the apparatus” M “ starting at point number "1” of this base.
  • These vectors are the vectors SM 0 , SH and SM 1 appearing in FIG.
  • the "Vxy Additions" subroutine begins at step 801.
  • step 801 the computer 17 finds the coordinates "x P " and "y P " of the point S of number "k” in the element "e” of the machine "P” using the sub - “XY” program which will be described later in relation to FIG. 9. Similarly, it finds the coordinates "x M0 " and “y M0 “ of the first point M 0 of number "1" of the segment of the plane base of the element "F of the machine "M” using the same subroutine "XY".
  • the computer 17 determines the number of the second point M 1 of the segment of the base of the element "f of the machine” M "using the formula” mod (l, 4) + l ", where" mod "represents the function modulo, or remainder of the division, of its first argument by the second.
  • the result of this formula is worth 1 if the variable" 1 "is worth 4 and” 1 + 1 "if not. Consequently, taking into account the point numbering convention described above in relation to step 505 of FIG. 5, the point number thus determined is indeed point M 1 following point M 0 on the closed contour of the base of the element "F of the machine” M ".
  • the computer 17 finds, using this number, the coordinates "x M i" and “y M1 " of the second point M 1 of the segment of the plane base of the element "F of the machine” M "using the same subroutine” XY ", then it proceeds to step 802.
  • step 802 the computer 17 tests whether the Euclidean distance in the XY plane between the point S and the point M 0 with respective coordinates "x P ", "y P “ and “x M0 “, "y M o "above determined is less than the safety distance” DS ". If the answer is negative, then the computer proceeds to step 804 described below. If the answer is positive, then there is a risk of collision between the point S and the segment M 0 M 1 , and the computer proceeds to step 803.
  • step 803 the computer 17 calls the subroutine "AddVxy”, which will be described later in relation to FIG. 10, with the arguments "e”, “k”, “x M0 - Xp” and " y M o-yp "j then the computer 17 goes to step 804.
  • step 804 the computer 17 tests whether the Euclidean distance in the XY plane between the point S of coordinates "x P " and “y P " and the point M 1 of coordinates "x M1 " and “y M1 " above determined is less than the safety distance "DS”. If the answer is negative, then the computer proceeds to step 806 described below. If the answer is positive, then there is a risk of collision between the point S and the segment M 0 M 1 , and the computer proceeds to step 805.
  • step 805 the computer 17 calls the subroutine "AddVxy” with the arguments "e”, “k”, “x M1 -x P " and "y M1 -y P ", then the computer 17 go to step 806.
  • step 806 the computer 17 calculates the parameter " ⁇ " defining the point H in the parametric equation of the line segment M 0 M 1 :
  • the vector SH will be perpendicular to the vector M 0 M 1 if and only if the dot product of these two vectors is zero.
  • a development elementary for those skilled in the art shows that the segment SH is perpendicular to the segment M 0 M 1 for the value of " ⁇ " appearing in step 806.
  • the computer 17 then goes to step 807.
  • step 807 the computer 17 tests whether the value of " ⁇ " determined in step 806 is between 0 and 1. If the answer is negative, then the point H is located outside the segment M 0 M 1 , which means that point S is closer to one of points M 0 or M 1 than to any other point in the segment M 0 M 1 and therefore there is no risk of collision between point S and a point inside the segment. The "AddsVxy" subroutine is then finished. If the answer is positive, then the computer 17 goes to step 808.
  • step 808 the computer 17 calculates the coordinates "h x " and "h y " obtained by replacing, in the parametric equation of the segment SH, the parameter " ⁇ ” by the value obtained in step 806. It then goes to step 809.
  • step 809 the computer 17 tests whether the length of the segment SH is less than the safety distance "DS". If the answer is negative, then there is no risk of collision, and the subroutine "AddsVxy" is finished. If the answer is positive, then the computer 17 goes to step 810.
  • step 810 the computer 17 calls the subroutine "AddVxy” with the arguments "e”, “k”, “Ji x ", and "h y ", then the subroutine "AddsVxy” is finished .
  • the subroutine "XY” receives the parameters "M”, "e”, k “,” x “and” y “from the calling program. Its function is to find the coordinates" x “and” y “of the point of number "k” in the planar base of the element of number “e” of the machine of number "M”.
  • the subroutine "XY” begins at step 901.
  • step 901 the computer 17 tests whether the value of the parameter "k", indicating the point number in the base of the element "e” of the machine "P", is worth 1 or 4. If the answer is negative, the computer goes to step 903 described below, otherwise it goes to step 902.
  • step 903 reached when the answer to the test in step 901 is negative, the computer 17 assigns the maximum value "x BG, M, e " to the variable "x", then it proceeds to step 904.
  • step 904 the computer 17 tests whether the value of the parameter "k", indicating the number of the point S in the base of the element "e" of the machine "P", is worth 1 or 2. If the answer is negative, the computer goes to step 906 described below, otherwise it goes to step 905.
  • the "XY" subroutine is then terminated.
  • step 906 reached when the response to the test in step 904 is negative, the computer 17 assigns the maximum value "y BG, M, e " to the variable "y".
  • the "XY" subroutine is then terminated.
  • the "AddVxy” subroutine receives the parameters "e", "k”, "x” and "y” passed by the calling program. Its function is to add an anti-collision vector to the "Vxy” table (not shown) with four columns of anti-collision vectors in the XY plane.
  • the "AddVxy" subroutine consists of the single step 1001.
  • the computer 17 increases by one the number "Nb Vxy” of anti-collision vectors in the XY plane, then it stores in the four locations of the corresponding "Nb Vxy" line of the "Vxy” table parameters "e", "k", "x” and "y” which were passed to it in parameters by the calling program.
  • This subroutine determines which degrees of freedom of the "P" craft, and in which direction, must be stopped to avoid increasing the collision avoidance vectors determined previously, that is to say to stop the movements before a collision occurs.
  • the "GenerationDynamicCuts" subroutine begins at step 1101.
  • step 1101 the computer 17 tests whether the numbers of anti-collision vectors "NbVxy" in the XZ plane and "NbVz" on the Z axis are both zero. If the answer is positive, that is to say, if there are no collision avoidance vectors and therefore no risk of collision, the "GenerationDynamicCuts" subroutine is terminated. If the answer is negative, then the computer 17 goes to step 1102.
  • step 1102 the computer 17 generates an alarm, visual or audible, for the operator of the own vehicle "P" which it manages, then it proceeds to step 1103.
  • step 1103 the computer 17 resets the dynamic cut-offs to 0 in the positive direction "C + " and in the negative direction "C “ “for the” NbParam P "degrees of freedom of the own machine” P " , then it goes to step 1104.
  • step 1104 the computer 17 initializes the loop index "n" of the collision avoidance vectors in the XY plane to the value 1, then it proceeds to step 1105.
  • step 1105 the computer 17 calls the subroutine for determining the dynamic breaks in the XY plane "Dynamic BreaksVxy", which will be described later in relation to FIG. 12, passing in argument the number "n” of the anti-collision vector "Vxy" to be treated.
  • the computer 17 then goes to step 1106.
  • step 1106 the computer 17 increments the loop index "n" by one, then it proceeds to step 1107.
  • step 1107 the computer 17 tests whether the loop index "n" is greater than the number "Nb Vxy” of the collision avoidance vectors "Vxy” in the XY plane. If the answer is negative, the computer 17 returns to step 1105 previously described, otherwise that is to say if the "Nb Vxy" anti-collision vectors "Vxy” in the XY plane have been processed, the computer 17 go to step 1108.
  • step 1108 the computer 17 initializes the loop index "n" of the collision avoidance vectors along the Z axis to the value 1, then it proceeds to step 1109.
  • step 1109 the computer 17 calls the subroutine "Dynamic BreaksVz" determining the dynamic breaks along the Z axis, which will be described later in relation to FIG. 13, passing to this subroutine an argument made up the number "n” of the collision avoidance vector "Vz" to be processed.
  • the computer 17 then goes to step 1110.
  • step 1110 the computer 17 increments the loop index "n" by one, then it proceeds to step 1111.
  • step 1111 the computer 17 tests whether the loop index "n" is greater than the number "NbVz" of anti-collision vectors "Vz” parallel to the axis Z. If the answer is negative, the computer 17 returns to step 1109 previously described, if not, that is to say if all the anti-collision vectors "Vz" parallel to the axis Z have been processed, the computer 17 goes to step 1112.
  • step 1112 the computer 17 calls the subroutine "EnvoiCoupuresDyamiques" which will be described later in relation to FIG. 14, then, then the subroutine "GubenrationCoupuresDynamiques" is finished.
  • This subroutine is to generate the dynamic breaks necessary for the vector "Vxy" of number "n” passed in parameter, for the "NbParam P " parameters "q P " of the own engine "P", and in the two directions of displacement of the degree of freedom of the associated "P" device for each of these parameters.
  • the "VxyDynamicCuts" subroutine begins at step 1201.
  • step 1201 the computer 17 initializes the temporary variable "e” to the value located in the first location of the line “n" of the table “Vxy", that is to say that the variable " e “receives the number of the element of the machine” P "to which the point of origin S of the anti-collision vector” n “belongs, as it was saved in step 1001 of FIG. 10.
  • the computer 17 initializes a temporary variable "k” to the value located in the second location of the line “n” of the table “Vxy”, that is to say that the variable “k” receives the number , in the element "e” of the machine "P”, from the point of origin S of the collision avoidance vector "n".
  • the computer 17 then calls the subroutine "XY”, described previously in relation to FIG. 9, with the arguments "P", "e”, "k”, “x” and “y”, which has as its effect of initializing the variables "x” and "y” to the values of the XY coordinates of point "k” of the base of the element "e” of the machine "P".
  • the computer 17 thus finds the coordinates of the point of origin S of the anti-collision vector "Vxy n ", for the current values of the parameters "q P " of the machine "P".
  • the computer 17 also initializes the loop index "i" to the value 1, then it proceeds to step 1202.
  • step 1202 the computer 17 adds to the value of the parameter "q P i " the positive quantity " ⁇ P i " which has been read back in step 201 of FIG. 2.
  • the value " ⁇ P i " associated with the parameter "q P i " is a predetermined value, chosen so as to be sufficiently small so that the displacements of the elements of the machine "P” associated with this increment of the parameter "q P i " remain small, while guaranteeing sufficient numerical precision for subsequent calculations.
  • the computer 17 finds the coordinates V "and" y "'of the point of origin S' of the anti-collision vector" Vxy n "for the value" q P, i + ⁇ P, i "of the parameter” i "of l 'machine' P ', by calling the subroutine' XY 'with the parameters'P','e','k','x''and' y '.
  • the computer restores the parameter' q P i "to its current value by subtracting from” q P i "the quantity” ⁇ P i ", then it calculates the scalar product" PS "of the vector SS 'and of the anti-collision vector” Vxy n ".
  • the computer 17 then passes at step 1203.
  • step 1203 the computer 17 tests whether the dot product "PS" determined in step 1202 is positive. If the answer is negative, then the computer 17 goes to step 1205 described below. If the answer is positive, then a positive variation of the parameter "q P i " will tend to reduce the anti-collision vector "Vxy n ", that is to say to increase the risk of a collision. In this case, the computer 17 goes to step 1204, where the cutoff indicator "C + ;" is set to the value "true” to indicate that the movement according to the degree of freedom "i" of the machine “P” must be prohibited in the positive direction. The computer 17 then goes to step 1205.
  • step 1205 the computer 17 tests whether the dot product "PS" determined in step 1202 is negative. If the answer is negative, then the computer 17 goes to step 1207 described below. If the answer is positive, then a negative variation of the parameter "q P; i " will tend to reduce the anti-collision vector "Vxy n ", that is to say to increase the risk of a collision. In this case, the computer 17 goes to step 1206, where the cut-off indicator "C “ ; “is set to” true “to indicate that the movement” i “of the machine” P "in the negative direction should be cut off. The computer 17 then proceeds to step 1207.
  • step 1207 the computer 17 increases the loop index "i" by one, then proceeds to step 1208.
  • step 1208 the computer 17 tests whether the loop index "i" is greater than the number "NbParam P " of parameters of the machine "P". If the answer is negative, then the computer 17 returns to step 1202 described above. If the answer is positive, that is to say, if the "NbParam P " parameters "q P " of the clean machine "P" have been processed, the "DynamicDiscountVxy" subroutine is terminated.
  • the "CoupuresDynamiquesVz” subroutine begins at step 1301.
  • step 1301 the computer 17 initializes the temporary variable "e" to the value located in the first location of the line “n" of the table “Vz", that is to say that the variable " e “receives the number of the element of the machine” P "to which the point of origin S of the anti-collision vector” n “belongs, as it was saved in step 701 of FIG. 7.
  • L ' computer 17 also initializes the loop index "i" to the value 1, then it proceeds to step 1302.
  • step 1302 the computer 17 tests the value of the Boolean variable stored in the second column of the line "n" of the anti-collision vector table "Vz".
  • This value stored in step 701 of FIG. 7, has the boolean value "true” if the risk of collision concerns the upper face of the element "e", and the boolean value "false” if the risk of collision concerns the underside of the element "e”. If the value "Vz 112 " has the boolean value "true”, then the computer 17 goes to step 1304 which will be described below, otherwise the computer 17 goes to step 1303.
  • step 1303 reached if the variable "Vz n 2 " has the boolean value "false", that is to say if the risk of collision indicated by "Vz n " concerns the underside of the element " e “of the machine” P ", the computer 17 initializes the temporary variable” z ", representing the dimension of the point S origin of the anti-collision vector” Vz n ", to the value of the dimension” z AG P e "of the underside of the element "e” of the machine "P". The computer 17 then adds to the value of the parameter "q Pji " the positive quantity " ⁇ P> i " which was read again in step 201 of FIG. 2.
  • the computer 17 then initializes the temporary variable" z "', representing the dimension of the point of origin S' of the anti-collision vector" Vz 11 "for the value” q Pii + ⁇ P i "of the parameter” i “of the machine” P ", to the value of the dimension” z AG P e "on the underside of the element” e “ of the machine “P” obtained for the value "q Pii + ⁇ P i " of the parameter "i” of the machine "P".
  • the computer restores the parameter "q P i " to its initial value by subtracting from “q P i " the quantity " ⁇ P i ".
  • the computer 17 then goes to step 1305.
  • step 1304 reached if the variable "Vz 112 " has the boolean value "true", that is to say if the risk of collision indicated by "Vz n " concerns the upper face of the element "e “of the machine” P ", the computer 17 initializes the temporary variable” z ", representing the dimension of the point S origin of the anti-collision vector "Vz n ", to the value of the dimension "z BG P e " of the upper face of the element "e” of the machine "P". The computer 17 then adds to the value of the parameter "q P i " the quantity " ⁇ P i ".
  • the computer 17 then initializes the temporary variable "z"', representing the dimension of the point of origin S' of the anti-collision vector "Vz n " for the value "q P) i + ⁇ P " of the parameter "i" of l 'gear' P ', at the value of the dimension' z AG P e 'on the underside of the element' e 'of the gear' P 'obtained for the value' q Pii + ⁇ P> i 'of parameter "i” of the machine "P".
  • the computer restores the parameter "q P i " to its initial value by subtracting from "q P i " the quantity " ⁇ P i ".
  • the computer 17 then goes to step 1305.
  • step 1305 the computer 17 tests whether the product "(z'-z) * Vz n-3 ", where "z” and “z”'are the values determined in step 1302 or 1303 and " Vz n-3 "is the length of the anti-collision vector” Vz n "as determined in step 701 of FIG. 7, is positive. If the answer is negative, then the computer 17 goes to step 1307 which will be described below. If the answer is positive, then the vector SS 'has the same meaning as the anti-collision vector "Vz n ", that is to say that a positive variation of the parameter "q P; " will tend to reduce the anti-collision vector "Vz n ", therefore increasing the risk of a collision.
  • step 1306 the cutoff indicator "C + i" is positioned at the value "true” to indicate that the movement "i" of the machine "P” in the positive direction of the parameter "q P i " must be prohibited.
  • the computer 17 then goes to step 1307.
  • step 1307 the computer 17 tests whether the product "(z'-z) * Vz n 3 " is negative. If the answer is negative, then the computer 17 goes to step 1309 which will be described below. If the answer is positive, then the vector SS 'has a direction opposite to that of the anti-collision vector "Vz n ", that is to say that a negative variation of the parameter "q P i" will tend to reduce the vector "Vz n " collision avoidance, therefore increasing the risk of a collision.
  • step 1308 the cutoff indicator "CV 'is positioned at the value" true “to indicate that the movement" i "of the machine” P "in the negative direction the parameter "q P i " must be prohibited
  • step 1309 the cutoff indicator "CV 'is positioned at the value" true "to indicate that the movement" i "of the machine” P "in the negative direction the parameter "q P i " must be prohibited
  • step 1309 the computer 17 increases the loop index "i" by one, then it proceeds to step 1310.
  • step 1310 the computer 17 tests whether the loop index "i" is greater than the number "NbParam P " of parameters of the machine "P". If the answer is negative, then the computer 17 returns to step 1302 described above. If the answer is positive, that is to say, if the "NbParam P " parameters "q P " of the clean machine "P" have been processed, the subroutine "CoupuresDynamiquesVz” is terminated. Referring more particularly to FIG. 14, there will now be described the subroutine "EnvoiCoupuresDynamiques" appearing in step 1112 of FIG. 11.
  • the "SendDynamicCuts" subroutine begins at step 1401.
  • step 1401 the computer 17 initializes the loop index "i" to the value 1, then it proceeds to step 1402.
  • step 1402 the computer 17 tests whether the variable "C + / 'is at the boolean value" true ". If the answer is negative, then the computer 17 goes to step 1404 which will be described below. If the answer is positive, the computer proceeds to step 1403.
  • step 1403 reached if the variable "C + ,” is at the value "true”, that is to say if the computer 17 has determined by means of the method described above that the movement of the degree of freedom "i" of the machine “P” should be prohibited in the direction of positive variation of the parameter "q PjI ", the computer 17 sends to the actuator "i” concerned of the machine “P” an order d 'movement stopped in the positive direction. The computer 17 then goes to step 1404.
  • step 1404 the computer 17 tests whether the variable "C " , "is at the boolean value” true ". If the answer is negative, then the computer 17 goes to step 1406 which will be described below If the answer is positive, the computer proceeds to step 1405.
  • step 1405 reached if the variable "C “ , "is at the value” true ", that is to say if the computer 17 has determined by means of the method described above that the movement of the degree of freedom “i” of the machine “P” should be prohibited in the direction of negative variation of the parameter "q P) 1 ", the computer 17 sends to the actuator "i” concerned of the machine “P” a order to stop movement in the negative direction The computer 17 then goes to step 1406.
  • step 1406 the computer 17 increases the loop index "i" by one, then it proceeds to step 1407.
  • step 1407 the computer 17 tests whether the loop index "i" is greater than the number "NbParam P " of parameters of the own engine P. If the answer is negative, the computer 17 returns to l step 1402 previously described. If the answer is positive, that is to say if all the dynamic cuts have been sent to the corresponding actuators, then the "Send Dynamic Breaks" subroutine is terminated.
  • the example has been deliberately restricted to a simple case consisting of two devices.
  • the data structures of the example described have been simplified, the type of machines treated has been restricted to that of gantry cranes modeled as being made up of five parallelepipedic elements, changes of reference frame have been limited to translations, and the number of dynamic parameters has been limited to three per machine.
  • the search for collision risk was limited to pairs of elements, each of which belongs to separate machines.

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Control Of Position Or Direction (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
  • Jib Cranes (AREA)
  • Testing Of Devices, Machine Parts, Or Other Structures Thereof (AREA)

Abstract

Procédé d'évitement de collision entre au moins deux entités physiques (1, 2) qui sont constituées d'éléments définis par des points pouvant être connus sous forme numérique, ces points étant susceptibles de se déplacer simultanément suivant au moins un degré de liberté, chacun desdits déplacements simultanés requérant une variation minimale dudit degré de liberté correspondant avant l'arrêt, un système de type informatique (17) étant utilisé pour stocker et traiter les points sous forme numérique, ledit système de type informatique (17) permettant de stocker et de traiter les points sous forme numérique, caractérisé par le fait qu'un modèle numérique déformable est défini à l'intérieur dudit système de type informatique (17) pour chacun des éléments (11, 12, 13, 14, 15, 16, 21, 22, 23, 24, 25, 26) des entités physiques (1, 2), ledit modèle déformable contenant l'ensemble des positions que les points de l'élément associé sont susceptibles de prendre lors d'une combinaison quelconque de déplacements simultanés suivant les degrés de liberté lors des variations minimales avant l'arrêt, le système de type informatique (17) calculant, pour au moins une entité (1, 2), une distance entre chacun des modèles déformables des éléments (11, 12, 13, 14, 15, 16) de l'entité (1, 2) et chacun des modèles déformables des éléments de la même entité (1, 2) ou d'une autre entité (1, 2), ledit système de type informatique (17) détectant un risque de collision lorsqu'au moins une des distances est inférieure à une distance de sécurité prédéfinie.

Description

PROCEDE ET SYSTEME DΕVITEMENT DE COLLISION POUR ENGINS
MOBILES
La présente invention concerne de façon générale les dispositifs d'évitement de collision, et plus précisément un procédé et un système d'évitement de collision permettant d'éviter les collisions entre au moins deux engins mobiles.
Les engins de chantier tels que les grues ou les engins de levage sont bien connus dans la technique. Dans un chantier tel qu'un chantier de bâtiment, ces engins sont mis en oeuvre pour permettre le transport, d'un point à un autre du chantier, de matières premières telles que du béton ou d'éléments de construction. Dans un site tel qu'un quai de port, des grues de chargement sont utilisées pour charger et décharger du fret sur et depuis des navires, et d'une manière générale, des engins mobiles sont utilisés pour déplacer des charges sur des sites industriels.
Tous ces types d'engins comportent habituellement plusieurs degrés de liberté qui sont combinés entre eux pour permettre l'accès à telle ou telle partie du site. Habituellement, un certain nombre d'engins est nécessaire pour permettre l'accès à l'intégralité du site. Toutefois, pour permettre le transport sur tout le chantier, les zones accessibles par les différents engins doivent présenter des parties communes. Cela présente l'inconvénient que dans ces parties communes, les charges transportées par les engins et/ou certains éléments des engins peuvent entrer en collision les uns avec les autres.
En conséquence, des dispositifs de sécurité sont utilisés pour essayer d'éviter dans la mesure du possible de telles collisions.
Toutefois, les dispositifs de la technique antérieure se bornent à l'heure actuelle à effectuer des détections de proximité à l'aide de capteurs tels que des dispositifs de détection de proximité par ultrasons ou autres, ou en échangeant des informations permettant de détecter un risque de collision sur la base des positions statiques des engins ou de leur charge.
Ces dispositifs présentent divers inconvénients parmi lesquels le coût des capteurs de proximité, qui doivent équiper tous les éléments en mouvement. De même, ces divers capteurs doivent être reliés par des câbles à une centrale d'acquisition, ce qui est coûteux en main d'œuvre. En outre, la fiabilité d'ensemble décroît à mesure que le nombre de câbles et de connecteurs augmente.
Par ailleurs, le fait de détecter le risque de collision sur la seule base des positions statiques présente divers inconvénients. Par exemple, si deux engins sont en train de s'écarter l'un de l'autre après s'être trop rapprochés, la plupart des dispositifs actuels persisteront à générer une alarme, bien qu'en fait, les dispositifs soient en train de s'écarter. Cela a pour conséquence de faire fonctionner lesdits engins dans un mode de fonctionnement dégradé dit "de sécurité", ce qui ralentit leur fonctionnement. En outre, cela aura aussi pour conséquence qu'une alarme sera sans objet sensiblement pendant une moitié de sa durée, avec les nuisances, par exemple sonores, que cela entraîne.
Egalement, la majorité des dispositifs fonctionnant sur la base de positions statiques auront tendance à générer inutilement une alarme sur la base de marges de sécurité statiques ne prenant pas en compte les spécificités dynamiques des divers éléments susceptibles d'entrer en collision.
La répétition d'alarmes intempestives présente l'inconvénient d'une accoutumance rapide des opérateurs à ces alarmes, avec le risque qu'une alarme réelle, considérée à tort comme intempestive par un opérateur, soit ignorée par ce dernier, avec les conséquences que l'on peut imaginer.
Par ailleurs, les alarmes intempestives présentent l'inconvénient de distraire inutilement l'attention des conducteurs des engins, avec le risque qu'un autre problème, bien réel, reste inaperçu, du fait que l'attention du ou des conducteurs concernés est focalisée sur un problème inexistant.
En conséquence, il existe un besoin pour un procédé et un système d'évitement de collision qui permettent d'évaluer plus finement le risque réel d'une collision, en prenant en compte les sens de déplacement et les distances d'arrêt correspondantes des différents éléments des engins de levage, avant de déclencher une alarme de risque de collision.
Plus précisément, la présente invention a pour objet un procédé d'évitement de collision entre au moins deux entités physiques, lesdites au moins deux entités physiques étant constituées d'éléments, lesdits éléments étant définis par des points, lesdits points pouvant être connus sous forme numérique, lesdits points étant susceptibles de se déplacer simultanément suivant au moins un degré de liberté, chacun desdits déplacements simultanés requérant une variation minimale dudit degré de liberté correspondant avant l'arrêt, un système de type informatique étant utilisé pour stocker et traiter lesdits points sous forme numérique, ledit au moins un système de type informatique permettant de stocker et de traiter lesdits points sous forme numérique, et qui a pour caractéristique le fait qu'un modèle numérique déformable est défini à l'intérieur dudit système de type informatique pour chacun desdits éléments desdites entités physiques, ledit modèle déformable contenant l'ensemble des positions que les points dudit élément associé sont susceptibles de prendre lors d'une combinaison quelconque de déplacements simultanés suivant lesdits au moins un degrés de liberté lors desdites variations minimales avant l'arrêt, ledit système de type informatique calculant, pour au moins une entité, une distance entre chacun desdits modèles déformables des éléments de ladite au moins une entité et chacun desdits modèles déformables des éléments de la même entité ou d'une autre entité, ledit système de type informatique détectant un risque de collision lorsqu'au moins une desdites distances est inférieure à une distance de sécurité prédéfinie.
Dans le procédé de l'invention, lesdites entités physiques peuvent être, par exemple, des engins susceptibles d'être utilisés dans un atelier, sur un chantier de construction, de travaux publics ou de manutention, ou une zone portuaire.
De préférence, chacune desdites entités physiques comportera un système de type informatique, ledit au moins un système de type informatique comportera habituellement au moins un dispositif d'affichage permettant d'afficher lesdits modèles déformables pour un opérateur.
En outre, une alarme sera en général générée par ledit au moins un système de type informatique lors de ladite détection dudit risque de collision, ladite alarme pouvant être, par exemple, sonore ou visuelle. De préférence, ladite alarme sera destinée à au moins un des opérateurs desdits engins.
Dans le procédé de l'invention, lesdites variations minimales avant l'arrêt peuvent être déterminées ou mesurées par ledit au moins un système informatique, et dans ce cas, elles peuvent être affectées à une valeur prédéfinie d'une impossibilité de déterminer ou de mesurer lesdites variations minimales avant l'arrêt.
Le procédé de l'invention permet l'utilisation de modèles déformables bidimensionnels, ou en variante, tridimensionnels. Dans ce dernier cas, lesdits modèles déformables peuvent être approximés par un volume prismatique englobant obtenu comme l'ensemble des points parcourus par une base constituée d'un élément de surface lors d'un déplacement non compris dans ladite surface. Ladite base peut alors être plane et en particulier, son contour peut être défini par un ensemble de segments de droite et d'arcs de cercle connectés. Par ailleurs, lequel ledit déplacement peut être rectiligne, et en particulier, il peut être perpendiculaire au plan de ladite base.
De préférence, dans le procédé de l'invention, au moins deux systèmes de type informatique seront utilisés pour traiter lesdits points sous forme numérique, et plus particulièrement, un système de type informatique sera associé à chacune desdites entités physiques. Lesdits au moins deux systèmes de type informatique pourront alors échanger des informations sous forme numérique, de préférence un moyen de communication de type informatique. En général, ledit moyen de communication de type informatique sera un réseau de type informatique.
Dans le procédé de l'invention, ledit au moins un système de type informatique pourra en outre exercer un contrôle sur la variation d'au moins un degré de liberté d'au moins une desdites au moins deux entités physiques. Par exemple, ledit contrôle pourra consister en une coupure de la variation dudit au moins un degré de liberté, ou en variante, ledit contrôle pourra consister en une réduction de la vitesse de variation dudit au moins un degré de liberté. Dans ce cas, dans lequel ladite réduction de vitesse pourra être inversement proportionnelle à l'une desdites distances entre lesdites entités physiques.
Dans le procédé de l'invention, une enveloppe globale simple peut également être définie dans ledit système de type informatique pour chacune desdites au moins deux entités physiques, deux desdites au moins deux entités physiques étant déterminées comme ne pouvant entrer en collision si leur enveloppes globales simples présentent une intersection vide.
Dans ce cas, ladite enveloppe globale simple sera de préférence un prisme obtenu par déplacement d'une surface de base le long d'un trajet, ladite surface de base étant habituellement plane, par exemple, un disque circulaire. Ledit trajet sera alors en général rectiligne et perpendiculaire à ladite base plane.
De préférence, dans le procédé de l'invention, l'un au moins desdits au moins un système de type informatique comportera une mémoire non volatile ladite mémoire non volatile permettant alors le stockage sous forme numérique de la configuration d'au moins une desdites entités, ladite mémoire non volatile étant habituellement un disque dur d'ordinateur.
L'invention propose également un système d'évitement de collision entre au moins deux entités physiques, lesdites au moins deux entités physiques étant constitués d'éléments, lesdits éléments étant définis par des points, lesdits points pouvant être connus sous forme numérique, lesdits points étant susceptibles de se déplacer simultanément suivant au moins un degré de liberté, chacun desdits déplacements simultanés requérant une variation minimale dudit degré de liberté correspondant avant l'arrêt, un système de type informatique étant utilisé pour stocker et traiter lesdits points sous forme numérique, ledit au moins un système de type informatique permettant de stocker et de traiter lesdits points sous forme numérique, et qui a pour caractéristique par le fait qu'il met en œuvre le procédé de l'invention.
On va maintenant décrire, à titre d'exemple seulement, un mode de réalisation préféré de l'invention en se référant aux dessins annexés, dans lesquels : la figure 1 représente un exemple de deux grues portiques sur un chantier mettant en oeuvre le procédé de l'invention ; la figure 2 représente l'organigramme général du programme mettant en oeuvre le procédé de l'invention dans l'un des systèmes informatiques de la figure 1 ; la figure 3 représente l'organigramme du sous-programme "CalculQpa" apparaissant à l'étape 204 de la figure 2 ; la figure 4 représente l'organigramme du sous-programme
"ModélisationEngin" apparaissant aux étapes 205 et 209 de la figure 2 ; la figure 5 représente l'organigramme du sous-programme
"TraitementAnticollision" apparaissant à l'étape 210 de la figure 2 ; la figure 6 représente l'organigramme de la fonction "Ajouts Vz" apparaissant à l'étape 503 de la figure 5 ; la figure 7 représente l'organigramme de la fonction "Ajout Vz" apparaissant aux étapes 603 et 605 de la figure 6 ; la figure 8 représente l'organigramme du sous-programme "AjoutsVxy" apparaissant à l'étape 506 de la figure 5 ; la figure 9 représente l'organigramme du sous-programme "XY" apparaissant à l'étape 801 de la figure 8 et à l'étape 1201 de la figure 12 ; la figure 10 représente l'organigramme du sous-programme " Ajout Vxy" apparaissant aux étapes 803, 805 et 810 de la figure 8 ; la figure 11 représente l'organigramme du sous-programme
"GénérationCoupuresDynamiques" apparaissant à l'étape 213 de la figure
2 ; la figure 12 représente l'organigramme du sous-programme
"CoupuresDynamiquesVxy" apparaissant à l'étape 1105 de la figure 11 ; la figure 13 représente l'organigramme du sous-programme
"CoupuresDynamiquesVz" apparaissant à l'étape 1109 de la figure 11 ; la figure 14 représente l'organigramme du sous-programme
"EnvoiCoupuresDynamiques" apparaissant à l'étape 1112 de la figure 11
5 la figure 15 représente les vecteurs anticollision dans le plan XY associés à un point d'un des éléments des engins de la figure 1 ; la figure 16 représente la table des configurations des engins de la figure
1 ; - la figure 17 représente la table Q des paramètres dynamiques des engins de la figure 1 ;
- la figure 18 représente la table des QPA associées aux paramètres dynamiques de la figure 17 ;
- la figure 19 représente la table Q" des paramètres dynamiques avec QPA des engins de la figure 1 ;
- la figure 20 représente la table R des changements de repère pour les engins de la figure 1 ;
- les figures 21 A et 21B représentent la table des modèles déformables des éléments des engins de la figure 1.
Dans l'exemple présenté, les deux engins utilisés présentent un plan de symétrie vertical parallèle au plan YZ du repère global. En conséquence, ce plan a été choisi comme ayant l'abscisse nulle dans le repère local de l'engin considéré. Par ailleurs, le plan XZ est celui la face proximale des éléments 11, 21 des engins 1, 2 et le plan XY est le plan commun des faces inférieures des éléments 11, 12, 21, 22.
Par ailleurs, les éléments des engins 1, 2 sont constitués par des parallélépipèdes définis par deux points diagonalement opposés AM et BM pour l'engin de numéro "M", les points A et B étant respectivement les points de plus petites et de plus grandes coordonnées dans le repère de l'engin "M" concerné.
Les dimensions de ces éléments parallélépipédiques suivant les axes x, y et z sont respectivement notées, lorsqu'elles sont constantes, LM e, FM e, HM e, où "M" représente le numéro de l'engin concerné, et "e" le numéro de l'élément considéré de l'engin "M".
Les paramètres dynamiques de positionnement de l'engin "M" sont notés dM, gM et hM, et ils sont stockés dans la ligne "M" de la "Table Q des paramètres dynamiques des engins" représentée à la figure 17. Ils représentent respectivement, pour l'engin M, la distance du plan de symétrie de l'engin au plan XY du repère global, la distance du câble 15, 25 de l'engin "M" au premier montant 11, 21 de l'engin "M", et la longueur déroulée du câble 15, 25. Ces paramètres évoluent dans le temps à mesure que les engins 1, 2 sont déplacés sur le chantier.
La présence d'un paramètre dM, gM ou hM dans une expression de la table de la figure 16 indique que la coordonnée correspondante variera en fonction du paramètre indiqué lors des déplacements de l'engin "M" concerné.
En se référant plus particulièrement à la figure 2, on va décrire l'organigramme général du programme mettant en œuvre le procédé de l'invention dans le système informatique 17 associé à la grue 1. Le programme mettant en œuvre le procédé de l'invention commence à l'étape 201.
A l'étape 201, l'ordinateur 17 relit depuis sa mémoire non volatile le nombre total d'engins "NbM" présents sur le chantier, le numéro "P" de l'engin sur lequel il s'exécute, la distance de sécurité "DS" minimum entre les éléments des engins 1, 2 en dessous de laquelle un risque de collision sera détecté, de la période de temps "Δt" entre deux lectures successives des paramètres dynamiques des engins 1, 2, et les paramètres de configuration des "NbM" engins.
Dans le cadre de l'exemple présenté où l'ordinateur mettant en œuvre le procédé de l'invention est l'ordinateur 17 associé à l'engin 1, la variable P aura la valeur 1.
Les paramètres de configuration des "NbM" engins 1, 2 ainsi relus sont stockés dans la "Table de configuration des engins" représentée à la figure 16. Les huit colonnes de cette table contiennent respectivement le numéro de l'engin, le numéro de l'élément dans l'engin, l'abscisse, l'ordonnée et la cote du premier point A de la diagonale définissant l'élément, et l'abscisse, l'ordonnée et la cote du second point B de la diagonale définissant l'élément.
L'ordinateur 17 relit également le nombre d'éléments "NbElemM" et le nombre de paramètres dynamiques "NbParamM" de chaque engin "M".
L'ordinateur 17 relit aussi "NbParamP" valeurs "cP" qui seront décrites en relation avec la figure 3. L'ordinateur 17 relit de même "NbParamP" valeurs "εP" représentant des incréments associés aux "NbParamP" paramètres de l'engin "M", incréments qui seront décrits en relation avec la figure 12.
Ensuite, l'ordinateur 17 initialise à 0 les "NbParamP" paramètres dynamiques "qP" de l'engin "P" qu'il gère. L'ordinateur 17 passe alors à l'étape 202.
A l'étape 202, l'ordinateur 17 sauvegarde les NbParamP valeurs courantes des paramètres dynamiques "qP" de la machine "P". Ces valeurs, stockées dans la ligne de numéro "P" de la "Table Q des paramètres dynamiques des engins" représentée à la figure 17, sont recopiées dans les emplacements correspondants de la ligne de numéro "P" de la "Table Q' des paramètres dynamiques précédents des engins" (non représentée), qui possède la même structure que la table "Q". L'ordinateur 17 passe alors à l'étape 203.
À l'étape 203, l'ordinateur 17 lit, à l'aide de capteurs appropriés (non représentés), les "NbParamP" nouvelles valeurs des paramètres dynamiques "qP" de l'engin propre "P". L'ordinateur 17 stocke ces valeurs dans les emplacements correspondants de la ligne de numéro "P" de la "Table Q des paramètres dynamiques des engins" représentée à la figure 17. Avec l'exemple de chantier représenté sur la figure 1, les paramètres "qP-1", "qP.2", "qp/ stockés dans la ligne de numéro "P" de la table "Q" ci-dessus sont respectivement les paramètres dynamiques dP, gP et hP décrits plus haut. L'ordinateur 17 passe alors à l'étape 204.
À l'étape 204, l'ordinateur 17 appelle le sous-programme "CalculQpa", qui sera décrit plus loin en relation avec la figure 3, pour calculer les Quantités à Parcourir avant l'Arrêt "QP AP" correspondant aux paramètres dynamiques "qP" de l'engin propre "P". L'ordinateur 17 passe alors à l'étape 205.
A l'étape 205, l'ordinateur 17 appelle le sous-programme de modélisation d'engin "ModélisationEngin", qui sera décrit plus loin en relation avec la figure 4, pour l'engin "P", puis il passe à l'étape 206.
À l'étape 206, l'ordinateur 17 initialise à 0 les nombres "NbVxy" et "NbVz" de vecteurs anticollision respectivement dans le plan XY et suivant l'axe des Z, qui seront décrits plus loin en relation avec la figure 5. De même, l'ordinateur 17 initialise à 1 l'indice de boucle "M" pour les engins opposés. L'ordinateur 17 passe alors à l'étape 207.
À l'étape 207, l'ordinateur 17 teste si l'indice "M" est égal à "P". Si la réponse est positive, l'ordinateur 17 passe à l'étape 211 qui sera décrite plus loin. Si la réponse est négative, c'est-à-dire, si l'engin "M" n'est pas l'engin propre "P" géré par l'ordinateur 17, celui-ci passe à l'étape 208.
À l'étape 208, l'ordinateur 17 obtient de l'engin opposé "M", via le réseau 3, les paramètres dynamiques "qM" de cet engin, et il les stocke dans les emplacements correspondants de la ligne "M" de la "Table Q des paramètres dynamiques des engins". L'ordinateur 17 obtient de même de l'engin opposé "M" les distances d'arrêt "QPAM" correspondant aux qM ci-dessus, et il stocke ces distances dans les emplacements correspondants de la ligne "M" de la "Table QPA des Quantités à Parcourir avant Arrêt des engins" représentée à la figure 18. L'ordinateur 17 passe alors à l'étape 209.
A l'étape 209, l'ordinateur 17 appelle le sous-programme de modélisation d'engin "ModélisationEngin", qui sera décrit plus loin en relation avec la figure 4, pour l'engin "M", puis il passe à l'étape 210.
A l'étape 210, l'ordinateur 17 appelle le sous-programme de traitement anticollision "TraitementAnticollision", qui sera décrit plus loin en relation avec la figure 5, pour les engins "M" et "P", puis il passe à l'étape 211.
A l'étape 211, l'ordinateur 17 incrémente d'une unité l'indice de boucle "M" pour les engins opposés, puis il passe à l'étape 212. A l'étape 212, l'ordinateur 17 teste si l'indice de boucle "M" est supérieur au nombre total d'engins "NbM". Si la réponse est négative, l'ordinateur 17 retourne à l'étape 207 précédemment, décrite. Si la réponse est positive, c'est à dire, si les "NbM" engins ont été traités, l'ordinateur 17 passe à l'étape 213.
A l'étape 213, l'ordinateur 17 appelle le sous-programme de génération des coupures dynamiques "GénérationCoupuresDynamiques", qui sera décrit plus loin en relation avec la figure 11. L'ordinateur 17 passe alors à l'étape 214.
A l'étape 214, l'ordinateur 17 attend que la période de temps "Δt", relue à l'étape 201, se soit écoulée depuis le début de la boucle commencée à l'étape 202. Le but de cette attente est de laisser une bande passante réseau suffisante pour les autres engins, et également, de faire en sorte qu'un intervalle de temps "Δt" constant s'écoule entre deux lectures successives des paramètres dynamiques de l'engin "P". Une fois cette période de temps "Δt" prédéfinie écoulée, l'ordinateur 17 retourne à l'étape 202 précédemment décrite.
En se référant plus particulièrement à la figure 3, on va maintenant décrire le sous-programme "CalculQpa" apparaissant à l'étape 204 de la figure 2.
Ce sous-programme calcule les Quantités à Parcourir avant l'Arrêt "QP AP" pour les "NbParamP" paramètres dynamiques de l'engin propre "P". Ces valeurs "QPAp" représentent les quantités de déplacement, mesurées dans les même unités que les paramètres "qP" correspondants, nécessaires à l'arrêt du déplacement de la machine "P" selon le degré de liberté considéré.
Dans le mode de réalisation préféré de l'invention, la distance à parcourir avant l'arrêt pour chacun des "NbParamM" paramètres dynamiques "qM" de l'engin "M" est modélisée comme étant le produit d'un coefficient "cM /', choisi de façon conservative, par la vitesse de variation du seul paramètre dynamique "qM,;".
Toutefois, dans ce mode de réalisation, les capteurs utilisés ne fournissent que les valeurs courantes des paramètres dynamiques, et non les vitesses de variation souhaitées. Pour résoudre cette difficulté, l'ordinateur 17 mettant en œuvre le procédé de l'invention estime numériquement la vitesse de variation de chaque paramètre dynamique comme étant le rapport entre la différence des deux dernières valeurs mesurées et la période de temps constante "Δt" séparant ces deux mesures successives.
Le sous-programme "CalculQpa" commence à l'étape 301 de la figure 3, où l'ordinateur 17 initialise l'indice de boucle "i" à la valeur 1. L'ordinateur 17 passe alors à l'étape 302. A l'étape 302, l'ordinateur 17 calcule la valeur "QPAP i" par la formule "cP ;*(qP rq'p ;)/Δt", dans laquelle "cP i" est une constante relue à l'étape 201 de la figure 2, où "qP i" et "q'P>i" représentent respectivement la dernière et l'avant-dernière valeur mesurée du paramètre dynamique de numéro "i" de l'engin "P", et où "Δt" est la période de temps constante décrite plus haut en relation avec la figure 2. En conséquence, la quantité
Figure imgf000012_0001
représente une valeur numériquement approchée de la vitesse moyenne de variation du paramètre "qP i" de l'engin "P" pendant la période "Δt". L'ordinateur 17 stocke la valeur "QPAP i" ainsi calculée dans l'emplacement correspondant de la table "Table QPA des Quantités à Parcourir avant Arrêt des engins" représentée à la figure 18, puis il passe à l'étape 303.
A l'étape 303, l'ordinateur 17 augmente d'une unité l'indice de boucle "i", puis il passe à l'étape 304.
A l'étape 304, l'ordinateur 17 teste si l'indice de boucle "i" est supérieur au nombre de paramètres dynamiques "NbParamP" de l'engin "P". Si la réponse est négative, l'ordinateur 17 retourne à l'étape 302 précédemment décrite. Si la réponse est positive, c'est-à-dire, si les "NbParamP" valeurs "QP AP" ont été calculées pour les "NbParamP" paramètres dynamiques "qp" de l'engin "P", alors le sous-programme "CalculQpa" est alors terminé.
En se référant plus particulièrement à la figure 4, on va maintenant décrire le sous-programme "ModélisationEngin" apparaissant aux étapes 205 et 209 de la figure 2.
Le sous-programme "ModélisationEngin" reçoit dans en paramètre le numéro "M" de l'engin à modéliser. Cela signifie que la valeur notée "M" dans le sous-programme "ModélisationEngin" aura la valeur "P" du programme appelant si ce sous-programme a été appelé depuis l'étape 205 de la figure 2, et aura la valeur "M" du programme appelant si ce sous-programme a été appelé depuis l'étape 209 de la figure 2.
La fonction du sous-programme "ModélisationEngin" est de définir, pour chacun des éléments "e" de l'engin de numéro "M" passé en paramètre, un "modèle déformable" constitué de l'ensemble des positions de l'espace que l'élément "e" peut prendre, lors de variations simultanées, indépendantes et quelconques des "NbParamM" paramètres "qM" dans leurs intervalles de variation "qMii" à "qM i+QPAM i" correspondants. Plus précisément, le modèle déformable associé à l'élément "e" de l'engin "M" est un parallélépipède de diagonale (AL, BL), où les points AL et BL sont les points de coordonnées respectivement minimales et maximales lors de la variation des "NbParamM" paramètres "qM-i" de l'engin "M" dans leurs intervalles de variation respectifs "qM i" à "qM,i+QPAM i".
Le fait d'envisager le cas d'une variation simultanée quelconque des paramètres dynamiques est conservateur, car en pratique, les paramètres dynamiques qM varient d'une façon très corrélée dans le parallélépipède défini par leurs plages de variation. Plus précisément, ces paramètres varient d'une façon sensiblement linéaire le long d'une diagonale du parallélépipède défini par les intervalles de variation des paramètres dynamiques. Toutefois, dans le mode de réalisation préféré de l'invention, la possibilité d'une variation simultanée quelconque dans le parallélépipède défini par leurs intervalles de variation a été retenue pour des raisons de sécurité.
Dans le cas de l'exemple de la figure 1, les coordonnées des points extrêmes A et B de tous les éléments des engins 1, 2 ne dépendent que d'un seul paramètre à la fois. En conséquence, les valeurs minimales des coordonnées du point A et les valeurs maximales des coordonnées du point B peuvent être obtenues en faisant varier un seul paramètre à la fois. Dans un cas plus général où au moins certaines des coordonnées des points extrêmes A et B dépendraient de plusieurs paramètres, il serait nécessaire de considérer toutes les combinaisons de variations simultanées des paramètres concernés pour déterminer les valeurs minimales des coordonnées du point A et les valeurs maximales des coordonnées du point B.
Le sous-programme "ModélisationEngin" commence à l'étape 401.
A l'étape 401, l'ordinateur 17 initialise à 1 l'indice de boucle "e" pour les "NbElemM" éléments de l'engin "M", puis il passe à l'étape 402.
A l'étape 402, l'ordinateur 17 initialise les points ALM e et BLM e respectivement aux points AM β et BM e de l'élément "e" de l'engin "M" en évaluant les expressions correspondantes figurant dans la "Table de configuration des engins" présentée à la figure 16, pour les valeurs courantes des "NbParamM" paramètres "qM,i" de l'engin M. L'ordinateur 17 passe alors à l'étape 403.
A l'étape 403, l'ordinateur 17 initialise à 1 l'indice de boucle "i" pour les "NbParamM" paramètres de l'engin "M", puis il passe à l'étape 404.
A l'étape 404, l'ordinateur 17 augmente tout d'abord le paramètre "qM-i" de la quantité "QPAM /'. Ensuite, il calcule chacune des coordonnées locales du point ALM e comme le minimum de la valeur courante de cette coordonnée de ALM e et de la valeur correspondante obtenue pour le paramètre qM ; augmenté de la quantité QP AM i5 en utilisant les expressions correspondantes des coordonnées des points AM e de l'élément "e" de l'engin "M" figurant dans la "Table de configuration des engins" présentée à la figure 16. De façon analogue, l'ordinateur 17 calcule chacune des coordonnées locales du point BLM e comme le maximum de la valeur courante de cette coordonnée de BLM e et de la valeur correspondante obtenue pour le paramètre "qM)i" augmenté de la quantité "QPAM i" en utilisant les expressions correspondantes des coordonnées des points BM e de l'élément "e" de l'engin "M" figurant dans la "Table de configuration des engins" présentée à la figure 16. L'ordinateur 17 restaure alors le paramètre "qMii" à sa valeur initiale, c'est-à-dire qu'il diminue le paramètre "qM i" de la quantité "QPAM ;". L'ordinateur 17 passe alors à l'étape 405.
A l'étape 405, l'ordinateur 17 augmente d'une unité l'indice de boucle "i", puis il passe à l'étape 406.
A l'étape 406, l'ordinateur 17 teste si l'indice de boucle "i" est supérieur au nombre de paramètres dynamiques "NbParamM" de l'engin "M". Si la réponse est négative, l'ordinateur 17 retourne à l'étape 404 précédemment décrite. Si la réponse est positive, c'est-à-dire si les "NbParamM" paramètres "qM,i" ont été traités, alors l'ordinateur 17 passe à l'étape 407.
A l'étape 407, l'ordinateur 17 augmente d'une unité l'indice de boucle "e", puis il passe à l'étape 408.
A l'étape 408, l'ordinateur 17 teste si l'indice de boucle "e" est supérieur au nombre d'éléments "NbElemM" de l'engin "M". Si la réponse est négative, l'ordinateur 17 retourne à l'étape 402 précédemment décrite. Si la réponse est positive, c'est-à-dire si les "NbElemM" éléments de l'engin "M" ont été traités, alors l'ordinateur 17 passe à l'étape 410.
A l'étape 410, l'ordinateur 17 initialise à 1 l'indice de boucle "e" pour les "NbElemM" éléments de l'engin "M", puis il passe à l'étape 411.
A l'étape 411, l'ordinateur 17 calcule les coordonnées des points extrêmes AGM e et BGM e de l'élément "e" de l'engin "M" dans le repère global du chantier à partir des coordonnées des points ALM e et BLM e dans le repère local de l'engin "M". Compte tenu de ce que, dans l'exemple considéré, les repères R1 et R2 des engins 1, 2 sont obtenus par translation du repère global du chantier, les coordonnées des points extrêmes AGM e et BGM e de l'élément "e" de l'engin "M" dans le repère global du chantier sont obtenues simplement en additionnant les coordonnées de l'origine RM du repère de l'engin "M" aux coordonnées des points ALM e et BLM e dans le repère local de l'engin "M". L'ordinateur 17 passe alors à l'étape 412.
A l'étape 412, l'ordinateur 17 augmente d'une unité l'indice de boucle "e", puis il passe à l'étape 413. A l'étape 413, l'ordinateur 17 teste si l'indice de boucle "e" est supérieur au nombre d'éléments "NbElemM" de l'engin "M". Si la réponse est négative, l'ordinateur 17 retourne à l'étape 411 précédemment décrite. Si la réponse est positive, c'est-à-dire si les coordonnées globales des "NbElemM" éléments de l'engin "M" ont toutes été calculées, le sous-programme "ModélisationEngin" apparaissant aux étapes 205 et 209 de la figure 2 est alors terminé.
Les résultats calculés à l'étape 411 sont stockés dans les "NbElemM" lignes correspondant aux "NbElemM" éléments de l'engin de numéro "M" de la "Table des modèles déformables des éléments des engins" représentée dans les figures 22A et 22B.
En se référant plus particulièrement à la figure 5, on va maintenant décrire le sous-programme "TraitementAnticollision" apparaissant à l'étape 210 de la figure 2.
Le sous-programme "TraitementAnticollision" reçoit un paramètre "M" indiquant le numéro "M" de l'engin opposé pour lequel doit être effectué le traitement anti collision avec l'engin propre de numéro "P". Le numéro "P" est celui décrit plus haut en relation avec la figure 2. Le sous-programme "TraitementAnticollision" commence à l'étape 501.
A l'étape 501, l'ordinateur 17 initialise à 1 la variable de boucle "EP" décrivant les numéros des éléments de l'engin propre "P", puis il passe à l'étape 502.
A l'étape 502, l'ordinateur 17 initialise à 1 la variable de boucle "EM" décrivant les numéros des éléments de l'engin opposé "M", puis il passe à l'étape 503.
A l'étape 503, l'ordinateur 17 appelle la fonction "Ajouts Vz" avec les arguments "Er, "M" et "EM,,. Cette fonction, qui sera décrite plus loin en relation avec la figure 6, retourne la valeur booléenne "vrai" si elle a ajouté de nouveaux vecteurs anticollision à la table "Vz" (non représentée) des vecteurs anticollision suivant l'axe Z.
Si au moins un vecteur anticollision a été ajouté par la fonction "Ajouts Vz", c'est-à-dire, si existe un risque de collision suivant l'axe Z du fait d'une trop grande proximité verticale entre les engins "P" et "M", l'ordinateur 17 passe à l'étape 504 décrite ci-après. Si aucun vecteur anticollision n'a été ajouté suivant l'axe Z, l'ordinateur 17 passe à l'étape 511 qui sera décrite ci-après, ce qui signifie qu'il saute toute recherche de collision dans le plan XY, car une telle collision ne peut se produire, du fait d'une distance verticale suffisante entre les engins "P" et "M".
A l'étape 504, l'ordinateur 17 initialise à 1 l'indice "KP" des points de la base rectangulaire de l'élément "EP" de l'engin "P", puis il passé à l'étape 505. L'indice "Kp" prend les valeurs 1, 2, 3 et 4 respectivement pour les points de coordonnées
(XAL,P,Ep> YAL1P1Ep)* (XBL,P,Ep> YAL1P1Ep)' (XBL,P,Ep5 YBL1P1Ep) G^ (XAL,P,Ep> YBL1P1Ep)-
A l'étape 505, l'ordinateur 17 initialise à 1 l'indice "KM" des points de la base rectangulaire de l'élément "EM" de l'engin "M", puis il passe à l'étape 506. L'indice "KM" prend les valeurs 1, 2, 3 et 4 respectivement pour les points de coordonnées
(XAL,M,EmJ YAL1M1Em)' (XBL,M,Em5 YAL1M1Em)' (XBL,M,Em5 YBL1M1Em) e^ (XAL,M,Em5 YBL1M1Em)-
A l'étape 506, l'ordinateur 17 appelle le sous-programme " Ajouts Vxy", qui sera décrit plus loin en relation avec la figure 8, avec les arguments "EP", "KP", "M", "EM" et "KM". Il passe alors à l'étape 507.
A l'étape 507, l'ordinateur 17 augmente d'une unité l'indice de boucle "KM" pour les points de la base rectangulaire de l'élément "EM" de l'engin "M", puis il passe à l'étape 508.
A l'étape 508, l'ordinateur 17 teste si l'indice de boucle "KM" est supérieur à 4. Si la réponse est négative, l'ordinateur retourne à l'étape 506 précédemment décrite. Si la réponse est positive, c'est-à-dire, si les quatre points de la base rectangulaire de l'élément "EM" de l'engin "M" ont été traités, l'ordinateur passe à l'étape 509.
A l'étape 509, l'ordinateur 17 augmente d'une unité l'indice de boucle "KP" pour les points de la base rectangulaire de l'élément "EP" de l'engin "P", puis il passe à l'étape 510.
A l'étape 510, l'ordinateur 17 teste si l'indice de boucle "KP" est supérieur à 4. Si la réponse est négative, l'ordinateur retourne à l'étape 505 précédemment décrite. Si la réponse est positive, c'est-à-dire, si les quatre points de la base rectangulaire de l'élément "EP" de l'engin "P" ont été traités, l'ordinateur passe à l'étape 511.
A l'étape 511, l'ordinateur 17 augmente d'une unité l'indice de boucle "EM" pour les éléments de l'engin "M", puis il passe à l'étape 512.
A l'étape 512, l'ordinateur 17 teste si l'indice de boucle "EM" est supérieur au nombre "NbElemM" d'éléments de la machine "M". Si la réponse est négative, l'ordinateur 17 retourne à l'étape 503 précédemment décrite. Si la réponse est positive, c'est-à-dire, si les "NbElemM" éléments de l'engin "M" ont été traités, l'ordinateur passe à l'étape 513.
A l'étape 513, l'ordinateur 17 augmente d'une unité l'indice de boucle "EP" pour les éléments de l'engin P, puis il passe à l'étape 512.
A l'étape 512, l'ordinateur 17 teste si l'indice de boucle "EP" est supérieur au nombre NbElemP d'éléments de la machine "P". Si la réponse est négative, l'ordinateur 17 retourne à l'étape 502 précédemment décrite. Si la réponse est positive, c'est-à-dire, si les "NbElemP" éléments de l'engin "P" ont été traités, le sous- programme "TraitementAnticollision" est alors terminé.
En se référant plus particulièrement à la figure 6, on va maintenant décrire la fonction "Ajouts Vz" apparaissant à l'étape 503 de la figure 5.
La fonction "AjoutsVz" reçoit du programme appelant les paramètres "e", "M" et "f indiquant respectivement le numéro de l'élément à traiter dans l'engin "P", le numéro "M" de l'engin opposé à traiter, et le numéro "f ' de l'élément à traiter dans l'engin "M". Son objet est d'ajouter un vecteur anticollision suivant l'axe Z à la table "Vz" (non représentée) s'il existe un risque de collision suivant l'axe Z entre les éléments "e" et "P des engins respectifs "P" et "M".
Cette fonction retourne un indicateur booléen ayant la valeur "vrai" si elle a ajouté au moins un vecteur anticollision à la table "Vz" des vecteurs anticollision suivant Z, et "faux" dans le cas contraire. La fonction "AjoutsVz" commence à l'étape 601.
A l'étape 601, l'ordinateur 17 initialise à la valeur booléenne "faux" la variable "cr" contenant la valeur booléenne qui sera retournée par la fonction "AjoutsVz", puis il passe à l'étape 602.
A l'étape 602, l'ordinateur 17 teste si la cote inférieure de l'élément "f de l'engin "M" est inférieure à la cote supérieure de l'élément "e" de l'engin propre "P" augmentée de la distance de sécurité "DS" précédemment décrite en relation avec la figure 2. Si la réponse est négative, alors l'ordinateur 17 passe à l'étape 604 décrite ci- dessous. Si la réponse est positive, alors il existe un risque de collision entre la partie supérieure de l'élément "e" de l'engin "P" et la partie inférieure de l'élément "f de l'engin "M", et l'ordinateur 17 passe alors à l'étape 603.
A l'étape 603, l'ordinateur 17 appelle le sous-programme "AjoutVz", qui sera décrit plus loin en relation avec la figure 7, avec les arguments "e", "vrai" et "z AG,M,rz BG,p,e"- L' argument "vrai" ci-dessus indique que la face supérieure de l'élément "e" de l'engin "P" est celle concernée par le risque de collision. Par ailleurs, l'ordinateur 17 stocke la valeur booléenne "vrai" dans la variable "cr" pour indiquer qu'un vecteur anticollision en Z a été ajouté. Il passe alors à l'étape 604.
A l'étape 604, l'ordinateur 17 teste si la cote supérieure de l'élément "f de l'engin "M" est supérieure à la cote inférieure de l'élément "e" de l'engin propre "P" diminuée de la distance de sécurité "DS". Si la réponse est négative, alors l'ordinateur 17 retourne la valeur "cr" au programme appelant, et le sous-programme "AjoutsVz" est alors terminé. Si la réponse est positive, alors il existe un risque de collision entre la partie inférieure de l'élément "e" de l'engin "P" et la partie supérieure de l'élément "f" de l'engin M, et l'ordinateur 17 passe alors à l'étape 605.
A l'étape 605, l'ordinateur 17 appelle la fonction "Ajout Vz" avec les arguments "e", "faux" et "zBG M rzAG P e". L'argument "faux" ci-dessus indique que la face inférieure de l'élément "e" de l'engin "P" est celle concernée par le risque de collision. Par ailleurs, l'ordinateur 17 stocke la valeur booléenne "vrai" dans la variable "cr" pour indiquer qu'un vecteur anticollision en Z a été ajouté. L'ordinateur 17 retourne alors la valeur "cr" au programme appelant, et le sous-programme "Ajouts Vz" est alors terminé.
En se référant plus particulièrement à la figure 7, on va maintenant décrire le sous-programme "AjoutVz" apparaissant aux étapes 603 et 605 de la figure 6.
Le sous-programme "AjoutVxy" reçoit les paramètres "e", "h" et "z" passés par le programme appelant. Il a pour fonction d'ajouter un vecteur anticollision à la table "Vz" (non représentée) à trois colonnes des vecteurs anticollision parallèlement à l'axe Z .
Le sous-programme "AjoutVz" est constitué de l'unique étape 701.
Dans cette étape, l'ordinateur 17 augmente d'une unité le nombre "NbVz" de vecteurs anticollision suivant l'axe Z, puis il stocke dans les trois emplacements de la ligne "NbVz" correspondante de la table "Vz" les trois paramètres "e", "h" et "z" qui lui ont été passés par le programme appelant.
Le sous-programme "AjoutVz" est alors terminé.
En se référant plus particulièrement à la figure 8, on va maintenant décrire le sous-programme " Ajouts Vxy" apparaissant à l'étape 506 de la figure 5.
Le sous-programme "Ajouts Vxy" reçoit du programme appelant les paramètres "e", "k", "M", "f et "1", et sa fonction est de déterminer les vecteurs anticollision de longueur inférieure à "DS" associés au point "k" de la base dans le plan XY de l'élément "e" de l'engin "P", vis-à-vis du segment de la base de l'élément "f de l'engin "M" commençant au point de numéro "1" de cette base. Ces vecteurs sont les vecteurs SM0, SH et SM1 apparaissant sur la figure 15, où S est le point de numéro "k" de l'élément, M0 est le point de numéro "1" de l'élément "f de l'engin "M", M1 est le point suivant M0 sur le contour fermé de la base de l'élément "f ' de l'engin "M", et H est le pied de la perpendiculaire issue du point S abaissée sur le segment M0M1.
Le sous-programme "Ajouts Vxy" commence à l'étape 801.
A l'étape 801, l'ordinateur 17 retrouve les coordonnées "xP" et "yP" du point S de numéro "k" dans l'élément "e" de l'engin "P" à l'aide du sous-programme "XY" qui sera décrit plus loin en relation avec la figure 9. De même, il retrouve les coordonnées "xM0" et "yM0" du premier point M0 de numéro "1" du segment de la base plane de l'élément "F de l'engin "M" à l'aide du même sous-programme "XY".
L'ordinateur 17 détermine le numéro du second point M1 du segment de la base de l'élément "f de l'engin "M" à l'aide de la formule "mod(l,4)+l", où "mod" représente la fonction modulo, ou reste de la division, de son premier argument par le second. Le résultat de cette formule vaut 1 si la variable "1" vaut 4 et "1+1" dans le cas contraire. En conséquence, compte tenu de la convention de numérotation des points décrite précédemment en relation avec l'étape 505 de la figure 5, le numéro de point ainsi déterminé est bien le point M1 suivant le point M0 sur le contour fermé de la base de l'élément "F de l'engin "M".
L'ordinateur 17 retrouve alors, à l'aide de ce numéro, les coordonnées "xMi" et "yM1" du second point M1 du segment de la base plane de l'élément "F de l'engin "M" à l'aide du même sous-programme "XY", puis il passe à l'étape 802.
A l'étape 802, l'ordinateur 17 teste si la distance euclidienne dans le plan XY entre le point S et le point M0 de coordonnées respectives "xP", "yP" et "xM0", "yMo" ci- dessus déterminées est inférieure à la distance de sécurité "DS". Si la réponse est négative, alors l'ordinateur passe à l'étape 804 décrite ci-dessous. Si la réponse est positive, alors il y a un risque de collision entre le point S et le segment M0M1, et l'ordinateur passe à l'étape 803.
A l'étape 803, l'ordinateur 17 appelle le sous-programme "AjoutVxy", qui sera décrit plus loin en relation avec la figure 10, avec les arguments "e", "k", "xM0- Xp" et "yMo-yp"j puis l'ordinateur 17 passe à l'étape 804.
A l'étape 804, l'ordinateur 17 teste si la distance euclidienne dans le plan XY entre le point S de coordonnées "xP" et "yP" et le point M1 de coordonnées "xM1" et "yM1" ci-dessus déterminés est inférieure à la distance de sécurité "DS". Si la réponse est négative, alors l'ordinateur passe à l'étape 806 décrite ci-dessous. Si la réponse est positive, alors il y a un risque de collision entre le point S et le segment M0M1, et l'ordinateur passe à l'étape 805.
A l'étape 805, l'ordinateur 17 appelle le sous-programme "AjoutVxy" avec les arguments "e", "k", "xM1-xP" et "yM1-yP", puis l'ordinateur 17 passe à l'étape 806.
A l'étape 806, l'ordinateur 17 calcule le paramètre "λ" définissant le point H dans l'équation paramétrique du segment de droite M0M1 :
SH = (l-λ)*SM0 + λ*SMl, 0 < λ < 1
Le vecteur SH sera perpendiculaire au vecteur M0M1 si et seulement si le produit scalaire de ces deux vecteurs est nul. En conséquence, un développement élémentaire pour l'homme de l'art montre que le segment SH est perpendiculaire au segment M0M1 pour la valeur de "λ" figurant à l'étape 806. L'ordinateur 17 passe alors à l'étape 807.
A l'étape 807, l'ordinateur 17 teste si la valeur de "λ" déterminée à l'étape 806 est comprise entre 0 et 1. Si la réponse est négative, alors le point H est situé en dehors du segment M0M1, ce qui signifie que le point S est plus proche d'un des points M0 ou M1 que de n'importe quel autre point du segment M0M1 et que par conséquent, il n'y pas de risque de collision entre le point S et un point intérieur au segment. Le sous-programme "AjoutsVxy" est alors terminé. Si la réponse est positive, alors l'ordinateur 17 passe à l'étape 808.
A l'étape 808, l'ordinateur 17 calcule les coordonnées "hx" et "hy" obtenues en remplaçant, dans l'équation paramétrique du segment SH, le paramètre "λ" par la valeur obtenue à l'étape 806. Il passe alors à l'étape 809.
A l'étape 809, l'ordinateur 17 teste si la longueur du segment SH est inférieure à la distance de sécurité "DS". Si la réponse est négative, alors il n'y a pas de risque de collision, et le sous-programme "AjoutsVxy" est terminé. Si la réponse est positive, alors l'ordinateur 17 passe à l'étape 810.
A l'étape 810, l'ordinateur 17 appelle le sous-programme "AjoutVxy" avec les arguments "e", "k", "Jix", et "hy", puis le sous-programme "AjoutsVxy" est terminé.
En se référant plus particulièrement à la figure 9, on va maintenant décrire le sous-programme "XY" apparaissant à l'étape 801 de la figure 8.
Le sous-programme "XY" reçoit les paramètres "M", "e", k", "x" et "y" du programme appelant. Il a pour fonction de retrouver les coordonnées "x" et "y" du point de numéro "k" dans la base plane de l'élément de numéro "e" de l'engin de numéro "M". Le sous-programme "XY" commence à l'étape 901.
A l'étape 901, l'ordinateur 17 teste si la valeur du paramètre "k", indiquant le numéro du point dans la base de l'élément "e" de l'engin "P", vaut 1 ou 4. Si la réponse est négative, l'ordinateur passe à l'étape 903 décrite ci-après, sinon il passe à l'étape 902.
A l'étape 902, l'ordinateur 17 affecte la valeur minimale "xAG,M,e" correspondant au cas "k=l ou k=4", compte tenu de la convention de numérotation définie à l'étape 505 de la figure 5, à la variable "x" passée en paramètre, puis il passe à l'étape 904. A l'étape 903, atteinte lorsque la réponse au test de l'étape 901 est négative, l'ordinateur 17 affecte la valeur maximale "xBG,M,e" à la variable "x", puis il passe à l'étape 904.
A l'étape 904, l'ordinateur 17 teste si la valeur du paramètre "k", indiquant le numéro du point S dans la base de l'élément "e" de l'engin "P", vaut 1 ou 2. Si la réponse est négative, l'ordinateur passe à l'étape 906 décrite ci-après, sinon il passe à l'étape 905.
A l'étape 905, l'ordinateur 17 affecte la valeur minimale "yAG,M,e" correspondant au cas "k=l ou k=2", compte tenu de la convention de numérotation définie à l'étape 505 de la figure 5, à la variable "y" passée en paramètre. Le sous- programme "XY" est alors terminé.
A l'étape 906, atteinte lorsque la réponse au test de l'étape 904 est négative, l'ordinateur 17 affecte la valeur maximale "yBG,M,e" à la variable "y". Le sous- programme "XY" est alors terminé.
En se référant plus particulièrement à la figure 10, on va maintenant décrire le sous-programme "AjoutVxy" apparaissant aux étapes 803, 805 et 810 de la figure 8.
Le sous-programme "AjoutVxy" reçoit les paramètres "e", "k", "x" et "y" passés par le programme appelant. Il a pour fonction d'ajouter un vecteur anticollision à la table "Vxy" (non représentée) à quatre colonnes des vecteurs anticollision dans le plan XY .
Le sous-programme "AjoutVxy" est constitué de l'unique étape 1001.
Dans cette étape, l'ordinateur 17 augmente d'une unité le nombre "Nb Vxy" de vecteurs anticollision dans le plan XY, puis il stocke dans les quatre emplacements de la ligne "Nb Vxy" correspondante de la table "Vxy" les quatre paramètres "e", "k", "x" et "y" qui lui ont été passés en paramètres par le programme appelant.
Le sous-programme "AjoutVxy" est alors terminé.
En se référant plus particulièrement à la figure 11, on va maintenant décrire le sous-programme "GénérationCoupuresDynamiques" apparaissant à l'étape 213 de la figure 2.
La fonction de ce sous-programme est de déterminer quels degrés de liberté de l'engin "P", et dans quel sens, doivent arrêtés pour éviter d'augmenter les vecteurs anticollision déterminés précédemment, c'est-à-dire pour arrêter les mouvements avant qu'une collision ne se produise. Le sous-programme "GénérationCoupuresDynamiques" commence à l'étape 1101.
A l'étape 1101, l'ordinateur 17 test si les nombres de vecteurs anticollision "NbVxy" dans le plan XZ et "NbVz" sur l'axe des Z sont tous les deux nuls. Si la réponse est positive, c'est-à-dire, s'il n'y a pas de vecteurs anticollision et donc pas de risque de collision, le sous-programme "GénérationCoupuresDynamiques" est terminé. Si la réponse est négative, alors l'ordinateur 17 passe à l'étape 1102.
A l'étape 1102, l'ordinateur 17 génère une alarme, visuelle ou sonore, pour l'opérateur de l'engin propre "P" qu'il gère, puis il passe à l'étape 1103.
A l'étape 1103, l'ordinateur 17 remet à 0 les coupures dynamiques dans le sens positif "C+" et dans le sens négatif "C"" pour les "NbParamP" degrés de liberté de l'engin propre "P", puis il passe à l'étape 1104.
A l'étape 1104, l'ordinateur 17 initialise l'indice de boucle "n" des vecteurs anticollision dans le plan XY à la valeur 1, puis il passe à l'étape 1105.
A l'étape 1105, l'ordinateur 17 appelle le sous-programme de détermination des coupures dynamiques dans le plan XY "CoupuresDynamiquesVxy", qui sera décrit plus loin en relation avec la figure 12, en lui passant en argument le numéro "n" du vecteur anticollision "Vxy" à traiter. L'ordinateur 17 passe alors à l'étape 1106.
A l'étape 1106, l'ordinateur 17 incrémente d'une unité l'indice de boucle "n", puis il passe à l'étape 1107.
A l'étape 1107, l'ordinateur 17 teste si de l'indice de boucle "n" est supérieur au nombre "Nb Vxy" des vecteurs anticollision "Vxy" dans le plan XY. Si la réponse est négative, l'ordinateur 17 retourne à l'étape 1105 précédemment décrite, sinon c'est-à-dire si les "Nb Vxy" vecteurs anticollision "Vxy" dans le plan XY ont été traités, l'ordinateur 17 passe à l'étape 1108.
A l'étape 1108, l'ordinateur 17 initialise l'indice de boucle "n" des vecteurs anticollision selon l'axe Z à la valeur 1, puis il passe à l'étape 1109.
A l'étape 1109, l'ordinateur 17 appelle le sous-programme "CoupuresDynamiquesVz" déterminant les coupures dynamiques selon l'axe Z, qui sera décrit plus loin en relation avec la figure 13, en passant à ce sous-programme un argument constitué du numéro "n" du vecteur anticollision "Vz" à traiter. L'ordinateur 17 passe alors à l'étape 1110.
A l'étape 1110, l'ordinateur 17 incrémente d'une unité l'indice de boucle "n", puis il passe à l'étape 1111. A l'étape 1111, l'ordinateur 17 teste si l'indice de boucle "n" est supérieur au nombre "NbVz" de vecteurs anticollision "Vz" parallèlement à l'axe Z. Si la réponse est négative, l'ordinateur 17 retourne à l'étape 1109 précédemment décrite, sinon, c'est-à-dire si tous les vecteurs anticollision "Vz" parallèlement à l'axe Z ont été traités, l'ordinateur 17 passe à l'étape 1112.
A l'étape 1112, l'ordinateur 17 appelle le sous-programme "EnvoiCoupuresDyamiques" qui sera décrit plus loin en relation avec la figure 14, puis, puis le sous-programme "GénérationCoupuresDynamiques" est terminé.
En se référant plus particulièrement aux figures 12 et 15, on va maintenant décrire le sous-programme "CoupuresDynamiquesVxy" apparaissant à l'étape 1105 de la figure 11.
La fonction de ce sous-programme est de générer les coupures dynamiques nécessaires pour le vecteur "Vxy" de numéro "n" passé en paramètre, pour les "NbParamP" paramètres "qP" de l'engin propre "P", et dans les deux sens de déplacement du degré de liberté de l'engin "P" associé de chacun de ces paramètres.
Le sous-programme "CoupuresDynamiquesVxy" commence à l'étape de 1201.
A l'étape 1201, l'ordinateur 17 initialise la variable temporaire "e" à la valeur se trouvant dans le premier emplacement de la ligne "n" de la table "Vxy", c'est-à- dire que la variable "e" reçoit le numéro de l'élément de l'engin "P" auquel appartient le point d'origine S du vecteur anticollision "n", tel qu'il a été sauvegardé à l'étape 1001 de la figure 10. De même, l'ordinateur 17 initialise une variable temporaire "k" à la valeur se trouvant dans le second emplacement de la ligne "n" de la table "Vxy", c'est-à-dire que la variable "k" reçoit le numéro, dans l'élément "e" de l'engin "P", du point d'origine S du vecteur anticollision "n".
L'ordinateur 17 appelle alors le sous-programme "XY", décrit précédemment en relation avec la figure 9, avec les arguments "P", "e", "k", "x" et "y", ce qui a pour effet d'initialiser les variables "x" et "y" aux valeurs des coordonnées XY du point "k" de la base de l'élément "e" de l'engin "P". En d'autres termes, l'ordinateur 17 retrouve ainsi les coordonnées du point d'origine S du vecteur anticollision "Vxyn", pour les valeurs courantes des paramètres "qP" de l'engin "P".
L'ordinateur 17 initialise également l'indice de boucle "i" à la valeur 1, puis il passe à l'étape 1202.
A l'étape 1202, l'ordinateur 17 ajoute à la valeur du paramètre "qP i" la quantité "εP i" positive qui a été relue à l'étape 201 de la figure 2. La valeur "εP i" associée au paramètre "qP i" est une valeur prédéterminée, choisie de façon à être suffisamment faible pour que les déplacements des éléments de l'engin "P" associés à cet incrément du paramètre "qP i" restent petits, tout en garantissant une précision numérique suffisante pour les calculs ultérieurs.
L'ordinateur 17 retrouve alors les coordonnées V" et "y"' du point d'origine S' du vecteur anticollision "Vxyn" pour la valeur "qP,i P,i" du paramètre "i" de l'engin "P", en appelant le sous-programme "XY" avec les paramètres "P", "e", "k", "x"' et "y"'. L'ordinateur restaure ensuite le paramètre "qP i" à sa valeur courante en soustrayant de "qP i" la quantité "εP i", puis il calcule le produit scalaire "PS" du vecteur SS' et du vecteur anticollision "Vxyn". L'ordinateur 17 passe alors à l'étape 1203.
A l'étape 1203, l'ordinateur 17 teste si le produit scalaire "PS" déterminé à l'étape 1202 est positif. Si la réponse est négative, alors l'ordinateur 17 passe à l'étape 1205 décrite ci-après. Si la réponse est positive, alors une variation positive du paramètre "qP i" tendra à réduire le vecteur anticollision "Vxyn", c'est-à-dire à augmenter le risque d'une collision. Dans ce cas, l'ordinateur 17 passe à l'étape 1204, où l'indicateur de coupure "C+;" est positionné à la valeur "vrai" pour indiquer que le mouvement suivant le degré de liberté "i" de l'engin "P" doit être interdit dans le sens positif. L'ordinateur 17 passe alors à l'étape 1205.
A l'étape 1205, l'ordinateur 17 teste si le produit scalaire "PS" déterminé à l'étape 1202 est négatif. Si la réponse est négative, alors l'ordinateur 17 passe à l'étape 1207 décrite ci-après. Si la réponse est positive, alors une variation négative du paramètre "qP;i" tendra à réduire le vecteur anticollision "Vxyn", c'est-à-dire à augmenter le risque d'une collision. Dans ce cas, l'ordinateur 17 passe à l'étape 1206, où l'indicateur de coupure "C" ;" est positionné à la valeur "vrai" pour indiquer que le mouvement "i" de l'engin "P" dans le sens négatif doit être coupé. L'ordinateur 17 passe alors à l'étape 1207.
À l'étape 1207, l'ordinateur 17 augmente d'une unité l'indice de boucle "i", puis il passe à l'étape 1208.
À l'étape 1208, l'ordinateur 17 teste si l'indice de boucle "i" est supérieur au nombre "NbParamP" de paramètres de l'engin "P". Si la réponse est négative, alors l'ordinateur 17 retourne à l'étape 1202 décrite ci-dessus. Si la réponse est positive, c'est-à-dire, si les "NbParamP" paramètres "qP" de l'engin propre "P" ont été traités, le sous-programme "CoupuresDynamiquesVxy" est terminé.
En se référant plus particulièrement à la figure 13, on va maintenant décrire le sous-programme "CoupuresDynamiquesVz" apparaissant à l'étape 1109 de la figure 11. La fonction de ce sous-programme est de générer les coupures dynamiques nécessaires pour le vecteur Vz de numéro "n" passé en paramètre, pour les "NbParamP" paramètres "qP" de l'engin propre "P", et dans les deux sens de déplacement du degré de liberté de l'engin "P" associé de chacun de ces paramètres.
Le sous-programme "CoupuresDynamiquesVz" commence à l'étape de 1301.
A l'étape 1301, l'ordinateur 17 initialise la variable temporaire "e" à la valeur se trouvant dans le premier emplacement de la ligne "n" de la table "Vz", c'est-à-dire que la variable "e" reçoit le numéro de l'élément de l'engin "P" auquel appartient le point d'origine S du vecteur anticollision "n", tel qu'il a été sauvegardé à l'étape 701 de la figure 7. L'ordinateur 17 initialise également l'indice de boucle "i" à la valeur 1, puis il passe à l'étape 1302.
A l'étape 1302, l'ordinateur 17 teste la valeur de la variable booléenne stockée dans la seconde colonne de la ligne "n" de la table des vecteurs anticollision "Vz". Cette valeur, stockée à l'étape 701 de la figure 7, a la valeur booléenne "vrai" si le risque de collision concerne la face supérieure de l'élément "e", et la valeur booléenne "faux" si le risque de collision concerne la face inférieure de l'élément "e". Si la valeur "Vz112" a la valeur booléenne "vrai", alors l'ordinateur 17 passe à l'étape 1304 qui sera décrite ci-après, sinon l'ordinateur 17 passe à l'étape 1303.
A l'étape 1303, atteinte si la variable "Vzn 2" a la valeur booléenne "faux", c'est-à-dire si le risque de collision indiqué par "Vzn" concerne la face inférieure de l'élément "e" de l'engin "P", l'ordinateur 17 initialise la variable temporaire "z", représentant la cote du point S origine du vecteur anticollision "Vzn", à la valeur de la cote "zAG P e" de la face inférieure de l'élément "e" de l'engin "P". L'ordinateur 17 ajoute ensuite à la valeur du paramètre "qPji" la quantité "εP>i" positive qui a été relue à l'étape 201 de la figure 2. La valeur "εP>i" associée au paramètre "qP ;" est la même que celle décrite en relation avec l'étape 1202 de la figure 12. L'ordinateur 17 initialise alors la variable temporaire "z"', représentant la cote du point d'origine S' du vecteur anticollision "Vz11" pour la valeur "qPiiP i" du paramètre "i" de l'engin "P", à la valeur de la cote "zAG P e" de la face inférieure de l'élément "e" de l'engin "P" obtenue pour la valeur "qPiiP i" du paramètre "i" de l'engin "P". L'ordinateur restaure ensuite le paramètre "qP i" à sa valeur initiale en soustrayant de "qP i" la quantité "εP i". L'ordinateur 17 passe alors à l'étape 1305.
A l'étape 1304, atteinte si la variable "Vz112" a la valeur booléenne "vrai", c'est-à-dire si le risque de collision indiqué par "Vzn" concerne la face supérieure de l'élément "e" de l'engin "P", l'ordinateur 17 initialise la variable temporaire "z", représentant la cote du point S origine du vecteur anticollision "Vzn", à la valeur de la cote "zBG P e" de la face supérieure de l'élément "e" de l'engin "P". L'ordinateur 17 ajoute ensuite à la valeur du paramètre "qP i" la quantité "εP i". L'ordinateur 17 initialise alors la variable temporaire "z"', représentant la cote du point d'origine S' du vecteur anticollision "Vzn" pour la valeur "qP)iP " du paramètre "i" de l'engin "P", à la valeur de la cote "zAG P e" de la face inférieure de l'élément "e" de l'engin "P" obtenue pour la valeur "qPiiP>i" du paramètre "i" de l'engin "P". L'ordinateur restaure ensuite le paramètre "qP i" à sa valeur initiale en soustrayant de "qP i" la quantité "εP i". L'ordinateur 17 passe alors à l'étape 1305.
A l'étape 1305, l'ordinateur 17 teste si le produit "(z'-z)* Vzn-3", où "z" et "z"' sont les valeurs déterminées à l'étape 1302 ou 1303 et "Vzn-3" est la longueur du vecteur anticollision "Vzn" telle que déterminée à l'étape 701 de la figure 7, est positif. Si la réponse est négative, alors l'ordinateur 17 passe à l'étape 1307 qui sera décrite ci-après. Si la réponse est positive, alors le vecteur SS' a le même sens que le vecteur anticollision "Vzn", c'est-à-dire qu'une une variation positive du paramètre "qP ;" tendra à réduire le vecteur anticollision "Vzn", donc à augmenter le risque d'une collision. En conséquence, l'ordinateur 17 passe à l'étape 1306, où l'indicateur de coupure "C+i" est positionné à la valeur "vrai" pour indiquer que le mouvement "i" de l'engin "P" dans le sens positif du paramètre "qP i" doit être interdit. L'ordinateur 17 passe alors à l'étape 1307.
A l'étape 1307, l'ordinateur 17 teste si le produit "(z'-z)*Vzn 3" est négatif. Si la réponse est négative, alors l'ordinateur 17 passe à l'étape 1309 qui sera décrite ci- après. Si la réponse est positive, alors le vecteur SS' a un sens opposé à celui du vecteur anticollision "Vzn", c'est-à-dire qu'une une variation négative du paramètre "qP i" tendra à réduire le vecteur anticollision "Vzn", donc à augmenter le risque d'une collision. En conséquence, l'ordinateur 17 passe à l'étape 1308, où l'indicateur de coupure "CV' est positionné à la valeur "vrai" pour indiquer que le mouvement "i" de l'engin "P" dans le sens négatif du paramètre "qP i" doit être interdit. L'ordinateur 17 passe alors à l'étape 1309.
A l'étape 1309, l'ordinateur 17 augmente d'une unité l'indice de boucle "i", puis il passe à l'étape 1310.
A l'étape 1310, l'ordinateur 17 teste si l'indice de boucle "i" est supérieur au nombre "NbParamP" de paramètres de l'engin "P". Si la réponse est négative, alors l'ordinateur 17 retourne à l'étape 1302 décrite ci-dessus. Si la réponse est positive, c'est-à-dire, si les "NbParamP" paramètres "qP" de l'engin propre "P" ont été traités, le sous-programme "CoupuresDynamiquesVz" est terminé. En se référant plus particulièrement à la figure 14, on va maintenant décrite le sous-programme "EnvoiCoupuresDynamiques" apparaissant à l'étape 1112 de la figure 11.
Le sous-programme "EnvoiCoupuresDynamiques" commence à l'étape 1401.
A l'étape 1401, l'ordinateur 17 initialise l'indice de boucle "i" à la valeur 1, puis il passe à l'étape 1402.
A l'étape 1402, l'ordinateur 17 teste si la variable "C+/' est à la valeur booléenne "vrai". Si la réponse est négative, alors l'ordinateur 17 passe à l'étape 1404 qui sera décrite ci-après. Si la réponse est positive, l'ordinateur passe à l'étape 1403.
A l'étape 1403, atteinte si la variable "C+," est à la valeur "vrai", c'est-à-dire si l'ordinateur 17 a déterminé au moyen du procédé décrit plus haut que le mouvement du degré de liberté "i" de l'engin "P" devait être interdit dans le sens de variation positive du paramètre "qPjI", l'ordinateur 17 envoie à l'actionneur "i" concerné de l'engin "P" un ordre d'arrêt du mouvement dans le sens positif. L'ordinateur 17 passe alors à l'étape 1404.
A l'étape 1404, l'ordinateur 17 teste si la variable "C"," est à la valeur booléenne "vrai". Si la réponse est négative, alors l'ordinateur 17 passe à l'étape 1406 qui sera décrite ci-après. Si la réponse est positive, l'ordinateur passe à l'étape 1405.
A l'étape 1405, atteinte si la variable "C"," est à la valeur "vrai", c'est-à-dire si l'ordinateur 17 a déterminé au moyen du procédé décrit plus haut que le mouvement du degré de liberté "i" de l'engin "P" devait être interdit dans le sens de variation négative du paramètre "qP)1", l'ordinateur 17 envoie à l'actionneur "i" concerné de l'engin "P" un ordre d'arrêt du mouvement dans le sens négatif. L'ordinateur 17 passe alors à l'étape 1406.
A l'étape 1406, l'ordinateur 17 augmente d'une unité l'indice de boucle "i", puis il passe à l'étape 1407.
A l'étape 1407, l'ordinateur 17 teste si l'indice de boucle "i" est supérieur au nombre "NbParamP" de paramètres de l'engin propre P. Si la réponse est négative, l'ordinateur 17 retourne à l'étape 1402 précédemment décrite. Si la réponse est positive, c'est-à-dire si toutes les coupures dynamiques ont été envoyées aux actionneurs correspondants, alors le sous-programme "EnvoiCoupuresDynamiques" est terminé.
Le programme exécuté par le système informatique 27 est en tous points semblable à celui exécuté par le système informatique 17 ci-dessus. En conséquence, il ne sera pas décrit. Dans ce qui précède, on a décrit le mode de réalisation préféré du procédé de l'invention permettant de détecter les risques de collision entre les éléments des engins sur un même chantier.
L'homme de l'art pourra sans difficulté apporter des modifications et/ou des améliorations au mode de réalisation ci-dessus décrit du procédé de l'invention.
En particulier, dans un souci de clarté, l'exemple a été volontairement restreint à un cas simple constitué de deux engins. De même, les structures de données de l'exemple décrit ont été simplifiées, le type des engins traités a été restreint à celui de grues portiques modélisées comme étant constituées de cinq éléments parallélépipédiques, les changements de repère ont été limités à des translations, et le nombre des paramètres dynamiques a été limité à trois par engin.
Dans la pratique, l'homme de l'art pourra sans difficulté étendre l'exemple décrit à un nombre important d'engins sur un même chantier, les éléments des engins pouvant être prismatiques, cylindriques, etc.. De même, les engins considérés pourront avoir d'autres types : grues tournantes, grues levantes, engins sur rails, engins de terrassement, chariots de manutention, ponts roulants, etc., les changements de repère pourront facilement être généralisés au cas de changements de repère quelconques, et le nombre des paramètres dynamiques de chaque engin pourra être diminué ou augmenté en fonction du type d'engin utilisé.
De même, dans l'exemple présenté, les recherches de risque de collision ont été limitées à des couples d'éléments dont chacun appartient à des engins distincts. Toutefois, il est parfaitement possible d'étendre le procédé de l'invention à des éléments appartenant à un même engin, par exemple, pour éviter une collision entre la charge d'une grue et des éléments de cette dernière.
En conséquence, il sera évident pour le lecteur que le procédé de l'invention ne se limite pas à la description du mode de réalisation et/ou à l'exemple présentés ci- dessus, le procédé de l'invention n'étant limité que par les revendications annexées.

Claims

REVENDICATIONS
1. Procédé d'évitement de collision entre au moins deux entités physiques (1, 2), lesdites au moins deux entités physiques (1, 2) étant constituées d'éléments (11, 12, 13, 14, 15, 16, 21, 22, 23, 24, 25, 26), lesdits éléments (11, 12, 13, 14, 15, 16, 21, 22, 23, 24, 25, 26) étant définis par des points, lesdits points pouvant être connus sous forme numérique, lesdits points étant susceptibles de se déplacer simultanément suivant au moins un degré de liberté, chacun desdits déplacements simultanés requérant une variation minimale dudit degré de liberté correspondant avant l'arrêt, un système de type informatique (17, 27) étant utilisé pour stocker et traiter lesdits points sous forme numérique, ledit au moins un système de type informatique (17, 27) permettant de stocker et de traiter lesdits points sous forme numérique, caractérisé par le fait qu'un modèle numérique déformable est défini à l'intérieur dudit système de type informatique (17, 27) pour chacun desdits éléments (11, 12, 13, 14, 15, 16, 21, 22, 23, 24, 25, 26) desdites entités physiques (1, 2), ledit modèle déformable contenant l'ensemble des positions que les points dudit élément (11, 12, 13, 14, 15, 16, 21, 22, 23, 24, 25, 26) associé sont susceptibles de prendre lors d'une combinaison quelconque de déplacements simultanés suivant lesdits au moins un degrés de liberté lors desdites variations minimales avant l'arrêt, ledit système de type informatique (17, 27) calculant, pour au moins une entité (1, 2), une distance entre chacun desdits modèles déformables desdits éléments (11, 12, 13, 14, 15, 16) de ladite entité (1, 2) et chacun desdits modèles déformables desdits éléments (11, 12, 13, 14, 15, 16, 21, 22, 23, 24, 25, 26) de la même entité (1, 2) ou d'une autre entité (1, 2), ledit système de type informatique (17, 27) détectant un risque de collision lorsqu'au moins une desdites distances est inférieure à une distance de sécurité prédéfinie.
2. Procédé selon la revendication 1, dans lequel lesdites entités physiques (1, 2) sont des engins susceptibles d'être utilisés dans un atelier, sur un chantier de construction, de travaux publics ou de manutention, ou dans une zone portuaire.
3. Procédé selon l'une des revendications 1 ou 2, dans lequel chacune desdites entités physiques (1, 2) comporte un système de type informatique (17, 27).
4. Procédé selon l'une quelconque des revendications précédentes, dans lequel ledit au moins un système de type informatique (17, 27) comporte au moins un dispositif d'affichage permettant d'afficher lesdits modèles déformables pour un opérateur.
5. Procédé selon l'une quelconque des revendications précédentes, dans lequel une alarme est générée par ledit au moins un système de type informatique (17, 27) lors de ladite détection dudit risque de collision.
6. Procédé selon la revendication 5, dans lequel ladite alarme est une alarme sonore.
7. Procédé selon la revendication 5, dans lequel ladite alarme est une alarme visuelle.
8. Procédé selon l'une des revendications 5 à 7, dans lequel ladite alarme est destinée à au moins un des opérateurs desdits engins (1, 2).
9. Procédé selon l'une quelconque des revendications précédentes, dans lequel lesdites variations minimales avant l'arrêt sont déterminées ou mesurées par ledit au moins un système informatique (17, 27).
10. Procédé selon la revendication 9, dans lequel lesdites variations minimales avant l'arrêt sont affectées à une valeur prédéfinie d'une impossibilité de déterminer ou de mesurer lesdites variations minimales avant l'arrêt.
11. Procédé selon l'une quelconque des revendications précédentes, dans lequel lesdits modèles déformables sont bidimensionnels.
12. Procédé selon l'une revendications 1 à 10, dans lequel lesdits modèles déformables sont tridimensionnels.
13. Procédé selon la revendication 12, dans lequel lesdits modèles déformables sont approximés par un volume prismatique englobant obtenu comme l'ensemble des points parcourus par une base constituée d'un élément de surface lors d'un déplacement non compris dans ladite surface.
14. Procédé selon la revendication 13, dans lequel ladite base est plane.
15. Procédé selon la revendication 14, dans lequel le contour de ladite base plane est défini par un ensemble de segments de droite et d'arcs de cercle connectés.
16. Procédé selon l'une des revendications 13 à 15, dans lequel ledit déplacement est rectiligne.
17. Procédé selon la revendication 16, dans lequel ledit déplacement rectiligne est perpendiculaire au plan de ladite base.
18. Procédé selon l'une quelconque des revendications précédentes, dans lequel au moins deux systèmes de type informatique (17, 27) sont utilisés pour traiter lesdits points sous forme numérique.
19. Procédé selon la revendication 18, dans lequel un système de type informatique (17, 27) est associé à chacune desdites entités physiques (1, 2).
20. Procédé selon l'une des revendications 18 ou 19, dans lequel lesdits au moins deux systèmes de type informatique (17, 27) échangent des informations sous forme numérique.
21. Procédé selon la revendication 20, dans lequel lesdites informations sont échangées par lesdits aux moins deux systèmes de type informatique (17, 27) par un moyen de communication de type informatique (3).
22. Procédé selon la revendication 21, dans lequel ledit moyen de communication de type informatique (3) est un réseau de type informatique.
23. Procédé selon l'une quelconque des revendications précédentes, dans lequel ledit au moins un système de type informatique (17, 27) peut exercer un contrôle sur la variation d'au moins un degré de liberté d'au moins une desdites au moins deux entités physiques (1, 2).
24. Procédé selon la revendication 23, dans lequel ledit contrôle consiste en une coupure de la variation dudit au moins un degré de liberté.
25. Procédé selon la revendication 23, dans lequel ledit contrôle consiste en une réduction de la vitesse de variation dudit au moins un degré de liberté.
26. Procédé selon la revendication 25, dans lequel ladite réduction de vitesse est inversement proportionnelle à l'une desdites distances entre lesdites entités physiques (1, 2).
27. Procédé selon l'une quelconque des revendications précédentes, dans lequel une enveloppe globale simple est définie dans ledit système de type informatique (17, 27) pour chacune desdites au moins deux entités physiques (1, 2), deux desdites au moins deux entités physiques (1, 2) étant déterminées comme ne pouvant entrer en collision si leur enveloppes globales simples présentent une intersection vide.
28. Procédé selon la revendication 27, dans lequel ladite enveloppe globale simple est un prisme obtenu par déplacement d'une surface de base le long d'un trajet.
29. Procédé selon la revendication 28, dans lequel ladite surface de base est plane.
30. Procédé selon la revendication 29, dans lequel ladite surface de base plane est un disque circulaire.
31. Procédé selon l'une des revendications 28 à 30, dans lequel ledit trajet est rectiligne.
32. Procédé selon l'une des revendications 29 ou 30, dans lequel ledit trajet est rectiligne et perpendiculaire à ladite base plane.
33. Procédé selon l'une quelconque des revendications précédentes, dans lequel l'un au moins desdits au moins un système de type informatique (17, 27) comporte une mémoire non volatile.
34. Procédé selon la revendication 33, dans lequel ladite mémoire non volatile stocke sous forme numérique la configuration d'au moins une desdites entités (1, 2).
35. Procédé selon l'une des revendications 33 ou 34, dans lequel ladite mémoire non volatile est un disque dur d'ordinateur.
36. Système d'évitement de collision entre au moins deux entités physiques (1, 2), lesdites au moins deux entités physiques (1, 2) étant constitués d'éléments (11, 12, 13, 14, 15, 16, 21, 22, 23, 24, 25, 26), lesdits éléments (11, 12, 13, 14, 15, 16, 21, 22, 23, 24, 25, 26) étant définis par des points, lesdits points pouvant être connus sous forme numérique, lesdits points étant susceptibles de se déplacer simultanément suivant au moins un degré de liberté, chacun desdits déplacements simultanés requérant une variation minimale dudit degré de liberté correspondant avant l'arrêt, un système de type informatique (17, 27) étant utilisé pour stocker et traiter lesdits points sous forme numérique, ledit au moins un système de type informatique (17, 27) permettant de stocker et de traiter lesdits points sous forme numérique, caractérisé par le fait qu'il met en œuvre le procédé selon l'une quelconque des revendications précédentes.
PCT/FR2004/001905 2004-07-19 2004-07-19 Procede et systeme d'evitement de collision pour engins mobiles WO2006018485A1 (fr)

Priority Applications (7)

Application Number Priority Date Filing Date Title
EP04767728A EP1768821A1 (fr) 2004-07-19 2004-07-19 Procede et systeme d'evitement de collision pour engins mobiles
CNA200480043641XA CN1997490A (zh) 2004-07-19 2004-07-19 用于避免可移动机器碰撞的方法和系统
PCT/FR2004/001905 WO2006018485A1 (fr) 2004-07-19 2004-07-19 Procede et systeme d'evitement de collision pour engins mobiles
CA002573967A CA2573967A1 (fr) 2004-07-19 2004-07-19 Procede et systeme d'evitement de collision pour engins mobiles
AU2004322424A AU2004322424B2 (en) 2004-07-19 2004-07-19 Process and system for avoiding collisions for moveable machines
US11/632,657 US20080119960A1 (en) 2004-07-19 2004-07-19 Method and System for Avoiding Collisions Between Moveable Devices
JP2007521969A JP2008506611A (ja) 2004-07-19 2004-07-19 可動機械の衝突を回避するための方法及びシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/FR2004/001905 WO2006018485A1 (fr) 2004-07-19 2004-07-19 Procede et systeme d'evitement de collision pour engins mobiles

Publications (1)

Publication Number Publication Date
WO2006018485A1 true WO2006018485A1 (fr) 2006-02-23

Family

ID=34958866

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2004/001905 WO2006018485A1 (fr) 2004-07-19 2004-07-19 Procede et systeme d'evitement de collision pour engins mobiles

Country Status (7)

Country Link
US (1) US20080119960A1 (fr)
EP (1) EP1768821A1 (fr)
JP (1) JP2008506611A (fr)
CN (1) CN1997490A (fr)
AU (1) AU2004322424B2 (fr)
CA (1) CA2573967A1 (fr)
WO (1) WO2006018485A1 (fr)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2033919A3 (fr) * 2007-07-18 2011-12-07 Heidelberger Druckmaschinen Aktiengesellschaft Machine à imprimer dotée d'une protection électrique contre l'écrasement
CN113998595A (zh) * 2021-11-24 2022-02-01 大连科润重工起重机有限公司 无人化起重机自动化防碰撞控制系统

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090114612A1 (en) * 2007-11-01 2009-05-07 Roger Gail Nelson Universal collision avoidance override control system for overhead bridge cranes
WO2009130759A1 (fr) * 2008-04-22 2009-10-29 三菱電機株式会社 Procédé de commande numérique et machine à commande numérique
CN102658557A (zh) * 2012-06-01 2012-09-12 昆山市三众模具制造有限公司 自动机械手防撞装置
US9254824B2 (en) * 2013-12-30 2016-02-09 Automotive Research & Testing Center Adaptive anti-collision method for vehicle
CN105512459B (zh) * 2015-11-25 2020-12-11 陕西泰新博坤智能科技有限公司 塔式起重机间最短距离的精确计算方法
CN106042043A (zh) * 2016-05-23 2016-10-26 大族激光科技产业集团股份有限公司 一种钻码机的防撞系统及其防撞方法
EP3455153B1 (fr) * 2016-07-04 2020-05-27 Siemens Aktiengesellschaft Procédé et système pour éviter des collisions par des grues
CN107954321A (zh) * 2017-10-20 2018-04-24 扬戈科技股份有限公司 一种防碰撞预警系统
CN109573848A (zh) * 2019-01-24 2019-04-05 西安鑫锐弘信息工程有限公司 一种吊车防碰撞系统
CN109970009B (zh) * 2019-04-24 2024-02-23 江苏建筑职业技术学院 高空作业车防碰撞装置及方法
CN111449666B (zh) * 2020-03-09 2023-07-04 北京东软医疗设备有限公司 距离监测方法、装置、血管机、电子设备及存储介质
CN117574117B (zh) * 2024-01-16 2024-04-30 杭州宇泛智能科技有限公司 基于神经网络的塔群三维防碰撞快速计算模型的训练方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4578757A (en) * 1982-02-24 1986-03-25 U.S. Philips Corporation Method for preventing collision of two mutually movable bodies and an apparatus including an arrangement for preventing collision
US5347459A (en) * 1993-03-17 1994-09-13 National Research Council Of Canada Real time collision detection
US6393362B1 (en) * 2000-03-07 2002-05-21 Modular Mining Systems, Inc. Dynamic safety envelope for autonomous-vehicle collision avoidance system

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2341636A1 (de) * 1973-08-17 1975-03-13 Krupp Gmbh Kollisionsschutz fuer krane
JPS6127896A (ja) * 1984-07-17 1986-02-07 三井建設株式会社 クレ−ンの衝突防止方法
US4890241A (en) * 1987-10-26 1989-12-26 Megamation Incorporated Robotic system
DE10106023A1 (de) * 2001-02-09 2002-08-29 Fraunhofer Ges Forschung Verfahren und Vorrichtung zur Kollisionserkennung von Objekten
JP2003118981A (ja) * 2001-10-18 2003-04-23 Hitachi Ltd クレーン接近警報装置
US7114157B2 (en) * 2001-11-27 2006-09-26 Kuka Roboter Gmbh System controlling exclusive access by control programs to system resources
US6678582B2 (en) * 2002-05-30 2004-01-13 Kuka Roboter Gmbh Method and control device for avoiding collisions between cooperating robots
DE10236392A1 (de) * 2002-08-08 2004-02-19 Kuka Roboter Gmbh Verfahren und Vorrichtung zum Steuern von Handhabungsgeräten
DE10307261A1 (de) * 2003-02-20 2004-09-09 Siemens Ag Programmierplattform zur Erstellung von Teileprogrammen bei Werkzeug- oder Produktionsmaschinen
US7699021B2 (en) * 2004-12-22 2010-04-20 Sokudo Co., Ltd. Cluster tool substrate throughput optimization

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4578757A (en) * 1982-02-24 1986-03-25 U.S. Philips Corporation Method for preventing collision of two mutually movable bodies and an apparatus including an arrangement for preventing collision
US5347459A (en) * 1993-03-17 1994-09-13 National Research Council Of Canada Real time collision detection
US6393362B1 (en) * 2000-03-07 2002-05-21 Modular Mining Systems, Inc. Dynamic safety envelope for autonomous-vehicle collision avoidance system

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
KWON S J ET AL: "Self-collision avoidance for n-link redundant manipulators", DECISION AIDING FOR COMPLEX SYSTEMS. CHARLOTTESVILLE, VA., OCT. 13 - 16, 1991, PROCEEDINGS OF THE INTERNATIONAL CONFERENCE ON SYSTEMS, MAN AND CYBERNETICS, NEW YORK, IEEE, US, vol. VOL. 1 _, 13 October 1991 (1991-10-13), pages 937 - 942, XP010054847, ISBN: 0-7803-0233-8 *
XAVIER P G: "Fast swept-volume distance for robust collision detection", ROBOTICS AND AUTOMATION, 1997. PROCEEDINGS., 1997 IEEE INTERNATIONAL CONFERENCE ON ALBUQUERQUE, NM, USA 20-25 APRIL 1997, NEW YORK, NY, USA,IEEE, US, vol. 2, 20 April 1997 (1997-04-20), pages 1162 - 1169, XP010235618, ISBN: 0-7803-3612-7 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2033919A3 (fr) * 2007-07-18 2011-12-07 Heidelberger Druckmaschinen Aktiengesellschaft Machine à imprimer dotée d'une protection électrique contre l'écrasement
US8151706B2 (en) 2007-07-18 2012-04-10 Heidelberger Druckmaschinen Ag Apparatus with electrical crush protector and printing press having the apparatus
CN113998595A (zh) * 2021-11-24 2022-02-01 大连科润重工起重机有限公司 无人化起重机自动化防碰撞控制系统

Also Published As

Publication number Publication date
JP2008506611A (ja) 2008-03-06
CA2573967A1 (fr) 2006-02-23
US20080119960A1 (en) 2008-05-22
EP1768821A1 (fr) 2007-04-04
CN1997490A (zh) 2007-07-11
AU2004322424A1 (en) 2006-02-23
AU2004322424B2 (en) 2010-12-09

Similar Documents

Publication Publication Date Title
WO2006018485A1 (fr) Procede et systeme d&#39;evitement de collision pour engins mobiles
EP3353720B1 (fr) Procede et systeme de perception de corps materiels
EP3252615B1 (fr) Procede et systeme de determination de cellules traversees par un axe de mesure ou de visualisation
FR2713193A1 (fr) Procédé et dispositif pour détecter un dépassement des charges de dimensionnement d&#39;un aéronef.
EP3553762A1 (fr) Dispositif électronique et procédé de surveillance d&#39;une zone d&#39;intersection routière à destination de véhicule(s) automobile(s) autonome(s), programme d&#39;ordinateur associé
CA2813565A1 (fr) Detection de chargement et de dechargement de vehicule
FR2994259A1 (fr) Procede d&#39;estimation de la masse d&#39;un vehicule.
CA2964815A1 (fr) Procede et dispositif de surveillance d&#39;une roue aubagee de moteur d&#39;aeronef par mesure de position d&#39;equilibre
WO2022132239A1 (fr) Procédé, système et appareil de gestion d&#39;entrepôt par détection d&#39;une cargaison endommagée
CN110610137A (zh) 检测车辆行驶状态的方法、装置以及电子设备、存储介质
FR3075433A1 (fr) Procede de determination des bords saillants d&#39;une cible sur une image
FR3051926A1 (fr) Systeme de controle de composants d&#39;aeronefs
FR2944621A1 (fr) Procede de determination de parametres de fonctionnement d&#39;un vehicule automobile
FR2844880A1 (fr) PROCEDE PERMETTANT D&#39;EVALUER LA REPONSE TEMPORELLE D&#39;UN CAPTEUR DE NOx
WO2021176031A1 (fr) Procédé et système de détermination d&#39;une zone de visibilité de différents types d&#39;objets pour un véhicule autonome
EP3657415A1 (fr) Système de contrôle de chargement et de déchargement de palettes
JP4711866B2 (ja) 積載量推定プログラムおよび車両状況解析装置
EP3556287A1 (fr) Procédé de calibration d&#39;un réseau de magnétomètres
EP1331621B1 (fr) Procédé de supervision de l&#39;environnement d&#39;un véhicule
KR20140132555A (ko) 폐기물 관리 시스템 및 그 방법
EP4178842A1 (fr) Procédé de commande d&#39;un véhicule automobile muni de moyens de conduite autonome
EP3472015A1 (fr) Procédé de détermination d&#39;une classe de conduite de référence
EP4094179A1 (fr) Système de contrôle de chargement et de déchargement ou de transfert de zone de marchandises
EP2911776B1 (fr) Gestion du chargement en particules solides d&#39;un reacteur
FR2981150A1 (fr) Procede d&#39;identification d&#39;axes de mesure defaillant d&#39;un capteur triaxial

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DPEN Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed from 20040101)
WWE Wipo information: entry into national phase

Ref document number: 2004767728

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2573967

Country of ref document: CA

Ref document number: 374/DELNP/2007

Country of ref document: IN

WWE Wipo information: entry into national phase

Ref document number: 2007521969

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 200480043641.X

Country of ref document: CN

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2004322424

Country of ref document: AU

WWE Wipo information: entry into national phase

Ref document number: 1020077003726

Country of ref document: KR

ENP Entry into the national phase

Ref document number: 2004322424

Country of ref document: AU

Date of ref document: 20040719

Kind code of ref document: A

WWP Wipo information: published in national office

Ref document number: 2004322424

Country of ref document: AU

WWE Wipo information: entry into national phase

Ref document number: 11632657

Country of ref document: US

WWP Wipo information: published in national office

Ref document number: 2004767728

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 11632657

Country of ref document: US