Method for mapping warehouse space using mobile robot
The method automates rack and pallet zone detection in warehouse navigation, enhancing map accuracy and adaptability, addressing manual marking and dynamic challenges, and enabling precise logistics planning.
Patent Information
- Authority / Receiving Office
- RU · RU
- Patent Type
- Patents
- Current Assignee / Owner
- LLC ROBOTIZIROVANNYE TRANSPORTNYE SISTEMY
- Filing Date
- 2025-08-21
- Publication Date
- 2026-07-09
AI Technical Summary
Existing navigation methods for mobile robots in warehouse environments lack automatic detection of rack zones, require manual marking, are prone to systematic errors in pallet location and orientation, fail to account for dynamic changes, and lack an enriched navigation map including extended structures.
A method for mapping warehouse spaces using a mobile robot that automatically defines rack zones and pallet locations, constructs a navigation map with dynamic update zones, and includes extended structures by using a 2D lidar, odometry, and a robot navigation module to determine rack orientations and pallet positions, refining rack segments and updating the map based on geometric parameters.
Enables autonomous and accurate mapping of warehouse environments, reducing manual intervention, improving scalability, and adapting to dynamic changes, while providing precise logistics planning and reliable navigation.
Smart Images

Figure 00000003_ABST
Abstract
Description
[0001] Field of technology to which the invention relates
[0002] The claimed invention relates generally to computing systems and methods, in particular to the field of navigation of mobile robots, in particular to a method for mapping a warehouse space using a mobile robot.
[0003] State of the art
[0004] Navigation of a mobile robot is the process of determining its location, planning a route, and controlling its movement, allowing it to safely and efficiently reach its destination while avoiding obstacles in a room. Navigating a mobile robot involves creating a navigation map of the room (room mapping), determining the robot's initial position (robot initialization), moving the robot and tracking its current location on the navigation map (robot localization), selecting the optimal route while avoiding obstacles, and controlling the robot's movement (robot pathfinding) to follow the specified path.
[0005] The navigation map includes a set of room scans linked to the corresponding lidar positions recognized as reliable, that is, the coordinates of the points where the scans were taken; and an occupancy map, which is a grid where each cell represents the probability of being occupied by an obstacle. The navigation map is created during the mapping stage and is then used for initialization, localization, and pathfinding.
[0006] The claimed invention relates to a method for mapping a warehouse space, the result of which is the construction of a navigation map, which is a reflection of the configuration of the space where the robot is used and which is then used to initialize, localize and search for the path of the mobile robot.
[0007] The navigation map is not limited to a graphical representation and contains the following data: acquired scans, calculated corresponding lidar positions, and a constructed room occupancy map. The navigation map may also contain additional information used in subsequent navigation stages, such as global lines used to orient the identified walls of the room and / or data on room zones for which predefined rules are established—for example, dynamic map update zones, where the map is rebuilt, or speed limit zones, where the robot's speed is limited to a predefined value.
[0008] An occupancy map is a grid in which each cell (also called a pixel or block) has a value indicating the probability that the cell is occupied by an obstacle. These values typically range from "free" to "occupied," based on the assessment of each status.
[0009] Various methods for constructing a navigation map using lidar and odometry are known in the prior art. In particular, from the description of the method ["Lidar SLAM based on an improved particle filter and scan fusion for an unmanned delivery robot", Jing Zhang, Xuepeng Zhang, Journal of Physics: Conference Series 2506 (2023) 012009] a method for mapping a room is known, which is considered the closest analogue of the claimed invention. The known solution uses a mobile robot containing a lidar, a drive wheel, an odometry module, and a navigation module. According to the method, the robot moves around the room and forms a set of scans using the lidar. Simultaneously, odometry data (speed and rotation angle) are collected. Based on this data, the trajectory of the robot's movement is constructed and an occupancy map is formed - a representation of occupied and unoccupied areas.The map is constructed using a modified particle filter with a Rao-Blackwellization process: lidar positions, local map versions, and confidence scores are stored for a set of particles; these are then updated and resampled as the robot moves.
[0010] While this solution provides an occupancy map and basic navigation, it does not address a number of important issues that arise when using a robot in a warehouse environment. In particular:
[0011] The current solution lacks automatic detection of rack zones on the navigation map. Identifying these zones requires manual marking based on the generated map, which reduces the system's autonomy and limits its scalability.
[0012] As a result, pallet locations are also defined manually or by referencing incorrectly marked zones. This leads to the accumulation of systematic errors in pallet location, orientation, and height, which is critical when interacting with cargo;
[0013] The known solution does not provide for algorithmic accounting of the orientation of the racks, which makes it difficult to understand the logical structure of the warehouse, determine the directions of the alleys and build functional zones;
[0014] The dynamic properties of rack zones, such as the high probability of changes in the pallet placement area, are not taken into account, resulting in the map quickly becoming outdated. There is no mechanism for identifying and regularly updating map update zones, and pallets, being moving objects, distort the map, impairing localization.
[0015] Furthermore, the known solution lacks the ability to construct an enriched navigation map containing not only an occupancy map, but also extended structures: a set of scans, lidar positions, and logical objects of the environment (racks, shelves, pallet spaces, etc.).
[0016] Thus, existing solutions require significant operator intervention, are prone to map interpretation errors, are unable to adapt to the dynamics of the warehouse environment, and are unsuitable for precise logistics planning. All of these shortcomings are addressed by the proposed method, which automates the definition of rack and pallet zones and generates map update zones based on the generated navigation map and rack configuration parameters.
[0017] Disclosure of the essence of the invention
[0018] The technical problem solved by the claimed invention is to create a method for mapping a warehouse space using a mobile robot that is free from the shortcomings of the prototype.
[0019] Technical results: defining rack zones on a navigation map without the need for manual marking, providing the ability to define pallet locations on a navigation map without the need for manual marking.
[0020] The specified technical problem is solved by a method of mapping a warehouse space using a mobile robot,
[0021] wherein the mobile robot comprises: a 2D lidar configured to generate scans of the environment consisting of a plurality of scan points; a drive wheel configured to set the robot in motion; an odometry module configured to determine odometric data during the movement of the robot - the speed and angle of rotation of the drive wheel of the robot; a robot navigation module configured to control the operation of the drive wheel and exchange data with the 2D lidar and the odometry module,
[0022] in this case, according to the method:
[0023] - move the robot around the room and receive room scans generated by the lidar and odometric data from the odometry module; and
[0024] - construct a navigation map based on the received room scans and odometric data, including a room occupancy map, a set of scans and the corresponding lidar positions determined at the time of the scan,
[0025] - receive a set of coordinates of the centers of the rack uprights and the depth of the rack,
[0026] - determine from the set of coordinates of the centers of the rack uprights the rack segments, characterized by the parameters of the equation of the straight line on which the segment is located, and the coordinates of the starting and ending points of the segment,
[0027] - for each section of the rack, the orientation of the rack is determined by executing the algorithm for determining the orientation of the rack,
[0028] - defines rack zones between adjacent rack sections with opposite rack orientations, separated by a distance not exceeding a pre-set value,
[0029] - define the rack zones between unused rack sections and parallel sections, shifted in the direction of rack orientation by the rack depth,
[0030] in this case, according to the algorithm for determining the orientation of the rack:
[0031] for each lidar position with x coordinates i and y iFrom the navigation map, the sign distance d to the straight section of the rack is determined:
[0032] - calculate the signed distance from the point to the straight line segment of the rack along its normal d p , in this case, if the projection of the lidar position on the straight line of the rack segment belongs to the segment, the value d is used as the distance d p ; and if the projection of the lidar position onto the straight line of the rack segment lies outside the segment, the smaller of the distances to one of the ends of the segment is used, preserving the sign of d p ;
[0033] -increase weights for positive and negative orientation depending on the sign of the distance;
[0034] Determine the orientation of a section of the rack by comparing the specified weights.
[0035] In particular, obtaining a set of coordinates of the rack centers includes the steps in which
[0036] - receives data on the detection zone of rack uprights, rough sections of racks and geometric parameters of racks, including the dimensions of the uprights and the spans between them,
[0037] - determine refined rack sections and sets of mapped rack upright centers by executing a rack and upright mapping algorithm for each rough section, according to which:
[0038] calculate the predicted positions of the rack upright centers along the direction of the rough section based on the geometric parameters of the uprights and the spans between them;
[0039] For each scan from the scan set, convert the scan points into the coordinate system of the navigation map and select points in the vicinity of the predicted strut centers;
[0040] Refine the positions of the upright centers based on the selected points and update the rack segment by approximating all the found upright centers with a straight line;
[0041] average the found coordinates of the rack centers across all scans, project them onto a rack segment, and reconstruct the missing racks parametrically based on the rack geometry and the position of adjacent racks. A refined rack segment is obtained in the form of parameters a, b, c from the equation of the straight line ax + by + c = 0, to which the rack segment belongs, and the coordinates of the end points of the rack segment.
[0042] In particular, the method further comprises the steps of:
[0043] receive the geometric dimensions of pallet spaces and data on the location of pallet spaces on the racks, and
[0044] define the positions of pallet places within the rack zones.
[0045] In particular, the method further comprises the steps of determining map update zones by increasing the boundaries of the rack zones by a predetermined distance in the direction of the positive orientation of the rack sections.
[0046] Brief description of the drawings
[0047] Fig.1 - Example of automatic pallet space generation in racks. Purple lines represent straight rack sections. Purple dots represent rack uprights. Green lines represent rack zone boundaries. Yellow rectangles represent generated pallet spaces for 80 x 120 cm Euro pallets. Pallet overhang is 5 cm. The spaces between pallets are evenly distributed within a single rack span.
[0048] Fig. 2 - Example of automatic map update zone marking. The zones cover combined racks. Purple lines are straight rack sections. Purple dots are rack uprights. Green lines are rack zones. Red color indicates map update zones. Update zone extension is 25 cm.
[0049] Fig. 3 - Example of generating update zones for combined racks. Yellow segments are rack lines, yellow dots are upright centers, and yellow U-shaped corners are upright contours. Red rectangles are map update zones. It is shown that for combined racks, the uprights may not be perfectly aligned. In this case, the zone is created along the edges of the uprights located within the rack span, so that the update zone does not pass through the upright.
[0050] Fig. 4 - Example of automatic generation of map objects. Purple lines are straight sections of racks. Purple dots are rack uprights. Green lines are rack zones. The upper zone is a free-standing rack, the middle zone is combined racks, the lower zone is a free-standing rack. Yellow rectangles are generated pallet spaces for Euro pallets measuring 80 × 120 cm. Pallet overhang is 5 cm. The gaps between pallets are evenly distributed within one rack span. Gray rectangles are roads within which robot trajectories are generated for approaching the generated pallet spaces to pick up and unload pallets. Red rectangles are map update zones. The expansion of update zones is 15 cm.
[0051] Implementation of the invention
[0052] A method for mapping a warehouse space using a mobile robot is claimed,
[0053] wherein the mobile robot comprises: a 2D lidar configured to generate scans of the environment consisting of a plurality of scan points; a drive wheel configured to set the robot in motion; an odometry module configured to determine odometric data during the movement of the robot - the speed and angle of rotation of the drive wheel of the robot; a robot navigation module configured to control the operation of the drive wheel and exchange data with the 2D lidar and the odometry module,
[0054] in this case, according to the method:
[0055] - move the robot around the room and receive room scans generated by the lidar and odometric data from the odometry module; and
[0056] - construct a navigation map based on the received room scans and odometric data, including a room occupancy map, a set of scans and the corresponding lidar positions determined at the time of scanning,
[0057] - receive a set of coordinates of the centers of the rack uprights,
[0058] - determine from the set of coordinates of the centers of the rack uprights the rack segments, characterized by the parameters of the equation of the straight line on which the segment is located, and the coordinates of the starting and ending points of the segment,
[0059] - for each section of the rack, the orientation of the rack is determined by executing the algorithm for determining the orientation of the rack,
[0060] - defines rack zones between adjacent rack sections with opposite rack orientations, separated by a distance not exceeding a pre-set value,
[0061] - define the rack zones between the rack sections not used in the previous stage and the sections shifted in the direction of the rack orientation by the rack depth.
[0062] 1. Robot movement, obtaining scans and odometric data
[0063] The robot's 2D lidar is capable of measuring distances to objects indoors at the lidar's installation height in the horizontal plane. Preferably, the 2D lidar is mounted at the highest point of the mobile robot.
[0064] During the space scanning process, room scans are obtained, each of which includes a set of lidar-measured distances to the nearest objects or obstacles around the robot within the lidar's range. These scan points have coordinates (xi, yi) relative to the lidar. Knowing the lidar's position at the time of the scan, relative coordinates can be converted to absolute coordinates, i.e., coordinates relative to the origin of the navigation map.
[0065] The space is scanned at pre-set time intervals Δt, for example, 100 ms, that is, at the set time intervals a new scan of the environment is obtained.
[0066] The odometry module is a robot component designed to monitor and control robot movement parameters, such as the speed and rotation angle of the drive wheel. This module collects odometry data, which allows the robot to track its position and adjust its movement, ensuring precise navigation and stable control. The module contains a control board and encoders—sensors mounted on the drive wheel that measure its rotation speed and rotation angle, which is necessary for calculating the robot's trajectory in space.
[0067] The odometric data includes the values of the speed and angle of the drive wheel and / or the angular velocity of rotation, used as input data to determine the odometrically determined position of the robot.
[0068] Preferably, odometer data is read at intervals shorter than the scan acquisition time, for example, 20 ms. This way, one scan corresponds to multiple encoder values, determined retrospectively.
[0069] The robot navigation module refers to an intelligent device configured to receive, send and process information, which may be implemented in the form of a microcircuit equipped with a memory, a processor and communication interfaces with robot nodes, and, optionally, a navigation server, in particular, a wired connection terminal, a Wi-Fi module and / or a radio module.
[0070] A navigation server is an intelligent device configured to receive, send and process information, which may be implemented in the form of a microcircuit equipped with a memory, a processor and communication interfaces with the robot navigation module, in particular, a Wi-Fi module and / or a radio module.
[0071] The robot can navigate a room by transmitting commands to the navigation module from the operator or navigation servers. The operator can transmit commands to the navigation module via the robot's controls or via remote control.
[0072] The robot is set in motion by transmitting control commands from the navigation module to the drive of the robot's drive wheel, in particular to set its speed and turning angle.
[0073] Robot movement is not required to implement the stated localization method and can be performed in parallel or not at all. In the latter case, the determined position will correspond to the starting point, and the stated method will still be achieved.
[0074] A robot's drive wheel is a wheel driven by a drive wheel drive, specifically a motor, and is responsible for the robot's movement, generating thrust for its motion. In mobile robot designs, it plays a key role in controlling movement, determining direction and speed.
[0075] To drive the wheel and, accordingly, the robot, the drive wheel is connected to the drive wheel drive, the operation of which can be controlled by the robot navigation module for controlled movement of the robot.
[0076] The odometrically determined position is obtained from the initial position by integrating the odometric data, that is, by incrementing the coordinates by the linear displacement and the rotation angle, respectively, over the time interval Δt between two discrete odometric data by any method known from the prior art, determined by the type of wheelbase of the robot.
[0077] For example, in the case of a three-wheeled robot, the increment is performed as follows:
[0078] x (t+dt) = x (t) + v (t) *cos(angle (t) )*cos(phi (t) )*dt
[0079] y (t+dt) = y (t) + v (t) *sin(angle (t) )*cos(phi (t) )*dt
[0080] angle (t+dt) = angle (t) + v (t) *sin(phi (t) ) / L*dt,
[0081] where x (t) , y (t) , angle (t) , - coordinates of the robot, v (t) - speed of the drive wheel at time t, phi (t) - - the angle of rotation of the drive wheel at time t, L is the wheelbase of the robot, x (t+dt) , y (t+dt) , angle (t+dt) - coordinates of the robot at time t + dt.
[0082] The initial position can be used as the initial position, that is, the position is recalculated from the beginning of the localization process.
[0083] The initial position is preferably the last actual position or the initialization position for the first position to be determined after initialization.
[0084] By selecting one of the already determined and stored positions in the list as the initial position, rather than integrating the odometer data from the very beginning of the path, it is possible to significantly reduce the impact of the cumulative error that inevitably arises as a result of the discrepancy between the odometer measurements and the actual movement of the robot.
[0085] Since the odometric method of determining position is based on the sequential accumulation of coordinate changes, any errors, even minor ones, in linear or angular velocity measurements lead to an increase in the total error over time. When integrating odometric data over a long route, this discrepancy becomes especially noticeable and can significantly distort the current position estimate.
[0086] Using the current position from a list obtained using more reliable position determination methods (such as fusion of odometry with lidar data or external landmarks) as a starting point allows for the elimination of accumulated error and the restoration of the accuracy of subsequent calculations. This approach maintains high positioning accuracy throughout the robot's entire path and improves the reliability of its navigation in dynamically changing environments.
[0087] 2. Construction of a navigation map
[0088] At one of the stages of the proposed method, a navigation map is constructed based on the obtained scans of the room, generated by a 2D lidar, and odometric data determined by the odometry module of the mobile robot.
[0089] In this technical field and within the framework of the present description, a navigation map is understood to mean a set of the following data: a room occupancy map, which is a two-dimensional distribution of free, occupied, and unknown sections of space; a set of scans selected from those obtained by a 2D lidar as the robot moves around the room; and the lidar positions corresponding to the set of scans at the time of receiving the scan in the map coordinate system.
[0090] Constructing the specified navigation map essentially represents a solution to the problem of simultaneous localization and mapping (SLAM). This task involves simultaneously determining the current position and orientation of the robot (lidar) and constructing a map of the surrounding environment based on a sequence of scans and accompanying odometric data.
[0091] The solution of the SLAM problem can be performed by any method known from the prior art, without limitation of the technology used.
[0092] In particular, the following can be applied: Extended Kalman Filter SLAM (EKF-SLAM); Particle Filter SLAM (also known as FastSLAM); Graph-based SLAM, Pose Graph Optimization; algorithms using direction histograms (Hector SLAM, Gmapping), etc.
[0093] An occupancy map is a grid in which each cell (also called a pixel or block) has a value indicating the probability that the cell is occupied by an obstacle. These values typically range from "free" to "occupied," based on the assessment of each status.
[0094] To construct an occupancy map, the two-dimensional space around the robot is divided into a set of adjacent square cells, forming the specified occupancy map. Each cell has the following parameters: coordinates defining the cell's position in the occupancy map; the number of visits to the cell; the number of scan points within the cell; the coordinates of the center within the cell or the average value of scan points within the cell; and the cell's status—free, occupied, or undefined.
[0095] Constructing an occupancy map refers to the process of determining the parameters of cells within the coverage of a set of scans, in particular identifying occupied cells, and preferably determining the center of scan points within a cell as the average value of the relative coordinates of all points within the cell.
[0096] The method for constructing an occupancy map can be implemented based on ready-made software solutions, for example, SLAM packages available in the ROS (Robot Operating System) environment, such as gmapping, hector_slam, cartographer, without limiting the implementations used.
[0097] 3. Obtaining a set of coordinates for the centers of rack uprights
[0098] Obtaining a set of coordinates may be accomplished in various ways, including by directly storing predetermined coordinates, obtained for example using an external measurement system, into the memory of the robot navigation module; by storing the coordinates of one rack center and specifying the coordinates of the remaining racks parametrically based on the specified distances between adjacent racks and between rows of racks; by fully parametrically specifying the coordinates of all racks based on predetermined warehouse layout parameters, such as the number of rack rows, the number of racks per row, the pitch between racks, the inter-row distance, and the offset of rows relative to a reference point; by automatically determining coordinates using beacons or reflectors attached to the racks and read by a 2D lidar or other sensor;by analysing data obtained from a lidar, with the allocation of characteristic vertical elements of the racks and the determination of their centre in the plane of the map; by reading RFID tags attached to the racks, in combination with the determination of the position of the robot based on odometry and lidar data; by recognising visual marks, such as QR codes or ArUco tags, using a camera, stereo camera or depth camera; and also by combining the constructed navigation map with an existing digital model of the warehouse containing the coordinates of the racks, while linking the model to the coordinate system of the navigation map.
[0099] 3.1 Preferred method for obtaining a set of coordinates
[0100] The preferred method for obtaining a set of coordinates of the centers of rack uprights, which eliminates the need for their independent determination and the use of additional marks, is a method in which data on the detection zone of rack uprights, rough sections of racks and geometric parameters of racks, including the dimensions of the uprights and the spans between them, are obtained, after which refined sections of racks and sets of mapped centers of rack uprights are determined by executing an algorithm for mapping racks and uprights for each rough section, according to which the predicted positions of the centers of the rack uprights along the direction of the rough section are calculated based on the geometric parameters of the uprights and the spans between them, for each scan from the set of scans the scan points are converted into the coordinate system of the navigation map and points are selected in the vicinity of the predicted centers of the uprights,The positions of the rack centers are specified based on the selected points and the rack segment is updated by approximating all the found rack centers with a straight line, the found coordinates of the rack centers are averaged across all scans, projected onto the rack segment and the missing racks are reconstructed parametrically based on the rack geometry and the positions of adjacent racks, while a refined rack segment is obtained in the form of parameters a, b, c from the equation of the straight line ax + by + c = 0, to which the rack segment belongs, and the coordinates of the end points of the rack segment.
[0101] 3.1.1 Rack Data
[0102] 3.1.1.1 Rack Detection Zone
[0103] The detection area of rack uprights can be defined in various ways: parametrically, for example, using contour line equations, a set of parameters defining the position of the center, angles, shape and size of the detection area of rack uprights; or as a set of specific cells of the occupancy map, which are the detection cells of rack uprights.
[0104] The user can set the detection area of the rack uprights manually by specifying the parameters or drawing it using a graphical interface such as a tablet or smartphone touch screen.
[0105] In this application, the rack upright detection area refers to a portion of the occupancy map in which the robot / lidar is located to search, detect, and map rack uprights, and the rack upright detection area may be formed by one or multiple unconnected sections.
[0106] Racking rack detection zones are designed to highlight the spatial areas where racks are located. As explained in more detail below, the rack detection, mapping, and detection algorithm depends on the angle from which the racks are visible to the lidar—that is, the angle of the line connecting the lidar position and the scan point with the rack.
[0107] It is advisable to draw rack detection zones in a predominantly rectangular shape and in such a way that the rack detection algorithm is activated inside the alley and / or opposite the rack.
[0108] Using a detection zone for rack uprights improves the accuracy and reliability of mobile robot navigation in a room with racks. Limiting the detection zone eliminates the accidental recognition of foreign objects not part of the rack structure, such as columns or other vertical elements, reducing false alarms and increasing the reliability of the generated environmental map. The predefined detection zone reduces the volume of processed data, optimizing the recognition and navigation algorithms and reducing the computational load. Rack uprights, with their regular geometry and placement, serve as stable landmarks for the localization system, which is especially important in the repetitive spatial structures typical of warehouses. This improves the robot's current position determination and compensates for potential odometry errors.Furthermore, the ability to define a detection zone allows the lidar to take into account the perspective of racks and eliminate unwanted viewing angles that reduce recognition accuracy. In conditions where the field of view is partially obscured (for example, by other objects or people), the presence of a detection zone ensures system stability and allows for targeting of expected environmental elements. Furthermore, the user can manually define or adjust the detection zone, simplifying system adaptation to a specific room configuration without the need for software modifications. All of this combined improves the accuracy, stability, and adaptability of the mobile robot's navigation in structured spaces with installed racks.
[0109] 3.1.1.2. Geometric dimensions of racks
[0110] The geometric dimensions of the racks include parameters describing the spatial arrangement and shape of its structural elements, in particular the racks, and contain the dimensions of the racks and the distances between them.
[0111] In this description, a rack post is defined as a vertical element that provides support and rigidity to the rack structure and serves as a reference point for robot navigation. Each post has a specific width, which represents the transverse dimension of the post in a plane perpendicular to the direction along which the posts are positioned. The post center is a geometric point located midway along the post's width and on its central axis. It is used for constructing maps, calculating distances, and as a reference point for navigation and recognition algorithms.
[0112] Geometric dimensions can be specified in various ways, either manually by the operator or automatically during system calibration. For example, they can include: the width of each rack; the distance from the edge of the rack to its center; the distance between adjacent racks within a single rack; the number of racks; and the overall rack length. These parameters can be specified as numerical values, formal descriptions (e.g., a regular grid with a given pitch), or even obtained through preliminary scanning and space analysis.
[0113] A set of inter-rack distances is used to accurately determine the estimated positions of all rack uprights relative to the initial reference point. This is critical when constructing hypotheses about rack positions on a map, when comparing actual lidar data with the model, and when refining and filtering false positives during recognition. This approach is particularly effective in cases where the inter-rack distances may vary, for example, in non-standard or uneven racks, or in cases where the rack geometry is pre-defined in the technical documentation and must be taken into account during recognition.
[0114] Thus, accurately specifying the geometric dimensions of the rack, including the width of the racks and the distance between them, allows for increased accuracy in matching the model and observed data, improved detection and localization of racks in space, and more reliable navigation of the mobile robot indoors.
[0115] Geometric parameters can include not only the dimensions of individual racks and their uprights, but also parameters characterizing the arrangement of racks within the space as a whole. Specifically, such parameters can include the width of the rack itself, that is, the distance between the outer rows of uprights within a single rack, as well as the distance between adjacent racks or aisles. These parameters allow for the creation of a regular racking structure, typical for warehouses, logistics centers, and other similar facilities.
[0116] Knowledge of these parameters is necessary not only for recognizing racks within a single rack but also for generating hypotheses about rack placement in other, undetected racks. For example, if the distances between racks and the width of the racks themselves are known, then the detected group of racks in one rack can be used to predict the locations of racks in adjacent rows. This increases the stability and accuracy of mapping, especially in conditions of partially obstructed views or limited sensor data. Furthermore, using these parameters optimizes the search and confirmation process for predicted rack positions, reducing the processing area and the number of false positives.
[0117] Thus, the inclusion of geometric parameters not only of the racks themselves, but also of their relative position in space, provides a systematic approach to constructing a model of the environment, improves the model's consistency with sensor data, and increases the efficiency of navigation and orientation of the mobile robot in the room.
[0118] 3.1.1.3. Rough section of the rack
[0119] A rough rack segment is a straight line connecting the edges of the first and last rack uprights in its frontal plane and reflecting the general direction of the rack's placement in space. It is drawn from the first upright toward the last, thereby defining an oriented line along which the remaining rack uprights are assumed to be positioned. This segment is used as a simplified approximation of the rack's actual position and orientation in space.
[0120] The rough line segment of the racks can be defined in various ways. The user can enter it manually, for example, using a graphical interface on a tablet or smartphone touchscreen, by specifying the start and end of the segment on a room map. It can also be defined programmatically – using predefined coordinates or based on preliminary analysis of lidar data, room maps, or design documentation.
[0121] The purpose of a rough segment is to establish an initial hypothesis about the rack layout: to determine the approximate position of the first rack and the direction of the rack plane, as well as to define a linear landmark representing the rack on the map. This simplifies subsequent construction of a precise model, automatic rack detection, and helps limit the scope of search and data processing. A rough segment is not required to precisely match each structural element, but serves as a starting point for refining the rack positions and correctly mapping the entire structure.
[0122] 3.1.2. Algorithm for mapping racks and rack sections (AKSOS)
[0123] The algorithm's input data are the rack detection zone, a rough section of the rack, the rack's geometric dimensions, and a navigation map containing a list of scans and their corresponding robot positions, as well as an occupancy map. The algorithm's output is a rack section and a set of rack post centers.
[0124] According to the algorithm, the expected positions of the racks are first determined using a rough segment. Scans from the navigation map are then processed, and points that could potentially belong to a rack are selected from each suitable scan. From these points, the rack center is determined using the rack center detection algorithm and the rack line (the line along which the rack centers and the rack segment lie) is updated. After processing each scan, the expected rack centers are recalculated. Then, for each detected rack, the average rack center value is found and projected onto a specific rack line. Finally, if a rack is not found for a given expected position, its position is reconstructed using adjacent racks and the rack's geometric dimensions.
[0125] The algorithm includes the following steps:
[0126] 1. Determining the predicted positions of the rack upright centers.
[0127] a. Determining the orientation of the rack plane (rack direction) along the direction of the rough section.
[0128] The user can specify that the rack be positioned strictly orthogonally to the axes of the navigation map. In this case, the rack direction is the direction of the orthogonal axis of the navigation map, which most closely matches the direction of the rough segment. Otherwise, the rack direction is chosen to match the direction of the rough segment of the rack.
[0129] b. The center position of the first upright is determined relative to the beginning of the rack's rough section by offsetting half the upright's width in the rack's direction. Next, based on the upright widths and the spans between uprights, the corresponding offsets from the center of the first upright in the rack's direction are calculated. This results in the predicted positions of the rack's upright centers, i.e., a set of coordinates for the upright center positions lying on the rack's straight line.
[0130] 2. For each scan and the corresponding lidar position from the navigation map, the following steps are performed:
[0131] a. If the lidar position is outside the detection zone of the rack uprights, then this scan is skipped.
[0132] b. Converts scan points from the lidar coordinate system to the navigation map coordinate system.
[0133] c. For each rack rack, scan points are determined that are located in the vicinity of the predicted rack center position, that is, in an area expanded relative to the rack width by a pre-set parameter for expanding the rack position search zone, for example, by 5 cm.
[0134] d. For each rack rack, the rack center position is determined from scan points located in the vicinity of the predicted rack center position using the rack center refinement algorithm, selecting the predicted rack position as the input rack center position.
[0135] e. Updates the rack segment by approximating all rack centers found in all scans, including the current one, with a straight line while maintaining the rack direction.
[0136] f. Update the predicted rack upright centers: If a new center for the first upright was found as a result of analyzing the current scan, then the average center of the first upright is found across all scans, including the current one, and the predicted upright center values are recalculated similarly to step 1b.
[0137] 3. For each rack stand, the coordinates of the rack centers found in each scan are averaged.
[0138] 4. The averaged centers of the racks are projected onto a rack segment, that is, the coordinates of the rack centers are changed to the coordinates of the nearest points on the rack segment.
[0139] 5. Add missing rack uprights: If the upright center was not found in any scan across scans, and the total number of points across all scans exceeds a preset reliability threshold (e.g., 20 points), indicating that the upright is present, then the upright center is determined parametrically based on the set of upright widths, interupright distances, and the positions of the centers of adjacent uprights.
[0140] The proposed algorithm improves the accuracy of determining the current position of a mobile robot on a pre-generated navigation map through a combination of technical solutions. By using predicted rack post centers, zones of interest are localized in lidar scans, reducing the impact of noise and extraneous objects during data analysis. The ability to set the rack orientation strictly orthogonal to the navigation map reduces uncertainty in the rack orientation, ensuring a more stable and reproducible geometric reference. Integration of data obtained from multiple scans at different robot positions compensates for partial visibility of objects and improves the reliability of rack post center determination, including in the presence of occlusions.Refining the position of a rack segment by approximating all detected rack centers allows for a refined rack model, improving its alignment with the actual structure of the facility despite potential map errors. Averaging rack center coordinates across all scans and projecting them onto the refined segment eliminates local deviations caused by measurement noise and improves the model's consistency with actual observations. Furthermore, reconstructing missing racks based on the parametric model, rack widths, and distances between them ensures the completeness and structural integrity of the rack model, even if individual racks are missed during the survey. Taken together, these techniques improve the accuracy of matching the robot's current observations to the navigation map, which is especially important in areas containing racks, where the geometry is repetitive and visibility may be limited.
[0141] 3.1.3. Algorithm for determining the center of the column (AOCS)
[0142] The algorithm's input data includes the input position of the rack center, the rack segment, the rack width, scan points in the vicinity of the rack post, and the lidar position for the current scan. The algorithm's output is the coordinates of the rack center or an indication that the rack center cannot be determined.
[0143] The algorithm for detecting a pillar from a scan begins with a preliminary check to determine whether detection is worthwhile. This avoids wasting computing resources when processing poor or incomplete data. For example, if there are too few points in the area of the suspected pillar or the viewing angle is too sharp—that is, the pillar is located almost to the side and is poorly visible—processing is simply skipped.
[0144] If the check is passed, data cleanup is performed. In real-world conditions, the area of the suspected rack may contain not only points from the rack itself but also points from other objects, such as pallets, boxes, and equipment. Therefore, at this stage, the algorithm's task is to separate useful data from "noise." To do this, all points are grouped by spatial proximity: each resulting group potentially corresponds to an object in the field of view.
[0145] Next, clustering is performed: the distances between adjacent points are analyzed, and if there are sharp jumps in distance, "gaps" are created between groups. This allows for the formation of several point clusters—that is, compact sets, each of which can be an independent object, such as a rack, a pallet, or a data anomaly.
[0146] After clustering, a selection process is performed: all groups containing too few points are removed, as they are likely random noise or data fragments. Depth filtering is also performed: the position of the closest point in each group is calculated, and points located significantly (beyond a preset distance, e.g., 10 cm) further from it are removed—it is assumed that the front of the rack is closer to the lidar.
[0147] The final stage involves final selection—determining which of the remaining point groups actually corresponds to the pillar. To do this, the center of each group is compared with the predicted position of the pillar, and the group width is assessed for its correspondence to the expected width of the pillar. If the parameters match, the group is considered to be a pillar. Thus, the final result is the most reliable detection of the pillar based on a single scan, taking into account the geometry, data structure, and preliminary prediction, or an indication that a reliable determination of the pillar's position is not possible.
[0148] The advantage of this approach is that it avoids unreliable decisions: instead of trying to "guess" a rack's position based on poor-quality or incomplete data with low accuracy, the algorithm makes a balanced decision—either reliably locates the rack or honestly reports that it cannot be determined. This increases the overall reliability of the system and simplifies subsequent processing: missing racks are later reconstructed parametrically—based on the known dimensions of the rack and the positions of adjacent racks, where accuracy is significantly higher due to the regularity of the structure.
[0149] The algorithm includes the following steps:
[0150] 1. Check the number of points, if the scanned points are less than a certain pre-set reliability threshold, for example, 3 points, then the center of the column is considered not found.
[0151] 2. Determine the viewing angle of the rack with the lidar relative to the rack section, and if the angle is less than a certain pre-set reliability threshold, for example, 30 degrees, then the center of the rack is considered not to be found.
[0152] 3. Group scan points to separate points located on the stand from points located on other objects. To do this, first create a first group of points and add the first scan point to it.
[0153] 4. For all scan points from the second to the penultimate point, determine whether a break should be made, that is, ending the current group and adding the new point to a new group as follows:
[0154] a. From a certain neighborhood (e.g., five points) of scan points to the left of the current point, find the left point, that is, the point closest in distance to the current point on the left side.
[0155] b. From a certain neighborhood (e.g., five points) of scan points to the right of the current point, find the right point, that is, the point closest in distance to the current point on the right side.
[0156] c. If the distance from the left point to the current point is several times (e.g. 4 times) greater than the distance from the right point to the current point, or the distance from the left point to the current point is greater than a certain threshold value (e.g. 5 cm), or the distance from the left point is greater than another threshold value (e.g. 3 cm), and the difference in the distances from the rack segment between the current and left points is greater than another threshold value (e.g. 4 cm), then the current point group is considered formed and a new point group is created, to which the currently analyzed point is added, after which the scan proceeds to the next point.
[0157] d. If the distance from the right point to the current point is several times (e.g., 4 times) greater than the distance from the left point to the current point, or the distance from the right point is greater than a certain threshold (e.g., 5 cm), or the distance from the right point is greater than another threshold (e.g., 3 cm), and the difference in the distances from the rack segment between the current and right points is greater than a certain threshold (e.g., 4 cm), then the current point is added to the current group and the group is considered formed, after which a new group is created and the scan proceeds to the next point.
[0158] e. If none of the previous conditions are met, then the current point is added to the group.
[0159] 5. The last scan point is added to the group.
[0160] 6. Filter groups by the number of points - if a group has less than a certain number of points (for example, 6 points), the group is deleted; if there are no more groups left, the center of the rack is considered not found.
[0161] 7. Define the baseline as a line parallel to the rack segment passing through the lidar position of the current scan. For each group, remove points that are far from the front of the rack as follows:
[0162] a. Among all the points in the group, find the point whose distance to the baseline is minimal; this distance is designated as the base distance.
[0163] b. If among all the points in a group, the distance from the baseline to a point in the group is greater than the baseline plus some additional value (e.g. 2 cm), then this point is removed from the group.
[0164] 8. Filter groups by the number of points. If a group contains less than a preset number of points (e.g. 6), the group is deleted; if there are no more groups, the center of the rack is considered not found.
[0165] 9. Find the extreme points and the center of each group.
[0166] 10. Find the group whose center is closest to the input center of the rack upright. If the distance between its extreme points differs from the upright's width by no more than a specified threshold (e.g., 3 cm), the upright is considered found. 11. Equate the upright's center to the center of the found group.
[0167] The proposed algorithm for determining the position of a rack upright based on lidar scan data improves the accuracy of determining the current position of a mobile robot on a pre-built navigation map through step-by-step filtering and processing of the data, aimed at reliably separating points corresponding to the upright from noise and extraneous objects. In the initial stages, the algorithm excludes unreliable cases, such as scans with an insufficient number of points and scans with an unfavorable viewing angle, thereby avoiding false positives when determining the upright's position. Next, the scan is segmented into groups of points based on an analysis of local distances between adjacent points and their relative positions to the rack segment, enabling the identification of compact and geometrically consistent clusters corresponding to potential objects of interest.The mechanism of step-by-step analysis of distances in local neighborhoods and discontinuity criteria allows for the highly sensitive separation of groups of points belonging to different objects, even in conditions of dense object placement and noise.
[0168] Additional filtering of groups by point number and removal of points significantly behind the rack front based on the distance to the baseline ensure clusters are clear of random points and artifacts and allow the removal of points located on the sides of the rack, leaving only those points belonging to the front of the rack. This, in turn, improves the geometric purity and homogeneity of the data used for subsequent rack center determination. A final check to ensure that the group width matches the specified rack width eliminates false positives and increases the reliability of selecting the true rack. Selecting the group center closest to the expected rack position as the actual rack center allows for precise alignment of scan results with the navigation map.All these measures taken together allow for a significant increase in the accuracy of the rack localization in each iteration of lidar data processing, thereby ensuring more precise positioning of the robot in space, especially in conditions of limited visibility and structural heterogeneity of the environment.
[0169] 3.1.4. Correction of distances between racks
[0170] As part of the algorithm for mapping racks and rack sections using lidar scanning data on a navigation map, a procedure for correcting the distances between racks is provided, aimed at eliminating systematic distortions that arise during map construction, including those due to sensor noise or errors in odometric localization.
[0171] In particular, when there are extended (long) racks on the navigation map, there may be instances where the total rack length, expressed as the sum of the distances between the uprights, differs from the actual geometry observed in the scan data. This discrepancy can reach several centimeters (e.g., 5-10 cm) and manifests itself as a uniformly distributed error along the entire rack, leading to a shift in the predicted positions of the upright centers relative to the actual observed ones, especially at the end of the rack. This, in turn, significantly reduces the accuracy of rack detection and the robustness of the algorithm.
[0172] To compensate for this effect, a procedure is introduced for selecting the optimal set of distances between racks based on an assessment of the consistency of the obtained rack centers from the scan with the predicted positions.
[0173] The correction is performed over a range of values for the scaling compression and expansion of the inter-post pitch, for example, from -1 cm to +1 cm in 1 mm increments. For each correction value, the original set of inter-post distances is modified. Then, for each modified configuration, the post detection procedure is performed using the basic map construction algorithm.
[0174] Among all configurations, the optimal one is selected according to the following criteria:
[0175] - if the number of successfully detected racks in the current configuration is less than in the current best, move on to the next configuration;
[0176] - if the number of found racks matches, the sum of the distances between the corresponding predicted rack centers and the centers determined from the scan data is compared; if the total error is smaller, the current configuration is considered the best;
[0177] - if the number of racks found is greater, the current configuration is automatically recognized as the best.
[0178] As a result, a set of adjusted inter-rack distances is determined and used that provides the best match between the model and the observed data, allowing for reliable and consistent determination of rack rack uprights along its entire length.
[0179] Influence on technical result:
[0180] The proposed procedure for correcting the distances between racks compensates for systematic map distortions that occur when constructing or updating a navigation model through adaptive refinement of the rack geometric parameters. This improves the reliability and accuracy of detecting the actual positions of racks based on scanning data, especially in extended linear structures. This achieves the stated technical result of increasing the accuracy of determining the current position of a mobile robot on a pre-generated navigation map, which, in turn, improves the accuracy of operations such as pallet loading and unloading in automated warehouses.
[0181] 4. Obtaining sections of racks
[0182] From the set of coordinates of the rack upright centers, the rack sections are obtained by executing a grouping and approximation algorithm, according to which: for each rack center, a set of the nearest uprights is determined, located at a distance not exceeding a specified threshold value and having a mutual arrangement corresponding to the direction of the potential rack section; based on the directions determined for all pairs of the nearest uprights, clusters of uprights belonging to the same line are identified; for each cluster, the coordinates of the upright centers are approximated by a straight line, determining the parameters a, b, c from the straight line equation ax + by + c = 0; from the set of upright centers belonging to the same line, the extreme points are selected, which are taken as the start and end points of the rack section; if necessary, missing uprights between the extreme points are restored based on the geometric parameters of the rack and the step between the uprights;As a result, for each selected cluster, a segment of the rack is obtained, characterized by the parameters of the equation of the line and the coordinates of the starting and ending points.
[0183] In the preferred method for obtaining rack sections described above, rack sections are obtained without performing a separate step of constructing them from a set of coordinates of the centers of the racks, since during the algorithm for mapping racks and racks, refined rack sections are already formed, containing the parameters a, b, c from the equation of the straight line ax+by+c=0 and the coordinates of the starting and ending points, which are then directly used in the subsequent steps of the method.
[0184] It is preferable to use the normalized equation of a line, that is, the equation ax+by+c=0 for which the condition is satisfied In such an equation, the normal vector (a,b) has unit length, as a result of which the coefficients a and b represent the cosine and sine of the angle of inclination of the normal to the line.
[0185] As a result, when normalized, the value axi+byi+c is numerically equal to the signed distance from the point (xi, yi) to the line and no additional division by is required , which simplifies and speeds up calculations. Regardless of the line's orientation, the abc values are in a consistent system of units, and distances obtained from the equation are expressed in the same units as the coordinates.
[0186] As a result, when checking whether a point belongs to a specific side of a line, when projecting points onto a line, or when calculating angles between lines, the normalized form enables direct use of the coefficients a and b without rescaling. Thus, the normalized equation of a line simplifies computational logic, reduces the number of floating-point operations, and increases the reliability of results when working with coordinates and distances in rack mapping algorithms.
[0187] 5. Rack orientation determination algorithm (ROD)
[0188] The input data of the algorithm are a straight line segment of the rack in the form of the equation of the line ax + by + c = 0, on which the segment lies and the coordinates of the segment's endpoints p0 and p1, and a navigation map containing a list of scans and the corresponding robot positions and an occupancy map. The output of the algorithm is a segment of the rack and a set of rack upright centers. The output of the algorithm is the orientation of the rack relative to the specified straight line, expressed as a value of +1 or -1. For vertically oriented racks on the map, a value of -1 corresponds to the location of the rack to the left of the straight line segment, and the aisle to the right; a value of +1 corresponds to the opposite arrangement. Similarly, for horizontally oriented racks, a value of -1 indicates that the rack is located at the bottom, and the aisle is at the top; a value of +1 means the opposite.
[0189] When constructing the navigation map, the robot moved along an alley running alongside a rack. Even though the alley was wide, it traveled alongside the rack to obtain high-quality mapping of its racks. As a result, the lidar positions obtained during the robot's movement are mostly located on one side of the straight section of the rack, allowing the distribution of these positions to determine the direction of the alley and, consequently, the orientation of the rack.
[0190] The algorithm is implemented as follows.
[0191] Sets the initial weights for each of the possible orientations to zero: the weight for the negative orientation is w − =0, and the weight for the positive orientation w + =0. Next, for each position of the lidar (x i ,y i ) from the navigation map, the signed distance d is determined from a given point to a straight line describing a segment of the rack.
[0192] In this case, the value of d is first calculatedp =ax i +by i +c, which is the signed distance from the point to the line in the direction of the normal.
[0193] In this context, the signed distance is a value whose absolute value corresponds to the standard (always non-negative) distance from a point to a line, while its sign determines which side of the line on which the rack segment is located the lidar position is located. Positive and negative signed distance values correspond to the point being located on opposite sides of the line, and it is the side in the algorithm that is decisive for the correct extraction and processing of data associated with a specific rack segment.
[0194] Then it is determined whether the projection of the point (x i ,y i ) onto the line between points p0 and p1, which bound the segment. If the projection belongs to the segment, the distance d is taken to be equal to d pOtherwise, the minimum distance from the lidar position to one of the ends of the segment is selected, and the sign of the distance is kept the same as that of d p
[0195] If the distance modulus |d| is less than a specified threshold value (e.g. 4 meters), then this lidar position is considered relevant and the corresponding weight is increased: if d<0, then w − increases by 1; if d≥0, then w + is incremented by 1. Lidar positions that do not satisfy the threshold condition are preferably ignored. After all lidar positions have been processed, the weights are compared: if w − >w + , then the orientation of the rack is taken to be equal to -1; if w + >w − , then the orientation is equal to +1. However, the user can manually set the orientation if automatic detection proves difficult or requires adjustment.
[0196] Using the described algorithm, it is possible to determine the orientation of each rack on the navigation map without human intervention, automatically distinguish between racks oriented in opposite directions, and correctly generate zones between rows of racks. Thus, this algorithm contributes to the technical result of automatically identifying rack zones and pallet spaces on the navigation map without the need for manual marking.
[0197] 6. Defining rack zones
[0198] The next step of the claimed method is to define rack zones, which are defined as areas of the warehouse occupied by racks. This step is performed after the orientation of rack sections has been determined. Defining rack zones is necessary for the subsequent interpretation of the navigation map in terms of the logical structure of the warehouse space, including pallet spaces and other functional areas.
[0199] Shelves may be freestanding or adjacent to each other. A freestanding shelving unit, for the purposes of this description, is a shelving unit on the opposite side of which the robot is not working. This situation may arise for various reasons: for example, the opposite side of the shelving unit may be adjacent to a warehouse wall, or another shelving unit may be adjacent to it, but no access has been established from that side, and no navigation map has been created there. As a result, the second section of shelving that forms the opposite side of the zone may be missing from one side of the zone.
[0200] Each rack zone is formed based on a pair of rack segments located opposite each other and oriented in opposite directions. These segments are already approximated by straight lines in the form of equations.
[0201] ax+by+c=0
[0202] with specified endpoint coordinates, and their orientations determined in the previous step. If two rack segments are oriented oppositely and located on the map at a distance preferably no greater than a predetermined threshold, for example, twice the rack depth plus 0.2 m, a rack zone is defined between them. The space between such segments, delimited in length by their intersection points with imaginary perpendicular boundaries, is considered the occupied area, which most likely contains the physical structure of the rack.
[0203] Zones for freestanding racks for which only one rack section is known are determined as follows. After zones for combined racks are formed, sections that were not included in any pair are selected. For a freestanding rack, a second zone boundary is formed parallel to the existing section at a distance equal to the rack depth or a specified parametric value (possibly extended). The zone is formed as a rectangular area between the original rack section and a parallel line set at a specified distance in the direction of the current rack section's orientation.
[0204] In one preferred embodiment, a rack zone is defined by defining the four vertices of a closed polygon bounding the corresponding area. Each pair of adjacent points is connected by a straight line, and the zone boundaries are defined as a system of straight-line equations. This method of definition is convenient for subsequent verification of whether a point falls within the zone and provides an accurate geometric description, especially if the rack segments are not strictly parallel.
[0205] Alternatively, a rack zone can be defined as a set of cells (or point coordinates) on the occupancy map, corresponding to occupied areas of space associated with a given rack. This method is discrete and is particularly convenient when working with an occupancy grid map, where each value corresponds to an occupancy level. In this case, a rack zone is a subset of cells with a high occupancy probability, grouped by spatial characteristics and corresponding to the space between opposite rack segments.
[0206] In another option, the rack zone is defined parametrically, which is convenient for database storage and quick analysis. This zone is described by the following parameters:
[0207] - the length of zone L, equal to the distance between the outer edges of the extreme rack posts;
[0208] - zone width W, determined by the average distance between a pair of opposite sections (for combined racks) or as a separate parameter (for a free-standing rack);
[0209] - the angle of inclination of the zone θ, corresponding to the orientation of the rack segments on the map (for example, the angle between the abscissa axis and the direction along the rack);
[0210] - coordinates of the zone center (xc, yc), calculated as the average between the centers of two opposite segments.
[0211] This description method provides a compact representation and can be effectively used for logical markup and navigation planning tasks.
[0212] Each of the above methods can be used depending on the technical requirements, the amount of available information, and the map format. Furthermore, it is possible to use multiple representations simultaneously, for example, a parametric description for navigation and four points for visualization.
[0213] Regardless of the specific method for describing a rack zone, its definition ensures automatic identification of the area occupied by storage equipment and allows for precise localization of pallet spaces within it, defining obstacle avoidance contours, and defining a map update zone—an extended area around the rack zone where changes to the warehouse structure are most likely to occur. Thus, implementing these methods for defining rack zones directly contributes to the technical results of the claimed method.
[0214] Defining rack zones significantly contributes to the technical results of the invention. Firstly, knowing the positions and boundaries of such zones makes it possible to automatically allocate pallet spaces—potential cargo placement positions—which are arranged within these zones on a regular grid corresponding to the geometry of the racks and bays. Secondly, the presence of rack zones allows for the delineation of functional areas in the warehouse, including: robot movement zones (alleys), storage zones, restricted access zones, high-change zones, etc.
[0215] Of particular importance is the ability to define map update zones, which are areas slightly larger than the corresponding rack zones. These zones are subject to priority checking and updating during subsequent robot passes, as they are where changes are most likely to occur: the addition of new items, the movement of racks, partial blocking or freeing of space. Thus, defining rack zones not only allows for structuring the map but also for adaptive updating of navigation information, increasing the reliability of autonomous navigation.
[0216] Thus, the stage of defining rack zones provides the ability to automatically analyze the logical structure of the warehouse space, which directly contributes to the achievement of the technical results of the invention - the automatic determination of rack zones and pallet spaces without the need for their manual marking.
[0217] 7. Determination of pallet locations
[0218] After defining the rack zones and their orientation, the process of automatic marking of pallet locations necessary for subsequent interaction with cargo - placing and retrieving pallets using a mobile robot - can be carried out.
[0219] A pallet location is a logically allocated area on the navigation map, designed to accommodate one pallet, and is characterized by a set of parameters that determine its position, dimensions, and conditions of interaction with the robot.
[0220] Each pallet location can be defined with the following characteristics:
[0221] coordinates of the pallet location center;
[0222] the dimensions of the pallet space corresponding to the dimensions of the pallet (for example, 800×1200 mm for a Euro pallet);
[0223] pallet type (Euro, Finnish, American, etc.);
[0224] pallet location orientation, which determines the direction of loading / unloading of the pallet;
[0225] the height of the pallet space relative to the floor level, corresponding to the rack tier;
[0226] additional parameters (for example, availability indicator, priority level label, etc.).
[0227] The automatic pallet placement process is performed within pre-defined rack zones, based on rack upright information, span geometry parameters, and specified pallet placement conditions. For each rack segment, its approximation is used as a straight line along which the uprights are located. The space between pairs of uprights (span) is analyzed to accommodate one or more pallet placements.
[0228] Before starting pallet placement, a set of parameters sufficient for their generation is specified. These parameters include:
[0229] pallet type or directly the dimensions of one pallet;
[0230] number of pallets placed in one rack span;
[0231] distances from rack uprights to pallets, as well as between the pallets themselves (can be specified explicitly or calculated as uniform within the span);
[0232] the value of the pallet overhang over the beam (if the value is negative, the pallet recedes into the rack);
[0233] The heights of the rack tiers, which determine the vertical placement levels of pallet spaces.
[0234] Based on this data and the rack upright positions, the system automatically calculates the coordinates of the pallet location centers. The calculation is performed separately for each span and tier. The pallet location centers are evenly spaced along the span, taking into account the specified offsets and overhangs. The orientation of each pallet location is inherited from the orientation of the rack segment determined in the previous step, taking into account the direction from which the robot should access it. The pallet location height is assigned according to the height of the corresponding tier.
[0235] For example, if a single tier containing three pallet spaces for 800x1200 mm Euro pallets is specified between two uprights, with uniform spacing and a 50 mm overhang, the system automatically creates three rectangles of the specified size, positioned along the span, with the specified orientation and height. These pallet spaces are visually displayed as rectangles inscribed in the area between the uprights, offset inward or outward from the rack plane depending on the overhang.
[0236] If the rack design requires a different number of pallets or different parameters per tier or span, these parameters can be customized for each segment. This algorithm thus allows for complete flexibility in storage layout and configuration.
[0237] Also, along with pallet locations, robot approach trajectories can be generated for picking up or unloading pallets. The robot's trajectory is a polyline described by a set of oriented points on the navigation map. Approaches to each pallet storage area can be generated from different sides of the alley. These trajectories depend on the robot's physical characteristics (such as wheelbase and physical contours) and are built separately for each type of robot.
[0238] One option for a set of access paths to racks is the concept of roads, which are an overlapping set of rectangles. Within these roads, a set of movement and access paths to each pallet location can be subsequently constructed, depending on the technical characteristics of each robot.
[0239] As a result of this process, the navigation map can be supplemented with structured information about storage locations—pallet locations—representing logically justified, parametrically described, and geometrically verified pallet placement positions. This enables the use of this data in autonomous navigation, route planning, cargo receipt and delivery, warehouse structure visualization, and fullness monitoring.
[0240] 8. Determining map update zones
[0241] To improve the accuracy of subsequent localization of a mobile robot and the reliability of navigation map construction when non-static objects (pallets) are placed within each rack zone, a corresponding map update zone is automatically defined. This zone is an area within which priority navigation map data updates are performed during subsequent robot passes. This task is relevant because pallets within the rack are not permanent (stationary) obstacles, and their movement can significantly distort the localization algorithms' perception of the environment. Identifying specific zones for regular or selective updating prevents map degradation and improves the stability of the navigation system in real warehouse conditions.
[0242] The map update zone is defined as one or more rectangles placed near rack segments oriented toward the aisle. Zones are generated automatically based on the following data: rack segments described by line equations; the specific orientation of each segment using the rack orientation determination algorithm; zone placement parameters, including the offset from the rack plane toward the aisle and, if necessary, the update zone width.
[0243] In this case, map update zones do not include rack uprights and are generated for each rack bay. If the rack is freestanding, the update zone width is defined parametrically or can be increased relative to the width of the corresponding rack zone. For adjacent racks located opposite each other, a single update zone is used between the racks, with the zone boundaries defined from the edges of the inner uprights of the corresponding racks.
[0244] The algorithm for determining the map update zone includes the following basic steps. First, for each rack segment for which an update zone is to be constructed, the normal to its line in the direction of the rack's orientation is calculated (the orientation determines the aisle's location relative to the segment). From this line, representing the rack's plane, an offset is measured at a fixed distance (e.g., 15 cm) toward the aisle, defining the first boundary of the zone. The second boundary is determined either as a fixed width (e.g., 1.5 m) or—if the racks are stacked—by the distance between the planes of two opposite racks, taking into account any offsets.
[0245] In the case of combined racks, a single update zone is created; it covers the space between the two rack planes, forming a common rectangle, as shown in [Fig. 10 and Fig. 11]. Thus, the update zone covers not only the pallet placement area, but also the immediate area where changes are most likely: pallet movements, personnel movements, or the appearance of temporary objects.
[0246] Geometrically, each actualization zone is described parametrically:
[0247] coordinates of one of the corners (for example, the lower left);
[0248] length (corresponding to the length of a section of the rack or the sum of several sections);
[0249] width (either specified or calculated automatically);
[0250] orientation of the rectangle (angle of inclination to the horizontal, coinciding with the orientation of the rack segment).
[0251] Thus, each zone is an oriented rectangle, precisely aligned to a specific part of the rack structure and integrated into the overall navigation map. The resulting zones can be used in various subsystems: to increase the map update rate (dynamic SLAM updating), to filter out false obstacles, to visually analyze changes in the warehouse, and to mark areas requiring visual inspection or data cleanup.
[0252] Automatic detection of the map update zone allows you to:
[0253] Efficiently manage dynamic changes in warehouse;
[0254] Ensure the stability of the robot's localization when working near racks containing moving objects;
[0255] Improve the reliability of navigation map construction and trajectory planning;
[0256] Adapt the robot's behavior depending on the structure and configuration of the racks.
[0257] Thus, this process makes an additional contribution to achieving the technical result of the invention, which consists in the automatic construction of a navigation map suitable for the precise determination of rack zones and pallet spaces, without the need for manual marking, with the ability to dynamically update data in zones with the highest probability of changes.
Claims
1. A method for mapping a warehouse space using a mobile robot, wherein the mobile robot comprises: a 2D lidar configured to generate scans of the environment consisting of a plurality of scan points; a drive wheel configured to set the robot in motion; an odometry module configured to determine odometry data during robot movement - the speed and angle of rotation of the drive wheel of the robot; a robot navigation module configured to control the operation of the drive wheel and exchange data with the 2D lidar and the odometry module, in this case, according to the method: move the robot around the room and receive scans of the room generated by the lidar and odometric data from the odometry module; and construct a navigation map based on the obtained room scans and odometric data, including a room occupancy map, a set of scans and the corresponding lidar positions at the time of scanning, receive a set of coordinates of the centers of the rack uprights and the value of the rack depth, determine from the set of coordinates of the centers of the rack uprights the rack segments, characterized by the parameters of the equation of the straight line on which the segment is located, and the coordinates of the initial and final points of the segment, for each section of the rack, the orientation of the rack is determined by executing the algorithm for determining the orientation of the rack, define the rack zones between adjacent rack sections with opposite rack orientations, separated by a distance not exceeding a predetermined value, define the rack zones between the unused sections of the rack and the sections parallel to them, shifted in the direction of the rack orientation by the rack depth, in this case, according to the algorithm for determining the orientation of the rack: for each position of the lidar with coordinates xᵢ and yᵢ from the navigation map, the signed distance d to the straight segment of the rack is determined: calculate the sign distance from the point to the straight line segment of the rack along its normal d p , in this case, if the projection of the lidar position on the straight line of the rack segment belongs to the segment, the value d is used as the distance d p ; and if the projection of the lidar position onto the straight line of the rack segment lies outside the segment, the smaller of the distances to one of the ends of the segment is used, preserving the sign of d p ; increase the weights for positive and negative orientation depending on the sign of the distance; determine the orientation of the rack section by comparing the specified weights.
2. The method according to claim 1, in which obtaining a set of coordinates of the centers of the racks includes the steps of receive data on the detection zone of rack uprights, rough sections of racks and geometric parameters of racks, including the dimensions of the uprights and the spans between them, Determine refined rack sections and sets of mapped rack upright centers by executing a rack and upright mapping algorithm for each rough section, according to which: the predicted positions of the rack upright centers along the direction of the rough section are calculated based on the geometric parameters of the uprights and the spans between them; for each scan from the set of scans, the scan points are converted into the coordinate system of the navigation map and points are selected in the vicinity of the predicted centers of the pillars; The positions of the upright centers are specified based on the selected points and the rack segment is updated by approximating all the found upright centers with a straight line; The found coordinates of the rack centers are averaged across all scans, projected onto a section of the rack, and the missing racks are reconstructed parametrically based on the rack geometry and the position of adjacent racks. A refined section of the rack is obtained in the form of parameters a, b, c from the equation of the straight line ax + by + c = 0, to which the rack section belongs, and the coordinates of the end points of the rack section.
3. The method according to paragraph 1, which further comprises the steps of: receive the geometric dimensions of the pallet spaces and data on the location of the pallet spaces on the racks, and determine the positions of pallet spaces within the rack zones.
4. The method according to claim 1, which further comprises the steps of determining map update zones by increasing the boundaries of the rack zones by a predetermined distance in the direction of the positive orientation of the rack sections.