System and method for controlling a robot in follower mode
The piloting system for robots uses a combination of sensors and real-time trajectory recalculations to improve follower mode navigation in complex environments, addressing the challenge of dense urban settings with enhanced precision and obstacle avoidance.
Patent Information
- Application Number
- FR2023011342
- Authority / Receiving Office
- FR · FR
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-10-19
- Publication Date
- 2025-04-25
AI Technical Summary
Existing robots in follower mode struggle to navigate complex and uncertain environments, such as urban areas with dense crowds and obstacles, due to inadequate environmental perception and obstacle avoidance capabilities.
A piloting system for robots that integrates multiple environmental perception sensors, including volumetric and visual data, combined with radio wave systems and inertial measurement, to estimate and predict the position of the master, and a trajectory module that recalculates a trajectory vector in real-time to ensure smooth navigation around obstacles.
Enhances the robot's ability to follow a master in dense environments by providing robust and precise tracking, even under unfavorable conditions, ensuring smooth and obstacle-avoiding movement.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
Title of the invention: System and method for controlling a robot in follower mode technical field
[0001] The invention relates to a control system for a robot in follower mode and a method for controlling a robot in follower mode. The invention relates more particularly to a logistics robot, that is to say, a robot having the capacity to load materials, products, packages, etc.
[0002] Robots, and in particular logistics robots, can have several modes of movement, one of which is the follow-me mode. In this mode, the robot follows a master, which can be a person, whether on foot or using a means of transport such as a scooter, bicycle, or vehicle. Alternatively, and according to the invention, the master can also be a robot. Once the robot is paired with its master, it follows them closely during their movements. In the case of a logistics robot, this robot can carry all types of heavy loads, leaving its master's hands free and thus avoiding strenuous tasks of carrying loads. Therefore, the robot can take on different dimensions depending on its intended use. Previous technique
[0003] Many mobile robots are known, most of which are designed to follow a person. These robots usually include one or more electric motors, powered by batteries, enabling them to perform these movements.
[0004] Although the movement of follower robots can be remotely controlled, advances in the field of autonomous robot piloting are leading robot manufacturers to design follower robots that are controlled by onboard computing systems. To date, follower robots are primarily used in warehouses and factories to transport heavy loads and thus reduce the physical strain on logistics personnel. These robots can move in follower mode thanks to onboard perception sensors. These robots are therefore used in stable and controlled environments, where a single sensor is sufficient because risks are controlled and reduced due to the controlled environment.
[0005] For example, US patent 2004 / 019929 describes a bipedal follower robot comprising a color camera-type sensor that enables it to recognize and follow its master. In particular, this robot is capable of following its master through shape recognition and visual tracking of that shape through the recorded video stream. However, a robot would necessarily lose its master in a environment or a large number of people move around, for example, within an urban environment, a shopping center, a public place such as a train station or an airport terminal, etc.
[0006] Document WO 2007 / 131299 describes a robotic golf cart that follows its operator using a radio frequency system with a transmitter worn by the operator and antennas on the cart. However, such a robot presents risks if it operates in an environment where radio interference may be present. For example, when metallic elements or structures are present in the robot's environment, the radio waves are disrupted and accuracy decreases significantly. Furthermore, in a dense urban environment, human bodies also obstruct radio waves and disrupt the operator's location. The robustness of the tracking method is therefore insufficient for using such a robot in a dense environment in terms of obstacles and / or human presence.
[0007] Finally, document US2011 / 0172850 describes a robot of a military infantryman that generates a master follow trajectory which is however not fine enough to avoid obstacles.
[0008] These prior art solutions do not allow robots to operate in follower mode in complex and uncertain environments such as cities, because their perception of the environment is not fine enough and does not allow them to follow a master in a complex environment while avoiding multiple obstacles which may be made up of living beings or material obstacles such as furniture or urban equipment.
[0009] The invention aims to overcome all of these drawbacks. Description of the invention
[0010] The invention aims to provide a technical solution to improve the following mode of a robot.
[0011] The invention aims to provide a robot capable of following a master in a complex environment such as an urban environment, particularly in the middle of a crowd such as a pedestrian shopping street.
[0012] To this end, the present invention relates to a control system for a robot in follower mode configured to follow the movement of a master, the robot comprising means of movement including in particular wheels and a motor configured to drive the wheels in rotation in a direction of movement, the control system comprising: - an environmental perception module which includes: sensors to perceive the environment around the robot, said sensors being configured to collect data from the environment, • estimators of the master's position relative to the robot, the master's position estimators using the collected data to estimate the master's position according to data of different natures, the master's position being estimated by position coordinates (X, Y) and a movement orientation (0) in a 2D or 3D frame of reference of the robot, • odometry devices to determine the robot's position and the robot's movement parameters in space, - a master identification module configured to determine the master's position relative to the robot's position in said frame of reference; the identification module determines the master's position at a given time t by merging the positions estimated by the perception module, - a trajectory module configured to model a master trajectory vector defined by a sequence of a determined number of points spaced a predetermined distance apart in said coordinate system, each point being defined by coordinates (X, Y, O) of the master determined by the identification module at time t; the trajectory vector comprises a constant number of points separating the robot from its master; the trajectory module is configured to recalculate the trajectory vector at each time t, and - a control module which is configured to define a linear speed setpoint and an angular speed setpoint of the robot as a function of the position of the master and the trajectory vector, the control module being configured to actuate the means of movement as a function of said linear speed setpoints and angular speed setpoints so as to follow the trajectory vector or the master.
[0013] The use of sensors of different types makes it possible to make position estimates using visual and volumetric data from various technologies, ensuring continuous tracking of the master in a dense environment, for example, an urban environment, or in adverse weather conditions. The fusion of master position estimates makes the detection of changes in the master's movement more robust, while the use of a trajectory vector makes it possible to refine the master's trajectory and thus avoid obstacles that the master has bypassed.
[0014] Orientation 0 corresponds in practice to the master's heading, while the angular velocity setpoint corresponds to the direction angle which is determined so that the robot may follow the master's trajectory.
[0015] [Perception Module]
[0016] In some embodiments, the perception module may include: - one or more volumetric sensors configured to model the environment surrounding the robot in 2D or 3D and to measure the distances between the objects detected in the digital model and the robot, - one or more cameras that are configured to capture color images in the visible spectrum, and - at least one master position estimator that is configured to re-recognize the master within the images and correlate these images with objects detected in the digital model of the environment surrounding the robot in order to determine a relative position of the master with respect to the robot.
[0017] The coupling between volumetric data and visual data makes it possible to re-recognize the master, in particular using visual data, and then to estimate the actual distance between the master and the robot.
[0018] In some embodiments, the odometry devices may include: - an inertial measurement unit integrated into the robot that is configured to measure linear accelerations and angular velocities of the robot, and - linear velocity sensors and angular velocity sensors of the robot.
[0019] In some embodiments, the perception module may include: - a near-field radio wave system, for example of the UWB, WIFI or Bluetooth type, with one or more antennas integrated into the robot while a transmitter is carried by the master, the radio wave system being configured to estimate the position of the master relative to the robot, - an inertial measurement unit (IMU) carried by the master and configured to measure linear and angular accelerations, and - a third position estimator which is configured to estimate the position of the master through data measured by the radio wave system and said inertial measurement unit.
[0020] Integrating a position estimation system for the master robot using radio technology allows the master robot to be identified even when it is visually obscured by obstacles or other people. This embodiment improves the robot's perception in urban environments.
[0021] [Identification module]
[0022] In some embodiments, the identification module can be configured to predict the future position of the master using acceleration data provided by the inertial measurement unit carried by the master. The predicted future position helps guide estimators in their estimation of the master's future position. The prediction of the The future position of the master helps to strengthen the robustness of the recognition of the master and therefore of the monitoring of the latter.
[0023] In embodiments, the identification module can be configured to pair the robot with the master; the identification module is configured to activate at least the perception sensors and estimators in order to detect the master and record a characteristic signature in a memory integrated into the robot.
[0024] [Trajectory Module]
[0025] In some embodiments, the trajectory module can be configured to recalculate the trajectory vector by recording a new point at each time t, the new point (X, Y, 0) corresponding to the last identified position of the master, while the first point of the sequence, which is the oldest in said sequence, is forgotten or archived. The real-time calculation of the trajectory vector makes it possible to optimize the tracking of the master during its movements.
[0026] In some embodiments, the trajectory vector may comprise at least 30 points, preferably 50 points, and even better 100 points. More specifically, the points may be spaced between 5 cm and 50 cm apart, preferably between 10 cm and 30 cm. The smoothness of the robot's trajectory depends on the number of points in the trajectory vector; the greater the number of points, the smoother the trajectory. In practice, one hundred points provide a good compromise between the required computing power and the smoothness of the trajectory.
[0027] In some embodiments, the trajectory module may include a trajectory vector filter configured to model the trajectory. This filter includes, in particular, polynomial functions and / or spline functions applied to a sequence of points with coordinates (X, Y, 0) defining a linear trajectory. The filter helps to streamline the trajectory calculation so that the robot moves smoothly without jerking.
[0028] [Control Module]
[0029] In embodiments, the control module can be configured to define, on the one hand, a virtual anticipation circle of determined diameter around the robot, and on the other hand, a master tracking reference point which is determined by the intersection between the virtual anticipation circle and the trajectory vector, the control module being configured to determine the angular velocity setpoint of the robot as a function of the tracking reference point.
[0030] In some embodiments, the control module can be configured to define the linear speed setpoint of the robot based, on the one hand, on a comparison of the actual distance between the master and the robot, measured by the perception module, and a predefined threshold distance between the master and the robot, and on the other hand, on the linear speed of the master, which is also estimated by the perception module. Taking into account the robot-master distance and the linear speed of the master allows the robot to follow the master by giving it a progressive, smooth speed of movement.
[0031] [Diagnostic Module]
[0032] In embodiments, the control system may include a diagnostic module which is configured to evaluate a degree of criticality of the perception module, the identification module, the trajectory module, and the control module; the diagnostic module thus evaluates the data provided by each of said modules and is configured to stop the robot when the data provided by one of the modules does not correspond to the expected data.
[0033] [Human-Machine Interface]
[0034] In some embodiments, the control system may include a human-machine interface comprising: - visual and / or audible warning devices and a robot pairing command to the master, the warning devices being configured to inform the master when the identification module no longer detects the master, and - the pairing control including in particular a button and / or a console such as a touch screen. [Master]
[0035] In embodiments, the robot in follower mode can be configured to follow a master which is a human or a vehicle, and said vehicle is autonomous or piloted by a human.
[0036] [Method for controlling a robot in follower mode]
[0037] The invention also relates to a method for controlling a robot in master follower mode, the method comprising: - the perception of the environment around the robot, including: • the collection of visual and volumetric data of the environment surrounding the robot, the volumetric data being of several types such as telemetry, visual, • Estimates of the master's position in a 2D or 3D coordinate system by correlating volumetric data with visual data to recognize the master and estimate the master's position using X, Y position coordinates and a zero orientation within said coordinate system, each estimate correlating visual data with distance data of different types, and • the determination at a given time t of the position and displacement of the robot in said frame of reference, which is determined by organs odometry sensors onboard the robot and an odometric estimator; - determining the position (X, Y, 0) of the master at a time t by merging the estimated positions; - the construction of a master trajectory vector, the trajectory vector comprising a determined number of points separated from each other by a determined distance in said frame, each point corresponds to a position (X, Y, 0) of the master which has been determined at a time t, the trajectory vector includes a constant number of points which separate the robot from its master, the trajectory vector being recalculated at each time t; - the robot control, which is achieved by defining a linear speed setpoint and an angular speed setpoint for the robot as a function of the master's position (X, Y, 0), the master's linear and angular speeds, the trajectory vector, and the robot's position and displacement at time t; and - the actuation of the robot's means of movement according to the said linear speed and angular speed instructions so as to follow the master directly or indirectly through the trajectory vector, the means of movement including in particular a motor configured to drive wheels in rotation in a direction of movement.
[0038] The method has characteristics equivalent to those of the control system and therefore offers the same advantages.
[0039] [Perception]
[0040] In some embodiments, perception may include: - 2D or 3D modeling of the environment and objects surrounding the robot in order to provide a digital model of said environment, which is created by volumetric detection and measurement of distances between the detected objects and the robot, - the capture of color images of the environment surrounding the robot, the images being recorded by color cameras, and - at least a first estimate of the master's position within the digital model, the master being detected by visual recognition in the color images, the color images then being correlated with the digital model to estimate the relative position of the master with respect to the robot.
[0041] In some embodiments, the control method includes measurements of the robot's movement which are carried out by measuring the linear accelerations and angular velocity of the robot; these measurements are performed by an inertial measurement unit integrated into the robot.
[0042] In some embodiments, the piloting method may include a third estimation of the master's position which is carried out by the diffusion of radio waves to estimate a position and a measurement of the linear velocity and angular velocity of the master.
[0043] [Position identification]
[0044] In embodiments, the piloting method may include predicting the future position of the master using linear and angular velocity data determined during the third estimation.
[0045] In embodiments, the control method may include pairing the robot with the master, the pairing being carried out by detecting the master using the robot's perception organs and recording a characteristic signature, in particular a visual one, in a memory integrated into the robot.
[0046] [Trajectory modeling]
[0047] In embodiments, the trajectory vector can be recalculated at each instant t by recording a new point corresponding to the last identified position of the master, while the first point of the sequence, which is the oldest of said sequence, is forgotten or archived.
[0048] In embodiments, the trajectory vector may comprise at least 30 points, better 50 points and even better 100 points, more particularly the points may be separated in pairs by a distance of between 5 cm and 30 cm, better between 10 cm and 20 cm.
[0049] In some embodiments, the construction of the trajectory vector may include refining the trajectory vector in order to model a regular linear trajectory, the process in particular applying polynomial functions to the sequence of coordinates (X, Y, 0) which make up the trajectory vector.
[0050] [Robot piloting]
[0051] In some embodiments, the control method may include defining a reference point that allows the robot to be controlled by the trajectory vector, the reference point being defined by an intersection between, on the one hand, a virtual anticipation circle of a determined diameter extending around the robot, and on the other hand, the trajectory vector, the angular velocity of the robot being defined at each instant t as a function of the coordinates (X, Y, 0) of the reference point. In particular, the virtual anticipation circle is centered on the robot.
[0052] In embodiments, trajectory tracking may include defining the linear speed setpoint of the robot as a function, on the one hand, of comparing an actual distance between the master and the autonomous robot which is measured by the perception organs and a predefined threshold distance between the master and the robot, and on the other hand, of the linear speed of the master which is also estimated by the perception organs.
[0053] [Diagnostic]
[0054] In some embodiments, the control method may include evaluating the criticality level of the perception of the environment and the master, the first position estimation, the second position estimation, the third position estimation of the master's determined position, and the identified position of the master, the diagnostic module being configured to stop the autonomous robot when the identified position of the master is faulty and / or when a threshold number of estimations is faulty. Brief description of the drawings
[0055] Other features and advantages of the invention will become apparent from the following description. This description is purely illustrative and should be read in conjunction with the accompanying drawings, in which:
[0056] [Fig-1] is a schematic representation of a synoptic diagram of a system of piloting a robot in conformal follower mode of an embodiment of the invention.
[0057] [Fig.2] is a schematic representation of an embodiment of the invention in which data collected by the perception organs are fused in order to determine the position of the master in a 2D or 3D frame of reference of the robot in follower mode.
[0058] [Fig.3] is a schematic representation of the modeling of the master's trajectory according to one embodiment of the invention.
[0059] [Fig.4] is a schematic representation of the evolution of the modeled trajectory at time +1 when the master has moved relative to time t.
[0060] [Fig.5] is a schematic representation of the robot's control in follower mode according to the trajectory modeled in accordance with an embodiment of the invention.
[0061] [Fig. 6] is a schematic representation of a logic diagram illustrating a method for controlling a robot in conformal follower mode of an embodiment of the invention. Description of embodiments
[0062] With reference to figures 1 to 6, the invention relates to a control system 10 of a robot 100 in follower mode and to a control method 200 of a robot in follower mode, also called "follow me" mode in English.
[0063] According to the invention, the control system 10 is configured so that the robot 1 follows the movement of a master 11. To this end, the robot 1 includes means of movement that allow it to move in space. In particular, in the present example, the robot 1 may be a logistics robot which includes, among other things, wheels and a motor configured to drive the wheels in rotation, as well as a steering motor configured to orient the wheels in a predetermined direction of movement.
[0064] [Perception Module]
[0065] As illustrated in [Fig. 1], the control system 10 includes an environmental perception module 20 that enables the master 11 to be recognized within its environment. The perception module 20 includes environmental perception sensors around the robot 1. These sensors are configured to collect environmental data. The receiving module 20 also includes estimators of the master 11's position relative to the robot 1. These estimators use the collected data to estimate the master 11's position. In practice, the estimators are algorithms that can be stored and executed in a computer embedded in the robot 1.
[0066] According to one embodiment, the perception module 20 may include one or more volumetric sensors 21, 23. The volumetric sensors 21, 23 are configured to model in 2D or 3D the environment surrounding the robot 1 but also to detect objects around the robot 1. The volumetric sensors 21, 23 are also configured to measure the distances between these detected objects and the robot 1. The perception module 20 also includes one or more cameras which are configured to capture color images, particularly in the visible spectrum.
[0067] The perception module 20 also includes a position estimator for the master 11, which is configured to recognize the master 11 within the color images. The estimator is also configured to correlate these images with objects detected in the digital model of the environment surrounding the robot 1 in order to determine a relative position of the master 11 with respect to the robot 1. The relative position of the master 11 is estimated by position coordinates (X, Y) and a movement orientation (0). In the remainder of this document, a position of the master 11 is defined according to these three parameters (X, Y, 0).
[0068] According to one embodiment, the volumetric sensors comprise a laser remote sensing sensor 21, for example of the LIDAR type, which is configured to collect 2D or 3D images containing point clouds. The LIDAR is also known as a 2D or 3D scanner. The position of each point is determined based on the time of flight measured between the emission and reception of the laser beam, the intensity of each point varying according to the reflective capacity of the point on which the beam was reflected. The laser remote sensing sensors 21 make it possible to measure, using a laser, the distance between the robot 20 and the objects surrounding it, and in particular the distance to the master 11.
[0069] A remote sensing sensor 21 can include a horizontal field of view of at least 120 degrees with a preference of 270 degrees in front of the robot or 360 degrees around the robot 1. To obtain two-dimensional or 2D images, a single laser beam is diffused, whereas the diffusion of several multidirectional beams is necessary to obtain three-dimensional or 3D images.
[0070] According to this embodiment, the perception module 20 can include one or more cameras 22, 23 which are configured to capture images in the visible or invisible domain and to send a video stream.
[0071] According to a particular embodiment, the perception module 20 may include four RGB type cameras 22 which are arranged on the robot 1 so as to provide 360-degree images around the robot 1.
[0072] The first estimator estimates the position of the master 11 using the different point clouds measured by the remote sensing sensor 21. These point clouds correspond to objects; in a pedestrian environment, each point cloud corresponds to a pedestrian. The master 11 can only be distinguished by the estimated distance, which is known to the robot 1 using the images from the remote sensing sensor 21. The first estimator performs a registration between the images provided by the cameras 22 and the point clouds measured by the remote sensing sensor 21. Indeed, the images provided by the cameras 22 allow the first estimator, using a visual recognition algorithm, to classify all the objects around the robot 1. For example, the objects around the robot 1 can be classified as pedestrians or obstacles such as street furniture (fire hydrants, curbs, benches, etc.).The point clouds provided by the LIDAR allow for the precise positioning of the recognized objects in space around robot 1.
[0073] When several pedestrians are recognized, in order to identify a local cluster of point clouds corresponding to the master 11, the first estimator can include image processing algorithms based on re-identification. These algorithms search, in each new image, among the detected pedestrian objects, for the one closest to the master 11 identified in the previous images. These visual recognition algorithms can operate, for example, on the color of the clothing worn by the master. Visual recognition algorithms are known to those skilled in the art; for example, a convolutional neural network, also known by the abbreviations "CNN" and "ConvNet," can be used.
[0074] According to one embodiment, in order to improve the visual recognition of Master 11, the latter may wear clothing with distinctive visual characteristics such as a vest with a reflective strip. According to this embodiment, the first estimator may use the light intensity of the points in the point clouds of the digital model provided by the LiDAR to improve the recognition of Master 11. Indeed, the colors of the reflective strips exhibit a high intensity in the point clouds provided by the LiDAR.
[0075] Ultimately, according to this embodiment, the first estimator recognizes the point cloud corresponding to master 11 by using, in particular, the color of the garment, which stands out in the intensity of the point clouds measured by the LIDAR, and which allows visual recognition through the implementation of visual recognition algorithms.
[0076] According to an embodiment illustrated in [Fig. 1], the volumetric sensors may include one or more color depth cameras that also provide information about the image depth. Dual-focal-length stereoscopic color cameras or active 3D cameras, also known as TOF cameras, provide depth data for the recorded images. The acronym TOF stands for Time of Flight. The field of view of active 3D or stereoscopic cameras is limited to approximately 100°. Thus, several depth cameras can be distributed on the robot to cover a wider field.
[0077] According to this embodiment, the perception module 20 includes a second master position estimator 11 which is configured to estimate the position of the master 11 using data from the depth cameras 23. The second estimator constructs a color depth image and calibrates the depth images with the RGB type images from the camera 22 which have been previously processed by visual recognition algorithms as described above in the first master position estimation which correlates the RGB images and the data from the LIDAR.
[0078] In this case, the second estimator obtains position information using images captured by the depth camera 23, which also provides information on the colors worn by the master 11; this data is correlated with the RGB camera data which has been previously processed by visual recognition algorithms as described above.
[0079] The second estimator uses visual recognition algorithms to define, among the detected pedestrian objects, the one that is the master 11. The algorithm then returns the center of gravity of the "master" pedestrian detected in its field of vision.
[0080] Note that active 3D or TOF cameras return very dense point clouds in front of them. In this case, the pedestrian clouds can be extracted and the master point 11 determined in the same way as for correlating LiDAR data with RGB camera data.
[0081] According to another embodiment illustrated in [Fig. 1], the perception module 20 may include a near-field radio wave system 24 using UWB, Wi-Fi, or Bluetooth protocols. The radio wave system 24 may thus include one or more antennas integrated into the robot 1, while a transmitter is carried by the master 11. In particular, two antennas may be mounted on the robot 1.
[0082] In addition, the perception module 20 may include an inertial measurement unit 25 which is carried by the operator 11. The inertial measurement unit (IMU) 25 measures linear and angular accelerations of the operator 11 during its movements. The IMU 25 can be coupled to the transmitter of the radio system 24, for example, within an electronic unit. Advantageously, the electronic unit can be integrated into a vest with a reflective strip worn by the operator 11. This unit can also be equipped with a transmitter / receiver compatible with Bluetooth or Wi-Fi protocols to transmit the data measured by the IMU 25 to the robot 1, which includes a transmitter / receiver technologically compatible with that of the electronic unit worn by the operator 11.
[0083] The perception module 20 includes a third position estimator configured to estimate the position of the master 11 using data measured by the radio system 24. In particular, the third estimator can locate the transmitter worn by the master 11 using a triangulation or trilateration method. This method reconstructs the position of the transmitter worn by the master according to (X, Y) coordinates in a two-dimensional coordinate system whose origin is the robot 1. The information measured by the inertial measurement unit of the master 11 allows for the measurement of linear accelerations along the three axes (X, Y, Z), as well as angular velocities along the three axes (X, Y, Z) and magnetic forces also along the three axes.
[0084] The first estimation of the position of master 11, which uses data from the remote sensing sensor (LIDAR) and RGB images, is the most accurate. However, this estimation may have difficulty identifying master 11 in the middle of a crowd or when weather conditions are poor, for example, when it is raining or snowing.
[0085] The second estimation which uses images from depth cameras is more efficient than the first estimation when it is raining or snowing, however its field of vision is more reduced unless the number of cameras is increased.
[0086] The third estimation which uses the radio system 24 makes it possible to give an indication of the position of the master 11 in case of visual obstruction between the master 11 and the robot 1. This kind of situation can be encountered in the middle of a crowd for example.
[0087] Thus, according to an advantageous embodiment, the perception module 20 includes the remote sensing sensor 21, RGB type cameras 22, depth cameras 23 and a radio system 24 coupled to an inertial measurement unit 25 carried by the master 11. The robot 1 can then benefit from three estimates of the position of the master 11 by three different and complementary technologies which allow, in multiple situations, to recognize the master 11 and determine its relative position with respect to the robot 1 in the space surrounding the latter.
[0088] The estimators are configured to return a diagnosis that gives an in- This indicates the degree of confidence in the estimate of the master position (X, Y, 0) provided by the estimators. These diagnoses are based, for example, on covariance matrices that measure the degree of confidence P in the estimate.
[0089] For each type of data, the corresponding estimator checks the time between two messages, the quality of the measured data (image, digital model or radio signal), the detection or not of the master according to each type of data etc.
[0090] In an embodiment illustrated in [Fig. 1], the perception module 20 includes odometry devices 26 configured to determine the position and movement parameters of the robot. The odometry devices 26 may include an inertial measurement unit 27 integrated into the robot 1, configured to measure linear accelerations and angular velocities of the robot. In addition, the odometry devices 26 may include linear velocity sensors and angular velocity sensors of the robot 1. The latter may consist of encoders arranged on each wheel to measure their rotational speeds and on the steering motor to estimate the steering angles of each wheel. [0091 ] [Identification module]
[0092] As illustrated in [Fig. 1], the control system 10 includes a master identification module 30 configured to determine the position of the master 11 relative to the robot 1. The position of the master 11 is advantageously determined in a 2D or 3D coordinate system whose origin is defined by the robot 1. To reliably determine the position (X, Y, 0) of the master 11, the identification module 30 is configured to fuse the positions estimated by the perception module 20 at a given time t. The resulting position (X, Y, 0) is temporarily stored in a buffer memory that can be integrated into the electronics of the robot 1. The position is recorded with the parameter t, which allows the position to be classified over time relative to the positions previously recorded at tn and those that will be recorded in the future at t+n, where n is an integer corresponding to a time of recording of the position of the master 11..
[0093] According to one embodiment, the identification module 30 can be configured to record a new position (X, Y, 0)t+1 of the master 11 based on the time elapsed since the previous position (X, Y, 0)t, or preferably, based on a threshold distance traveled by the master from position (X, Y, 0)t. For example, the threshold distance can be between 10 and 50 cm; a new position (X, Y, 0)t+1 is then recorded each time the master travels the threshold distance. The distance between two positions (X, Y, 0) can be determined using the remote sensing sensor 21, the depth camera 23, or the radio system 24.
[0094] According to an embodiment illustrated in [Fig. 2], the identification module 30 is configured to merge the estimated positions of the master 11 according to an algorithm that uses several cascaded sequences. According to a first sequence, a prediction of the new position (X, Y, 0)P(t+i) is corrected by comparing it with the first estimate of the position (X, Y, 0)Ei(t+i) of the master, which is itself corrected according to its degree of confidence P.
[0095] According to a second sequence, the new position (X, Y, 0)Si(t+i) from the first sequence is in turn corrected by being compared to the second estimated position (X, Y, 0)E2t+i) itself corrected according to its degree of confidence P. The second sequence results in a new position (X, Y, 0)S2(t+i), which serves as input data for a third sequence, in which the third estimated position (X, Y, 0)E3t+i is used to correct the position from the second sequence as previously described.
[0096] The output of the third sequence thus yields a new position (X, Y, 0) t+i in the reference frame of robot 1, which can be called the odometric reference frame. This new position, resulting from the fusion of the previously estimated positions, reduces the noise of the estimated positions and, if necessary, allows for the exclusion of an estimated position if it is not deemed sufficiently reliable at time t. The linear and angular velocity values of master 11 can also be taken into account in the data fusion to determine the relative velocity of master 11 in the odometric frame, that is, the relative velocity of master 11 with respect to robot 1.
[0097] The identification module 30 not only determines and records the new position of the robot (X, Y, 0) t+b, but also defines the distance between the robot 1 and the master 11, as well as the relative velocity of the master with respect to the robot in the odometry frame. The velocity can be determined using two vectors Vx and Vy.
[0098] According to one embodiment, using the position (X, Y, 0) t, the master's velocity (Vx, Vy), and the distance between the master 11 and the robot 1, the identification module 30 can thus predict the subsequent position (X, Y, 0) t+i of the master 11. The master's velocity can be obtained, in particular, using the acceleration data provided by the inertial measurement unit 25 carried by the master. This prediction can be used by the perception module 20 as a parameter to recognize the master 11 in the various measured data. In particular, estimators can use this prediction as input data to detect the master 11.
[0099] To perform the cascading data processing illustrated in [Fig. 2] during each sequence, the identification module 30 can use an extended Kalaman filter that is known to those skilled in the art. The extended Kalaman filter can be an algorithmic model of a physical / mathematical type or a learning model such as neural networks.
[0100] According to one embodiment, the identification module 30 is configured to pair the robot 1 with the master 11. For this purpose, the control system 10 includes a The command is configured to initialize the pairing of robot 1 with master 11. This command informs the identification module 30 that the person identified in front of robot 1 by the perception module 20 is master 11. The command may include a human-machine interface which can be a button located on robot 1, a voice sequence that the master must pronounce, gesture recognition that the master must perform, or a command integrated into an application stored and executed by a console on board the robot or in a mobile terminal such as a smartphone or other.
[0101] The control then activates the perception modules 20 through its various sensors and estimators. For example, the remote sensing sensor searches the front of the robot for an aggregate of point clouds or "cluster", and then shape and color identification is performed using the RGB cameras 22. The stereoscopic camera also searches for a cluster, and when the system includes a radio module 24, pairing between the transmitter carried by the master 11 and the receiving antennas of the robot 1 can also be triggered.
[0102] The identification module 30 is thus configured to actuate at least the perception sensors, the estimators in order to detect the master and record a characteristic signature in a memory integrated into the robot 1. By characteristic signature, we mean a shape (aggregate of point clouds), a clothing color and / or the radio system transmitter 24.
[0103] According to one embodiment, the identification module 30 executes its cascading data fusion algorithm to determine the first position (X, Y) of the master 11. The identification module 30 may also include a filter used to average the estimated positions in order to give an initial position to the fusion algorithm.
[0104] [Trajectory module]
[0105] As illustrated in [Fig.1], the steering system 10 includes a trajectory module 40 which is configured to model a trajectory vector 41 of the master as illustrated in [Fig.3].
[0106] As can be seen in [Fig. 3], the trajectory vector 41 is defined by a sequence of a determined number of points 42. Each point 42 is defined by coordinates (X, Y, O) of the master, which correspond to a position of the master recorded at time t by the identification module 30. The points 42 are represented here by stars, while the trajectory vector 42 is represented by a dashed line. The points 42 are separated from each other by a determined distance in the X, Y coordinate system. It is the X, Y coordinates of each point 42 that allow them to be positioned in the X, Y coordinate system, which is defined with the robot as the origin. In particular, the center of gravity of the robot can be defined as the origin of this coordinate system. X, Y.
[0107] According to one embodiment, the points 41 are separated in pairs by a distance of between 5 cm and 50 cm, preferably between 10 cm and 30 cm. This distance can correspond to the threshold distance between the two recorded positions (X, Y, 0) of the master 11. The coordinates X, Y can be expressed in meters while theta (0), which corresponds to the orientation or heading of the master, is expressed in degrees.
[0108] Advantageously, the trajectory vector 40 comprises a constant number of points 42, these points 42 separating the robot 1 from its master 11. Therefore, the trajectory module 40 is configured to recalculate the trajectory vector 41 at each instant t. The set of points 42 of the trajectory vector 41 are temporarily stored in a buffer memory which can be embedded in the electronics of the robot 1. The trajectory vector 41 evolves as the master 11 progresses through space.
[0109] Therefore, the trajectory module 40 is configured to recalculate the trajectory vector 41 by recording a new point 42 at each instant t. The new point 42 corresponds to the last identified position of the master 11. In the example of [Fig. 3], the new point 42 corresponds to the star closest to the master 11. In parallel, and preferably simultaneously, the oldest point in the sequence is forgotten from the buffer memory, that is, the one closest to robot 1. In the example of [Fig.[3] An arrow on robot 1 indicates the direction of its movement, so that the trajectory vector 41 corresponds to points 42 which are located between robot 1 and master 11, points 43 and the resulting trajectory vector have been passed by robot 1, it is therefore possible to erase them from the buffer memory of trajectory vector 41 or to archive them in another memory of robot 1 as part of a trajectory already traveled.
[0110] According to one embodiment, the trajectory vector 41 comprises at least thirty points 42, better fifty points 42, and even better one hundred points 42. Table 1 above illustrates a trajectory vector 41 at a time t comprising one hundred points 42, each point 42 being defined by coordinates (X, Y, 0). The first point (XI, YI, 01) corresponds to the most recent point 42 and therefore the furthest from robot 1, while the last point (XI00, Y100, 0100) corresponds to the point closest to robot 1, which is also the oldest position of the trajectory vector 4L [Table 1]. X XI X2 X3 X98 X99
[0111] Fig. 4 illustrates the evolution at time t+1 of the modeling of the trajectory vector 41 of Table 1. At time t+1, the master has moved, in particular, by a distance greater than the threshold distance, a new position (X, Y, 0)t+1 is therefore recorded by the identification module 30. The trajectory module 40 is then configured to implement the trajectory vector 41 of this new position (X, Y, 0)t+i. In the example of [Fig.4], this new position (X, Y, 0)t+i is implemented in the trajectory vector 41 as the point 42 of rank 1, the following points 42 have been incremented by one rank and the last point, here, the point of rank 100, has then been removed from the trajectory vector 41 and can be forgotten by the trajectory module 40. The forgotten points 43 correspond in all cases to a trajectory that the robot 1 has already traveled (see [Fig.3]).
[0112] A trajectory vector 41 which is endowed with a large number of points 42 and in particular with a number of points 42 greater than or equal to thirty makes it advantageous to define a trajectory sufficiently precise for the robot 1 to bypass obstacles which are bypassed by the master 11.
[0113] According to one embodiment, the trajectory module 40 may include a trajectory vector filter 41 configured to model a smooth trajectory, that is, a more flexible trajectory without erratic or jerky movements. To this end, the filter is configured to reduce the noise of the trajectory vector 4L. The latter is noisy because calculating each point 42 of the trajectory vector 41 involves a significant number of calculations and interpretations of what the perception module 20 of the robot 1 sees. To reduce the noise, the filter may include, in particular, polynomial functions or splines applied to a sequence of points with coordinates (X, Y, 0) to define a trajectory that can be described as linear or a smooth trajectory, allowing the robot 1 to move without jerky or erratic movements.
[0114] For example, a first polynomial function of degree 3 can be used on the line bearing the X coordinates of the trajectory vector 4L. In parallel, a second polynomial function of degree 3 on its line bearing the Y coordinates of the trajectory vector 41 can be used, and the orientations (0) of said vector are recalculated so as to follow a smooth orientation of the trajectory. The calculation of the orientation (0) of a filtered point 42 can be carried out using the previous points 42 that make up the trajectory vector 4L. In particular, for the recalculation of the orientation (0) of a point 42, one can use the orientation (0) of a number of previous points 42, which can be between one and twenty points 42. Alternatively, the orientations (0) of the vector can be filtered with a polynomial of degree 3.
[0115] According to one embodiment, the trajectory module 40 comprises parameters defining the trajectory vector 41 such as the dimensions of the trajectory vector 41, the continuity of points 42 (distance between points and angle), the radius of the trajectory curve – which can, for example, be greater than 1 m, the distance between robot 1 and master 11 – which can, for example, be less than 5 m, and the distance of robot 1 from the trajectory vector – which can, for example, be less than 1 m. This last parameter allows control to ensure that robot 1 follows the trajectory correctly, particularly in turns. The trajectory module 40 monitors these parameters in real time so that robot 1 follows the master along a smooth trajectory. If one of these parameters is faulty, the movement of robot 1 can be stopped.
[0116] The trajectory module 40 can be an algorithm that is integrated into the control system 10. For these purposes, the trajectory module 40 can be stored and executed by a computer integrated into the robot 1.
[0117] [Control Module]
[0118] As illustrated in [Fig.1], the control system 10 includes a control module 50 which is configured to define a linear speed setpoint (Vx_sp) and an angular speed setpoint (Wz_sp) of the robot 1 as a function of the position of the master 11 and the trajectory vector 4L. As a function of the linear speed setpoints (Vx_sp) and angular speed setpoints (Wz_sp) which are determined in real time, the control module 50 is configured to actuate the movement means 12 so as to follow the trajectory vector 42.
[0119] According to one embodiment, to determine the linear speed setpoint (Vx_sp), the control module 50 can use the comparison of an actual distance between the master 11 and the robot 1 and a predefined threshold distance between the master 11 and the robot 1. Of course, the actual distance can be measured by the perception module 20, for example, using the remote sensing sensor 21. The control module 50 also takes into account the linear speed of the master 11 to determine the linear speed setpoint (Vx_sp) of the robot 1. The linear speed of the master 11 can be estimated by the perception module 20, for example, using the radio system 24.
[0120] For example, we can describe a method for calculating the linear speed setpoint (Vx_sp) of robot 1. The calculation of the linear speed setpoint can be broken down into two parts, on the one hand, a pre-positioning based on the estimation of the master's movement speed, and on the other hand, a regulator which takes as input the master-robot distance error (DistDM).
[0121] [Math.l] Vx_sp — V x _prepo + PIEKDistDM _objective - DistDM)
[0122] The pre-positioning (Vx_prepo) of the Master is calculated by the identification module 30, which also estimates the linear velocity Vx and angular velocity Wx of the Master 11. Establishing as a principle that the robot 1 moves only when the Master 11 moves and the latter is at a distance greater than a threshold distance between the robot and the master, in order to maintain said distance between the master and the robot, the robot must move at the same speed as the master.
[0123] Furthermore, the controller here is of the Proportional, Integral, Differential (PID) type, whose input is the difference between the robot-master distance estimate (DistDM) and a distance setpoint (DistDM_objective). This difference is called the error (Err).
[0124] [Math.2] Error = DistDM_objective - DistDM
[0125] Whereas the PID can be of the following form:
[0126] [Math.3] PID = K p *Err + K^Err +
[0127] Where the coefficients Kp, Ki, Kd are parameters to be adjusted during the development of robot 1. To adjust them, one can, for example, use the Ziegler-Nichols method, which consists of starting with the coefficients Ki and Kd at zero, and increasing Kp until the system becomes slightly unstable (oscillations), then adjusting the coefficient Ki to reduce the steady-state error, here between the target DistDM and DistDM. Finally, to increase the convergence speed between DistDM_objectif and DistDM, add the coefficient Kd.
[0128] Other methods can be used to determine the coefficients Kp, Ki, Kd, for example, starting from tests, it is possible to construct a model of the system (of type ARX or ARMAX) and to use automatic calibration algorithms to determine the optimal values of these 3 parameters.
[0129] Furthermore, according to one embodiment, the master-robot distance setpoint (DistDM_objectif) may not be a constant but depend on various parameters. For example, this setpoint distance may depend on the estimated speed of the master (Vx) in order to increase the distance between the two when the master is walking or running fast, thereby increasing the interval to allow the robot time to brake in case of a sudden stop by the master.
[0130] According to another embodiment, the sum of the pre-positioning setpoint and the PID can be saturated by a minimum value (here 0, the robot cannot move backward) and a maximum value (maximum speed allowed by the robot).
[0131] According to one embodiment for determining the angular velocity setpoint (Wz_sp), the control module 50 is configured to define a reference point 51 for tracking the master 11. The control module 50 is then configured to determine, at a given time t, the angular velocity setpoint (Wz_sp) of the robot as a function of the tracking reference point 51 and not as a function of the position of the master 11 at a given time t. As illustrated in [Fig. 5], the reference point 51 is located behind the Master 11.
[0132] According to one embodiment, the control module 50 is configured to determine a virtual anticipation circle 52 of determined radius R which extends around the robot 1. The virtual anticipation circle 52 is a circle drawn virtually in the robot's frame of reference around the center of gravity of the robot.
[0133] As illustrated in [Fig. 5], the intersection between the virtual anticipation circle 52 and the trajectory vector 41 determines the position of the reference point 51 at a given time t. Therefore, the coordinates of the reference point 51 are necessarily on the trajectory vector 41 and can be distinct from the coordinates of the points 42 used to calculate the trajectory vector 41. The reference point 51 is thus recalculated at each time t; for example, the reference point can be recalculated at a frequency of 20 Hz.
[0134] The control module 50 compares at each instant t, on the one hand, the orientation 0 of the master 11 through the coordinate 0 of the position (X, Y, 0) of the reference point 51, and on the other hand, the orientation of the robot, the control module being configured to make the orientation of the robot tend towards the orientation 0 of the position (X, Y, 0) of the reference point 51. This is illustrated in [Fig.5] by a correction of the angle 0 of the robot 1.
[0135] According to one embodiment, the radius R of the anticipation circle 52 can be determined during the development of the control system 10 as a constant. Alternatively, the radius R can be defined according to several input variables such as the speed of the robot 1 and the difference in orientation between the robot 1 and the master 11. In the example of [Fig. 5], this difference in orientation is represented by the angle between the orientation vector of the master V0m and the orientation vector V0pr of the reference point 51. The use of several input variables makes it possible to reduce the radius R when the master 11 turns and to increase it when it moves in a straight line. The dimension of the radius R must be carefully adjusted because it can cause the robot to oscillate. The larger the anticipation radius R, the less the robot will follow the virtual trajectory 41 of the master 11.
[0136] According to one embodiment, the calculation of the angular velocity setpoint (Wz_sp) can be carried out, on the one hand, by checking that the robot 1 is indeed on the trajectory vector 41, and on the other hand, by determining the angular difference ô0RRF between the orientation 0R of the robot 1 and the orientation 0^ of the reference point 51, all this taking into consideration the dimensions of the robot 1 and in particular its wheelbase which corresponds to the distance between the front axle and the rear axle of the robot 1.
[0137] The 0RF orientation of the reference point 51 allows the orientation of the robot 1 to be aligned with the trajectory vector 4L
[0138] The calculation of the angular velocity setpoint (Wz_sp) can thus be expressed by the The following formula follows:
[0139] [Math.4] _ GÜprcpo+5(^^ *Vv impasto
[0140] In which Ô0prepo corresponds to the trajectory controller of robot 1 is perhaps expressed as follows:
[0141] [Math.5] ÔBprepo = BRF - BR
[0142] Wherein, 0^ corresponds to the orientation of the reference point 51 and 0R to the orientation of the robot 1, the two orientations 0^, 0r being expressed in degrees.
[0143] The orientation differential ô0R RFentre the orientation of the robot 0Ret the orientation of the reference point Oj^ can be simply expressed by the following formula:
[0144] [Math.6] / 2*serif*sin(a) \ ouR = arctam tt----7—7— n-nr y anticipation distance /
[0145] With a expressed in degrees and corresponding to the difference between the orientation of the reference point 0^ and the orientation of the robot 0R and can be expressed as follows:
[0146] [Math.7] a — &RF "@R
[0147] In order to avoid sudden variations in the orientation differential ô0RRF, the formula includes a slope limiter.
[0148] According to certain embodiments, the control module 50 can be configured to directly reference the orientation of the master 11 to adjust the trajectory of the robot 1. This may be the case in specific situations such as when starting the follower mode of the robot 1, because at the start of follower mode the trajectory vector 41 does not have enough points 42 to be modeled. It may also be useful to directly follow the master 11 when it is too close to the robot 1; such a situation may occur when the master 11 turns around and thus passes close to the robot 1 again.
[0149] To directly track the master 11, it is possible to make the angle formed by the vector 0m (see [Fig. 5]) tend towards zero. In this situation, the position of the master 11 and the position of the reference point 51 can be considered to coincide. To make this angle tend towards zero, it is possible to apply a proportional-integral function (PID) to calculate Wz. The following formula gives an example of the type of PID that can be used:
[0150] [Math. 8] PID = K p *Err + K^Err +
[0151] The parameters Kp, Ki and Kd can be calibrated in the same way as those used for calculating the PID of the linear velocity Vx (see above). The parameter Err corresponds to the angular differential required to make the 0m vector tend towards zero; Err can be expressed as follows:
[0152] Err^Q-Om
[0153] The control module 50 thus determines in real time or at each instant t, the linear speed (Vx_sp) and angular speed (Wz_sp) commands of the robot 1, these commands are then relayed to the means of movement 12 of the robot 1 in order to adapt the trajectory of the latter.
[0154] The control module 50 can be configured to establish minimum and maximum limits for the linear speed (Vx_sp) and angular speed (Wz_sp) setpoints. This makes it possible, in particular, to smooth the movements of the robot 1 and to avoid any sudden movements on its part.
[0155] The control module 50 may include a controller that verifies whether it is directly tracking the master 11 or the reference point 51. The controller may also verify that the control module 50 is correctly publishing the linear speed (Vx_sp) and angular speed (Wz_sp) commands at a sufficient frequency. This provides an indication of the operating status of the control module 50.
[0156] The control module 50 can be an algorithm stored and executed by a computer integrated into the robot 1.
[0157] [Diagnostic Module]
[0158] According to an embodiment illustrated in [Fig. 1], the control system 10 may include a diagnostic module 60 which is configured to evaluate a degree of criticality of the perception module 20, the identification module 30, the trajectory module 40 and the control module 50. More particularly, the diagnostic module 60 thus evaluates the data provided by each of said modules 20, 30, 40, 50 and is configured to stop the robot 1 when the data provided by one of the modules 20, 30, 40, 50 do not correspond to the expected data.
[0159] For example, the diagnostic module 60 can evaluate the positions estimated by the first estimator, the second estimator, and the third estimator, which are integrated into the perception module, as well as the master position determined by the identification module. To ensure optimal master tracking, the diagnostic module 60 can be configured to stop the robot 1 when the master position 11, determined by the identification module 30, is incorrect and / or when a threshold number of estimators is incorrect.
[0160] In addition, the diagnostic module 60 can also be configured to reduce the maximum speed setpoints when the perception module 20 is operating in degraded mode. For example, when only the remote sensing sensor 21 and its estimator provide an estimate of the master's position.
[0161] Similarly, if the control module 50 produces only one of the speed commands or none of the speed commands, the diagnostic module is configured to stop robot 1.
[0162] The diagnostic module 60 can be an algorithm which is stored and executed by a computer on board the robot 1. The diagnostic module 60 ensures the proper functioning of the different modules and is configured to exert feedback control on the robot 1 in the event of detection of a degraded perception or more broadly of the degraded functioning of one of the modules.
[0163] [Human-Machine Interface]
[0164] As illustrated in [Fig.1], the control system 10 may include a human-machine interface 70 which is configured to allow the robot 1 to interact with the master 11 but also for the master 11 to give instructions to the robot 1 or to consult certain information.
[0165] For these purposes, the human-machine interface 70 may include visual and / or audible warning means 71. For example, the warning means 71 may include loudspeakers, screens representing the robot's eyes to humanize the robot. The warning means are specifically configured to inform the master 11 when the identification module no longer detects the master 11.
[0166] In addition, the human-machine interface may include a pairing control of the robot 1 to the master 11; a button and / or a console such as a touch screen may constitute this pairing control.
[0167] [Piloting method]
[0168] As illustrated in [Fig. 6], the invention also relates to a method for controlling 200 a robot 1 in master follower mode. The control method 200 is specifically designed to implement the control system 10 as described above, so that each step of the method can directly incorporate the features described for the control system 10.
[0169] [Perception]
[0170] As illustrated in [Fig.6], the method includes the perception 201 of environmental data around the robot 1 using perception sensors on the robot 1. The perception 201 includes the collection of data which can be of different kinds such as visual, radio, or telemetric.
[0171] As described above, data collection can be carried out by the perception module 20 and the sensors 21, 22, 23, 24, 25 it comprises. The method thus collects visual data and volumetric data of the environment surrounding the robot 1. As described above, the Volumetric data can be of different kinds such as visual (depth camera), radio (radio system) or telemetric (LIDAR).
[0172] Volumetric data allows for 2D or 3D modeling of the environment and objects surrounding the robot in order to provide a digital model of said environment, which is created by volumetric detection and measurement of the distances between the detected objects and the robot. Simultaneously, color image capture of the environment surrounding the robot enables recognition of the master robot through visual recognition.
[0173] Perception 201 also includes position estimation of the master in a 2D or 3D frame by correlating volumetric data with visual data to recognize the master and estimate the master's position using X, Y position coordinates and an orientation 0 within said frame. Each estimation correlates visual data with distance data of different types.
[0174] Thus, according to one embodiment and as described above, the first estimator can perform an initial estimation of the master's position by aligning the volumetric data from the remote sensing sensor 21 with images captured by RGB color cameras 22. The method then uses a visual recognition algorithm to identify the master and define its position in the robot's X, Y coordinate system using volumetric data.
[0175] According to another embodiment and as described above, the second estimator can perform a second estimation of the master's position by correlating volumetric data from the depth cameras 23 with images recorded by the RGB type cameras 22.
[0176] According to a third embodiment, the third estimator can perform a third estimation of the position of the master 11 through the measurement data by the radio system 24. The third estimation is performed by the diffusion of radio waves to estimate a position and a measurement of the linear accelerations and angular accelerations of the master 11.
[0177] Perception 201 also includes determining the position and displacement of robot 1 in said frame of reference at a given time t. As described previously, this is achieved using odometry devices 26 mounted on robot 1 and an odometry estimator. As described previously, the displacement measurements of robot 1 are performed by measuring the linear accelerations and angular velocity of robot 1. These measurements are carried out by an inertial measurement unit 27 integrated into robot 1 and, more specifically, into the odometry devices 26.
[0178] [Position identification]
[0179] As illustrated in [Fig. 6], the control method 200 comprises the determination 202 of the position (X, Y, 0) of the master at time t. As described in the Within the framework of the control system 10, the master's position at time t is determined by merging the estimated positions of the master during the perception step 201. The merging of the estimated positions can be done according to a cascade algorithm as illustrated in [Fig. 2]. After determining the master's position at time t (X, Y, 0), the process records a new robot position (X, Y, 0)t.
[0180] According to one embodiment, the method may include the prediction 203 of the future or next position (X, Y, 0) t+i of the master at t+1. The prediction 203 of the next position (X, Y, 0) t+i is made using the velocity (Vx, Vy) of the master relative to the robot's odometric frame. The velocity (Vx, Vy) of the master may, in particular, be obtained by the third estimation, which uses the data provided by the radio system 24. This prediction 203 may be obtained by the cascade algorithm used to merge the positions estimated during the determination 202 of the master's position (X, Y, 0)t.
[0181] As illustrated in [Fig.6], the following position of the master (X, Y, 0) t+i can be optimized to recognize the master in the perception step 201. The relationship between prediction 203 and perception 201 is represented by a dashed arrow, as this constitutes a preferred embodiment.
[0182] As illustrated in [Fig. 6], the control method 200 may include pairing 204 of the robot with the master. Pairing 204 is achieved by detecting the master using the robot's sensing organs 20 and recording a characteristic signature, particularly a visual one, in a memory integrated into the robot. According to the invention, pairing 204 corresponds to specific perception 201 and determination 202 steps that are triggered by the master using a specific command as described above. The master's signature, particularly its visual one, is recorded in a memory and serves as a reference for recognizing the master in position estimations. The characteristic signature can be used, in particular, by visual recognition algorithms as a reference for recognizing the master in the environment surrounding the robot.
[0183] According to a particular embodiment, to facilitate pairing 204 and recognition of the master during perception 201, the master may wear distinctive elements such as a reflective or coloured vest or a transmitter when the control system 10 includes a radio system 24. In this case, the signal emitted by the transmitter worn by the master 11 is also recorded in the robot's memory.
[0184] [Trajectory modeling]
[0185] As illustrated in [Fig. 6], the control method 200 comprises the construction 205 of a trajectory vector 41 of the master 11. As described above, the trajectory vector comprises a determined number of points 42 separated from each other by a determined distance in said frame of reference. According to one embodiment, the vector trajectory vector 41 includes at least thirty points 42, better fifty points 42 and even better one hundred points 42. In all cases, the trajectory vector 41 includes a constant number of points 42 which separate the robot from its master.
[0186] According to another world of realization, the 42 points can be separated in pairs by a distance of between 5 cm and 30 cm, better between 10 cm and 20 cm.
[0187] As previously described, each point 42 corresponds to a position (X, Y, 0)t of the master that was determined and recorded at time t. As illustrated in [Fig. 4], with each new position (X, Y, 0)t recorded, the trajectory vector 41 is recalculated. In particular, with the recording of a new point 42 corresponding to the last identified position (X, Y, 0)t of the master, the first point 42 in the sequence, which is the oldest in said sequence, is forgotten or archived.
[0188] According to one embodiment, the construction 205 of the trajectory vector may involve refining the trajectory vector in order to model a smooth linear trajectory. To this end, the method may, in particular, apply polynomial functions or spline functions to the sequence of coordinates (X, Y, 0) that make up the trajectory vector as described above.
[0189] [Robot piloting]
[0190] As illustrated in [Fig.6], the control method 200 includes the control of the robot 206 which is carried out by defining a linear speed setpoint (Vx_sp) and an angular speed setpoint (Wz_sp) of the robot as a function of the position (X, Y, 0) of the master, the linear speed and angular speed of the master, the trajectory vector, the position and displacement of the robot at time t.
[0191] According to an embodiment illustrated in [Fig. 5] and described above, the control of the robot 206 may include the definition of a reference point 51 which allows the robot to be controlled by the trajectory vector 41 and not directly by the master. The reference point 51 is defined by an intersection between, on the one hand, the virtual anticipation circle 52 which extends around the robot, and on the other hand, the trajectory vector.
[0192] As described above, the angular velocity setpoint (Wz_sp) of the robot can be defined, according to the method described above, at each instant t as a function of the coordinates (X, Y, 0) of the reference point 51.
[0193] In one embodiment, the control of the robot 206 involves defining the linear speed setpoint (Vx_sp) of the robot to follow the master. In particular, and as described previously, the linear speed setpoint (Vx_sp) of the robot can be defined based on a comparison between an actual distance between the master and the robot and a predefined threshold distance between the master and the robot. The actual distance can be measured by the sensing elements 20 using the radio system 24 or by volumetric measurements.
[0194] According to certain embodiments described above, depending on the situation the robot can to be directly slaved to the position of the master or to the reference point 51 of the trajectory vector 41.
[0195] As illustrated in [Fig.6], the control method 200 includes the actuation 207 of the robot's movement means according to the said linear speed (Vx_sp) and angular speed (Wz_sp) commands so as to follow the master directly or indirectly through the trajectory vector 41.
[0196] [Diagnostic]
[0197] According to one embodiment and as described above, the control method 200 may include the evaluation 208 of a criticality level of the perception of the environment and the master. In particular, the method may perform the evaluation 208 of the criticality of the first position estimate, the second position estimate, the third position estimate of the master, and also of the identified position of the master. The method is configured, notably through the diagnostic module, to stop the robot when the identified position of the master is faulty and / or when a threshold number of estimates is faulty.
[0198] The process can also evaluate the other steps of the process and exert feedback control over the speed setpoints, trajectory vector, etc.
Claims
Claims
1. Control system (10) of a robot (1) in follower mode configured to follow the movement of a master (11), the robot (1) comprising movement means (12) comprising in particular wheels and a motor configured to drive the wheels in rotation in a direction of movement, the control system (10) comprising: an environment perception module (20) which includes: • perception sensors (21, 22, 23) of the environment around the robot (1), said sensors being configured to collect data from the environment, • estimators of the position of the master (11) relative to the robot (1), the estimators of the position of the master (11) using the collected data to estimate the position of the master (11) according to data of different natures, the position of the master (11) being estimated by position coordinates (X, Y) and a movement orientation (0) in a 2D or 3D reference frame of the robot (1), • odometry devices (26) for determining the position of the robot (1) and movement parameters of the robot (1) in space, an identification module (30) of the master which is configured to determine the position of the master (11) relative to the position of the robot (1) in said reference frame, the identification module (30) determining the position of the master (11) at a time t by merging the positions estimated by the perception module (20), a trajectory module (40) which is configured to model a trajectory vector (41) of the master (11) defined by a sequence of a determined number of points (42) distant from each other by a determined distance in said reference frame, each point (42) being defined by coordinates (X, Y, 0) of the master (11) which have been determined by the identification module (30) at a time t, the trajectory vector (42) comprises a constant number of points (42) which separate the robot from its master, the trajectory module (40) is configured to recalculate the trajectory vector (41) at each instant t, and a control module (50) which is configured to define a linear speed setpoint and an angular speed setpoint of the robot as a function of the position of the master (11) and the trajectory vector (41), the control module (50) being configured to actuate the movement means (12) as a function of said linear speed and angular speed setpoints so as to follow the trajectory vector (41) or the master (11).
2. Control system (10) according to claim 1, wherein the perception module comprises: - one or more volumetric sensors (21, 23) configured to model in 2D or 3D the environment surrounding the robot (1) and to measure the distances between the objects detected in the digital model and the robot, - one or more cameras (22) which are configured to capture color images in the visible range, and - at least one position estimator of the master (11) which is configured to recognize the master (11) within the images and correlate these images with the objects detected in the digital model of the environment surrounding the robot so as to determine a relative position of the master (11) with respect to the robot (1).
3. Control system (10) according to one of claims 1 and 2, in which the odometry members (26) comprise: - an inertial unit (27) integrated into the robot which is configured to measure linear accelerations and angular speeds of the robot, and - linear speed sensors (28) and angular speed sensors of the robot.
4. Control system (10) according to one of claims 1 to 3, in which, the perception module (20) comprises: - a near-field radio wave system (24) for example of the UWB, WIFI or Bluetooth type, one or more antennas being integrated into the robot (1) while a transmitter is carried by the master (11), the radio wave system (24) being configured to estimate the position of the master relative to the robot, and - An inertial unit (27) which is carried by the master and which is configured to measure linear accelerations and angular accelerations, - A third position estimator which is configured to estimate the position of the master (11) through the data measured by the radio wave system (24) and said inertial unit (27).
5. Control system (10) according to claim 4, in which the identification module (30) is configured to predict the future position of the master (11) using the acceleration data provided by the inertial unit (27) carried by the master, the predicted future position makes it possible to guide the estimators in their estimation of the future position of the master.
6. Control system (10) according to one of claims 1 to 5, in which the identification module (30) is configured to pair the robot (1) with the master (11), the identification module (30) is configured to actuate at least the perception sensors, the estimators in order to detect the master and record a characteristic signature in a memory integrated into the robot.
7. Control system (10) according to one of claims 1 to 6, in which the trajectory module (40) is configured to recalculate the trajectory vector (41) by recording a new point (42) at each instant t, the new point (42) corresponding to the last identified position (X, Y, 0) of the master, while the first point (42) of the sequence, which is the oldest of said sequence, is forgotten or archived.
8. Control system (10) according to one of claims 1 to 7, in which the control module (50) is configured to define, on the one hand, a virtual anticipation circle (52) of determined diameter around the robot, and on the other hand, a reference point (51) for tracking the master which is determined by the intersection between the virtual anticipation circle (52) and the trajectory vector (41), the control module being configured to determine the angular speed setpoint of the robot as a function of the tracking reference point.
9. Control system (10) according to one of claims 1 to 8, in which the control module (50) is configured to define the linear speed setpoint of the robot (1) as a function, on the one hand, of the comparison of an actual distance between the master (11) and the robot (1) which is measured by the perception module and a predefined threshold distance between the master (11) and the robot (1), on the other hand, of the linear speed of the master (11) which is also estimated by the perception module (20).
10. Method for controlling (200) a robot (1) in follower mode of a master (11), the method comprising: - the perception (201) of the environment around the robot (1), the perception (201) comprising: • the collection of visual data and volumetric data from the environment surrounding the robot (1), the volumetric data being of several types such as telemetric, visual, • estimates of the position of the master (11) in a 2D or 3D reference frame by correlating the volumetric data with the visual data to recognize the master (11) and estimate the position of the master (11) through position coordinates (X, Y) and an orientation (0) within said reference frame, each estimate correlating the visual data with distance data of different natures, and • the determination at a time t of the position and movement of the robot (1) in said reference frame which is determined by odometry devices (26) on board the robot (1) and an odometric estimator; - determining (202) the position (X, Y, 0) of the master at a time t by merging the estimated positions; - the construction (203) of a trajectory vector (41) of the master (11), the trajectory vector (41) comprising a determined number of points (42) distant from each other by a determined distance in said reference frame, each point corresponds to a position (X, Y, 0) of the master (11) which was determined at an instant t, the trajectory vector (41) comprises a constant number of points (42) which separate the robot (1) from its master (11), the trajectory vector (41) being recalculated at each instant t; - the piloting (206) of the robot (1) which is carried out by defining a linear speed setpoint and an angular speed setpoint of the robot (1) as a function of the position (X, Y, 0) of the master (11), the linear and angular speeds of the master (11), the trajectory vector (41), the position and the movement of the robot (1) at the instant t; and - the actuation (27) of the movement means (12) of the robot (1) as a function of said linear speed and angular speed setpoints so as to follow the master (11) directly or indirectly through the trajectory vector (41), the movement means (12) comprising in particular a motor configured to drive wheels in rotation in a direction of movement.
11. A driving method (200) according to claim 10, wherein the perception of the environment comprises: - 2D or 3D modeling of the environment and objects surrounding the robot (1) in order to provide a digital model of said environment which is produced by volumetric detection and measurement of the distances between the detected objects and the robot (1), - capturing color images of the environment surrounding the robot (1), the images being recorded by color cameras (23), - at least a first estimation of the position of the master (11) within the digital model, the master (11) being detected by visual recognition in the color images, the color images then being correlated with the digital model to estimate the relative position of the master (11) with respect to the robot (1).
12. Piloting method (200) according to one of claims 10 and 11, in which the perception (201) comprises a third estimation of the position of the master which is carried out by the diffusion of radio waves to estimate a position and a measurement of the linear speed and the angular speed of the master.
13. A piloting method (200) according to claim 12, which comprises predicting the future position of the master (11) using the data from linear and angular velocity determined during the third estimation.
14. Control method (200) according to one of claims 10 to 13, which comprises pairing the robot (1) with the master (11), the pairing being carried out by detecting the master (11) using the perception members (20) of the robot and recording a characteristic signature, in particular a visual one, in a memory integrated into the robot (1).
15. Piloting method (200) according to one of claims 10 to 14, in which the trajectory vector (41) is recalculated at each instant t by recording a new point (42) corresponding to the last identified position (X, Y, 0) of the master (11), while the first point (42) of the sequence, which is the oldest of said sequence, is forgotten or archived.
16. Control method (200) according to one of claims 10 to 15, in which the control (206) comprises the definition of a reference point (51) which makes it possible to control the robot (1) to the trajectory vector (41), the reference point (51) being defined by an intersection between, on the one hand, a virtual anticipation circle (52) of determined diameter which extends around the robot (1), and on the other hand, the trajectory vector (41), the angular speed setpoint of the robot (1) being defined at each instant t as a function of the coordinates (X, Y, 0) of the reference point (51).
17. Control method (200) according to one of claims 10 to 16, in which the tracking of the trajectory comprises the definition of the linear speed setpoint of the robot (1) as a function, on the one hand, of the comparison of an actual distance between the master (11) and the robot (1) which is measured by the perception members (20) and of a predefined threshold distance between the master (11) and the robot (1), on the other hand, of the linear speed of the master (11) which is also estimated by the perception members (20).
Citation Information
Patent Citations
Aromatic amino acid biosynthetic enzymes
US20040019929A1
Infantry robotic porter system and methods useful in conjunction therewith
US20110172850A1
Robotic golf caddy
WO2007131299A1
Autonomous target following method and device
US20200033857A1