Collision avoidance of arbitrary polygonal obstacles
원문보기
IPC분류정보
국가/구분
United States(US) Patent
등록
국제특허분류(IPC7판)
G08G-009/02
G05D-001/02
G01C-021/00
B60W-030/09
출원번호
US-0732746
(2015-06-07)
등록번호
US-9836980
(2017-12-05)
발명자
/ 주소
Sommer, Bruno M.
Wang, Norman N.
Oriol, Timothy R.
Gasselin de Richebourg, Jacques P.
출원인 / 주소
Apple Inc.
대리인 / 주소
Blank Rome LLP
인용정보
피인용 횟수 :
0인용 특허 :
4
초록▼
Systems, methods, and computer readable media to improve the operation of graphics systems are described. In general, collision avoidance techniques are disclosed that operate even when the agent lacks a priori knowledge of its environment and is, further, agnostic as to whether the environment is t
Systems, methods, and computer readable media to improve the operation of graphics systems are described. In general, collision avoidance techniques are disclosed that operate even when the agent lacks a priori knowledge of its environment and is, further, agnostic as to whether the environment is two-dimensional (2D) or three-dimensional (3D), whether the obstacles are convex or concave, or whether the obstacles are moving or stationary. More particularly, techniques disclosed herein use simple geometry to identify which edges of which obstacles an agent is most likely to collide. With this known, the direction of an avoidance force is also known. The magnitude of the force may be fixed, based on the agent's maximum acceleration, and modulated by weighting agents.
대표청구항▼
1. A collision avoidance method, comprising: identifying a current position of an agent in an environment, the environment stored in a memory and displayed on a display unit;determining a motion vector corresponding to the agent's current displayed position;identifying a first obstacle in the enviro
1. A collision avoidance method, comprising: identifying a current position of an agent in an environment, the environment stored in a memory and displayed on a display unit;determining a motion vector corresponding to the agent's current displayed position;identifying a first obstacle in the environment, the first obstacle having a plurality of edges;determining a first plurality of edge vectors, each edge vector corresponding to an edge of the first obstacle and extending between a closest point of a corresponding edge and the motion vector, wherein each of the first plurality of edge vectors is orthogonal to its corresponding edge at the corresponding edge's closest point;selecting, from the first plurality of edge vectors, a first edge vector that intersects the motion vector closest to the agent's current displayed position and whose corresponding closest point is within a bounding radius of the agent;determining a first force based on the first edge vector and the motion vector;applying the first force to the agent to change the motion vector corresponding to the agent's current displayed position; andupdating, on the display unit, the displayed environment in response to the applied first force. 2. The method of claim 1, wherein the first obstacle comprises a three-dimensional (3D) representation of an obstacle. 3. The method of claim 1, wherein the first obstacle comprises an obstacle that is in motion with respect to the displayed environment. 4. The method of claim 1, wherein the bounding radius comprises a field of view of the agent. 5. The method of claim 1, wherein identifying a first obstacle further comprises: identifying a second obstacle in the environment, the second obstacle having a plurality of edges;determining a second plurality of edge vectors, each edge vector corresponding to an edge of the second obstacle and extending between a closest point of a corresponding edge and the motion vector, wherein each of the second plurality of edge vectors is orthogonal to its corresponding edge at the corresponding edge's closest point;selecting a second edge vector, from the second plurality of edge vectors, that intersects the motion vector closest to the agent's current displayed position and whose corresponding closest point is within a bounding radius of the agent; anddetermining a second force based on the second edge vector and the motion vector. 6. The method of claim 5, wherein determining a first force further comprises: determining a second force based on the second edge vector and the motion vector; andcombining the first and second forces to generate an aggregate force. 7. The method of claim 6, wherein: applying the first force comprises applying the aggregate force to the agent to change the motion vector corresponding to the agent's current displayed position; andthe updating comprises updating, on the display unit, the displayed environment in response to the applied aggregate force. 8. A computer system, comprising: a memory;a display unit coupled to the memory; andone or more processors coupled to the memory and the display unit and configured to execute program code stored in the memory to cause the one or more processors to— access an environment stored in the memory,identify a current position of an agent in the environment,determine a motion vector corresponding to the agent's current position,identify a first obstacle in the environment, the first obstacle having a plurality of edges,determine a first plurality of edge vectors, each edge vector corresponding to an edge of the first obstacle and extending between a closest point of a corresponding edge and the motion vector, wherein each of the first plurality of edge vectors is orthogonal to its corresponding edge at the corresponding edge's closest point,select, from the first plurality of edge vectors, a first edge vector that intersects the motion vector closest to the agent's current position and whose corresponding closest point is within a bounding radius of the agent,determine a first force based on the first edge vector and the motion vector,apply the first force to the agent, anddisplay a result of the first force on the agent on the display unit. 9. The computer system of claim 8, wherein the first obstacle comprises a representation of a simple polyhedron. 10. The computer system of claim 8, wherein the first obstacle comprises an obstacle that is in motion. 11. The computer system of claim 8, wherein the bounding radius comprises a field of view of the agent. 12. The computer system of claim 8, wherein the program code to cause the one or more processors to identify a first obstacle further comprise program code to cause the one or more processors to: identify a second obstacle in the environment, the second obstacle having a plurality of edges;determine a second plurality of edge vectors, each edge vector corresponding to an edge of the second obstacle and extending between a closest point of a corresponding edge and the motion vector, wherein each of the second plurality of edge vectors is orthogonal to its corresponding edge at the corresponding edge's closest point;select, from the second plurality of edge vectors, a second edge vector that intersects the motion vector closest to the agent's current position and whose corresponding closest point is within a bounding radius of the agent; anddetermine a second force based on the second edge vector and the motion vector. 13. The computer system of claim 12, wherein the program code to cause the one or more processors to determine a first force further comprise the program code to cause the one or more processors to: determine a second force based on the second edge vector and the motion vector; andcombine the first and second forces to generate an aggregate force. 14. The computer system of claim 13, wherein the program code to cause the one or more processors to apply the first force comprise program code to cause the one or more processors to: apply the aggregate force to the agent; anddisplay, on the display unit, a result of applying the aggregate force to the agent. 15. A non-transitory program storage device comprising instructions stored thereon to cause one or more processors to: access an environment stored in memory;identify a current position of an agent in the environment;determine a motion vector corresponding to the agent's current position;identify a first obstacle in the environment, the first obstacle having a plurality of edges;determine a first plurality of edge vectors, each edge vector corresponding to an edge of the first obstacle and extending between a closest point of a corresponding edge and the motion vector, wherein each of the first plurality of edge vectors is orthogonal to its corresponding edge at the corresponding edge's closest point;select, from the first plurality of edge vectors, a first edge vector that intersects the motion vector closest to the agent's current position and whose corresponding closest point is within a bounding radius of the agent;determine a first force based on the first edge vector and the motion vector; andapply the first force to the agent. 16. The non-transitory program storage device of claim 15, wherein the first obstacle comprises a representation of a simple polyhedron. 17. The non-transitory program storage device of claim 15, wherein the first obstacle comprises an obstacle that is in motion. 18. The non-transitory program storage device of claim 15, wherein the bounding radius comprises a field of view of the agent. 19. The non-transitory program storage device of claim 15, wherein the instructions to cause the one or more processors to identify a first obstacle further comprise instructions to cause the one or more processors to: identify a second obstacle in the environment, the second obstacle having a plurality of edges;determine a second plurality of edge vectors, each edge vector corresponding to an edge of the second obstacle and extending between a closest point of a corresponding edge and the motion vector, wherein each of the second plurality of edge vectors is orthogonal to its corresponding edge at the corresponding edge's closest point;select, from the second plurality of edge vectors, a second edge vector that intersects the motion vector closest to the agent's current position and whose corresponding closest point is within a bounding radius of the agent; anddetermine a second force based on the second edge vector and the motion vector. 20. The non-transitory program storage device of claim 19, wherein the instructions to cause the one or more processors to determine a first force further comprise instructions to cause the one or more processors to: determine a second force based on the second edge vector and the motion vector; andcombine the first and second forces to generate an aggregate force. 21. The non-transitory program storage device of claim 20, wherein the instructions to cause the one or more processors to apply the first force comprise instructions to cause the one or more processors to: apply the aggregate force to the agent; anddisplay, on a display unit, a result of applying the aggregate force to the agent.
연구과제 타임라인
LOADING...
LOADING...
LOADING...
LOADING...
LOADING...
이 특허에 인용된 특허 (4)
Phillips, Emilie; Powers, Aaron; Shein, Andrew; Jamieson, Josef P.; Sawyer, Tyson, Autonomous behaviors for a remote vehicle.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.