Remote control underwater mechanical arm singular point avoidance method and system
By calculating the Jacobian matrix and the left unitary matrix to determine whether the underwater robotic arm is close to a singularity, and adjusting the joint speed and angle, the problem of loss of control caused by singularities during the movement of the underwater robotic arm is solved, thus improving safety and reliability.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- ZHUZHOU CSR TIMES ELECTRIC CO LTD
- Filing Date
- 2023-01-05
- Publication Date
- 2026-08-04
AI Technical Summary
Underwater robotic arms are prone to going out of control due to singularities during operation. Existing technologies are unable to effectively avoid singularities, which could lead to damage or loss of control of the robotic arm.
By collecting joint angles and remote control commands, the Jacobian matrix and left unitary matrix are calculated to determine whether the robotic arm is close to a singularity. Based on the initial condition number and singularity threshold, the joint speed and angle are adjusted to avoid singularities in real time.
This technology enables real-time avoidance of singularities during the movement of the underwater robotic arm, preventing loss of control and improving the safety and operational reliability of the robotic arm.
Smart Images

Figure CN118288273B_ABST
Abstract
Description
Technical Field
[0001] This invention belongs to the technical field of marine engineering, specifically relating to a method and system for remotely controlled underwater robotic arms to avoid singularities. Background Technology
[0002] Underwater robotic arms are the primary operational tools for underwater robots, and currently, their movement is mainly controlled remotely. The operator sends control commands to the robotic arm from the surface via a remote control, and the underwater robotic arm begins to move upon receiving the command. Within the robotic arm's workspace, there are singular positions. When the robotic arm is in a singular position, its inverse kinematics equations have no solution, and even minute movements at the end effector can cause violent movements of the joints, leading to loss of control or even mechanical damage. Therefore, it is essential to avoid singular points during the robotic arm's movement to ensure its safety. Summary of the Invention
[0003] To address the problem of how to avoid singularities during the movement of a robotic arm, a method and system for remotely controlled underwater robotic arm to avoid singularities is proposed. This method can detect in real time whether the robotic arm is approaching a singularity during the movement of the remotely controlled underwater robotic arm and avoid the singularity, thus ensuring the safety of the underwater robotic arm.
[0004] The first aspect of this application provides a method for a remotely controlled underwater robotic arm to avoid singularities, comprising:
[0005] Collect the angles of each joint of the underwater robotic arm and the remote control commands used to control the movement of the underwater robotic arm;
[0006] The end effector speed of the underwater robotic arm is determined according to the remote control command.
[0007] Calculate the Jacobian matrix of the underwater robotic arm based on the angles of each joint.
[0008] The movement speed of each joint of the underwater robotic arm is determined based on the Jacobian matrix of the underwater robotic arm and the end effector velocity of the underwater robotic arm.
[0009] The left unitary matrix and initial condition number are determined based on the Jacobian matrix of the underwater manipulator, wherein the column vectors in the left unitary matrix are the left singular vectors of the Jacobian matrix of the underwater manipulator.
[0010] Based on the determination strategy corresponding to the range of the initial condition number, the desired angles of each joint of the underwater robotic arm are determined;
[0011] The underwater robotic arm is controlled to move each joint to the desired position according to the desired angle of each joint.
[0012] In some embodiments, determining the desired angles of each joint of the underwater robotic arm based on the determination strategy corresponding to the range of the initial condition numbers includes:
[0013] If the initial condition number is not greater than the preset singular threshold lower limit, then the desired angle of each joint of the underwater robotic arm is determined according to the angle of each joint of the underwater robotic arm and the movement speed of each joint of the underwater robotic arm.
[0014] If the initial condition number is greater than the preset singular threshold lower limit, then
[0015] Obtain the last column vector in the left unitary matrix, where the last column vector in the left unitary matrix represents the vector that is close to or far from the singular point;
[0016] The movement speed of each joint of the underwater robotic arm is adjusted based on the last column vector in the left unitary matrix to obtain the adjusted movement speed of each joint of the underwater robotic arm.
[0017] The desired angles of each joint of the underwater robotic arm are determined based on the angles of each joint and the adjusted movement speed of each joint.
[0018] In some embodiments, adjusting the motion speed of each joint of the underwater robotic arm based on the last column vector in the left unitary matrix to obtain the adjusted motion speed of each joint of the underwater robotic arm includes:
[0019] Based on the last column vector in the left unitary matrix, the Jacobian matrix of the underwater robotic arm, and the angles of each joint of the underwater robotic arm, a new condition number is determined;
[0020] Based on the relative magnitudes of the initial condition number and the new condition number, the correction coefficients for the movement speed of each joint of the underwater robotic arm are determined.
[0021] The movement speed of each joint of the underwater robotic arm is corrected according to the correction coefficient to obtain the adjusted movement speed of each joint of the underwater robotic arm.
[0022] In some embodiments, determining a new end effector velocity, new joint angles, a new Jacobian matrix, and a new condition number of the underwater robotic arm based on the last column vector in the left unitary matrix, the Jacobian matrix of the underwater robotic arm, and the joint angles of the underwater robotic arm includes:
[0023] Scale the last column vector to obtain the new end effector velocity of the underwater robotic arm;
[0024] The new joint angles of the underwater robotic arm are determined based on the new end effector velocity, the Jacobian matrix of the underwater robotic arm, and the joint angles of the underwater robotic arm.
[0025] Based on the new joint angles of the underwater robotic arm, a new Jacobian matrix and a new condition number for the underwater robotic arm are determined.
[0026] In some embodiments, determining the left unitary matrix and the initial condition number based on the Jacobian matrix of the underwater robotic arm includes:
[0027] The Jacobian matrix of the underwater robotic arm is subjected to singular value decomposition to obtain the maximum singular value, the minimum singular value, and the left unitary matrix;
[0028] The initial condition number is determined based on the maximum singular value and the minimum singular value.
[0029] In some embodiments, determining the correction coefficients for the motion speed of each joint of the underwater robotic arm based on the relative magnitudes of the initial condition number and the new condition number includes:
[0030] If the initial condition number is not greater than the new condition number, then calculate the inner product of the last column vector and the end effector velocity of the underwater robotic arm;
[0031] If the initial condition number is greater than the new condition number, the last column vector is first scaled in reverse, and then the inner product of the scaled last column vector and the end effector velocity of the underwater robotic arm is calculated.
[0032] If the inner product is not greater than zero, then the correction coefficient is determined to be 1;
[0033] If the inner product is greater than zero and the initial condition number is greater than the preset singular threshold upper limit, then the correction coefficient is determined to be 0.
[0034] If the inner product is greater than zero and the initial condition number is not greater than the preset upper limit of the singular threshold, then the correction coefficient is determined based on the initial condition number, the preset lower limit of the singular threshold, and the upper limit of the singular threshold.
[0035] In some embodiments, the movement speed of each joint of the underwater robotic arm is:
[0036]
[0037] in, Let J be the movement velocity of each joint of the underwater robotic arm, and J be the Jacobian matrix of the underwater robotic arm. The speed of the underwater robotic arm's end effector is denoted as .
[0038] In some embodiments, the new end effector speed of the underwater robotic arm is:
[0039]
[0040] in, Let v be the new end effector velocity of the underwater robotic arm, and v be the last column vector in the left unitary matrix.
[0041] In some embodiments, the new joint angles of the underwater robotic arm are:
[0042]
[0043] Where, θ new Let θ represent the new joint angles of the underwater robotic arm, and J represent the Jacobian matrix of the underwater robotic arm. This is the new end effector speed of the underwater robotic arm.
[0044] In some embodiments, when the inner product is greater than zero and the initial condition number is not greater than the preset singularity threshold upper limit, the correction coefficient is:
[0045]
[0046] Where factor is the correction coefficient, k ini Let k be the initial condition number. low k is the preset lower limit of the singularity threshold. up The upper limit of the preset singularity threshold.
[0047] A second aspect of this application provides a robotic arm controller, comprising:
[0048] The acquisition module is used to acquire the angles of each joint of the underwater robotic arm and the remote control commands used to control the movement of the underwater robotic arm;
[0049] The first calculation module is used to determine the end effector speed of the underwater robotic arm according to the remote control command.
[0050] The second calculation module is used to calculate the Jacobian matrix of the underwater robotic arm based on the angles of each joint of the underwater robotic arm.
[0051] The third calculation module is used to determine the movement speed of each joint of the underwater robotic arm based on the Jacobian matrix of the underwater robotic arm and the end effector speed of the underwater robotic arm.
[0052] The fourth calculation module is used to determine the left unitary matrix and the initial condition number based on the Jacobian matrix of the underwater manipulator, wherein the column vectors in the left unitary matrix are the left singular vectors of the Jacobian matrix of the underwater manipulator.
[0053] The processing module is used to determine the desired angle of each joint of the underwater robotic arm based on the determination strategy corresponding to the range of the initial condition numbers.
[0054] The control module is used to control the movement of each joint of the underwater robotic arm to the desired position according to the desired angle of each joint.
[0055] A third aspect of this application provides a remotely controlled underwater robotic arm system for avoiding singularities, comprising: a control cabin disposed on the water surface and a remotely controlled robot disposed underwater, the control cabin and the remotely controlled robot being connected via an umbilical cable; the control cabin contains a robotic arm controller, a remote control handle, and a first electronic compartment; the remotely controlled robot contains an underwater robotic arm and a second electronic compartment; wherein:
[0056] The remote control handle is used to control the movement of the underwater robotic arm according to the received remote control commands;
[0057] The robotic arm controller is used to collect the real-time angles of each joint of the underwater robotic arm and the remote control command, and is also used to determine the desired angles of each joint of the underwater robotic arm and send the desired angles of each joint of the underwater robotic arm to the underwater robotic arm.
[0058] The first electronic compartment is used to convert the electrical signals of the robotic arm controller into optical signals, and to convert the optical signals uploaded by the underwater remotely operated robot into electrical signals;
[0059] The umbilical cable is used to transmit optical signals;
[0060] The second electronic compartment is used to convert optical signals from the underwater remotely operated robot into electrical signals, and to convert optical signals sent by the robotic arm controller into electrical signals.
[0061] The underwater robotic arm is used to control the movement of each joint of the underwater robotic arm to a desired position according to the desired angle of each joint.
[0062] A fourth aspect of this application provides a storage medium storing a computer program that can be executed by one or more processors to implement the method for remotely controlled underwater robotic arm to avoid singularities as described above.
[0063] A fifth aspect of this application provides an electronic device including a memory and a processor, wherein a computer program is stored on the memory and the processor is communicatively connected to each other, and the computer program, when executed by the processor, implements the method for remotely controlling an underwater robotic arm to avoid singularities as described above.
[0064] Compared with the prior art, the technical solution of this application has the following advantages or beneficial effects:
[0065] The technical solution of this application determines whether the underwater robotic arm is near a singular point by comparing the relative size of the initial condition number of the underwater robotic arm with the lower limit of the singular threshold. If the initial condition number of the underwater robotic arm is not greater than the lower limit of the singular threshold, it is determined that the current underwater robotic arm is not near a singular point. Then, the desired joint angles of the underwater robotic arm are obtained by adding the calculated joint velocities of the current underwater robotic arm to the joint angles of the current underwater robotic arm.
[0066] If the initial condition number of the underwater robotic arm is greater than the lower limit of the singularity threshold, it indicates that the underwater robotic arm is currently near a singular point. Then, based on the last column vector in the left unitary matrix, it is determined whether the current remote control command should move the underwater robotic arm closer to or away from the singular point, thereby adjusting the speed of each joint of the underwater robotic arm. Finally, based on the adjusted speeds of each joint of the underwater robotic arm, the desired angles of each joint are calculated.
[0067] By calculating the desired joint angles of the underwater robotic arm, the position of the underwater robotic arm can be controlled and adjusted. This allows for real-time avoidance of singularities during the movement of the underwater robotic arm, preventing it from going out of control and improving the safety of underwater robotic arm operations. Attached Figure Description
[0068] To more clearly illustrate the technical solutions in the embodiments of this application or the prior art, the drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are only embodiments of this application. For those skilled in the art, other drawings can be obtained based on the provided drawings without creative effort.
[0069] Figure 1 A flowchart of a method for a remotely controlled underwater robotic arm to avoid singularities provided in Embodiment 1 of this application;
[0070] Figure 2 This is a structural block diagram of the robotic arm controller provided in Embodiment 2 of this application;
[0071] Figure 3 This is a structural block diagram of the singularity avoidance system for a remotely controlled underwater robotic arm provided in Embodiment 3 of this application;
[0072] Figure 4 This is a connection block diagram of the electronic device provided in Embodiment 5 of this application. Detailed Implementation
[0073] To make the objectives, technical solutions, and advantages of this application clearer, the application will be further described in detail below with reference to the accompanying drawings. The described embodiments should not be regarded as limitations on this application. All other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of this application.
[0074] In the following description, references are made to “some embodiments,” which describe a subset of all possible embodiments. However, it is understood that “some embodiments” may be the same subset or different subsets of all possible embodiments and may be combined with each other without conflict.
[0075] If the application documents contain similar descriptions such as "first, second, third", the following explanation shall be added: In the following description, the terms "first, second, third" are used only to distinguish similar objects and do not represent a specific order of objects. It is understood that "first, second, third" may be interchanged in a specific order or sequence where permitted, so that the embodiments of this application described herein can be implemented in an order other than that illustrated or described herein.
[0076] Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this application belongs. The terminology used herein is for the purpose of describing embodiments of this application only and is not intended to limit this application.
[0077] Example 1
[0078] This embodiment provides a method for remotely controlled underwater robotic arms to avoid singularities. The underwater robotic arm in this embodiment is a 6-DOF underwater robotic arm. Figure 1 This is a flowchart of a method for a remotely controlled underwater robotic arm to avoid singularities, as provided in Embodiment 1. Figure 1 As shown, the method in this embodiment includes:
[0079] Step S1: Collect the angles of each joint of the underwater robotic arm and the remote control commands used to control the movement of the underwater robotic arm.
[0080] Step S2: Determine the end effector speed of the underwater robotic arm according to the remote control command.
[0081] Specifically, the remote control command is scaled to obtain the end effector speed of the underwater robotic arm.
[0082] Step S3: Calculate the Jacobian matrix of the underwater robotic arm based on the angles of each joint.
[0083] Step S4: Determine the movement speed of each joint of the underwater robotic arm based on the Jacobian matrix of the underwater robotic arm and the end effector speed of the underwater robotic arm.
[0084] Specifically, the movement speed of each joint of the underwater robotic arm is:
[0085]
[0086] in, Let J be the movement velocity of each joint of the underwater robotic arm, and J be the Jacobian matrix of the underwater robotic arm. The speed of the underwater robotic arm's end effector is denoted as .
[0087] Step S5: Determine the left unitary matrix and initial condition number based on the Jacobian matrix of the underwater robotic arm. The column vectors in the left unitary matrix are the left singular vectors of the Jacobian matrix of the underwater robotic arm.
[0088] In some embodiments, step S5 includes the following steps:
[0089] Step S51: Perform singular value decomposition on the Jacobian matrix of the underwater robotic arm to obtain the maximum singular value, the minimum singular value, and the left unitary matrix.
[0090] Specifically, singular value decomposition is performed on the Jacobian matrix of the underwater robotic arm:
[0091] J = U∑V;
[0092]
[0093] In this matrix, both the left-unitary matrix U and the right-left-unitary matrix V are 6x6 orthogonal matrices; Σ is also a 6x6 matrix, whose diagonal elements are the singular values of the Jacobian matrix, and σ1≥σ2≥…≥σ6≥0. The column vectors in the left-unitary matrix are the left singular vectors of the Jacobian matrix of the underwater robotic arm.
[0094] Step S52: Determine the initial condition number based on the maximum singular value and the minimum singular value.
[0095] Specifically, the initial condition number is:
[0096] k ini =σ max / σ min ;
[0097] Where, σ max For the maximum singular value, σ minIt is the smallest singular value.
[0098] Step S6: Based on the determination strategy corresponding to the range of the initial condition number, determine the desired angle of each joint of the underwater robotic arm.
[0099] In some embodiments, step S6 includes S61, determining the relative size of the initial condition number and a preset singularity threshold lower limit. If the initial condition number is not greater than the preset singularity threshold lower limit, then step S62 is executed; if the initial condition number is greater than the preset singularity threshold lower limit, then step S63 is executed.
[0100] Step S62: Based on the angles of each joint of the underwater robotic arm and the movement speed of each joint, determine the desired angles of each joint of the underwater robotic arm, and then execute step S7. Specifically, the desired angles of each joint of the underwater robotic arm are:
[0101]
[0102] Where, θ 期望 The desired angle of each joint of the underwater robotic arm when the initial condition number is not greater than the preset singular threshold lower limit; θ is the angle of each joint of the underwater robotic arm; The speed of movement of each joint of the underwater robotic arm.
[0103] Step S63: Obtain the last column vector in the left unitary matrix, where the last column vector in the left unitary matrix represents the vector that is close to or far from the singular point.
[0104] Step S64: Adjust the movement speed of each joint of the underwater robotic arm based on the last column vector in the left unitary matrix to obtain the adjusted movement speed of each joint of the underwater robotic arm.
[0105] In some embodiments, step S64 includes:
[0106] Step S641: Determine new condition numbers based on the last column vector in the left unitary matrix, the Jacobian matrix of the underwater robotic arm, and the angles of each joint of the underwater robotic arm.
[0107] In some embodiments, step S641 includes:
[0108] Step A: Scale the last column vector in the left unitary matrix to obtain the new end effector velocity of the underwater robotic arm.
[0109] Specifically, the new end effector speed of the underwater robotic arm is:
[0110]
[0111] in, Let v be the new end effector velocity of the underwater robotic arm, and v be the last column vector in the left unitary matrix.
[0112] Step B: Determine the new joint angles of the underwater robotic arm based on the new end effector velocity, the Jacobian matrix of the underwater robotic arm, and the joint angles of the underwater robotic arm.
[0113] Specifically, the new joint angles of the underwater robotic arm are as follows:
[0114]
[0115] Where, θ new Let θ represent the new joint angles of the underwater robotic arm, and J represent the Jacobian matrix of the underwater robotic arm. This is the new end effector speed of the underwater robotic arm.
[0116] Step C involves determining the new Jacobian matrix and new condition number of the underwater robotic arm based on the new joint angles of the underwater robotic arm. Specifically, step C includes:
[0117] Step a: Calculate the new Jacobian matrix of the underwater robotic arm based on the new joint angles of each joint.
[0118] Step b: Perform singular value decomposition on the new Jacobian matrix of the underwater robotic arm to obtain the maximum singular value and the minimum singular value.
[0119] Step c: Determine the new condition number based on the maximum singular value and the minimum singular value.
[0120] Step S642: Determine the correction coefficients for the movement speed of each joint of the underwater robotic arm based on the relative magnitudes of the initial condition number and the new condition number.
[0121] In some embodiments, step S642 includes:
[0122] Step A: Determine the relative size of the initial condition number and the new condition number. If the initial condition number is not greater than the new condition number, calculate the inner product of the last column vector and the end effector velocity of the underwater robotic arm.
[0123] If the initial condition number is greater than the new condition number, the last column vector is first scaled in reverse, and then the inner product of the scaled last column vector and the end effector velocity of the underwater robotic arm is calculated.
[0124] Specifically, the last column vector after reverse scaling is v*(-1).
[0125] Step B: Determine whether the inner product is greater than zero. If the inner product is not greater than zero, then determine that the correction coefficient is 1.
[0126] If the inner product is greater than zero and the initial condition number is greater than the preset singular threshold upper limit, then the correction coefficient is determined to be 0.
[0127] If the inner product is greater than zero and the initial condition number is not greater than the preset upper limit of the singular threshold, then the correction coefficient is determined based on the initial condition number, the preset lower limit of the singular threshold, and the upper limit of the singular threshold.
[0128] Specifically, if the inner product is greater than zero and the initial condition number is not greater than the preset singularity threshold upper limit, the correction coefficient is:
[0129]
[0130] Where factor is the coefficient, k ini Let k be the initial condition number. low k is the preset lower limit of the singularity threshold. up The upper limit of the preset singularity threshold.
[0131] Step S643: Correct the movement speed of each joint of the underwater robotic arm according to the correction coefficient to obtain the adjusted movement speed of each joint of the underwater robotic arm.
[0132] Step S65: Determine the desired angles of each joint of the underwater robotic arm based on the angles of each joint and the adjusted movement speeds of each joint. The desired angle of each joint is the sum of the angles of each joint and the adjusted movement speeds of each joint. That is, at this point, the desired angles of each joint of the underwater robotic arm are:
[0133]
[0134] Where, θ 期望 The desired angle of each joint of the underwater robotic arm when the initial condition number is not greater than the preset singular threshold lower limit; θ is the angle of each joint of the underwater robotic arm; The adjusted movement speed of each joint of the underwater robotic arm.
[0135] Step S7: Control each joint of the underwater robotic arm to move to the desired position according to the desired angle of each joint.
[0136] The technical solution provided in this implementation determines whether the underwater robotic arm is near or close to a singular point by using the relative magnitude of its initial condition number and the lower limit of the singularity threshold. If the initial condition number is not greater than the lower limit, it indicates that the underwater robotic arm is not near the singular point. In this case, the desired joint angles of the underwater robotic arm are obtained by adding the calculated joint velocities to the current joint angles. If the initial condition number is greater than the lower limit, it indicates that the underwater robotic arm is near the singular point. In this case, the last column vector in the left unitary matrix determines whether the current remote control command should move the underwater robotic arm closer to or away from the singular point, thereby adjusting the joint velocities of the underwater robotic arm. Then, the desired joint angles of the underwater robotic arm are calculated based on the adjusted joint velocities.
[0137] By calculating the desired joint angles of the underwater robotic arm, the position of the underwater robotic arm can be controlled and adjusted. This allows for real-time avoidance of singularities during the movement of the underwater robotic arm, preventing it from going out of control and improving the safety of underwater robotic arm operations.
[0138] Example 2
[0139] This embodiment provides a robotic arm controller 200. The robotic arm controller 200 in this system embodiment can be used to execute the method embodiment of this application. For details not disclosed in this system embodiment, please refer to the method embodiment of this application. Figure 2 This is a schematic diagram of the structure of a robotic arm controller 200 provided in an embodiment of this application, as shown below. Figure 2 As shown, the robotic arm controller 200 provided in this embodiment includes:
[0140] The acquisition module 210 is used to acquire the angles of each joint of the underwater robotic arm and the remote control commands used to control the movement of the underwater robotic arm;
[0141] The first calculation module 220 is used to determine the end effector speed of the underwater robotic arm according to the remote control command.
[0142] The second calculation module 230 is used to calculate the Jacobian matrix of the underwater robotic arm based on the angles of each joint of the underwater robotic arm.
[0143] The third calculation module 240 is used to determine the movement speed of each joint of the underwater robotic arm based on the Jacobian matrix of the underwater robotic arm and the end effector movement speed of the underwater robotic arm.
[0144] The fourth calculation module 250 is used to determine the left unitary matrix and the initial condition number based on the Jacobian matrix of the underwater manipulator, wherein the column vectors in the left unitary matrix are the left singular vectors of the Jacobian matrix of the underwater manipulator.
[0145] Processing module 260 is used to determine the desired angle of each joint of the underwater robotic arm based on the determination strategy corresponding to the range of the initial condition numbers;
[0146] The control module 270 is used to control the movement of each joint of the underwater robotic arm to the desired position according to the desired angle of each joint.
[0147] The robotic arm controller 200 provided in this embodiment determines whether the underwater robotic arm is located at a singular point or is close to a singular point by using the relative magnitude of the initial condition number of the underwater robotic arm and the lower limit of the singularity threshold. If the determination result is that the initial condition number of the underwater robotic arm is not greater than the lower limit of the singularity threshold, it means that the current underwater robotic arm is not near the singular point. In this case, the desired joint angles of the underwater robotic arm are obtained by adding the calculated joint velocities of the underwater robotic arm to the current joint angles. If the determination result is that the initial condition number of the underwater robotic arm is greater than the lower limit of the singularity threshold, it means that the current underwater robotic arm is near the singular point. In this case, the last column vector in the left unitary matrix determines whether the current remote control command is to control the underwater robotic arm to move closer to or away from the singular point, thereby adjusting the joint velocities of the underwater robotic arm. Then, the desired joint angles of the underwater robotic arm are calculated based on the adjusted joint velocities.
[0148] By calculating the desired joint angles of the underwater robotic arm, the position of the underwater robotic arm can be controlled and adjusted. This allows for real-time avoidance of singularities during the movement of the underwater robotic arm, preventing it from going out of control and improving the safety of underwater robotic arm operations.
[0149] The effects of this embodiment include at least all the technical effects of Embodiment 1.
[0150] Example 3
[0151] This embodiment provides a system for remotely controlled underwater robotic arms to avoid singularities. Figure 3 A schematic diagram of a remotely controlled underwater robotic arm system for avoiding singularities, provided in an embodiment of this application, is shown below. Figure 3As shown, the system provided in this embodiment includes: a control cabin 300 disposed on the water surface and a remotely operated vehicle (ROV) 400 disposed underwater, the control cabin 300 and the ROV 400 being connected by an umbilical cable 500; the control cabin 300 is equipped with a robotic arm controller 320, a remote control handle 310 and a first electronic compartment (POD) 330; the remotely operated vehicle (ROV) 400 is equipped with an underwater robotic arm 420 and a second electronic compartment (POD) 410; wherein:
[0152] The remote control handle 310 is used to control the movement of the underwater robotic arm 420 according to the received remote control command;
[0153] The robotic arm controller 320 is used to collect the real-time angles of each joint of the underwater robotic arm 420 and the remote control command, and is also used to determine the desired angles of each joint of the underwater robotic arm 420 and send the desired angles of each joint of the underwater robotic arm 420 to the underwater robotic arm 420.
[0154] The robotic arm controller 320 in this system embodiment can be used to execute the method embodiment of this application. For details not disclosed in this system embodiment, please refer to the method embodiment of this application.
[0155] The first electronic compartment 330 is used to convert the electrical signals of the robotic arm controller 320 into optical signals, and to convert the optical signals uploaded by the remotely operated underwater vehicle (ROV) 400 into electrical signals;
[0156] The umbilical cable 500 is used to transmit optical signals;
[0157] The second electronic compartment (POD) 410 is used to convert optical signals from the remotely operated underwater vehicle (ROV) 400 into electrical signals, and to convert optical signals sent by the robotic arm controller 320 into electrical signals.
[0158] The underwater robotic arm 420 is used to control each joint of the underwater robotic arm 420 to move to a desired position according to the desired angle of each joint.
[0159] The technical solution provided in this embodiment determines whether the underwater robotic arm is located at a singular point or is close to a singular point by using the relative magnitude of the initial condition number of the underwater robotic arm and the lower limit of the singularity threshold. If the determination result is that the initial condition number of the underwater robotic arm is not greater than the lower limit of the singularity threshold, it means that the current underwater robotic arm is not near the singular point. In this case, the desired joint angles of the underwater robotic arm are obtained by adding the calculated joint velocities of the underwater robotic arm to the current joint angles. If the determination result is that the initial condition number of the underwater robotic arm is greater than the lower limit of the singularity threshold, it means that the current underwater robotic arm is near the singular point. In this case, the last column vector in the left unitary matrix determines whether the current remote control command is to control the underwater robotic arm to move closer to or away from the singular point, thereby adjusting the joint velocities of the underwater robotic arm. Then, the desired joint angles of the underwater robotic arm are calculated based on the adjusted joint velocities.
[0160] By calculating the desired joint angles of the underwater robotic arm, the position of the underwater robotic arm can be controlled and adjusted. This allows for real-time avoidance of singularities during the movement of the underwater robotic arm, preventing it from going out of control and improving the safety of underwater robotic arm operations.
[0161] The effects of this embodiment include at least all the technical effects of Embodiment 1.
[0162] Example 4
[0163] This embodiment also provides a computer-readable storage medium storing a computer program. When the computer program is executed by a processor, it can implement the method steps as described in the above embodiments. This embodiment will not repeat the details here.
[0164] Computer-readable storage media may individually include computer programs, data files, data structures, etc., or combinations thereof. The computer-readable storage media or computer program may be specifically designed and understood by those skilled in the art of computer software, or the computer-readable storage media may be known and available to those skilled in the art of computer software. Examples of computer-readable storage media include: magnetic media, such as hard disks, floppy disks, and magnetic tapes; optical media, such as CD-ROMs and DVDs; magneto-optical media, such as optical discs; and hardware devices specifically configured to store and execute computer programs, such as read-only memory (ROM), random access memory (RAM), flash memory; or servers, application stores, etc. Examples of computer programs include machine code (e.g., code generated by a compiler) and files containing high-level code that can be executed by a computer using an interpreter. The described hardware devices may be configured to function as one or more software modules to perform the operations and methods described above, and vice versa. Furthermore, computer-readable storage media may be distributed across networked computer systems, allowing for the decentralized storage and execution of program code or computer programs.
[0165] Example 5
[0166] Figure 4 A connection block diagram of an electronic device provided in an embodiment of this application, such as... Figure 4 As shown, the electronic device 400 may include: one or more processors 410, memory 420, multimedia components 430, input / output (I / O) interface 440, and communication components 450.
[0167] The processor 410 stores a computer program, and the memory 420 is communicatively connected to the processor 410. The processor 410 is used to execute all or part of the steps in the method of Embodiment 1. The memory 420 is used to store various types of data, which may include, for example, instructions for any application or method in the electronic device, as well as application-related data.
[0168] The processor 410 may be implemented as an Application Specific Integrated Circuit (ASIC), Digital Signal Processor (DSP), Digital Signal Processing Device (DSPD), Programmable Logic Device (PLD), Field Programmable Gate Array (FPGA), controller, microcontroller, microprocessor, or other electronic components, and is used to execute the methods in the above embodiments.
[0169] The memory 420 can be implemented by any type of volatile or non-volatile storage device or a combination thereof, such as Static Random Access Memory (SRAM), Electrically Erasable Programmable Read-Only Memory (EEPROM), Erasable Programmable Read-Only Memory (EPROM), Programmable Read-Only Memory (PROM), Read-Only Memory (ROM), magnetic storage, flash memory, magnetic disk, or optical disk.
[0170] Multimedia component 430 may include a screen, which may be a touchscreen, and an audio component for outputting and / or inputting audio signals. For example, the audio component may include a microphone for receiving external audio signals. The received audio signals may be further stored in memory or transmitted via a communication component. The audio component also includes at least one speaker for outputting audio signals.
[0171] I / O interface 440 provides an interface between processor 410 and other interface modules, such as a keyboard, mouse, buttons, etc. These buttons can be virtual buttons or physical buttons.
[0172] The communication component 450 is used for wired or wireless communication between the electronic device 400 and other devices.
[0173] Wired communication includes communication via network ports, serial ports, etc.; wireless communication includes Wi-Fi, Bluetooth, Near Field Communication (NFC), 2G, 3G, 4G, 5G, or one or more combinations thereof. Therefore, the corresponding communication component 415 may include: a Wi-Fi module, a Bluetooth module, and an NFC module.
[0174] It should also be understood that the methods or systems disclosed in the embodiments provided in this application can also be implemented in other ways. The method or system embodiments described above are merely illustrative. For example, the flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functions, and operations of possible implementations of methods and apparatus according to various embodiments of this application. In this regard, each block in the flowchart or block diagram may represent a module, computer program segment, or part of a computer program, which includes one or more computer programs for implementing the specified logical functions.
[0175] It should also be noted that in some alternative implementations, the functions marked in the boxes may occur in a different order than those shown in the accompanying drawings, and may even be executed substantially in parallel. Sometimes they may also be executed in reverse order, depending on the functions involved. It should also be noted that each box in the block diagram and / or flowchart, and combinations of boxes in the block diagram and / or flowchart, can be implemented using a dedicated hardware-based system that performs the specified functions or actions, or using a combination of dedicated hardware and computer programs.
[0176] In this application, the terms “comprising,” “including,” or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such process, method, article, or apparatus. Unless otherwise specified, an element defined by the phrase "including one..." does not exclude the presence of other identical elements in the process, method, apparatus, or device that includes the element; the use of terms such as "first" and "second" is for descriptive purposes only and should not be construed as indicating or implying relative importance or implicitly indicating the number or sequence of the indicated technical features; in the description of this application, unless otherwise stated, the terms "multiple" or "many" mean at least two; if a server is described, it should be noted that a server can be an independent physical server or terminal, or a server cluster consisting of multiple physical servers, or a cloud server capable of providing basic cloud computing services such as cloud servers, cloud databases, cloud storage, and CDN; if a smart terminal or mobile device is described in this application, it should be noted that a smart terminal or mobile device can be a mobile phone, tablet computer, smartwatch, netbook, wearable electronic device, personal digital assistant (PDA), augmented reality (AR) device, virtual reality (VR) device, smart TV, smart speaker, personal computer (PC). The application may include, but is not limited to, computers (PCs), etc., and does not impose any special restrictions on the specific form of smart terminals or mobile devices.
[0177] Finally, it should be noted that in the description of this specification, the references to terms such as "one embodiment," "some embodiments," "example," "a single example," or "some examples," etc., indicate that a specific feature, structure, material, or characteristic described in connection with that embodiment or example is included in at least one embodiment or example of this application. In this specification, the illustrative expressions of the above terms do not necessarily refer to the same embodiment or example. Furthermore, the specific features, structures, materials, or characteristics described may be combined in any suitable manner in one or more embodiments or examples.
[0178] Although embodiments of this application have been shown and described above, it is to be understood that the above embodiments are exemplary and the content is only for the purpose of facilitating understanding of this application, and is not intended to limit this application. Any person skilled in the art to which this application pertains may make any modifications and changes in form and detail of the implementation without departing from the spirit and scope disclosed in this application, but the scope of protection of this application shall still be determined by the scope defined in the appended claims.
Claims
1. A method for remotely controlling a singularity-avoiding underwater robotic arm, the method comprising: include: Collect the angles of each joint of the underwater robotic arm and the remote control commands used to control the movement of the underwater robotic arm; The end effector speed of the underwater robotic arm is determined according to the remote control command. Calculate the Jacobian matrix of the underwater robotic arm based on the angles of each joint. The movement speed of each joint of the underwater robotic arm is determined based on the Jacobian matrix of the underwater robotic arm and the end effector velocity of the underwater robotic arm. The left unitary matrix and initial condition number are determined based on the Jacobian matrix of the underwater manipulator, wherein the column vectors in the left unitary matrix are the left singular vectors of the Jacobian matrix of the underwater manipulator. Based on the determination strategy corresponding to the range of the initial condition number, the desired angles of each joint of the underwater robotic arm are determined; The underwater robotic arm is controlled to move each joint to the desired position according to the desired angle of each joint. The determination strategy based on the range of the initial condition numbers, which determines the expected angles of each joint of the underwater robotic arm, includes: If the initial condition number is not greater than the preset singular threshold lower limit, then the desired angle of each joint of the underwater robotic arm is determined according to the angle of each joint of the underwater robotic arm and the movement speed of each joint of the underwater robotic arm. If the initial condition number is greater than the preset singular threshold lower limit, then Obtain the last column vector in the left unitary matrix, where the last column vector in the left unitary matrix represents the vector that is close to or far from the singular point; The movement speed of each joint of the underwater robotic arm is adjusted based on the last column vector in the left unitary matrix to obtain the adjusted movement speed of each joint of the underwater robotic arm. The desired angles of each joint of the underwater robotic arm are determined based on the angles of each joint and the adjusted movement speed of each joint. The step of adjusting the motion speed of each joint of the underwater robotic arm based on the last column vector in the left unitary matrix to obtain the adjusted motion speed of each joint of the underwater robotic arm includes: Based on the last column vector in the left unitary matrix, the Jacobian matrix of the underwater robotic arm, and the angles of each joint of the underwater robotic arm, a new condition number is determined; Based on the relative magnitudes of the initial condition number and the new condition number, the correction coefficients for the movement speed of each joint of the underwater robotic arm are determined. The movement speed of each joint of the underwater robotic arm is corrected according to the correction coefficient to obtain the adjusted movement speed of each joint of the underwater robotic arm.
2. The method of claim 1, wherein, The determination of the new end effector velocity, new joint angles, new Jacobian matrix, and new condition number of the underwater robotic arm based on the last column vector in the left unitary matrix, the Jacobian matrix of the underwater robotic arm, and the angles of each joint of the underwater robotic arm includes: Scale the last column vector to obtain the new end effector velocity of the underwater robotic arm; The new joint angles of the underwater robotic arm are determined based on the new end effector velocity, the Jacobian matrix of the underwater robotic arm, and the joint angles of the underwater robotic arm. Based on the new joint angles of the underwater robotic arm, a new Jacobian matrix and a new condition number for the underwater robotic arm are determined.
3. The method of claim 1, wherein, The step of determining the left unitary matrix and initial condition number based on the Jacobian matrix of the underwater robotic arm includes: The Jacobian matrix of the underwater robotic arm is subjected to singular value decomposition to obtain the maximum singular value, the minimum singular value, and the left unitary matrix; The initial condition number is determined based on the maximum singular value and the minimum singular value.
4. The method for remotely controlled underwater robotic arm to avoid singularities according to claim 1, characterized in that, The step of determining the correction coefficients for the motion speed of each joint of the underwater robotic arm based on the relative magnitudes of the initial condition number and the new condition number includes: If the initial condition number is not greater than the new condition number, then calculate the inner product of the last column vector and the end effector velocity of the underwater robotic arm; If the initial condition number is greater than the new condition number, the last column vector is first scaled in reverse, and the scaled last column vector is v*(-1); then the inner product of the scaled last column vector and the end effector velocity of the underwater robotic arm is calculated. If the inner product is not greater than zero, then the correction coefficient is determined to be 1; If the inner product is greater than zero and the initial condition number is greater than the preset singular threshold upper limit, then the correction coefficient is determined to be 0. If the inner product is greater than zero and the initial condition number is not greater than the preset upper limit of the singular threshold, then the correction coefficient is determined based on the initial condition number, the preset lower limit of the singular threshold, and the upper limit of the singular threshold.
5. The method for remotely controlled underwater robotic arm to avoid singularities according to claim 1, characterized in that, The movement speeds of each joint of the underwater robotic arm are: ; in, Let J be the movement velocity of each joint of the underwater robotic arm, and J be the Jacobian matrix of the underwater robotic arm. The speed of the underwater robotic arm's end effector is denoted as .
6. The method for remotely controlled underwater robotic arm to avoid singularities according to claim 2, characterized in that, The new end effector speed of the underwater robotic arm is: ; in, Let v be the new end effector velocity of the underwater robotic arm, and v be the last column vector in the left unitary matrix.
7. The method for remotely controlled underwater robotic arm to avoid singularities according to claim 2, characterized in that, The new joint angles of the underwater robotic arm are as follows: ; Where, θ new Let θ represent the new joint angles of the underwater robotic arm, and J represent the Jacobian matrix of the underwater robotic arm. This is the new end effector speed of the underwater robotic arm.
8. The method for avoiding singularities by a remotely controlled underwater robotic arm according to claim 4, wherein when the inner product is greater than zero and the initial condition number is not greater than the preset upper limit of the singularity threshold, the correction coefficient is: ; in, factor is the correction factor, k ini is the initial condition number, k low is the preset lower singular threshold, k up is the preset upper singular threshold.
9. A robotic arm controller, wherein, The method for avoiding singularities using a remotely operated underwater robot as described in any one of claims 1 to 8 is characterized by comprising: The acquisition module is used to acquire the angles of each joint of the underwater robotic arm and the remote control commands used to control the movement of the underwater robotic arm; The first calculation module is used to determine the end effector speed of the underwater robotic arm according to the remote control command. The second calculation module is used to calculate the Jacobian matrix of the underwater robotic arm based on the angles of each joint of the underwater robotic arm. The third calculation module is used to determine the movement speed of each joint of the underwater robotic arm based on the Jacobian matrix of the underwater robotic arm and the end effector speed of the underwater robotic arm. The fourth calculation module is used to determine the left unitary matrix and the initial condition number based on the Jacobian matrix of the underwater manipulator, wherein the column vectors in the left unitary matrix are the left singular vectors of the Jacobian matrix of the underwater manipulator. The processing module is used to determine the desired angle of each joint of the underwater robotic arm based on the determination strategy corresponding to the range of the initial condition numbers. The control module is used to control the movement of each joint of the underwater robotic arm to the desired position according to the desired angle of each joint.
10. A remotely controlled underwater robotic arm system for avoiding singularities, wherein, The method for avoiding singularities using a remotely operated underwater robot as described in any one of claims 1 to 8 is characterized by comprising: a control cabin disposed on the water surface and a remotely operated robot disposed underwater, the control cabin and the remotely operated robot being connected by an umbilical cable; the control cabin containing a robot arm controller, a remote control handle, and a first electronic compartment; and the remotely operated robot containing an underwater robot arm and a second electronic compartment; wherein: The remote control handle is used to control the movement of the underwater robotic arm according to the received remote control commands; The robotic arm controller is used to collect the real-time angles of each joint of the underwater robotic arm and the remote control command, and is also used to determine the desired angles of each joint of the underwater robotic arm and send the desired angles of each joint of the underwater robotic arm to the underwater robotic arm. The first electronic compartment is used to convert the electrical signals of the robotic arm controller into optical signals, and to convert the optical signals uploaded by the underwater remotely operated robot into electrical signals; The umbilical cable is used to transmit optical signals; The second electronic compartment is used to convert optical signals from the underwater remotely operated robot into electrical signals, and to convert optical signals sent by the robotic arm controller into electrical signals. The underwater robotic arm is used to control the movement of each joint of the underwater robotic arm to a desired position according to the desired angle of each joint.
11. A computer-readable storage medium, characterized in that, The computer program stored in the computer-readable storage medium, when executed by one or more processors, implements the method for remotely controlled underwater robotic arm to avoid singularities as described in any one of claims 1 to 8.
12. An electronic device, characterized in that, It includes a memory and one or more processors, wherein a computer program is stored in the memory, and the memory and the processor are communicatively connected to each other. When the computer program is executed by the processor, it performs the method for remotely controlled underwater robotic arm to avoid singularities as described in any one of claims 1 to 8.