This application claims the priority benefit of Taiwan application serial no. 112101965, filed on Jan. 17, 2023. The entirety of the above-mentioned patent application is hereby incorporated by reference herein and made a part of this specification.
The disclosure relates to an automatic control technology, and in particular to a path planning method and an autonomous traveling robot.
Currently, the autonomous traveling vehicle system may use simultaneous localization and mapping (SLAM) or a rail system to achieve autonomous traveling. At present, there are various applications using the autonomous traveling vehicle system, such as the ultraviolet-C (UVC) sterilizing robot. Different applications may face different difficulties. For example, due to the limitation of the mechanism design of the UVC sterilizing robot, the ultraviolet lamp tube can only irradiate toward a fixed direction, so when the robot is operating, the side irradiated by the ultraviolet lamp must face the sterilizing target. When the UVC sterilizing robot is operating, if the distance from the sterilizing target is too far, the sterilizing efficiency deteriorates. However, if the distance from the sterilizing target is too short, the robot may easily collide with the sterilizing target.
The disclosure provides a path planning method and an autonomous traveling robot, which can plan a suitable route to improve the operating efficiency of the robot.
A path planning method of an embodiment of the disclosure includes (but not limited to) the following steps. A target area is obtained. A traveling path is decided by a safety distance. The traveling path is at least at the safety distance from an edge of the target area. An autonomous traveling robot being moved by the traveling path is controlled.
An autonomous traveling robot of an embodiment of the disclosure includes (but not limited to) a moving mechanism, a memory, and a processor. The memory is used to store a program code. The processor is coupled to the moving mechanism and the memory. The processor is used to load the program code to obtain a target area, decide a traveling path by a safety distance, and control the moving mechanism to move by the traveling path. The traveling path is at least at the safety distance from an edge of the target area.
Based on the above, according to the path planning method and the autonomous traveling robot of the embodiments of the disclosure, the traveling path at the specific safety distance from the edge of the target area may be set. In this way, the operating efficiency can be improved and resources can be saved. For applications such as the UVC sterilizing robot, collisions can be prevented or reduced, while maintaining the sterilizing efficiency.
In order for the features and advantages of the disclosure to be more comprehensible, the following specific embodiments are described in detail in conjunction with the drawings.
The communication transceiver 11 may be a transceiver circuit supporting mobile network, Bluetooth, Wi-Fi, or other wireless communication technologies. In an embodiment, the communication transceiver 11 is used to transmit or receive data with an external device (for example, a server, a router, or a mobile phone) via a network.
The sensor 12 may be an optical radar, a camera, an ultrasonic transceiver, a time of flight (ToF) camera, a depth sensor, or a combination thereof. In an embodiment, sensing data (for example, the intensity of multiple elements in a sensing matrix) of the sensor 12 may be used to decide the position and the orientation of an object.
In addition, the sensor 12 may be an accelerometer, a gyroscope, an electronic compass, an inertial sensor, or a combination thereof. In an embodiment, sensing data (for example, the acceleration, the direction, or the angle) of the sensor 12 may be used to decide the position and/or the posture of the autonomous traveling robot 10 and may be used by a navigation system of the autonomous traveling robot 10.
The moving mechanism 13 may include a power unit (for example, a motor or an engine), a transmission system (for example, a transmission shaft or a variable speed shaft), and a drive wheel (for example, a wheel or a track). In an embodiment, the purpose of changing the position (moving) can be achieved through controlling the driving of an actuator (for example, the motor or the engine) of the moving mechanism 13.
The memory 14 may be any type of fixed or removable random access memory (RAM), read only memory (ROM), flash memory, hard disk drive (HDD), solid-state drive (SSD), or similar elements. In an embodiment, the memory 14 is used to store a program code, a software module, a configuration, data, or a file (for example, sensing data, map data, object data, distance, position, etc.), which will be described in detail in subsequent embodiments.
The processor 15 is coupled to the communication transceiver 11, the sensor 12, the moving mechanism 13, and the memory 14. The processor 15 may also be a central processing unit (CPU), a graphics processing unit (GPU), other programmable general purpose or specific purpose microprocessors, digital signal processors (DSP), programmable controllers, field programmable gate arrays (FPGA), application-specific integrated circuits (ASIC), neural network accelerators, other similar elements, or a combination of the above elements. In an embodiment, the processor 15 is used to execute all or some operations of the autonomous traveling robot 10 and may load and execute each software module, file, and data recorded in the memory 14.
In an embodiment, the autonomous traveling robot 10 further includes a sterilizer 16. That is, the autonomous traveling robot 10 is provided with the sterilizer 16. The sterilizer 16 is coupled to the processor 15. The sterilizer 16 may be a UVC sterilizing lamp, an alcohol spray gun, or a vector mosquito sterilizing sprayer. However, in other embodiments, for different application scenarios, the autonomous traveling robot 10 may also be equipped with a cleaning system, a transportation mechanism, a meal ordering system, or a monitoring system.
In an embodiment, the autonomous traveling robot 10 further includes a display (not shown). The display is coupled to the processor 15. The display is used to present a user interface or information.
In an embodiment, the autonomous traveling robot 10 further includes a light source (not shown). The light source is coupled to the processor 15. The light source may be an LED or a light bulb.
In an embodiment, multiple elements of the autonomous traveling robot 10 are integrated. For example,
It should be noted that the hardware structures shown in
In order to facilitate the understanding of the operation process of the embodiment of the disclosure, the following will illustrate the operation process of a map construction device 100 in the embodiment of the disclosure in detail with several embodiments. Hereinafter, the method of the embodiment of the disclosure will be described in combination with each device and an element or a module thereof in the autonomous traveling robot 10.
In an embodiment, the processor 15 may receive a selecting operation of a target object. The selecting operation may be an operation through an input device (for example, a touch screen or a button) and directed at the target object or an operation received from an external device (for example, a mobile phone, a tablet computer, or a desktop computer) through the communication transceiver 11 and directed at the target object. The target object may be a machine, a production line, a furniture, a home appliance, a person, or a building structure. In an embodiment, the target object is the sterilizer 16 or a target of a sterilizing operation. In other embodiments, the target object may be a target of other operations.
The processor 15 may define an edge of the target area by an outline of the target object. The outline of the target object is, for example, an edge defined by a top view angle. The processor 15 may define the edge of the target area to be the same or roughly the same as the outline of the target object.
For example,
The processor 15 obtains field information (Step S520). The field information may include the positions (which may be converted into coordinates) and the face/heading angles of a structure and an object on the map. The processor 15 may decide the type of the structure and/or the target object according to an image recognition technology or a marking result.
The processor 15 may receive the selecting operation (Step S530). The selecting operation is received through an internal or external input device and is an operation of selecting an object on the map. That is, the selecting operation is used to use a selected object as the target object.
In an embodiment, the processor 15 may provide a user interface, such as displaying the user interface through an internal or external display. The user interface may present the two-dimensional map of the field, such as the two-dimensional map or the plan layout generated by scanning.
The processor 15 may receive an editing operation on the two-dimensional map through the internal or external input device. The editing operation includes adding a target node of the target area. The processor 15 may define the edge of the target area by the editing operation. The target node is located at the edge of the target area. Multiple adjacently connected target nodes form the edge/range of the target area. For example, the target area is a polygon and the target node is a junction point/place of any two sides of the polygon. As another example, the target area is a line segment and the target node is a relay point, a start point, or an end point on the line segment. However, the embodiment of the disclosure does not limit the shape of the target area.
Please refer to
In an embodiment, the processor 15 may define the target node on the edge of the target area. In other words, the target node is located on the edge of the target area. The target node is, for example, the intersection point of two sides of the polygon or any point on the line segment.
The processor 15 may extend the safety distance outwardly from the target node away from the target area for an extension node being generated. For example, the extension node is located on the normal of the edge of the target area on the target node and is at the safety distance from the target node. The processor 15 may use the extension node as a path node in the traveling path.
In an embodiment, the shape of the target area is exemplified as a polygon. The target area includes a first side and a second side, and the target node is located at a junction (that is, an intersection point) of the first side and the second side. The processor 15 may extend an extension distance from the target node along the first side for a first node being generated. That is, the first node is at a distance of the extension distance from the target node, and there is a first calculation included angle (θa) between a connection line of the first node and the target node and the second side. Similarly, the processor 15 extends the same extension distance from the target node along the second side for a second node being generated, and there is a second calculation included angle (θb) between a connection line of the second node and the target node and the first side. Since the first calculation included angle (θa) and the second calculation included angle (θa) are diagonally related, the first calculation included angle (θa) is equal to the second calculation included angle (θa), hereinafter referred to as a calculation included angle (θ). In other words, the second node is at a distance of the extension distance from the target node. The projection amount of the extension distance on an imaginary line corresponding to the safety distance is the shortest distance. For example, the normal of the first side or the second side is used as the imaginary line.
The processor 15 may define a parallelogram by a first extension segment from the first node to the target node, a second extension segment from the second node to the target node, and a first included angle (θx) between the first extension segment and the second extension segment, and define a second path node in the traveling path by a vertex of the parallelogram. The first node, the second node, the target node, and the second path node are the vertices of the parallelogram. Therefore, if the first extension segment, the second extension segment, and the first included angle between the two extension segments are known, the processor 15 may decide another vertex (that is, an intersection point/a junction of the two opposite sides, which may be used as the second path node) in the parallelogram opposite to the target node based on the symmetry property of the parallelogram to be defined as a path node in the traveling path accordingly. In addition, the sum of the first included angle (θx) between the first extension segment and the second extension segment and the first calculation included angle (θa) between the connection line of the first node and the target node and the second side is 180 degrees. In other words, the sum of the first included angle (θx) between the first extension segment and the second extension segment and the second calculation included angle (θb) between the connection line of the second node and the target node and the first side is also 180 degrees. Therefore, the first included angle (θx) and the calculation included angle (θ) are complementary angles.
In an embodiment, the processor 15 may define the second path node by the sum of a first vector from the target node to the first node and a second vector from the target node to the second node respectively added to the coordinates of the target node. For the parallelogram, the second path node is an intersection point located on the opposite angle of the target node. The vector represents that there is a directional displacement on the two-dimensional coordinate system. Therefore, the second path node may be reached by displacing starting from the target node along the first vector and the second vector.
In an embodiment, when the coordinates of the three vertices of the parallelogram are known, the processor 15 may also calculate the unknown fourth vertex (that is, the second path node) by using the property of diagonals.
In another embodiment, the second path node may also be any point on the opposite side of the first side or the second side of the parallelogram.
The processor 15 may decide whether an included angle corresponding to the target node outside the target area is a reentrant angle (Step S620). For example, the processor 15 may define a second included angle (θy) corresponding to the target node at a junction of the first side and the second side in the target area and may decide whether a third included angle (θz) corresponding to the target node at the junction of the first side and the second side outside the target area is a reentrant angle. The sum of the second included angle and the third included angle is 360 degrees. The reentrant angle means that an included angle (hereinafter referred to as an interior angle) in the target area is greater than 180 degrees and an included angle (hereinafter referred to as an exterior angle) outside the target area is less than 180 degrees, and a salient angle means that an included angle (an interior angle) in the target area is less than 180 degrees and an included angle (an exterior angle) outside the target area is greater than 180 degrees. As such, it can be seen that the third included angle is equal to the exterior angle corresponding to the target node.
The processor 15 may decide whether the outer product of the first vector from the target node to the first node and the second vector from the target node to the second node has a positive value. The outer product is the normal vector of a plane where the first vector and the second vector are located. Taking the right-hand rule as an example, the index finger of the right hand points to the direction of the first vector and the middle finger points to the direction of the second vector, so the direction of the thumb is the direction of the outer product. In response to the outer product having the positive value (that is, a value greater than zero), the processor 15 may decide that the third included angle is a reentrant angle. On the other hand, in response to the outer product having a negative value (that is, a value less than zero), the processor 15 may decide that the third included angle is not a reentrant angle (that is, a salient angle).
Since the extension distances from the target node respectively to the first and second nodes are the projection amounts respectively corresponding to the first side and the second side, the reentrant angle and the salient angle need to be considered for the extension distances. In response to the third included angle corresponding to the target node at the junction of the first side and the second side outside the target area being a reentrant angle, x=−d/sin(θ), where x is the extension distance, d is the safety distance, and θ is the calculation included angle. On the other hand, in response to the third included angle corresponding to the target node at the junction of the first side and the second side outside the target area not being a reentrant angle, x=d/sin(θ).
In response to the third included angle being a reentrant angle, the processor 15 may reverse calculate the second path node (Step S630). The reverse calculation refers to the case where the outer product has a positive value, and x=−d/sin(θ) may be used to decide the extension distance x. In response to the third included angle not being a reentrant angle (for example, a salient angle), the processor 15 may forward calculate the second path node (Step S640). The forward calculation refers to the case where the outer product has a negative value, and x=d/sin(θ) may be used to decide the extension distance x.
For example,
Please refer to
The processor 15 may define a parallelogram by a first extension segment from the first node pl to the target node b1, a second extension segment from the second node q1 to the target node b1, and a first included angle (θx1) between the first extension segment and the second extension segment. A new point b1 may be obtained by adding the sum of the b1p1 vector and the blql vector to the coordinates of the target node b1 and is expressed as b1′ (that is, the second path node).
The processor 15 may define a parallelogram by a first extension segment from the first node q2 to the target node b2, a second extension segment from the second node p2 to the target node b2, and a first included angle (θx2) between the first extension segment and the second extension segment. A new point b2 may be obtained by adding the sum of the b2p2 vector and the b2q2 vector to the coordinates of the target node b2 and is expressed as b2′ (that is, the second path node).
In an embodiment, there are multiple path nodes on the traveling path, and the processor 15 may define the sequence of the path nodes by the application orientation of the sterilizer 16. Taking the sterilizer 16 shown in
On the other hand, in response to the sterilizer 16 performing the sterilizing operation toward the left, the processor 15 may sort the path nodes according to the counterclockwise direction. However, there may also be other variations in the sequence of the path nodes.
Please refer to
For example,
It is assumed that the safety distance d=0.7 (meter). If the first node and the second node located in the traveling path are to be calculated, the extension distance may be first decided as 1.42 (meters). The outer product corresponding to the target node TN located at the coordinates (7.15, 30.6) is greater than zero. For the right-hand rule, the thumb points upward and the remaining four fingers rotate counterclockwise. On the premise that all vertices of the target area TA3 are sorted clockwise, if an angle is calculated as counterclockwise (that is, the outer product is greater than zero), it means that the angle is a reentrant angle. In response thereto, an exterior angle corresponding to the vertex at the coordinates (7.15, 30.6) is a reentrant angle.
Since the exterior angle corresponding to the vertex at the coordinates (7.15, 30.6) is a reentrant angle, during the process of calculating the first node and the second node, x=−d/sin(θ) is used to correct the directions of a first vector (that is, a vector from the target node TN to the first node) and a second vector (that is, a vector from the target node TN to the second node). The first node is located at the coordinates (5.91, 31.3) and the second node is located at the coordinates (8.57, 30.6).
Please refer to
The moving mechanism 13 may sequentially reach each second path node PN. Along the traveling path P, the shortest distance between the autonomous traveling robot 1 and an edge of the target area TA3 is 0.7 (meter).
On the other hand, during the process of the moving mechanism 13 moving, the processor 15 may activate the sterilizer 16 to perform the sterilizing operation. Alternatively, according to different application requirements, the autonomous traveling robot 10 may perform other operations, such as monitoring, cleaning, or transportation operations.
In summary, in the path planning method and the autonomous traveling robot of the embodiments of the disclosure, the shape of the generated traveling path is similar to the shape of the target area, and the traveling path is ensured to be at the safety distance from the edge of the target area. In addition, for the target area of the polygon, no matter whether the corresponding exterior angle located at the vertex is a salient angle or a reentrant angle, the corresponding path node may be located outside the target area. In this way, a route that maximizes the operation efficiency of the autonomous traveling robot can be obtained.
Although the disclosure has been disclosed in the above embodiments, the embodiments are not intended to limit the disclosure. Persons skilled in the art may make some changes and modifications without departing from the spirit and scope of the disclosure. Therefore, the protection scope of the disclosure shall be defined by the appended claims.
Number | Date | Country | Kind |
---|---|---|---|
112101965 | Jan 2023 | TW | national |