Route generation device, route generation method, and route generation program
The path generation device enables selective recalculation of unsatisfactory robot path sections, reducing computational waste and ensuring reproducible results by allowing section protection.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- KONICA MINOLTA INC
- Filing Date
- 2024-12-09
- Publication Date
- 2026-06-19
Smart Images

Figure 2026100406000001_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to a path generation device, a path generation method, and a path generation program for calculating an operation path of a robot.
Background Art
[0002] In recent years, teaching for setting an operation path of a robot has been performed on a computer (see, for example, Patent Documents 1 and 2). In this case, the working environment of the robot is reproduced on the computer, an operation path connecting a plurality of target positions is calculated, and the obtained operation path is transferred to a robot controller to perform operation control of the robot. In the calculation of the operation path, for example, a random sampling-based path search method such as RRT (Rapidly-exploring Random Tree) is widely used. This is a method of randomly defining waypoints and extending a tree of waypoints so that no collision with an obstacle occurs until two target positions are connected.
Prior Art Documents
Patent Documents
[0003]
Patent Document 1
Patent Document 2
Summary of the Invention
Problems to be Solved by the Invention
[0004] However, in the conventional calculation of the operation path, even if only a part of the result is not satisfactory to the user, it has been necessary to execute recalculation over the entire section. That is, recalculation has been executed for sections that do not essentially require recalculation, which has wasted calculation time. In particular, with random sampling-based pathfinding methods, the calculation results may not be reproducible (see Figures 7 and 8). Therefore, if the calculated path contains parts that the user is not satisfied with, there is a risk that even the parts that the user was satisfied with may change when the path is recalculated.
[0005] This invention has been made in view of the above circumstances, and aims to suitably perform recalculation of the robot's motion path. [Means for solving the problem]
[0006] To achieve the above objective, the present invention provides a route generation device, For a robot in which multiple arms are connected in a movable manner, a path generation unit calculates a motion path that includes multiple sections, If the calculation result of the operation path by the path generation unit exists, the protection unit allows for setting individually for each of the multiple sections whether or not to protect the calculation result, It is equipped with. [Effects of the Invention]
[0007] According to the present invention, the recalculation of the robot's motion path can be suitably performed. [Brief explanation of the drawing]
[0008] [Figure 1] This is a diagram showing a robotic device according to an embodiment. [Figure 2] This is a block diagram showing a schematic control configuration of a robot device according to an embodiment. [Figure 3] This is a flowchart showing the procedure for the route generation process according to the embodiment. [Figure 4] This figure shows an example of the display unit in the route generation process according to the embodiment, and is a diagram of the main screen displayed in the route generation process. [Figure 5] This figure shows an example of the display unit in the route generation process according to the embodiment, and is a diagram of the option setting screen displayed in the route generation process. [Figure 6] This figure shows an example of the display unit in the route generation process according to the embodiment, and is a diagram of the main screen displayed in the route generation process. [Figure 7] This figure shows that the calculation results cannot be reproduced using a random sampling-based pathfinding method. [Figure 8] This figure shows that the calculation results cannot be reproduced using a random sampling-based pathfinding method. [Modes for carrying out the invention]
[0009] Embodiments of the present invention will be described below with reference to the drawings.
[0010] [Robot device configuration] Figure 1 shows a robot device 100 according to this embodiment. As shown in this figure, the robot device 100 comprises a robot body 2, a robot controller 3, and a control device 4.
[0011] The robot body 2 is an example of a robot according to the present invention, and in this embodiment, it is a vertical articulated robot. Specifically, the robot body 2 has a plurality of arms 22, an end effector 23, a plurality of joints 24, and a servo control device 29. Multiple arms 22 are connected in series to each other, with a base portion 21 fixed to an environment (e.g., the floor) not shown as their base end. Multiple joints 24 rotatably connect the base 21, multiple arms 22, and end effector 23. Each joint 24 is provided with an actuator 241 that drives the joint 24, and an encoder 242 that detects the position (speed) of the actuator 241 and outputs it to the robot controller 3 (see Figure 2). The end effector 23 is connected to the ends of multiple arms 22. The servo control device 29 controls the operation of the actuators 241 that drive each joint 24.
[0012] The robot controller 3 controls the operations of each part of the robot body 2 based on the control commands from the control device 4. Specifically, the robot controller 3 outputs position commands to the servo control device 29 of the robot body 2 at a predetermined time interval, and outputs the information detected by each encoder 242 to the control device 4.
[0013] FIG. 2 is a block diagram showing a schematic control configuration of the robot device 100. As shown in this figure, the control device 4 is a computer that controls the entire robot device 100 including the teaching of the robot body 2. The control device 4 is not particularly limited, and for example, it is a notebook PC, a tablet PC, a smartphone, or the like. The control device 4 corresponds to an example of the path generation device according to the present invention. Specifically, the control device 4 includes an operation unit 42, a display unit 43, a storage unit 46, and a control unit 48.
[0014] The operation unit 42 is an operation means for a user (operator of the robot body 2) to perform various operations (inputs) for operating the control device 4. The operation unit 42 includes, for example, a pointing device such as a mouse and a keyboard. The display unit 43 is, for example, a liquid crystal display, an organic electroluminescence display, or other displays, and displays various information based on the display signal from the control unit 48. Note that the display unit 43 may be a touch panel (touch screen) that also serves as a part of the operation unit 42, or may perform voice output.
[0015] The storage unit 46 is a memory configured to include, for example, a RAM (Random Access Memory) and a ROM (Read Only Memory). The storage unit 46 stores various programs and data, and also functions as a working area for the control unit 48. In the storage unit 46 of the present embodiment, a path generation program 461 for executing the path generation process (see FIG. 3) described later is stored in advance. Furthermore, the memory unit 46 pre-stores robot specification data 462, robot position data 463, obstacle shape data 464, and obstacle position data 465. The robot specification data 462 includes information on various specifications and shapes of the robot body 2, such as the length and range of motion of each joint 24. The robot position data 463 includes information on the installation position of the robot body 2 within the work environment. The obstacle shape data 464 includes information on the size and shape of obstacle B (see Figure 4, etc.) that is within the operating range of the robot body 2 and may hinder its operation. The obstacle position data 465 includes information on the installation position of obstacle B within the work environment.
[0016] The control unit 48 is composed of components such as a CPU (Central Processing Unit) and a GPU (Graphics Processing Unit), and controls the operation of each part of the control device 4. Specifically, the control unit 48 displays various information on the display unit 43 based on the operation content of the operation unit 42, and unpacks programs pre-stored in the storage unit 46 and executes various processes in cooperation with the unpacked programs.
[0017] [Route generation process] Next, we will explain the path generation process that generates the movement path for the robot body 2. Figure 3 is a flowchart showing the procedure for route generation processing, and Figures 4 to 6 show examples of the display unit 43 during route generation processing. Of these, Figures 4 and 6 show the main screen 60 displayed during route generation processing, and Figure 5 shows the option setting screen 70.
[0018] The path generation process generates a motion path for the robot body 2 that connects multiple target positions (movement target positions of the end effector 23) based on user instructions. This "motion path" information includes angle information for each joint 24. This path generation process is executed when the control unit 48 reads and expands the path generation program 461 from the storage unit 46 based on user operations to the control device 4.
[0019] As shown in Figure 3, when the path generation process is executed, the control unit 48 first reads information about the shape and position of the robot body 2 and the obstacle B from the storage unit 46, expands it, and displays it on the display unit 43 (step S1). Here, the control unit 48 reads information about the shape and position of the robot body 2 from the robot specification data 462 and robot position data 463 in the storage unit 46. The control unit 48 also reads information about the shape and position of obstacle B from the obstacle shape data 464 and obstacle position data 465 in the storage unit 46.
[0020] At this time, the control unit 48 displays the main screen 60, which is the main GUI (Graphical User Interface) of the route generation program 461, on the display unit 43, as shown in Figure 4, for example. The main screen 60 includes a model display area 61 and a route display area 62. The model display area 61 displays computer graphics (CG) models of the robot body 2 and obstacle B. The CG models are displayed in two or three dimensions based on information regarding the shape and position of the robot body 2 and obstacle B. The CG models can be moved, resized, and rotated as desired. In addition, as will be described later, when the movement path of the robot body 2 is calculated, the movement path line 61a, which is the movement trajectory of the end effector 23, is displayed on the CG model in the model display area 61 as a set of waypoints. In the route display area 62, the movement path of the end effector 23 is displayed as a list of section display fields 62a, each containing information about the sections into which the movement path is divided. The section display fields 62a display the section number assigned in ascending order, the start and end positions of the section, and a protect field 62b.
[0021] The Protect column 62b indicates whether the section is protected or not. Here, "protecting" a section means preventing changes to the calculation result of the robot body 2's movement path in that section, if such a result exists. This "change to the calculation result" includes changes to information and conditions that affect the calculation result, and in this embodiment, this includes changes to the path generation conditions and division of the section (addition of target positions). The Protect field 62b is a GUI that accepts user-initiated protection settings, and in this embodiment, it is a checkbox. The Protect field 62b displays the "ON / OFF" status of the Protect flag based on whether it is checked or not (see Figure 6). When the Protect flag is "ON", protection for that section is enabled, and when the Protect flag is "OFF", protection for that section is disabled. The Protect flag can be set to "ON" in step S20, described later, based on user operation.
[0022] The main screen 60 also displays an option button 64 for transitioning to the option settings screen 70 (described later) and a route generation button 65 for executing route generation. Furthermore, the content displayed on the main screen 60 is not particularly limited, as long as it includes at least information about the movement path of the robot body 2.
[0023] Next, the control unit 48 inputs the target position (movement target position) of the end effector 23 based on user operation (step S2). The target position includes the start position and goal position in each section of the movement path of the end effector 23. Here, the user inputs the desired n target positions Pi (i=1~n) by, for example, operating the control unit 42 to operate the end effector 23 of the robot body 2 of the CG model. The control unit 48 sets n-1 intervals, with the interval from target position Pn (start position) to target position Pn+1 (goal position) being the nth interval, and displays the set information in the path display area 62. At this time, the control unit 48 initializes the protect flag for the entire section to "OFF (disabled)" (step S3).
[0024] Next, the control unit 48 determines whether or not to change the route generation conditions based on the user operation (step S4). The path generation conditions are the calculation conditions used when calculating the movement path of the robot body 2. In this embodiment, the path generation conditions include the minimum clearance amount between the robot body 2 and the obstacle B, the path planning algorithm used for path searching, and the margin amount for the movement limit of each joint 24 (see Figure 5). The margin amount for the movement limit of each joint 24 is the setting of how much margin is allowed within the range in which the joint 24 is moved relative to the maximum range of motion (angle) specified for each joint 24. In this embodiment, the control unit 48 determines, for example, that the route generation conditions should be changed when the user operates the option button 64 or the like. If it is determined in step S4 that the route generation conditions will not be changed (step S4; No), the control unit 48 proceeds to step S8, which will be described later.
[0025] On the other hand, if it is determined in step S4 to change the route generation conditions (step S4; Yes), the control unit 48 determines whether the protect flag for the section specified to change the route generation conditions is "OFF" or not (step S5). In step S5, if it is determined that the protect flag for the specified section is not "OFF" (step S5; No), the control unit 48 proceeds to step S7, which will be described later. In other words, in this case, the protect flag for the section is "ON (enabled)" and the section is protected, so the route generation conditions for the section cannot be changed.
[0026] On the other hand, if step S5 determines that the protect flag for the specified section is "OFF" when the route generation conditions are changed (step S5; Yes), the control unit 48 changes the route generation conditions for that section based on the user operation (step S6). In this embodiment, as shown in Figure 5 for example, the user can individually set path generation conditions for multiple sections on the option setting screen 70. The option setting screen 70 is displayed on the display unit 43 when the option button 64 is operated on the main screen 60. In the example in Figure 5, the minimum clearance between the robot body 2 and obstacle B is set to "10 mm", and the path planning algorithm is set to "RRT (Rapidly-exploring Random Tree)". As a limit on the movement of the joints 24, an angular margin of "5 degrees" is set for each joint 24, which is represented by the prefix J attached to the numbers in ascending order from the base part 21 side of the robot body 2, relative to the maximum range of motion. The path planning algorithm in this embodiment is a random sampling-based pathfinding method. Examples of random sampling-based pathfinding methods include RRT, RRT*, RRT connect, EET (Exploring / Exploiting Tree), and PRM (Probabilistic Roadmap Method). However, pathfinding methods other than random sampling-based methods may also be applied. Furthermore, the option settings screen 70 displays protection fields 72b corresponding to the protection fields 62b of the main screen 60, for each section. The protection flag can be switched ON / OFF in the protection fields 72b of the option settings screen 70.
[0027] Next, the control unit 48 determines whether or not to terminate the modification of the route generation conditions (step S7). If it determines not to terminate (step S7; No), it proceeds to step S5 described above. The control unit 48 determines that the change of route generation conditions is complete, for example, when the user performs a transition operation from the option setting screen 70 (for example, by pressing the back button 75).
[0028] On the other hand, if it is determined in step S7 that the modification of the route generation conditions is complete (step S7; Yes), the control unit 48 determines whether or not to perform route generation (step S8). The control unit 48 determines to perform route generation if the user performs a route generation operation (for example, by operating the route generation button 65). If it is determined in step S8 that route generation should not be performed (step S8; No), the control unit 48 proceeds to step S4 described above.
[0029] On the other hand, if it is determined in step S8 to perform path generation (step S8; Yes), the control unit 48 sequentially calculates the posture of the robot body 2 at each target position Pi (steps S9 to S13). Here, first the control unit 48 sets "i" to the initial value of "1" (step S9). The control unit 48 then determines whether the protect flag for the section including the target position Pi is "OFF" (step S10), and if it determines that it is "OFF" (step S10; Yes), it determines the posture of the robot body 2 at that time (step S11). Specifically, the control unit 48 calculates the inverse kinematics for the target position Pi based on information regarding the shape and position of the robot body 2 and information regarding the shape and position of the obstacle B. The control unit 48 then determines the posture of the robot body 2 (angle of each joint 24) that satisfies the clearance amount to avoid interference with the obstacle B and the margin amount for limiting the movement of each joint 24. The control unit 48 displays the determined posture in the model display area 61, for example, in a different display mode for each target position (see Figure 4). After that, the control unit 48 increments i (step S12). On the other hand, if step S10 determines that the protect flag for the section including the target position Pi is not "OFF" (step S10; No), the control unit 48 omits step S11 and increments i (step S12). In this case, the protect flag for the section is "ON (enabled)" and the section is protected, so the calculation to determine the posture of the robot body 2 is omitted. The control unit 48 repeats the process in steps S10 to S12 until "i≧n" is satisfied (step S13; Yes). This calculates the posture of the robot body 2 at all target positions Pi. The control unit 48 stores the calculated posture information in the storage unit 46.
[0030] Next, the control unit 48 calculates the movement path of the robot body 2 in each section Pi-Pi+1 (steps S14 to S18). Here, first the control unit 48 sets "i" to the initial value "1" (step S14). The control unit 48 then determines whether the protect flag for the interval Pi-Pi+1 is "OFF" or not (step S15), and if it determines that it is "OFF" (step S15; Yes), it calculates the movement path of the robot body 2 in that interval (step S16). Specifically, the control unit 48 calculates the movement path of the robot body 2 in the interval Pi-Pi+1 using the posture of the robot body 2 at target positions Pi, Pi+1 and the set path planning algorithm. This calculates the set of waypoints that the robot body 2 will use to move while avoiding interference with obstacle B, i.e., the movement path of the robot body 2, based on the path generation conditions for that interval. The control unit 48 displays the movement trajectory of the end effector 23 from the calculated movement path as a movement path line 61a in the model display area 61 (see Figure 4). After that, the control unit 48 increments i (step S17). On the other hand, if step S15 determines that the protect flag for the interval Pi-Pi+1 is not "OFF" (step S15; No), the control unit 48 omits step S16 and increments i (step S17). In this case, the protect flag for that interval is "ON (enabled)" and the interval is protected, so the calculation to determine the movement path of the robot body 2 is omitted. The control unit 48 repeats the process in steps S15 to S17 until "i > n" is satisfied (step S18; Yes). This calculates the movement path of the robot body 2 over the entire section. The control unit 48 stores the calculated movement path information in the storage unit 46.
[0031] Next, the control unit 48 determines whether or not to terminate the route generation process based on the user's operation (step S19). If the user finds that all of the route paths for all sections are unsatisfactory, they perform a recalculation operation without terminating the route generation process. In this case, that is, if it is determined that the route generation process should not be terminated based on user input (step S19; No), the control unit 48 turns on the protect flag for the section where recalculation of the route is not required, based on user input (step S20). In this embodiment, the user checks the protect column 62b of the section to be protected (section display column 62a) in the route display area 62 of the main screen 60. As a result, the calculation result for that section is protected, as shown in Figure 6. The protect flag can be switched at any time before the calculation is executed.
[0032] Next, the control unit 48 determines whether or not to add (insert) a new target position based on the user operation (step S21). The user can perform the operation to add a target position by specifying a desired section, for example, if they want to further divide the current section. If it is determined that a target position should be added (step S21; Yes), the control unit 48 determines whether the protect flag for the section specified by the user to add a target position is "OFF" or not (step S22). In step S22, if it is determined that the protect flag for the specified section is not "OFF" (step S22; No), the control unit 48 proceeds to step S21 described above. In other words, in this case, the protect flag for the section is "ON (enabled)" and the section is protected, so the section cannot be divided and no target position is added to the section. On the other hand, in step S22, if it is determined that the protect flag for the specified section to add a target position is "OFF" (step S22; Yes), the control unit 48 adds a target position to that section based on the user operation (step S23). At this time, the control unit 48 sets the protect flag for the section created by adding the target position to "OFF" and increments the total number of target positions "n". The control unit 48 also updates the display content of the main screen 60 or the option setting screen 70 in response to this change. After that, the control unit 48 proceeds to step S21 described above.
[0033] If it is determined in step S21 that no new target location should be added (step S21; No), the control unit 48 proceeds to step S4 described above. The control unit 48 then performs the verification of the path generation conditions (steps S4 to S7) and the calculation of the path generation (steps S8 to S18).
[0034] In step S19 described above, the user performs the termination operation of the route generation process if they are satisfied with the operation path for all sections. In this case, that is, when it is determined to terminate the route generation process based on the user operation (step S19; Yes), the control unit 48 terminates the route generation process.
[0035] [Technical effects of this embodiment] As described above, according to this embodiment, when a calculation result of the robot body 2 (robot)'s movement path exists, it is possible to individually set whether or not to protect the calculation result for multiple sections. Therefore, by setting protection for calculation results for sections where the user is satisfied, recalculation of the operation path for those sections can be omitted. This allows recalculation to be performed only for sections where the calculation results are unsatisfactory, thus reducing computation time compared to performing recalculations for all sections. Furthermore, in the case of a random sampling-based pathfinding method, there is a risk that the calculation results may not be reproducible. Therefore, if the calculated path includes a part that the user is not satisfied with, recalculating the entire section may change even the part that the user was satisfied with. In this respect, according to this embodiment, by protecting the section in which the user was satisfied with the calculation results, it is possible to avoid a situation where the calculation results of that section change due to recalculation. Therefore, the recalculation of the robot body 2's movement path can be suitably performed.
[0036] Furthermore, according to this embodiment, if there is a section in the calculation results that is protected, the route generation conditions for that protected section cannot be changed. This makes it impossible to change the conditions related to the calculation of the operating path for the protected section, thereby ensuring the protection of the calculation results.
[0037] Furthermore, according to this embodiment, if there is a protected section in the calculation results, that protected section becomes indivisible. In other words, it becomes impossible to add a new target position to that protected section. This makes it impossible to change the conditions related to the calculation of the operating path for the protected section, thereby ensuring the protection of the calculation results.
[0038] Furthermore, according to this embodiment, a Protect section 62b, which is a GUI that individually displays whether multiple sections are protected and accepts user operations to set the protection, is displayed on the display unit 43. This allows users to immediately recognize the protection settings (ON / OFF) for each section by visually checking the display unit 43, and to easily switch between these settings.
[0039] [others] Although one embodiment of the present invention has been described above, the embodiments to which the present invention can be applied are not limited to the embodiments and their variations described above, and can be modified as appropriate without departing from the spirit of the present invention.
[0040] For example, in the above embodiment, the protection setting (ON / OFF) for a section is displayed in the Protect column of the route display area. However, this protection setting may also be displayed in the model display area. For example, the protected section of the movement path line 61a of the end effector 23 may be displayed in a different display manner than the other unprotected sections. This makes it easier to visually recognize the protected section.
[0041] Furthermore, in the above embodiment, a control device 4 that controls the operation of the robot body 2 was described as an example of a path generation device according to the present invention. However, the path generation device according to the present invention may be any device that can acquire the information necessary for calculation, and may be a computer or the like that is not related to the control of the robot which is the target of the operation path calculation.
[0042] Furthermore, in the above embodiment, the robot body 2 of a vertical articulated robot was illustrated. However, the robot according to the present invention is not limited to a vertical articulated robot, and is only required to have multiple arms that are movably connected. [Explanation of Symbols]
[0043] 2. Robot body (robot) 22 Arms 23 End Effector 24 Joints 4. Control device (route generation device) 43 Display section 48 Control Unit (Path Generation Unit, Protection Unit, Display Control Unit) 60 Main screen 61 Model display area 61a Travel Path Line 62 Route display area 62a Section display field 62b Protect section 461 Route generation program 462 Robot Specifications Data 463 Robot position data 464 Obstacle Shape Data 465 Obstacle location data B Obstacle Pi target position Pi-Pi+1 section
Claims
1. For a robot in which multiple arms are connected in a movable manner, a path generation unit calculates a motion path that includes multiple sections, If the calculation result of the operation path by the path generation unit exists, the protection unit allows for individual setting of whether or not to protect the calculation result for each of the multiple sections. A route generation device equipped with the following features.
2. The path generation unit calculates the movement path based on information regarding the shape and position of the robot and information regarding the shape and position of obstacles within the robot's operating range. The route generation device according to claim 1.
3. The route generation unit can individually set the route generation conditions for calculating the operation route for each of the multiple sections. The protection unit, if there is a section to protect the calculation result, makes it impossible to change the path generation conditions for the section to be protected. The route generation device according to claim 1.
4. The path generation conditions include the clearance amount between the robot and the obstacle, a path planning algorithm, and information regarding the range of motion of the robot's joints. The route generation device according to claim 3.
5. The protection unit, if there is a section to protect the calculation result, makes the section to be protected indivisible. The route generation device according to claim 1.
6. The system includes a display control unit that displays information regarding the aforementioned multiple sections on a display unit, The display control unit individually displays whether the multiple sections are protected or not, and causes the display unit to display a GUI for accepting user operations to set the protection. The route generation device according to claim 1.
7. The control unit, For a robot in which multiple arms are connected in a movable manner, a path generation process is performed to calculate a motion path that includes multiple sections, If a calculation result of the operation path generated by the path generation step exists, a protection step is provided in which it is possible to individually set whether or not to protect the calculation result for each of the multiple sections. A method for generating routes that executes this process.
8. Computers, For a robot in which multiple arms are connected in a movable manner, a path generation unit calculates a motion path that includes multiple sections. If the calculation result of the operation path by the path generation unit exists, a protection unit can individually set whether or not to protect the calculation result for each of the multiple sections. A route generation program that functions as such.