Computer system and method for real-time autonomous path planning, and system and method for planning motion of robotic device and parts thereof

JP2025027463APending Publication Date: 2025-02-27MCDONALD DETWILER & ASSOCIATES INC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2024134941
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-08-14
Filing Date
2024-08-13
Publication Date
2025-02-27

Smart Images

  • Figure 2025027463000001_ABST
    Figure 2025027463000001_ABST
Patent Text Reader

Abstract

To provide systems, methods and devices for real-time autonomous path planning that can efficiently compute an acceptable path.SOLUTION: A method includes: receiving data about a robotic device in a three-dimensional workspace; encapsulating objects in an environment of the robotic device including the robotic device, a target and obstacles in a simulated robotic space; calculating a direction of movement for the robotic device according to three kinds of virtual force including virtual attractive force, virtual repulsive force, and virtual tangential force acting at least partially perpendicularly to the virtual repulsive force; mapping each virtual force in the three-dimensional workspace into torque vectors in the simulated robotic space at each joint; converting a total sum of the torque vectors into commands for the robotic device defining a path to reach the target; and sending the commands to the robotic device.SELECTED DRAWING: Figure 3
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The following relates generally to path planning algorithms for robotic devices, and more specifically to higher dimensional path planning algorithms for use in dynamic environments. [Background technology]

[0002] Algorithms for path planning in low-dimensional environments are used to plan a path for a robot or part of it, such as a robotic arm, robotic vehicle, or manipulator, to follow or move in the low-dimensional environment. Often, the goal of such conventional algorithms is to calculate an optimal path through the low-dimensional environment, i.e. a route that avoids any obstacles or hazards and searches for one or more targets in an optimal way.

[0003] Such algorithms for path planning, especially optimal path planning in low dimensional environments, require enormous computational resources to compute the optimal path and are often inefficient.

[0004] Such algorithms are adapted to low-dimensional environments where the robot, or part of it, has fewer degrees of freedom ("DoF") available to correct its course or change its motion. Because fewer DoF are available, optimality at the expense of efficiency is characteristic of such algorithms.

[0005] Such algorithms are more suited to static environments, where obstacles or hazards to be avoided and targets to be searched for typically do not move with respect to the robot or any part thereof. Thus, an optimal path is unlikely to be recalculated by such algorithms after it has been calculated. Thus, such algorithms may not be able to update the calculated path in real time.

[0006] In orbital environments and in space, there may be processor-constrained situations where the computational resources available for implementing algorithms for path planning may be limited due to the difficulty and cost associated with launching heavy components and deploying avionics in difficult thermal and radiation environments. Summary of the Invention [Problem to be solved by the invention]

[0007] Therefore, what is desired is a system, method, and device for real-time autonomous path planning that can efficiently compute acceptable paths.

[0008] Thus, there is a need for improved systems and methods for real-time autonomous path planning, and for planning the motion of robotic devices and parts thereof, that overcome at least some of the shortcomings in existing systems and methods.

[0009] Furthermore, such real-time autonomous path planning may take advantage of the higher dimensionality (higher DoF) available to the robot or portions thereof to efficiently compute allowable paths.

[0010] Moreover, such real-time autonomous path planning may be performed in dynamic environments where obstacles and hazards to be avoided, and targets to be searched, can and do move with respect to the robot, however, such real-time autonomous path planning may also be performed in static environments.

[0011] Moreover, such real-time autonomous path planning may be performed in real-time in the sense that updates to the planned path are made in response to the emergence of additional obstacles, hazards, and targets, or their unexpected movements. [Means for solving the problem]

[0012] A method of real-time autonomous path planning for a robotic device is provided. The method includes receiving, via a communication interface device, telemetry data for a robotic device with multiple joints in a three-dimensional workspace. The method further includes encapsulating, via one or more processors, objects in the environment of the robotic device, including the robotic device, a target, and one or more obstacles, in a simulated robot space having multiple dimensions. The method further includes calculating, via the one or more processors, a direction of movement of the robotic device due to three virtual forces, including a virtual attractive force acting to move the robotic device and the target together, a virtual repulsive force acting to move the robotic device and the one or more obstacles away from each other, and a virtual tangential force acting at least partially perpendicular with respect to the virtual repulsive force. The method further includes mapping, via the one or more processors, each virtual force in the three-dimensional workspace to a torque vector in the simulated robot space at each joint. The method further includes converting, via the one or more processors, a sum of the torque vectors into one or more commands for the robotic device, the one or more commands defining a path to reach the target. The method further includes transmitting one or more commands to the robotic device via the communication interface device.

[0013] The method may further include the step of the robotic device moving along a path defined by the one or more commands to reach the target.

[0014] One or more of the obstacles and objectives may move dynamically with respect to the robotic device.

[0015] The robotic device may include seven joints. The simulated robot space may have seven dimensions.

[0016] The robotic device may include an end effector configured to move in three translational and three rotational dimensions.

[0017] The spacecraft may be a target for the end effector and an obstacle for at least one other portion of the robotic device.

[0018] The method may be performed locally on the robotic device.

[0019] The path may be a non-optimized path sufficient for the robotic device to reach the goal without interacting with obstacles.

[0020] The transpose of the Jacobian matrix may be used to map each virtual force in the 3D workspace to a torque vector in the 7D simulated robot space at each joint.

[0021] This mapping can be done by converting the telemetry data into virtual forces using potential fields.

[0022] The movement of the robotic device can be continuous in real time as the path is re-evaluated.

[0023] The step of calculating each of the virtual attractive and repulsive forces may further include calculating a derivative of a second-order potential corresponding to an artificial potential field acting on the robotic device to cause the robotic device to move toward the target or away from one or more obstacles, respectively. The artificial potential field need not be explicitly calculated.

[0024] Once the robotic device enters a minimum point in the path, the one or more commands may include a command to move the robotic device out of the minimum point.

[0025] The method may further include approaching the robotic device to the target object, the approaching step may include varying an angular velocity and / or a linear velocity, respectively, of the robotic device to match an angular velocity and / or a linear velocity of the target object.

[0026] The method may include capturing the target object with the robotic device.

[0027] A system for real-time autonomous path planning for a robotic device is provided. The system comprises a communication interface device for receiving or recording telemetry data for a robotic device with multiple joints in a three-dimensional workspace and for sending one or more commands to the robotic device. The system further comprises a computing device comprising one or more processors and a non-transitory computer-readable medium having stored thereon computer-executable instructions that, when executed by the one or more processors, cause the following operations to be performed: The operations include encapsulating objects in an environment of the robotic device, including the robotic device, a target object, and one or more obstacles, in a simulated robot space having multiple dimensions. The operations include calculating a direction of movement of the robotic device due to three virtual forces, including a virtual attractive force acting to move the robotic device and the target object together, a virtual repulsive force acting to move the robotic device and the one or more obstacles away from each other, and a virtual tangential force acting at least partially perpendicular with respect to the virtual repulsive force. The operations include mapping each virtual force in the three-dimensional workspace to a torque vector in the simulated robot space at each joint. The operation involves converting the sum of the torque vectors into one or more commands for the robotic device, which define a path to reach the goal.

[0028] The method may further include the step of the robotic device moving along a path defined by the one or more commands to reach the target.

[0029] The robotic device may include seven joints. The simulated robot space may have seven dimensions. The robotic device may include an end effector configured to move in three translational and three rotational dimensions. The path may be a non-optimized path sufficient for the robotic device to reach the target without interacting with obstacles. Calculating each of the virtual attractive and repulsive forces may further include calculating a derivative of a second-order potential corresponding to an artificial potential field acting on the robotic device to cause the robotic device to move toward the target or away from one or more obstacles, respectively. The artificial potential field may not be explicitly calculated.

[0030] A non-transitory computer-readable medium for real-time autonomous path planning for a robotic device is provided. The non-transitory computer-readable medium encodes instructions that, when executed by a processor, cause the processor to perform the following operations: The operations include receiving, via a communication interface device, telemetry data related to a robotic device with multiple joints in a three-dimensional workspace. The operations include encapsulating, via the one or more processors, objects in the environment of the robotic device, including the robotic device, a target object, and one or more obstacles, in a simulated robot space having multiple dimensions. The operations include calculating, via the one or more processors, a direction of movement of the robotic device due to three virtual forces, including a virtual attractive force acting to move the robotic device and the target object together, a virtual repulsive force acting to move the robotic device and the one or more obstacles away from each other, and a virtual tangential force acting at least partially perpendicular with respect to the virtual repulsive force. The operations include mapping, via the one or more processors, each virtual force in the three-dimensional workspace to a torque vector in the simulated robot space at each joint. The operations include converting, via the one or more processors, the sum of the torque vectors into one or more commands for the robotic device, the one or more commands defining a path to reach the goal, and transmitting, via the communication interface device, the one or more commands to the robotic device.

[0031] The operation may further include the robotic device moving along a path defined by the commands to reach the target.

[0032] Other aspects and features will become apparent to those of ordinary skill in the art upon review of the following description of several exemplary embodiments.

[0033] The drawings included in this application are intended to illustrate various examples of the articles, methods, and apparatus herein. A description of the drawings is provided below. [Brief description of the drawings]

[0034] [Figure 1] FIG. 1 is a block diagram illustrating a system for real-time autonomous path planning, according to one embodiment. [Diagram 2] FIG. 1 is a block diagram of a computer system for autonomous path planning, according to one embodiment. [Diagram 3] FIG. 1 illustrates a method for autonomous path planning for a robotic device, according to one embodiment. [Figure 4] FIG. 1 illustrates a method for calculating a path for a robotic device to move to avoid obstacles and hazards and explore a target, according to one embodiment. [Diagram 5] 1 is an exemplary graphical representation of an encapsulation of objects disposed around a robotic device and the robotic device itself, according to one embodiment. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0035] Various apparatus or processes are described below to provide examples of each of the claimed embodiments. No embodiment described below limits the claimed embodiments, and any claimed embodiment may be directed to a process or apparatus different from that described below. The claimed embodiments are not limited to an apparatus or process having all of the features of any one of the apparatus or process described below, or to features common to some or all of the apparatus described below.

[0036] One or more of the systems described herein may be implemented in a computer program running on a programmable computer, each computer comprising at least one processor, a data storage system (including volatile and non-volatile memory and / or storage elements), at least one input device, and at least one output device. For example, and without limitation, a programmable computer may be a programmable logic unit, a microcontroller and an embedded processor, a mainframe computer, a server, as well as a personal computer, a cloud-based program or system, a laptop, a personal digital assistant, a mobile phone, a smartphone, or a tablet device.

[0037] Each program is preferably implemented in a high level procedural or object oriented programming language and / or scripting language to communicate with a computer system. However, the programs may be implemented in assembly or machine language, if desired. In either case, the language may be a compiled or interpreted language. Each such computer program is preferably stored on a general purpose or special purpose programmable computer-readable storage medium or device for configuring and operating a computer when the storage medium or device is read by a computer and performs the procedures described herein.

[0038] A description of an embodiment having several components in communication with each other does not imply that all such components are required, rather, a variety of optional components are described to illustrate the wide variety of possible embodiments of the present invention.

[0039] Additionally, although process steps, method steps, algorithms, or the like may be described (in the present disclosure and / or claims) in a sequential order, such processes, methods, and algorithms may be configured to operate in alternative orders. In other words, any sequence or order of steps that may be described does not necessarily indicate a requirement that the steps be performed in that order. Steps of processes described herein may be performed in any order that is practical. Additionally, some steps may be performed simultaneously.

[0040] It will be readily apparent that when a single device or article is described herein, multiple devices / articles (whether or not they cooperate) may be used in place of the single device / article. Similarly, when multiple devices or articles (whether or not they cooperate) are described herein, it will be readily apparent that a single device / article may be used in place of the multiple devices or articles.

[0041] Although embodiments of the present disclosure are described with reference to path planning for robots, those skilled in the art will appreciate that the present disclosure has many applications. For example, the present disclosure has applications in prepared and unprepared satellite servicing, debris removal, space assembly, and other space robotics. For example, the present disclosure has applications in artificial intelligence and machine and robot autonomy. For example, the present disclosure has applications in medicine and surgery (e.g., allowing a robot to plan its movements to dynamically avoid contact with a surgeon moving through an operating room). For example, the present disclosure has applications in industry and manufacturing, such as industrial robots moving toward dynamic targets (e.g., randomly placed objects on a conveyor belt) or moving to avoid humans or other robots. For example, the present disclosure has applications in warehousing and storage, such as multiple robots that can each pick goods from an incoming stream (e.g., a conveyor belt). It is expressly contemplated that the present disclosure may be enhanced through implementation with artificial intelligence or machine learning.

[0042] Provided are systems, methods, and devices that implement algorithms for real-time planning of robot arm motion in the presence of dynamic obstacles and objectives. Efficient configuration space mapping allows a three-dimensional (3D) workspace in which the robot arm, obstacles, and objectives reside to be projected computationally inexpensively into a seven-dimensional (7D) robot space or joint space (assuming seven robot joints) in which joint trajectories are planned. The present disclosure is also operable for robots with fewer than seven joints using lower dimensional planning spaces (e.g., a 6D planning space for six robot joints). A 6D tip space of an end effector on a robot arm (assuming a 7DoF robot arm) may be further calculated or represented to track or plan the motion of the end effector. This 6D tip space includes three translational dimensions and three rotational dimensions.

[0043] The aforementioned spaces may be non-orthogonal and may be redundant. For example, the tip position of the end effector (represented as a first point in the 6-dimensional tip space) may be mathematically mapped to multiple points in the 7-dimensional robot space (i.e., multiple sets of joint trajectories of the joints of the robot arm in the robot space may result in the same tip position in the tip space). Some problems to be solved by the robot arm may be more easily solved in one space, point in space, or configuration of the robot arm or end effector corresponding to the point in space, compared to other spaces, points, or configurations, respectively. In one embodiment, the algorithm advantageously transforms the problem to a different space to be more easily solved, and transforms back to the previous space. In one embodiment, the algorithm advantageously transforms the problem to a different space to be more easily solved, and leaves it transformed to the different space.

[0044] A tip space may correspond to or represent a motion of moving an end effector somewhere within a three-dimensional workspace, for example, a tip space motion planner for planning the motion of an end effector within a workspace. Each workspace may be specific to a particular task to be performed by a robot arm and / or end effector. A tip space may more generally represent Cartesian coordinate motion within any workspace. The present disclosure is suitable as part of a processor-limited application. The present disclosure may be supported by one or more processor-limited applications.

[0045] In conventional path planning algorithms, the configuration space may involve mapping telemetry information from a three-dimensional workspace to a seven-dimensional robot space that spans those joint angles. Unfortunately, in conventional path planning algorithms, the three-dimensional workspace is explicitly mapped to a corresponding blob into a further seven-dimensional configuration space for use in planning the motion of the joints and / or robotic device. The systems and methods of the present invention may advantageously remove this explicit mapping of Cartesian coordinate space quantities by instead calculating potential forces and using a significantly lower cost mapping between those forces and joint space torques, reducing computational cost and increasing computational efficiency.

[0046] A target as described herein may further be understood as an objective, such as, for example, an object to be captured or a location in physical space to be reached. For example, the target may be a satellite and an attachment of the satellite may be an obstacle. This target may be considered as a target with respect to the end effector of the robot arm and further as an obstacle with respect to other parts of the robot arm (e.g., the end effector tries to grasp the target, but the other parts of the robot arm try to avoid contact with the target, so the algorithm treats the target as an obstacle with respect to the other parts).

[0047] In one embodiment, for active debris removal, provided is a robotic arm configured to capture an uncontrolled rotating spacecraft while avoiding collisions with its moving appendages. Such a robotic arm may have further applications in space and terrestrial environments where the arm operates in dynamic environments or in the presence of obstacles (e.g., environments where the arm operates among humans or other robots moving around).

[0048] Throughout this application, "static environment" refers to an environment in which obstacles do not move relative to the robotic device during the execution of a movement of the robotic device, e.g., its robotic arm (e.g., most space station movements where the base of the robotic device is attached to a space station and the space station structure is immovable relative to the base). Throughout this application, "dynamic environment" refers to an environment in which at least one obstacle has movement relative to the base of the robotic device (at least one "dynamic obstacle"). Throughout this application, "dynamic target" means a target that has movement relative to the base of the robotic device. Capturing an uncontrollable satellite with a swinging appendage is an example of a dynamic environment with a dynamic obstacle (swinging appendage) and a dynamic target (uncontrollable satellite).

[0049] In one embodiment, a robotic arm of the present disclosure is provided in a static environment, for example, to move the robotic arm in a space station. The robotic arm may be configured to receive plans and commands from an operations team using software on the ground, which are uploaded or uplinked to the arm. The robotic arm may be configured to proceed autonomously, for example, to plan and execute its own movements. The robotic arm may be configured to receive plans and commands when provided, but proceed autonomously when such plans and commands are not provided. The robotic arm may be configured to proceed autonomously when or until further commands are provided. The robotic arm may be configured to receive plans and commands, but be allowed to modify, supplement, or ignore the plans and commands according to decisions, measurements, and / or calculations made autonomously, internally, or locally to the robotic arm.

[0050] Because a higher dimensional space (e.g., seven dimensions for 7DoF) is available for planning, a robotic arm of the present disclosure implementing a path planning algorithm may advantageously plan or determine a sufficient, or "good enough," path at a low computational cost. Because the complexity introduced by the sparser, higher dimensional environment in which the robotic arm operates, e.g., outer space, is low, this computational cost may advantageously be lowered sufficiently to allow a remotely (e.g., outer space) deployed robotic arm to plan its path autonomously in an efficient manner. In particular, the robotic arm may be implemented without housing large or expensive hardware that would otherwise be required to implement more complex conventional path planning algorithms that search for optimal paths in lower dimensional environments of high complexity. The algorithm of the present disclosure proceeds according to an efficient mapping between a three-dimensional ("3D") workspace (e.g., outer space) and a seven-dimensional ("7D") robot space. This mapping advantageously avoids the need for an explicit robot space map, which would typically require point-by-point sampling of many poses at each time step (possibly hundreds or thousands per step to obtain sufficient resolution) to see where collisions occur with respect to joint angles, since only the transpose Jacobian at the current robot joint angles, which involves relatively few computations, is required to map between forces in workspace and torques in robot space.

[0051] A planned path may be understood as a direction of movement rather than a specific route or course to be followed.

[0052] The disclosed path planning algorithms and associated systems, methods, and apparatus provide a lightweight, efficient, but non-optimal approach to finding paths in real-time for high DoF robots, such as 7 DoF (i.e., configured to adapt to environmental changes on a cycle-by-cycle basis). Such real-time capabilities may provide additional benefits when a human operator cannot react in real-time to a changing environment, for example, due to communication delays. Thus, provided herein are systems, methods, and devices for performing high DoF configuration space mapping for low-cost real-time planning.

[0053] In one embodiment, the robot arm is attached to a moving robotic structure (e.g., a moving spacecraft) and the target is also moving. Because the computations according to the algorithms of the present disclosure are dynamic and performed in real time, every time step of the algorithm involves re-evaluating the position of the robot arm (and potentially the entire moving robotic structure) with respect to the environment around the robot arm and the target, and planning the motion for the next time step. Each time step may last approximately 0.01 seconds. Each time step may be of equal length.

[0054] The calculation of the planned path can be simple or basic. Such calculation includes calculating an artificial potential field or constructing it around the robot arm in a simulation, for example in the robot space. Such calculation further includes calculating the derivative of the second-order potential as an attractive force that drives, propels, or otherwise acts on the robot arm to cause it to move towards a target in the absence of a change in course, direction, speed, etc. Such calculation further includes calculating the derivative of the second-order potential as a repulsive force that repels or otherwise acts on the robot arm to cause it to move away from an obstacle or hazard in the absence of a change in course, direction, speed, etc. The attractive and repulsive forces represent the gradient (i.e., derivative) of the potential field. Advantageously, the corresponding field is not explicitly calculated per se. Advantageously, the algorithm effectively calculates virtual forces associated with the potential field. Such calculations may further include calculating forces that drive, propel, or otherwise act on the robot arm to cause the robot arm to move away from or be repelled by the target in the absence of changes in course, direction, velocity, etc. Such calculations may further include calculating a third tangential force, i.e., a tangential force whose projection onto an axis perpendicular to an axis defining the shortest straight line path between the robot arm and the target is non-zero, that drives, propels, or otherwise act on the robot arm to cause the robot arm to move at least partially in a direction perpendicular to the target. Such tangential forces may include forces that drive, propel, or otherwise act on the robot arm to cause the robot arm to move towards or away from the target for a first direction of motion, but away from or towards the target, respectively, for a second direction of motion perpendicular to the first direction of motion.The combined effect of each of the attractive, repulsive, and tangential forces is calculated at each step of the algorithm to determine the current course, direction, velocity, etc. of the robot arm in the absence of any commanded or determined changes. Such calculations may be understood as summing the vectors associated with each of the attractive, repulsive, and tangential forces. When the attractive and repulsive forces are equal in magnitude and direction, only the tangential force effectively acts on the object.

[0055] It will be understood that throughout this disclosure, references to single attractive, repulsive, and tangential forces encompass embodiments in which there are multiple of any one or more of virtual attractive, repulsive, and virtual tangential forces. The virtual forces are artificially applied to the robot through algorithms to generate motion commands. The tangential forces are applied tangentially with respect to the repulsive forces to avoid local minima. The net virtual forces (i.e., the net of virtual attractive, repulsive, and tangential forces) act as guidance for the robot arm. The virtual forces are used to generate a reference trajectory for the arm to follow. The reference trajectory is provided to the controller of the robot arm, which commands attached actuators (e.g., at or controlling the joints of the robot arm) to actuate the arm (e.g., its joints) and move the arm on or along a desired path.

[0056] The algorithms according to the present disclosure, as well as systems, methods, and devices implementing the algorithms, may advantageously prevent the algorithm or the robotic device itself from becoming "trapped" in a local minimum. If the planned path is such that it would cause the robotic arm to enter a dead end, the algorithm may cause the robotic arm to continue to move out of the dead end and continue to wander towards the target. For example, the algorithm may be configured to consider that the robotic device moves tangentially to the obstacle to avoid the obstacle. A local minimum occurs when the attractive forces on the target are equal and counter-repulsive from the obstacle (i.e., when the net virtual attractive force and the net virtual repulsive force are equal in both magnitude and direction), e.g., the target moves straight ahead such that the virtual attractive force pulls the robotic arm forward, but the obstacle is positioned between the robotic arm (e.g., its end effector) and the target such that the virtual repulsive force pushes the robotic arm straight back. Unfortunately, without benefit of the algorithm according to the present disclosure, the robot arm in such a situation would be stuck between the net virtual attractive force and the net virtual repulsive force. Advantageously, the net tangential force provides at least partially tangential movement relative to the net virtual attractive and net virtual repulsive forces. Such at least partially tangential movement may enable the robot arm (or at least a portion thereof) to go around the obstacle and find an unobstructed path towards the target (e.g., a path without additional obstacles disposed between the robot arm and the target). Thus, the algorithm is configured to anticipate global guidance at a higher level.

[0057] Once the robotic device successfully approaches the target, the robotic device may make changes to its angular and / or linear velocity to match the angular and / or linear velocity of the target. Once the robotic device successfully approaches the target, the robotic arm of the robotic device may achieve capture of the target.

[0058] Referring now to Figure 1, shown in Figure 1 is a block diagram illustrating a system 10 for real-time autonomous path planning, according to one embodiment. The system 10 includes a server platform 12 that communicates with a number of sensing devices 14, a number of command devices 16, and a number of robotic devices 18 (commonly referred to as robotic devices 18) over a network 20. The server platform 12 may be a dedicated machine specially designed for processing and providing real-time autonomous path planning.

[0059] The server platform 12 receives telemetry data from the sensing devices 14. The server platform 12 may further receive telemetry data from the robotic device 18. Such telemetry data may represent the position, velocity, acceleration, jerk, and other kinematic or physical characteristics of the robotic device 18, targets, and / or obstacles at a point in time (e.g., camera telemetry may be used to track moving targets, and camera and / or lidar telemetry may be used to track moving obstacles). Such telemetry data may be measured and / or calculated by the robotic device 18 independent of data sensed by the sensing devices 14. Such telemetry data may be measured or calculated by the sensing devices 14 independent of any measurements or calculations by the robotic device 18. Such telemetry data may be measured and calculated, at least in part, through cooperation by the sensing devices 14 and the robotic device 18. Some or all of the telemetry data may be calculated by the server platform 12 based on measurements and / or calculations provided by the sensing devices 14 and the robotic device 18, whether or not they are working together. Some or all of the telemetry data may be provided based on a mathematical model of the evolution of the system 10. Some or all of the telemetry data may be provided to a state estimator to improve the performance of the system 10.

[0060] The sensing device 14 may be any one or more of a camera, an imaging device, an infrared sensor, a lidar device, and an accelerometer. The sensing device 14 may comprise a mathematical model.

[0061] The command device 16 is configured to receive input from a human user or operator regarding the robotic device 18. The command device 16 is further configured to provide output to the robotic device 18. The command device 16 may be further configured to facilitate communication between a human user or operator and the robotic device 18, such as by receiving input from the robotic device 18 and providing output to the human user or operator. The command device 16 may be configured to receive input and / or provide output from other computers, servers, or devices, e.g., a series of computers that mediate and facilitate communication between the server platform 12 and the command device 16. The output may include identification of a particular target (e.g., a piece of debris to be captured or an asset to be captured, such as a satellite for the robotic device 18 to connect to) to be captured or engaged by the robotic device 18 (not shown), or identification of an obstacle (e.g., debris) to be avoided. The output may include a command to search for a particular target or avoid a particular obstacle. The command device 16 may also be used to analyze the health or performance of the robotic device 18, for example, commanding the robotic device 18 to capture telemetry so that the health or performance can be analyzed.

[0062] In one embodiment, the robotic device 18 is a robotic arm. The robotic arm is part of a mechanical structure or a robotic structure or a spacecraft. The robotic arm may have a large or sufficient number of mechanical joints to provide many DoF for actuating or moving the robotic arm. The robotic device 18 may be a robotic manipulator. The manipulator may be on a moving base.

[0063] In one embodiment, the robotic device 18 is a robot. The robot may be completely separate from any other mechanical or robotic structure or spacecraft, i.e., not part of any other component. The robot may have multiple mechanical joints to provide many DoF for actuating or moving the robot.

[0064] In one embodiment, the number of DoFs is greater than 2. In one embodiment, the number of DoFs is 3. In one embodiment, the number of DoFs is greater than 3. In one embodiment, the number of DoFs is 4. In one embodiment, the number of DoFs is greater than 4. In one embodiment, the number of DoFs is 5. In one embodiment, the number of DoFs is greater than 5. In one embodiment, the number of DoFs is 6. In one embodiment, the number of DoFs is greater than 6. In one embodiment, the number of DoFs is 7. In one embodiment, the number of DoFs is greater than 7.

[0065] The server platform 12, the sensing device 14, the command device 16, and the robotic device 18 may be a server computer, a desktop computer, a notebook computer, a tablet, a PDA, a smartphone, or another computing device. The server platform and devices 12, 14, 16, 18 may include a connection to a network 20, such as a wired or wireless connection to the Internet. In some cases, the network 20 may include other types of computer or telecommunication networks. The server platform and devices 12, 14, 16, 18 may include one or more of a memory, a secondary storage device, a processor, an input device, a display device, and an output device. The memory may include a random access memory (RAM) or a similar type of memory. The memory may also store one or more applications for execution by the processor. The applications may correspond to software modules that include computer-executable instructions for performing processing for the functions described below. The secondary storage device may include a hard disk drive, a floppy disk drive, a CD drive, a DVD drive, a Blu-ray drive, or other types of non-volatile data storage. The processor may execute the applications, computer-readable instructions, or programs. The applications, computer readable instructions, or programs may be stored in memory or secondary storage, or may be received from the Internet or other network 20. The input devices may include any device for inputting information into the server platform and devices 12, 14, 16, 18. For example, the input devices may be a keyboard, a keypad, a cursor control device, a touch screen, a camera, or a microphone. The display devices may include any type of device for presenting visual information. For example, the display device may be a computer monitor, a flat screen display, a projector, or a display panel. The output devices may include any type of device for presenting a hard copy of information, such as, for example, a printer.The output devices may also include other types of output devices, such as, for example, speakers. In some cases, the server platform and devices 12, 14, 16, 18 may include a plurality of any one or more of the following devices: processors, applications, software modules, secondary storage devices, network connections, input devices, output devices, and display devices.

[0066] Although the server platforms and devices 12, 14, 16, 18 are described with various components, those skilled in the art will understand that the server platforms and devices 12, 14, 16, 18 may in some cases include fewer, additional, or different components. In addition, while aspects of the implementations of the server platforms and devices 12, 14, 16, 18 may be described as being stored in memory, those skilled in the art will understand that these aspects may be stored in or read from other types of computer program products or computer readable media, such as secondary storage devices including hard disks, floppy disks, CDs, or DVDs, carrier waves from the Internet or other networks, or other forms of RAM or ROM. The computer readable media may include instructions for controlling the server platforms and devices 12, 14, 16, 18 and / or processors to perform particular methods.

[0067] In the following description, devices such as the server platform 12, the sensing device 14, the command device 16, and the robotic device 18 are described as performing certain activities. It will be understood that any one or more of these devices may perform the activities automatically or in response to interactive interaction by a user of the device. That is, a user of the device may manipulate one or more input devices (e.g., a touch screen, a mouse, or a button) to cause the device to perform the described activity. In many cases, this aspect may not be described below, but will be understood.

[0068] As an example, it is described below that the devices 14, 16, 18 may transmit information to the server platform 12. For example, a user using the command device 16 may manipulate one or more input devices (e.g., a mouse and keyboard) to interact with a user interface displayed on a display of the command device 16 to, for example, control one or more of the robotic devices 18. In general, the command device 16 may receive a user interface (e.g., in the form of a web page) from the network 20. Alternatively, or in addition, the user interface may be stored locally on the command device (e.g., in a cache of a web page or mobile application).

[0069] The server platform 12 may be configured to receive a plurality of pieces of information from each of the plurality of sensing devices 14, command devices 16, and robotic devices 18. Generally, the information may include at least one identifier that identifies the robotic device 18. For example, the information may include an address of the robotic device 18 on the network 20.

[0070] In response to receiving the information, the server platform 12 may store the information in a storage database. The storage database may correspond to a secondary storage device of the server platform 12 or the devices 14, 16, 18. In general, the storage database may be any suitable storage device, such as a hard disk drive, a solid state drive, a memory card, or a disk (e.g., CD, DVD, Blu-ray). Also, the storage database may be locally connected to the server platform 12. In some cases, the storage database may be located remotely from the server platform 12 and accessible to the server platform 12, for example, over a network. In some cases, the storage database may include one or more storage devices located at a network-attached cloud storage provider.

[0071] Each command device 16 may be associated with an operator account. Any suitable mechanism for associating each command device 16 with an account is expressly contemplated. In some cases, a command device 16 may be associated with an account by sending credentials (e.g., a cookie, a login, a password) to the server platform 12. The server platform 12 may verify the credentials (e.g., determine that a received password matches a password associated with the account). If a command device 16 is associated with an account, the server platform 12 may assume that further activity by that command device 16 is associated with that account.

[0072] It will be understood by those skilled in the art that not all of the components of the system 10 are required for real-time autonomous path planning of the robotic device 18. In one embodiment, there is no dedicated server 12 and all processing and provisioning functions for real-time autonomous path planning of the robotic device 18 are performed autonomously, internally and locally to the robotic device 18.

[0073] In one embodiment, the sensing device 14 is internal to the robotic device 18. In one embodiment, the sensing device 14 is internal to the command device 16. In one embodiment, the sensing device 14 is present as a dedicated sensing device 14 in the robotic device 18, the command device 16, and / or elsewhere.

[0074] Referring now to Figure 2, shown in Figure 2 is a block diagram of a computer system 300 for autonomous path planning, according to one embodiment. The computer system 300 may be implemented in one or more devices of the system 10 of Figure 1. For example, some or all of the components of the computer system 300 may be implemented by any one or more of the server platform 12, the command device 16, and the robotic device 18.

[0075] The system 300 includes a processor 302 for executing the software models and modules.

[0076] The system 300 further comprises a memory 304 for storing data, including output data from the processor 302 .

[0077] The system 300 further comprises a communication interface 306 for communicating with other devices, such as through receiving and transmitting data over a network connection (eg, network 20 of FIG. 1).

[0078] The system 300 may include a vision system (not shown) for tracking targets or objects. The vision system may include a camera or imaging device for acquiring image data. The image data is stored in memory 304. The vision system may further include one or more software components executable by the processor 302 to process the collected image data and perform target or object tracking operations. In some cases, one or more components of the vision system may be external to the system 300 and communicate with the system 300 via the communication interface 306 (e.g., the system 300 may communicate imaging instructions to and receive image data from the camera via the communication interface 306).

[0079] The system 300 further comprises a display 308 for displaying in a human readable format various data generated by the computer system 300. For example, the display may be configured to display telemetry data 318 captured regarding the robotic device 18. For example, the display may be configured to display the planned path generated by the memory 304 as an output.

[0080] The processor 302 includes a computation module 310. The computation module 310 receives telemetry data 318 from, for example, the multiple sensing devices 14 of the system 10 of FIG.

[0081] The computation module 310 includes an encapsulation module 312 for encapsulating objects (not shown) disposed around the robotic device 18 or sensed by the multiple sensing devices 14 as encapsulation data 320. The encapsulation data 320 is stored in the memory 304. The encapsulation data 320 includes an encapsulation of the robotic device 18. The objects may include one or more obstacles or hazards that are present in the environment and that are to be avoided. The objects may include one or more targets or assets to be captured or otherwise engaged.

[0082] Encapsulation may be understood as recording or simulating the object and robotic device 18 in a robot space 328 stored in memory. The robot space 328 is an internal representation of the area around the robotic device 18, including the area occupied by the robotic device 18 and / or additional areas sensed by the multiple sensing devices 14. The robot space 328 is multi-dimensional to represent each of the DoFs of the robotic device 18. For example, in an embodiment in which the robotic device 18 has seven DoFs, the robot space 328 is seven-dimensional. In one embodiment, the robot space 328 has a number of dimensions equal to the number of DoFs of the robotic device 18. If one or more joints of the robotic device 18 are locked (e.g., the motion is not desired or all of the desired motions have already been performed), the robot space 328 is correspondingly reduced in dimension, e.g., if a first joint of a seven-joint robotic device 18 having seven DoFs is locked, the robot space 328 may be reduced to six dimensions while the first joint is locked. If additional DoF are provided to the robotic device 18 to be included in path planning (e.g., by adding additional joints, adding a translation mechanism to the end effector), the robot space is correspondingly increased in dimension, e.g., if a translation mechanism is added to the end effector of a seven-joint robotic device having seven DoF, the robot space 328 may be increased to eight dimensions while the translation mechanism is added.

[0083] The calculation module 310 includes a direction module 314 for calculating a direction of movement of the robotic device 18. The direction of movement is stored in the memory 304 as direction data 321. In one embodiment, the direction data 321 includes data obtained by calculation of a direction of movement in which the robotic device 18 is currently moving. Such data may be understood as representing the position, direction, speed, acceleration, jerks, etc. of the robotic device 18 when no heading correction is performed and / or when the robotic device 18 does not receive a command to move or actuate. In one embodiment, the direction data 321 includes data obtained by calculation of a direction of movement in which the robotic device 18 is not currently moving. Such data may be understood as representing the position, direction, speed, acceleration, jerks, etc. of the robotic device 18 when a heading correction is performed and / or when the robotic device 18 receives a command to move or actuate, for example, along a different path.

[0084] The direction module 314 calculates the direction data 321 according to the calculated virtual attractive force data 322 between the robotic device 18 and the target object, the calculated virtual repulsive force data 324 from other objects (i.e., between the robotic device 18 and other objects) as encapsulated in the encapsulation data 320, and the virtual tangential force data 326 as stored in the memory 304. Each of the virtual attractive force data 322, the virtual repulsive force data 324, and the virtual tangential force data 326 is artificially imposed on the robot in the context of an algorithm for generating a movement command. The virtual attractive force, virtual repulsive force, and virtual tangential force measured by the virtual attractive force data 322, the virtual repulsive force data 324, and the virtual tangential force data 326, respectively, are similar to real forces as the gradient of a potential field. Virtual force data 322, 324, 326 is calculated based on the positions of targets and obstacles in the three-dimensional workspace and converted into commands to send to the joints of a robotic device (e.g., robotic device 18). The commanded motions result in the robotic device moving along each potential field as if real attractive, repulsive, and tangential forces were acting. Virtual attractive forces correspond to magnetic forces that attract the tip of the end effector of the robotic device to targets. Virtual repulsive forces correspond to forces that push the robotic device away from obstacles. A path for the robotic device is calculated in the seven-dimensional robot space 328 under the influence of these virtual forces and applied to the real three-dimensional workspace where the robotic device, targets, and obstacles are present, even though such forces do not actually exist.

[0085] The computation module 310 includes a mapping module 316 for computing a path along which the robotic device 18 moves to avoid obstacles and hazards and to search for targets. The computed path is stored in the memory 304 as planned path data 330.

[0086] The calculation of the planned path data 330 may proceed by calculating an artificial potential field as an attractive force, where the potential is the derivative of a second-order potential, that directs the robotic device 18 towards the target. Such calculation further includes calculating the derivative of the second-order potential as a repulsive force that repels or otherwise acts on the robotic device 18 to cause the robotic device 18 to move away from the obstacle or hazard in the absence of any change in course, direction, speed, etc. The influence of each of the attractive, repulsive, and tangential forces may be combined in the calculation to determine the path that the robotic device 18 would follow in the absence of further movement or actuation, and to determine different desired paths, if any, as the planned path data 330. The combination of the attractive, repulsive, and tangential forces may include summing the three forces to determine how the three forces affect the direction data 321. Summing the three forces may include expressing the three forces as vectors (i.e., expressing each force as having both a magnitude and a direction) and summing the vectors according to their respective magnitudes and directions.

[0087] The planned path data 330, when executed by the robotic device 18, provides a path for the robotic device 18 that avoids collisions with obstacles or hazards in the area around and along the path of the robotic device 18. This advantage is obtained when the characteristics of the area are known, for example, via the sensing device 14, and when such obstacles do not move faster than the robotic device 18. The planned path data 330 further provides a path for the robotic device 18 to reach a goal. The robotic device 18 that creates the planned path data 330 may advantageously push out of a deadlock, such as that characterized by a local minimum with respect to the value function of the potential path, and proceed to the goal. For example, if the robotic device tries to move directly towards the goal, but an obstacle blocks the most direct route. Simply calculating the local minimum and following the local minimum would cause the robotic device to be "stuck" with respect to the obstacle, since the most efficient path, only with the local minimum, would be towards the obstacle, and all paths around the obstacle would be deemed locally inefficient.

[0088] In accordance with the aforementioned advantages, a higher level of global guidance may be provided to the robotic device 18 when capturing a non-cooperative target, e.g., a satellite whose communication or navigation system is damaged such that it cannot respond to commands or behaves unpredictably. In such a situation, the robotic device 18 may approach the non-cooperative target and observe its movements until a higher level software agent (not shown) instructs the robotic device 18 when to begin capture. After such instructions are received, systems and methods for real-time autonomous path planning and systems and methods for planning the movements of robotic devices and portions thereof according to the present disclosure approach the non-cooperative target and plan a path to prevent a collision between the robotic device 18 and the non-cooperative target or portion thereof (e.g., a solar panel of a non-cooperative target that is not intended to be grasped by an end effector of the robotic device 18).

[0089] Although the above-described embodiments are performed by the computer system 300 in an automated manner, human oversight may still be incorporated, for example, via the command device 16.

[0090] The aforementioned determination of different paths according to the planned path data 330 may advantageously result in a path sufficient for the robotic device 18 to reach the target while avoiding collisions with obstacles and hazards. However, the determined path may be suboptimal to save computational resources. In other words, the path may be considered "good enough" to reach the target and avoid collisions.

[0091] The determination of the different paths and the aforementioned calculations are performed to update the path of the robotic device 18 at regular time steps (e.g., every 0.01 seconds) as the robot moves. From the perspective of a human observer, the incorporation of new information in the determination of the different paths and / or the aforementioned calculations (e.g., about 100 times per second) appears to be continuous in real time in nature.

[0092] In one embodiment, the system and method for real-time autonomous path planning and for planning the motion of a robotic device and portions thereof looks ahead of the target regardless of the distance between the robotic device and the target. Obstacles are taken into account in determining the different paths and in the aforementioned calculations when the robotic device approaches the obstacle and when the obstacle is within a predetermined distance of the robotic device.

[0093] In one embodiment, the above-described systems and methods are updated at least 100 times per second.

[0094] In one embodiment, during each update, the system considers the current positions of the robotic device, targets, and / or obstacles within the three-dimensional workspace (i.e., does not rely on predictions of the future positions of the robotic device, targets, and / or obstacles). In this embodiment, the above-described systems and methods may consider changes in the positions of the robotic device, targets, and / or obstacles during subsequent updates.

[0095] In one embodiment, the above-described systems and methods further predict future positions of the robotic device, targets, and / or obstacles.

[0096] Referring now to Figure 3, shown therein is a method 400 of autonomous path planning for a robotic device, according to one embodiment. The robotic device may be the robotic device 18 of the system 10 of Figure 1. Optionally, the method 400 may include tracking a target or object using a vision system.

[0097] At 402, the method 400 includes receiving telemetry data, for example, the telemetry data 318 received from the plurality of sensing devices 14 of the system 10 of FIG.

[0098] At 404, the method 400 includes encapsulating an object disposed about the robotic device. Encapsulating the object includes representing the object in the robot space 328 using a perimeter, boundary, or hull as shown in FIG. 5 to represent the location of the object. It may be computationally simpler or more efficient to perform calculations with respect to the hull of FIG. 5 than with respect to the real object as visualized through a vision system. The object may be considered to be within a workspace with respect to the robotic device 18. The object may be disposed about the robotic device 18 or may be sensed by multiple sensing devices 14. An output of encapsulating the object may be stored as encapsulation data 320. The encapsulation data 320 includes encapsulating the robotic device 18. The object may include one or more obstacles or hazards to be avoided. The object may include one or more targets to be captured or engaged by the robotic device.

[0099] 5, in one embodiment, the encapsulation data 320 includes a pill-shaped capsule for the object. The encapsulation data 320 is the result of converting a complex real-world shape (e.g., the robotic device 18) into one or more pill-shaped capsules that completely cover the complex real-world shape. The resulting encapsulation data 320 allows for simplification of collision calculations while ensuring that underlying objects within the capsule do not collide, since the distance between two capsules is equal to the distance between two straight lines, a much simpler problem to calculate than determining the distance between two complex generalized shapes.

[0100] At 406, the method 400 includes calculating a direction of movement of the robotic device. The direction of movement may be stored in the memory 304 as direction data 321. The direction data 321 may include data obtained by calculation of a direction of movement in which the robotic device 18 is currently moving. Such data may be understood as representing the position, direction, speed, acceleration, jerk, etc. of the robotic device 18 in the case where a heading correction is not performed and / or the robotic device 18 does not receive a command to move or actuate. The direction data 321 may include data obtained by calculation of a direction of movement in which the robotic device 18 is not currently moving. Such data may be understood as representing the position, direction, speed, acceleration, jerk, etc. of the robotic device 18 in the case where a heading correction is performed and / or the robotic device 18 receives a command to move or actuate.

[0101] The direction module 314 calculates direction data 321 according to attraction data 322 of gravity or other attractive forces between the robotic device 18 and the target object, repulsion data 324 of repulsive forces between the robotic device and other objects as encapsulated in the encapsulation data 320, and tangential force data 326.

[0102] At 408, the method 400 includes calculating a path along which the robotic device 18 may move to avoid obstacles and hazards and explore the target by moving under the influence of the artificial potential field and forces induced thereby, which includes an attractive object component (i.e., virtual attractive force), a repulsive force component (i.e., virtual repulsive force component), and a tangential component to the repulsive force that helps move around the obstacle and not simply away from it (i.e., virtual tangential force). The calculated path may be stored in the memory 304 as planned path data 330.

[0103] To move the robot, commands are sent to each joint of the robot (e.g., in terms of joint rotational velocity, in terms of joint angle). Telemetry information about the 3D workspace is stored, and mapping the 3D workspace to the 7D robot space 328 allows commands for each joint to be derived based on the telemetry information. The mapping is done by converting the telemetry data into artificial forces using potential fields, converting the artificial forces into joint-space torques, and converting the joint-space torques into commands.

[0104] Referring now to Figure 4, Figure 4 illustrates a method 500 for calculating a path for a robotic device to move to avoid obstacles and hazards and explore a target, according to one embodiment. Method 500 corresponds to 408 of method 400 of Figure 3. The robotic device may be robotic device 18 of system 10 of Figure 1.

[0105] At 502, the method 500 includes calculating an attractive force vector corresponding to a first artificial potential field, where the first potential is a derivative of a second-order potential that moves the robotic device toward a goal, and a repulsive force vector corresponding to a second artificial potential field, where the second potential is a derivative of a second-order potential that moves the robotic device away from one or more obstacles.

[0106] At 504, the method 500 includes determining a current path that the robotic device would follow in the absence of further movement or actuation by combining the effects of each of the attractive, repulsive, and tangential forces in the calculation at 502.

[0107] At 506, the method 500 includes determining a desired path, if any, that differs from the path determined at 504 by combining the effects of each of the attractive, repulsive, and tangential forces in the calculation at 502. The path is represented as planned path data. The planned path data may be planned path data 330.

[0108] Combining the attractive, repulsive, and tangential forces in 504 or 506 may include summing the three forces to determine how they affect directional data, such as directional data 321. Summing the three forces may include representing the three forces as vectors (i.e., representing each force as having both a magnitude and a direction) and summing the vectors according to their respective magnitudes and directions.

[0109] Referring now to Figure 5, shown in Figure 5 is an exemplary encapsulation 600 of objects disposed around a robotic device and a graphical representation of the robotic device itself, according to one embodiment. The objects are graphically represented on a grid 601. The robotic device may be the robotic device 18 of the system 10 of Figure 1. The encapsulation 600 may correspond to 404 of the method 400 of Figure 3. The encapsulation 600 may be the encapsulation data 320 of the system 300 of Figure 2.

[0110] Encapsulation 600 includes an encapsulated robotic device 602, an encapsulated obstacle 604, an encapsulated hazard 606, and an encapsulated target 608. Generally, a path for the robotic device that allows the robotic device to capture or engage the target 608 while avoiding the obstacles 604 and the hazards 606 is desired.

[0111] Encapsulation 600 may advantageously enable encapsulated robotic device 602 to operate or move, or be operated or moved, to avoid encapsulated obstacles 604 and encapsulated hazards 606 to search for encapsulated target 608.

[0112] Because the encapsulation 600 corresponds to the real locations of the robotic device 18, various obstacles and hazards, and targets to be captured or engaged, the solutions to the actuation or movement of the encapsulated robotic device 602 in the encapsulation 600 correspond to real planned paths that the robotic device may follow to avoid the obstacles and hazards and explore the targets.

[0113] Encapsulation 600 increases computational efficiency in that complex objects with multiple sides, vertices, and angles may instead be represented as a capsule (e.g., a pill-shaped capsule shown in encapsulated robotic device 602), simplifying calculations. Thus, any potential collisions may be calculated with finite line distance calculations that can be solved through quadratic equations.

[0114] After identifying the closest approach between two capsules (e.g., an encapsulated robotic device 602 and an encapsulated target 608), a closest force between them is generated;

[0115]

number

[0116] which sums all the forces into a torque. This torque is then directly converted into a velocity command so that the joints act accordingly.

[0117] Thus, performing the above calculations may advantageously always take the same amount of time to perform, as solution-finding iterations may advantageously not be required.

[0118] All encapsulated components of encapsulation 600 (eg, encapsulated robotic device 602, encapsulated obstacle 604, encapsulated hazard 606, and encapsulated target 608) repel each other.

[0119] In accordance with the aforementioned systems and methods, the robotic device is defined by or receives guidance (e.g., a trajectory), which is provided as a reference to a controller of the robotic device, which executes the guidance by sending commands to actuators of the joints of the robotic device.

[0120] Although the above description provides examples of one or more devices, methods, or systems, it will be understood that other devices, methods, or systems may be within the scope of the claims as interpreted by one of ordinary skill in the art. [Explanation of symbols]

[0121] 10. System 12 Server Platforms 14 Sensing Devices 16 Command Device 18 Robotic Devices 20 Network 300 Computer Systems 302 Processor 304 Memory 306 Communication Interface 308 Display 310 Calculation Module 312 Encapsulation Module 314 Directional Module 316 Mapping Module 318 Telemetry Data 320 Encapsulated Data 321 Directional Data 322 Virtual Gravity Data 324 Virtual Repulsion Data 326 Virtual tangential force data 328 7-dimensional robot space 330 Planned Route Data 400 ways 500 ways 600 Encapsulation 601 Grid 602 Encapsulated Robotic Device 604 Encapsulated Obstacles 606 Encapsulated Dangerous Goods 608 Encapsulated Object

Claims

1. 1. A method of real-time autonomous path planning for a robotic device, comprising: receiving, by a communications interface device, telemetry data regarding the robotic device, the robotic device including a plurality of joints, within a three-dimensional workspace; encapsulating, by one or more processors, the robotic device, a target object, and objects in an environment of the robotic device, including one or more obstacles, within a simulated robot space having multiple dimensions; calculating, by the one or more processors, a direction of movement of the robotic device due to three virtual forces, including a virtual attractive force acting to move the robotic device and the target object together, a virtual repulsive force acting to move the robotic device and the one or more obstacles away from each other, and a virtual tangential force acting at least partially perpendicular with respect to the virtual repulsive force; mapping, by the one or more processors, each virtual force in the three-dimensional workspace to a torque vector in the simulated robot space at each joint; converting, by the one or more processors, the sum of torque vectors into one or more commands for the robotic device, the one or more commands defining a path to reach the goal; transmitting, by the communication interface device, the one or more commands to the robotic device; A method comprising:

2. The method of claim 1 , further comprising the step of: the robotic device moving along the path defined by the one or more commands to reach the goal.

3. The method of claim 1 , wherein the one or more obstacles and the target are dynamically moving with respect to the robotic device.

4. The method of claim 1 , wherein the robotic device includes seven joints and the simulated robot space has seven dimensions.

5. The method of claim 1 , wherein the robotic device includes an end effector configured to move in three translational and three rotational dimensions.

6. The method of claim 5 , wherein a spacecraft is the target for the end effector and an obstacle for at least one other portion of the robotic device.

7. The method of claim 1 , wherein the method is executed locally on the robotic device.

8. The method of claim 1 , wherein the path is a non-optimized path sufficient for the robotic device to reach the goal without interacting with the obstacles.

9. 5. The method of claim 4, wherein mapping each virtual force in the three-dimensional workspace to the torque vector in the seven-dimensional simulated robot space at each joint uses a Jacobian transpose.

10. The method of claim 1 , wherein the mapping is performed by converting the telemetry data into the virtual forces using a potential field.

11. The method of claim 1 , wherein the movement of the robotic device is continuous in real-time as the path is re-evaluated.

12. 2. The method of claim 1 , wherein calculating each of the virtual attractive and repulsive forces further comprises: calculating a derivative of a second-order potential corresponding to an artificial potential field acting on the robotic device to cause the robotic device to move toward the target or away from the one or more obstacles, respectively, where the artificial potential field is not explicitly calculated.

13. The method of claim 1 , wherein when the robotic device enters a minimum point of the path, the one or more commands include a command to move the robotic device out of the minimum point.

14. 2. The method of claim 1, further comprising approaching the robotic device to the target, the approaching comprising changing the angular velocity and / or linear velocity of the robotic device to match an angular velocity and / or a linear velocity, respectively, of the target.

15. The method of claim 1 , further comprising capturing the target object with the robotic device.

16. 1. A system for real-time autonomous path planning for a robotic device, comprising: a communications interface device for receiving or recording telemetry data regarding the robotic device, the robotic device including a plurality of joints, and for transmitting one or more commands to the robotic device in a three-dimensional workspace; 1. A computing device comprising: one or more processors; and a non-transitory computer-readable medium having computer-executable instructions stored thereon, the computer-executable instructions, when executed by the one or more processors, encapsulating the robotic device, a target object, and objects in an environment of the robotic device, including one or more obstacles, within a simulated robot space having multiple dimensions; calculating a direction of movement of the robotic device due to three virtual forces, including a virtual attractive force acting to move the robotic device and the target object together, a virtual repulsive force acting to move the robotic device and the one or more obstacles away from each other, and a virtual tangential force acting at least partially perpendicular with respect to the virtual repulsive force; Mapping each virtual force in the three-dimensional workspace to a torque vector in the simulated robot space at each joint; translating the sum of torque vectors into the one or more commands for the robotic device, the one or more commands defining a path to reach the target; a computing device, causing an operation to be performed, the operation including: A system comprising:

17. 17. The system of claim 16, further comprising the robotic device moving along the path defined by the one or more commands to reach the goal.

18. 17. The system of claim 16, wherein the robotic device comprises seven joints, the simulated robot space has seven dimensions, the robotic device includes an end effector configured to move in three translational and three rotational dimensions, the path is a non-optimized path sufficient for the robotic device to reach the goal without interacting with the obstacles, and calculating each of the virtual attractive and repulsive forces further comprises: calculating a derivative of a second order potential corresponding to an artificial potential field acting on the robotic device to cause the robotic device to move toward the goal or away from the one or more obstacles, respectively, where the artificial potential field is not explicitly calculated.

19. 1. A non-transitory computer-readable medium for real-time autonomous path planning for a robotic device, the non-transitory computer-readable medium encoding instructions that, when executed by a processor, cause the processor to: receiving telemetry data regarding the robotic device, the robotic device including a plurality of joints, within a three-dimensional workspace via a communications interface device; encapsulating, by one or more processors, objects in an environment of the robotic device, including the robotic device, a target object, and one or more obstacles, within a simulated robot space having multiple dimensions; calculating, by the one or more processors, a direction of movement of the robotic device due to three virtual forces, including a virtual attractive force acting to move the robotic device and the target object together, a virtual repulsive force acting to move the robotic device and the one or more obstacles away from each other, and a virtual tangential force acting at least partially perpendicular with respect to the virtual repulsive force; mapping, by the one or more processors, each virtual force in the three-dimensional workspace to a torque vector in the simulated robot space at each joint; converting, by the one or more processors, the sum of torque vectors into one or more commands for the robotic device, the one or more commands defining a path for reaching the target; transmitting, via the communication interface device, the one or more commands to the robotic device; A non-transitory computer-readable medium that causes operations to be performed, including:

20. 20. The non-transitory computer-readable medium of claim 19, wherein the action further comprises the robotic device moving along the path defined by the command to reach the goal.