ES2907503T3 - Umbral ajustable de proximidad para evitar objetos de un vehículo robótico basado en la presencia de carga(s) útil(es) detectada(s) - Google Patents

Umbral ajustable de proximidad para evitar objetos de un vehículo robótico basado en la presencia de carga(s) útil(es) detectada(s) Download PDF

Info

Publication number
ES2907503T3
ES2907503T3 ES18830072T ES18830072T ES2907503T3 ES 2907503 T3 ES2907503 T3 ES 2907503T3 ES 18830072 T ES18830072 T ES 18830072T ES 18830072 T ES18830072 T ES 18830072T ES 2907503 T3 ES2907503 T3 ES 2907503T3
Authority
ES
Spain
Prior art keywords
robotic vehicle
payload
processor
proximity threshold
determining
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES18830072T
Other languages
English (en)
Inventor
Michael Franco Taveira
Daniel Warren Mellinger Iii
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Application granted granted Critical
Publication of ES2907503T3 publication Critical patent/ES2907503T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/0202Control of position or course in two dimensions specially adapted to aircraft
    • GPHYSICS
    • G08SIGNALLING
    • G08GTRAFFIC CONTROL SYSTEMS
    • G08G5/00Traffic control systems for aircraft, e.g. air-traffic control [ATC]
    • G08G5/04Anti-collision systems
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B64AIRCRAFT; AVIATION; COSMONAUTICS
    • B64CAEROPLANES; HELICOPTERS
    • B64C39/00Aircraft not otherwise provided for
    • B64C39/02Aircraft not otherwise provided for characterised by special use
    • B64C39/024Aircraft not otherwise provided for characterised by special use of the remote controlled vehicle type, i.e. RPV
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/0055Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots with safety arrangements
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/0088Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots characterized by the autonomous decision making process, e.g. artificial intelligence, predefined behaviours
    • GPHYSICS
    • G08SIGNALLING
    • G08GTRAFFIC CONTROL SYSTEMS
    • G08G5/00Traffic control systems for aircraft, e.g. air-traffic control [ATC]
    • G08G5/0004Transmission of traffic-related information to or from an aircraft
    • G08G5/0013Transmission of traffic-related information to or from an aircraft with a ground station
    • GPHYSICS
    • G08SIGNALLING
    • G08GTRAFFIC CONTROL SYSTEMS
    • G08G5/00Traffic control systems for aircraft, e.g. air-traffic control [ATC]
    • G08G5/0017Arrangements for implementing traffic-related aircraft activities, e.g. arrangements for generating, displaying, acquiring or managing traffic information
    • G08G5/0021Arrangements for implementing traffic-related aircraft activities, e.g. arrangements for generating, displaying, acquiring or managing traffic information located in the aircraft
    • GPHYSICS
    • G08SIGNALLING
    • G08GTRAFFIC CONTROL SYSTEMS
    • G08G5/00Traffic control systems for aircraft, e.g. air-traffic control [ATC]
    • G08G5/0047Navigation or guidance aids for a single aircraft
    • G08G5/006Navigation or guidance aids for a single aircraft in accordance with predefined flight zones, e.g. to avoid prohibited zones
    • GPHYSICS
    • G08SIGNALLING
    • G08GTRAFFIC CONTROL SYSTEMS
    • G08G5/00Traffic control systems for aircraft, e.g. air-traffic control [ATC]
    • G08G5/0047Navigation or guidance aids for a single aircraft
    • G08G5/0069Navigation or guidance aids for a single aircraft specially adapted for an unmanned aircraft
    • GPHYSICS
    • G08SIGNALLING
    • G08GTRAFFIC CONTROL SYSTEMS
    • G08G5/00Traffic control systems for aircraft, e.g. air-traffic control [ATC]
    • G08G5/0073Surveillance aids
    • G08G5/0086Surveillance aids for monitoring terrain
    • GPHYSICS
    • G08SIGNALLING
    • G08GTRAFFIC CONTROL SYSTEMS
    • G08G5/00Traffic control systems for aircraft, e.g. air-traffic control [ATC]
    • G08G5/04Anti-collision systems
    • G08G5/045Navigation or guidance aids, e.g. determination of anti-collision manoeuvers
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B64AIRCRAFT; AVIATION; COSMONAUTICS
    • B64UUNMANNED AERIAL VEHICLES [UAV]; EQUIPMENT THEREFOR
    • B64U10/00Type of UAV
    • B64U10/10Rotorcrafts
    • B64U10/13Flying platforms
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B64AIRCRAFT; AVIATION; COSMONAUTICS
    • B64UUNMANNED AERIAL VEHICLES [UAV]; EQUIPMENT THEREFOR
    • B64U2101/00UAVs specially adapted for particular uses or applications
    • B64U2101/30UAVs specially adapted for particular uses or applications for imaging, photography or videography
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B64AIRCRAFT; AVIATION; COSMONAUTICS
    • B64UUNMANNED AERIAL VEHICLES [UAV]; EQUIPMENT THEREFOR
    • B64U2101/00UAVs specially adapted for particular uses or applications
    • B64U2101/60UAVs specially adapted for particular uses or applications for transporting passengers; for transporting goods other than weapons
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B64AIRCRAFT; AVIATION; COSMONAUTICS
    • B64UUNMANNED AERIAL VEHICLES [UAV]; EQUIPMENT THEREFOR
    • B64U2101/00UAVs specially adapted for particular uses or applications
    • B64U2101/60UAVs specially adapted for particular uses or applications for transporting passengers; for transporting goods other than weapons
    • B64U2101/64UAVs specially adapted for particular uses or applications for transporting passengers; for transporting goods other than weapons for parcel delivery or retrieval
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B64AIRCRAFT; AVIATION; COSMONAUTICS
    • B64UUNMANNED AERIAL VEHICLES [UAV]; EQUIPMENT THEREFOR
    • B64U2201/00UAVs characterised by their flight controls
    • B64U2201/10UAVs characterised by their flight controls autonomous, i.e. by navigating independently from ground or air stations, e.g. by using inertial navigation systems [INS]
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B64AIRCRAFT; AVIATION; COSMONAUTICS
    • B64UUNMANNED AERIAL VEHICLES [UAV]; EQUIPMENT THEREFOR
    • B64U30/00Means for producing lift; Empennages; Arrangements thereof
    • B64U30/20Rotors; Rotor supports

Landscapes

  • Engineering & Computer Science (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Automation & Control Theory (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Business, Economics & Management (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Game Theory and Decision Science (AREA)
  • Medical Informatics (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
  • Traffic Control Systems (AREA)

Abstract

Un procedimiento (300) para operar un vehículo robótico (200), que comprende: determinar (325), mediante un procesador (220), si el vehículo robótico transporta una carga útil; establecer (330, 340), por parte del procesador (220), un umbral de proximidad para evitar colisiones en respuesta a la determinación de que el vehículo robótico transporta una carga útil; y controlar (350), mediante el procesador, uno o más motores (125) del vehículo robótico utilizando el umbral de proximidad para evitar colisiones en el que determinar si el vehículo robótico transporta una carga útil comprende: obtener (310), por parte del procesador, datos de un sensor de carga útil (236) configurado para detectar si el vehículo robótico transporta una carga útil o de uno o más motores (125) que indican una tasa de revolución de uno o más respectivos motores; y analizar (320) los datos obtenidos para determinar si el vehículo robótico transporta una carga útil.

Description

DESCRIPCIÓN
Umbral ajustable de proximidad para evitar objetos de un vehículo robótico basado en la presencia de carga(s) útil(es) detectada(s)
Antecedentes
Los vehículos robóticos, como los vehículos robóticos aéreos o "drones", a menudo se utilizan para una variedad de aplicaciones, como vigilancia, fotografía y/o entrega de carga. Muchos vehículos robóticos utilizan sistemas para evitar obstáculos que funcionan junto con los sistemas de control del vehículo para evitar golpear a personas, propiedades y objetos. Por ejemplo, una vez que un vehículo robótico detecta un objeto cercano, el sistema de evasión de obstáculos que se ejecuta dentro del controlador puede evitar que el vehículo robótico se acerque al objeto más cerca de una distancia mínima (que se denomina en la presente memoria "umbral de proximidad"). El umbral de proximidad suele ser una distancia fija. En el caso de vehículos robóticos aéreos que incluyen paletas de hélice, el umbral de proximidad puede ser de unos pocos pies para evitar daños y/o lesiones por el contacto con las palas de la hélice que giran.
El documento WO 2017/168423 A1 divulga que el umbral de proximidad puede ser determinado por un operador y puede depender de la velocidad de un dron. El documento WO 2016/053194 A1 divulga un sensor de carga útil que mide el peso o el cambio de peso de una carga útil transportada por un dron.
Sumario
Varias realizaciones incluyen vehículos robóticos, sistemas y procedimientos para operar un vehículo robótico que ajusta qué tan cerca se acercará el vehículo robótico a los objetos en función de si el vehículo robótico transporta una carga útil. En varias realizaciones, los procedimientos implementados por un procesador de un vehículo robótico pueden incluir determinar si el vehículo robótico transporta una carga útil, establecer un umbral de proximidad para evitar colisiones en respuesta a la determinación de que el vehículo robótico transporta una carga útil, controlar uno o más motores del vehículo robótico utilizando el umbral de proximidad para evitar colisiones. En algunas realizaciones, establecer el umbral de proximidad para evitar colisiones puede incluir elevar el umbral de proximidad de un primer valor a un segundo valor que es más alto que el primer valor en respuesta a la determinación de que el vehículo robótico no transporta una carga útil. En algunas realizaciones, establecer el umbral de proximidad para evitar colisiones puede incluir reducir el umbral de proximidad a un primer valor desde un segundo valor que es más alto que el primer valor en respuesta a la determinación de que el vehículo robótico transporta una carga útil. En algunas realizaciones, establecer el umbral de proximidad para evitar colisiones puede incluir mantener el umbral de proximidad en un valor establecido actualmente.
En algunas realizaciones, determinar si el vehículo robótico transporta una carga útil puede incluir obtener datos de un sensor de carga útil configurado para detectar si el vehículo robótico transporta una carga útil, y analizar los datos obtenidos para determinar si transporta una carga útil el vehículo robótico. En dichas realizaciones, el sensor de carga útil puede ser al menos un sensor de contacto, un sensor de peso, un sensor de imagen o un lector de etiquetas de identificación por radiofrecuencia. En algunas realizaciones, el análisis de los datos obtenidos para determinar si el vehículo robótico transporta una carga útil puede incluir la comparación de los datos obtenidos con los datos recopilados previamente que indican que el vehículo robótico transporta una carga útil, determinando que el vehículo robótico transporta una carga útil vehículo robótico en respuesta a la determinación de que los datos obtenidos coinciden con los datos recopilados previamente que indican que el vehículo robótico transporta una carga útil, y determinar que el vehículo robótico no transporta una carga útil en respuesta a la determinación de que los datos obtenidos no coinciden con los recopilados previamente datos que indican que el vehículo robótico transporta una carga útil. En algunas realizaciones, analizar los datos obtenidos para determinar si el vehículo robótico transporta una carga útil puede incluir comparar los datos obtenidos con parámetros predeterminados que indican que el vehículo robótico transporta una o más cargas útiles, determinar que el vehículo robótico transporta una carga útil vehículo robótico en respuesta a la determinación de que los datos obtenidos coinciden con los parámetros predeterminados que indican que el vehículo robótico transporta una carga útil, y la determinación de que el vehículo robótico no transporta una carga útil en respuesta a la determinación de que los datos obtenidos no coinciden con los parámetros predeterminados parámetros que indican que el vehículo robótico transporta una carga útil. En algunas realizaciones, el análisis de los datos obtenidos para determinar si el vehículo robótico transporta una carga útil puede incluir determinar cuántas cargas útiles transporta el vehículo robótico.
Algunas realizaciones pueden incluir además la obtención de datos de uno o más motores que indiquen una velocidad de revolución de uno o más motores respectivos, y el análisis de los datos obtenidos para determinar si el vehículo robótico transporta una carga útil.
Algunas realizaciones pueden incluir además recibir una anulación de entrada que indica si el vehículo robótico transporta una carga útil, y determinar si el vehículo robótico transporta una carga útil puede basarse en la anulación de entrada recibida.
Algunas realizaciones pueden incluir además la determinación de una clasificación de la carga útil en respuesta a la determinación de que el vehículo robótico transporta una carga útil y el establecimiento del umbral de proximidad en función de la clasificación de la carga útil. En tales realizaciones, establecer el umbral de proximidad en base a la clasificación de la carga útil puede incluir cambiar el umbral de proximidad de un valor predeterminado a un valor ajustado correspondiente a la clasificación de la carga útil. En tales realizaciones, determinar una clasificación de la carga útil puede incluir determinar si la carga útil es una clase de carga útil sensible a la proximidad, y establecer el umbral de proximidad para evitar colisiones al valor en base a la clasificación de la carga útil puede incluir aumentar o disminuir el umbral de proximidad en respuesta a la clasificación de la carga útil que es la clase de carga útil sensible a la proximidad. En tales realizaciones, una clase de carga útil sensible a la proximidad puede incluir una o más de una cámara, rotores más grandes que un tramo predeterminado o equipo del vehículo robótico o carga más valiosa que una cantidad predeterminada. Algunas realizaciones pueden incluir además la determinación del umbral de proximidad correspondiente a la clasificación determinada de la carga útil accediendo a una estructura de datos en la memoria para el umbral de proximidad correlacionado con la clasificación de la carga útil.
Algunas realizaciones pueden incluir además la obtención de datos de objetos de un sensor de objetos configurado para detectar uno o más objetos en las proximidades del vehículo robótico, determinando si uno o más objetos en las proximidades del vehículo robótico suponen un obstáculo o un obstáculo potencial para el vehículo robótico y determinar una clasificación de un objeto que presenta un obstáculo o un obstáculo potencial para el vehículo robótico. En tales realizaciones, ajustar la configuración del umbral de proximidad para evitar colisiones puede basarse en un umbral de proximidad mayor determinado en base a la clasificación de la carga útil y un umbral de proximidad para la clasificación del objeto que representa un obstáculo u obstáculo potencial para el vehículo robótico.
Otras realizaciones incluyen un vehículo robótico que tiene un procesador configurado con instrucciones ejecutables por procesador para realizar operaciones de cualquiera de los procedimientos resumidos anteriormente. Realizaciones adicionales incluyen un dispositivo de procesamiento para usar en un vehículo robótico configurado para realizar operaciones de cualquiera de los procedimientos resumidos anteriormente. Realizaciones adicionales incluyen un vehículo robótico aéreo que tiene medios para realizar funciones de cualquiera de los procedimientos resumidos anteriormente. Realizaciones adicionales incluyen un medio legible por procesador no transitorio que tiene almacenadas en él instrucciones ejecutables por procesador configuradas para hacer que un procesador de un vehículo robótico realice operaciones de cualquiera de los procedimientos resumidos anteriormente.
Breve descripción de los dibujos
Los dibujos adjuntos que se incorporan en la presente memoria y constituyen parte de esta memoria descriptiva, ilustran las realizaciones ilustrativas de la invención y, junto con la descripción general dada anteriormente y la descripción detallada dada más abajo, sirven para explicar las características de la invención.
La Figura 1A es una vista en planta de un entorno en el que un vehículo robótico, que no transporta una carga útil, se desplaza a lo largo de una ruta a través de varios obstáculos de acuerdo con varias realizaciones.
La Figura 1B es una vista en planta del entorno de la Figura. 1A, en el que un vehículo robótico, que transporta una carga útil, recorre una ruta más indirecta alrededor de varios obstáculos de acuerdo con varias realizaciones. La Figura 1C es una vista en planta del entorno de las Figuras. 1A-1B, en el que un vehículo robótico, que no transporta una carga útil, realiza una planificación de ruta para viajar a lo largo de una ruta a través de varios obstáculos de acuerdo con varias realizaciones.
La Figura 1D es una vista en planta del entorno de las Figuras. 1A-1C, en el que un vehículo robótico, que transporta una carga útil, realiza una planificación de ruta para recorrer una ruta indirecta alrededor de varios obstáculos, de acuerdo con varias realizaciones.
La Figura 2 es un diagrama de bloques que ilustra los componentes de un vehículo robótico y una estación terrestre adecuada para su uso en varias realizaciones.
La Figura 3 es un diagrama de flujo de proceso que ilustra un procedimiento para operar un vehículo robótico, en respuesta a la determinación de si el vehículo robótico transporta una o más cargas útiles de acuerdo con algunas realizaciones.
La Figura 4 es un diagrama de flujo de proceso que ilustra un procedimiento para operar un vehículo robótico que incluye determinar una clasificación de una carga útil determinada para ser transportada por el vehículo robótico de acuerdo con algunas realizaciones.
La Figura 5 es un diagrama de flujo de proceso que ilustra un procedimiento para clasificar cargas útiles y asignar valores para umbrales de proximidad en base a la clasificación de cada carga útil de acuerdo con varias realizaciones.
La Figura 6 es un diagrama de flujo de proceso que ilustra un procedimiento para operar un vehículo robótico que incluye la planificación de la ruta para evitar cada obstáculo por al menos un perímetro de exclusión que depende de una clasificación del obstáculo de acuerdo con varias realizaciones.
La Figura 7 es un diagrama de flujo de proceso que ilustra un procedimiento para clasificar objetos y asignar distancias de perímetro de exclusión a los objetos en base a la clasificación de cada objeto de acuerdo con varias realizaciones.
Descripción detallada
Varias realizaciones se describirán en detalle con referencia a los dibujos adjuntos. Donde quiera que sea posible, los mismos números de referencia se usarán a lo largo de todos los dibujos para referirse a las mismas partes o a partes similares. Las referencias hechas a ejemplos e implementaciones particulares tienen fines ilustrativos y no pretenden limitar el ámbito de las reivindicaciones.
Varias realizaciones incluyen procedimientos y dispositivos de procesamiento de vehículos robóticos que implementan tales procedimientos para operar el vehículo robótico. En particular, diversas realizaciones determinan si el vehículo robótico transporta una o más cargas útiles a partir de los datos obtenidos por uno o más sensores y/o uno o más motores del vehículo robótico. El dispositivo de procesamiento establece una distancia de aproximación mínima (es decir, un umbral de proximidad) para evitar colisiones basándose en la determinación de si el vehículo robótico transporta una o más cargas útiles. Además, el dispositivo de procesamiento controla uno o más motores del vehículo robótico utilizando el umbral de proximidad establecido para evitar colisiones.
El umbral de proximidad utilizado por los sistemas convencionales para evitar obstáculos es generalmente una distancia fija. Sin embargo, esa distancia fija puede no ser apropiada para todas las circunstancias. Por ejemplo, cuando el vehículo robótico transporta una carga útil, puede ser apropiado un umbral de proximidad diferente, en comparación con cuando el vehículo robótico no transporta ninguna carga útil. El uso de un umbral de proximidad fijo demasiado grande puede inhibir dónde o cómo opera un vehículo robótico. Por ejemplo, en un entorno con muchos objetos, un umbral de proximidad fijo grande puede significar que el vehículo robótico solo puede operar dentro de un área pequeña o que no podrá llegar a otras áreas porque dos objetos están demasiado cerca uno del otro. Además, cuando el vehículo robótico no lleva carga útil, no hay riesgo de daño o pérdida de la carga útil, en cuyo caso un umbral de proximidad fijo grande puede limitar en exceso el movimiento del vehículo robótico.
El ajuste del umbral de proximidad utilizado en el sistema para evitar colisiones puede basarse en una clasificación de una o más cargas útiles reconocidas, lo que puede permitir que los vehículos robóticos operen con mayor alcance que una determinación binaria con respecto a si el vehículo robótico transporta una carga útil. Al establecer un umbral de proximidad en base a si el vehículo robótico transporta una carga útil, varias realizaciones pueden aumentar la seguridad de una o más cargas útiles y/o la maniobrabilidad (es decir, la libertad de movimiento). En algunas realizaciones, la clasificación puede ser si la(s) carga(s) útil(es) es(n) sensible(s) o valiosa(s). Por ejemplo, la carga útil puede ser una pieza valiosa del equipo a bordo, como una cámara, o una pieza de carga valiosa. En algunas realizaciones, la clasificación puede basarse en el tamaño de la carga útil, como equipo a bordo, como hélices, que pueden ser más grandes de lo normal o una carga que es más pequeña o más grande de lo normal. El umbral de proximidad asignado a una o más cargas útiles puede variar dependiendo del tipo o clasificación de las mismas, como asignar un umbral de proximidad mayor al umbral valioso que a los umbrales no valiosos o menos valiosos. Se puede utilizar un umbral de proximidad predeterminado para las cargas útiles para las que no se determina una clasificación. En algunas realizaciones, un procesador de un vehículo robótico puede determinar una clasificación para un objeto al que se está aproximando y ajustar aún más el umbral de proximidad utilizado por el sistema para evitar colisiones en función de la clasificación de ese objeto. En algunas realizaciones, el procesador del vehículo robótico puede clasificar todas las cargas útiles y/u objetos detectados, determinar un perímetro de exclusión para cada objeto en función de la clasificación y determinar una ruta de desvío para permanecer fuera del perímetro de exclusión de todos los objetos detectados.
Como se usa en la presente memoria, los términos "vehículo robótico" y "dron" se refieren a uno de varios tipos de vehículos que incluyen un dispositivo informático integrado configurado para proporcionar algunas capacidades autónomas o semiautónomas. Los ejemplos de vehículos robóticos incluyen, entre otros: vehículos robóticos, como un vehículo aéreo no tripulado (UAV); vehículos terrestres (por ejemplo, un automóvil autónomo o semiautónomo, un robot aspirador, etc.); vehículos acuáticos (es decir, vehículos configurados para operar en la superficie del agua o bajo el agua); vehículos basados en el espacio (por ejemplo, una nave espacial o una sonda espacial); y/o alguna combinación de los mismos. En algunas realizaciones, el vehículo robótico puede estar tripulado. En otras realizaciones, el vehículo robótico puede no estar tripulado. En realizaciones en las que el vehículo robótico es autónomo, el vehículo robótico puede incluir un dispositivo informático integrado configurado para maniobrar y/o navegar el vehículo robótico sin instrucciones de operación remotas (es decir, de forma autónoma), como por ejemplo de un operador humano (por ejemplo, a través de un dispositivo informático remoto). En las realizaciones en las que el vehículo robótico es semiautónomo, el vehículo robótico puede incluir un dispositivo informático integrado configurado para recibir información o instrucciones, como las de un operador humano (por ejemplo, a través de un dispositivo informático remoto), y maniobrar y/o o navegar el vehículo robótico de acuerdo con la información o las instrucciones recibidas. En algunas implementaciones, el vehículo robótico puede ser un vehículo aéreo (no tripulado o tripulado), que puede ser un helicóptero o un avión alado. Por ejemplo, un helicóptero (también denominado multirrotor o multicóptero) puede incluir una pluralidad de unidades de propulsión (por ejemplo, rotores/hélices) que proporcionan fuerzas de propulsión y/o elevación para el vehículo robótico. Ejemplos específicos no limitativos de helicópteros incluyen tricópteros (tres rotores), cuadricópteros (cuatro rotores), hexacópteros (seis rotores) y octocópteros (ocho rotores). Sin embargo, una aeronave de alas giratorias puede incluir cualquier número de rotores.
Tal como se usa en la presente memoria, el término "carga útil" se refiere a cualquier carga transportada por el vehículo robótico que puede retirarse o reposicionarse en el vehículo robótico. Las cargas útiles pueden incluir elementos transportados por el vehículo robótico, incluidos instrumentos (por ejemplo, cámaras, sensores, etc.), componentes y carga (por ejemplo, bienes o paquetes para la entrega). Las cargas útiles pueden incluir elementos temporales, como elementos, que transporta el vehículo robótico durante un tiempo limitado. Además, las cargas útiles pueden incluir elementos permanentes o a largo plazo necesarios para el funcionamiento del vehículo robótico. Las cargas útiles se pueden asegurar directamente al vehículo robótico, o indirectamente a través de un dispositivo de fijación de carga útil, un compartimento y/o un área del vehículo robóti
El término "obstáculo" se usa en la presente memoria para referirse a un objeto alrededor del cual debe maniobrar un vehículo robótico para evitar una colisión.
El término "umbral de proximidad" se usa en la presente memoria para referirse a una distancia mínima entre un objeto y un vehículo robótico que permitirá un sistema para evitar colisiones antes de controlar el vehículo robótico para detener o cambiar la dirección de viaje alejándose del objeto. De manera similar, el término "perímetro de exclusión" se usa en la presente memoria para referirse a una distancia alrededor de un objeto que un vehículo robótico debe evitar para garantizar que el vehículo robótico permanezca fuera del umbral de proximidad.
Como se usa en la presente memoria, el término "dispositivo informático" se refiere a un dispositivo electrónico equipado con al menos un procesador. Los ejemplos de dispositivos informáticos incluyen procesadores dentro de un dispositivo de seguridad, un vehículo robótico y/o un ordenador de gestión de misiones que están a bordo del vehículo robótico, así como dispositivos informáticos remotos que se comunican con el vehículo robótico configurado para realizar operaciones de las diversas realizaciones. Los dispositivos informáticos pueden incluir dispositivos de comunicación inalámbricos (por ejemplo, teléfonos móviles, dispositivos portátiles, teléfonos inteligentes, tabletas web, tabletas, teléfonos móviles habilitados para Internet, Wi-Fi® dispositivos electrónicos habilitados, asistentes de datos personales (PDA), ordenadores portátiles, etc.), ordenadores personales y servidores. En diversas realizaciones, los dispositivos informáticos pueden configurarse con memoria y/o almacenamiento. Además, los dispositivos informáticos a los que se hace referencia en varias realizaciones de ejemplo pueden acoplarse o incluir capacidades de comunicación inalámbrica que implementan varias realizaciones, como transceptores de red y antenas configuradas para establecer una conexión de red de área local (LAN) (por ejemplo, Wi -Fi® transceptores). Las Figuras 1A-1D ilustran vistas en planta de un entorno 10 en el que pueden viajar vehículos robóticos, evitando varios obstáculos en el mismo. En particular, el entorno 10 incluye varios árboles 31, 32, 33, 34 y un humano 40 paseando a un perro 50.
Las operaciones de un vehículo robótico 100 que usa un umbral de proximidad ajustable para evitar colisiones dentro del entorno 10 se ilustran en la Figura. 1A de acuerdo con algunas realizaciones. Un procesador del vehículo robótico puede determinar si el vehículo robótico transporta una o más cargas útiles basándose en los datos obtenidos de varios sensores. Esta determinación por parte del procesador puede ser parte de una configuración previa a la salida (es decir, antes de partir de un lugar a otro) y/o como parte de un análisis dinámico de navegación. Además, en respuesta a la determinación de que el vehículo robótico lleva una o más cargas útiles, el procesador puede determinar una clasificación de las cargas útiles que transporta el vehículo robótico. El procesador puede establecer un umbral de proximidad para evitar colisiones en un valor basado en la clasificación determinada de la carga útil.
El vehículo robótico 100, que es un vehículo robótico aéreo en el ejemplo ilustrado, no lleva ninguna carga útil o al menos no lleva ninguna "clase de carga útil sensible a la proximidad". Como se usa en la presente memoria, la expresión "clase de carga útil sensible a la proximidad" se refiere a uno o más tipos de carga útil que pueden exigir, requerir y/o beneficiarse del uso de un valor de umbral de proximidad diferente de un valor predeterminado del umbral de proximidad. Los ejemplos de clases de carga útil sensibles a la proximidad incluyen una cámara u otro equipo del vehículo robótico y/o la carga.
El umbral de proximidad implementado en un vehículo robótico puede depender de la naturaleza o propósito de la carga útil. Por ejemplo, un operador, propietario u otra entidad asociada con un vehículo robótico puede querer mantener una cámara u otra pieza de hardware valiosa lejos de personas u objetos que puedan manipular, comprometer y/o robar el hardware, en cuyo caso un Se puede usar un gran umbral de proximidad para garantizar que el vehículo robótico se mantenga alejado de personas y objetos. De manera similar, puede existir el deseo de mantener la carga valiosa alejada de personas u objetos, en cuyo caso se puede usar un umbral de proximidad amplio. En otro ejemplo, si un operador o propietario del vehículo robótico desea navegar cerca de objetos para obtener mejores imágenes con una cámara, se puede usar un pequeño umbral de proximidad para permitir que el vehículo robótico se acerque lo suficiente a los objetos para tal fotografía. Como otro ejemplo, para un vehículo robótico aéreo, la clase de carga útil sensible a la proximidad puede incluir rotores que son más grandes que un tamaño estándar o particular. Dichos rotores más grandes pueden ser más peligrosos para personas u objetos en las proximidades del vehículo robótico aéreo, por lo que se puede implementar un umbral de proximidad mayor en un vehículo robótico que utilice rotores más grandes que un tamaño estándar o particular.
Dado que el vehículo robótico 100 de la Figura. 1A no transporta una clase de carga útil sensible a la proximidad, el procesador puede establecer el umbral de proximidad en el valor predeterminado, correspondiente a una primera distancia D1 (por ejemplo, 10'). Desde la posición A, cuando el vehículo robótico 100 se acerca a los objetos (por ejemplo, los árboles 31 - 34, el ser humano 40 o el perro 50), el procesador puede procesar los datos recibidos de los sensores integrados (por ejemplo, una cámara, radar, lidar, etc.) para detectar objetos que rodean al vehículo robótico 100 y particularmente obstáculos a una primera ruta 60. Con el umbral de proximidad establecido en la primera distancia D1 (es decir, el valor predeterminado), el vehículo robótico 100 puede maniobrar o seguir los comandos de control del usuario para moverse (por ejemplo, volar) entre los objetos detectados, como a lo largo de la parte inicial de la primera ruta 60 entre los árboles 32, 33 y 34. El primer umbral de proximidad a una distancia D1 permite que el vehículo robótico 100 transite por una primera ruta 61 que estará libre de objetos detectados por los sensores a bordo. Una vez que el vehículo robótico 100 alcanza la posición B, cerca del humano 40 y el perro 50, el valor predeterminado del umbral de proximidad puede permitir que el vehículo robótico 100 progrese más entre el humano 40 y el árbol 32. Por tanto, el vehículo robótico 100 es capaz de recorrer una ruta algo directo a través de varios obstáculos cuando se utiliza el valor predeterminado del umbral de proximidad.
Por el contrario, cuando el vehículo robótico transporta una clase de carga útil sensible a la proximidad, se puede implementar un umbral de proximidad mayor, que puede limitar las rutas que se pueden seguir alrededor de los objetos. Las operaciones de un vehículo robótico 200, que transporta una clase de carga útil sensible a la proximidad, dentro del entorno 10 se ilustran en la Figura. IB de acuerdo con algunas realizaciones. Con referencia a La Figura 1A-1B, un procesador del vehículo robótico puede determinar si el vehículo robótico transporta una o más cargas útiles basándose en los datos obtenidos de los sensores. La determinación por parte del procesador puede ser parte de una configuración previa a la salida y/o como parte de un análisis dinámico de navegación. En respuesta a la determinación de que el vehículo robótico transporta una o más cargas útiles, el procesador puede determinar una clasificación de una carga útil transportada por el vehículo robótico. El procesador puede establecer un umbral de proximidad para evitar colisiones en un valor basado en la clasificación determinada de la carga útil.
El vehículo robótico 200 ilustrado en la Figura. 1B lleva una o más cargas útiles y al menos una de las una o más cargas útiles es una clase de carga útil sensible a la proximidad. Por lo tanto, dado que el vehículo robótico 200 transporta una clase de carga útil sensible a la proximidad, el procesador puede establecer el umbral de proximidad en una segunda distancia D2 (por ejemplo, veinte pies) que es un valor más alto que el valor predeterminado (es decir, la primera distancia D1). Durante los movimientos de navegación, el procesador del vehículo robótico 200 puede aplicar el umbral de proximidad ajustado para mantener al menos la segunda distancia D2 de cualquier obstáculo. Desde la posición A, con el umbral de proximidad establecido en la segunda distancia D2, el vehículo robótico 200 puede maniobrar o seguir los comandos de control del usuario para volar entre los objetos detectados, como a lo largo de la parte inicial de la segunda ruta 62 entre árboles 32, 33 y 34. La segunda distancia D2 del umbral de proximidad establece un segundo límite de ruta 63 que estará libre de objetos detectados por los sensores a bordo. Sin embargo, una vez que el vehículo robótico 100 alcanza la posición C, cerca del ser humano 40 y el perro 50, el sistema de prevención de colisiones que implementa el umbral de proximidad prohibirá el avance adicional en la dirección de esos objetos. En la posición C, dos de los árboles 32, 34 también impiden el movimiento lateral. Por lo tanto, el vehículo robótico 100 se ve obligado a retroceder y tomar una ruta más indirecta alrededor de los obstáculos.
La Figura 1C ilustra una realización adicional en la que se pueden usar uno o más umbrales de proximidad para varios objetos detectados por un procesador de un vehículo robótico, en combinación con la detección de carga útil, para planificar una ruta para evitar acercarse a cualquier objeto más cerca de un umbral de proximidad apropiado. Con referencia a las Figuras 1A-1C, un procesador del vehículo robótico 100 puede evaluar los objetos detectados (por ejemplo, los árboles 31 - 34, el ser humano 40 y el perro 50) y aplicar umbrales de proximidad apropiados a cada objeto. En el ejemplo ilustrado en la Figura 1C, el vehículo robótico 100 no transporta ninguna carga útil sensible a la proximidad. Por lo tanto, el procesador puede establecer el umbral de proximidad en un valor predeterminado. En algunas realizaciones, puede haber más de un valor predeterminado, cada uno configurado para diferentes tipos de objetos u obstáculos que puede encontrar el vehículo robótico. Por ejemplo, el procesador puede establecer el umbral de proximidad en un primer valor predeterminado asociado con objetos estáticos (es decir, que no se mueven) o un segundo valor predeterminado asociado con objetos dinámicos (es decir, que se mueven). El primer valor por defecto puede ser una primera distancia D11 y el segundo valor por defecto puede ser una segunda distancia D12.
El procesador puede determinar un límite que rodea a cada uno de los objetos observados 31 - 34, 40, 50 correspondiente al umbral de proximidad particular asociado con ese objeto tal como se implementa en el sistema para evitar colisiones. Debido a que los diversos objetos tienen diferentes umbrales de proximidad apropiados como se describe, el procesador puede tener en cuenta todos los umbrales de proximidad determinados para trazar una ruta 64 de evitación entre algunos de los objetos detectados. El procesador puede generar un mapa interno que le permita determinar la ruta de evitación 64 y garantizar que el vehículo robótico 100 no se acerque a ninguno de los objetos más cerca que su umbral de proximidad correspondiente.
Por el contrario, con el ejemplo ilustrado en la Figura 1C, con una clase de carga útil sensible a la proximidad transportada por el vehículo robótico, el procesador puede establecer un límite de exclusión mayor alrededor de los objetos en función de la clasificación particular de la carga útil y los tipos de objetos detectados. La Figura ID ilustra una realización adicional en la que se pueden usar uno o más umbrales de proximidad para varios objetos detectados por un procesador de un vehículo robótico, en combinación con la detección de carga útil, para planificar una ruta para evitar acercarse a cualquier objeto más cerca que un umbral de proximidad apropiado. Con referencia a las Figuras 1A-1D, el vehículo robótico 200 en el ejemplo ilustrado en la Figura. ID lleva una clase de carga útil sensible a la proximidad. Por lo tanto, el procesador puede establecer el umbral de proximidad en uno o más valores no predeterminados. De acuerdo con algunas realizaciones, puede haber más de un valor no predeterminado, cada uno configurado para diferentes tipos de objetos u obstáculos que puede encontrar el vehículo robótico. Por ejemplo, el procesador puede establecer el umbral de proximidad en un primer valor no predeterminado asociado con objetos estáticos (es decir, que no se mueven) o un segundo valor no predeterminado asociado con objetos dinámicos (es decir, que se mueven). El primer valor no predeterminado puede ser una tercera distancia D21 y el segundo valor no predeterminado puede ser una cuarta distancia D22. Los valores no predeterminados pueden ser mayores o menores que los valores predeterminados en función de la clasificación particular de la carga útil y el tipo de objeto detectado.
Mientras viaja a lo largo de una ruta inicial 65, el vehículo robótico 200 eventualmente detectará objetos en su ruta, como los árboles 31 - 34, el humano 40 y el perro 50. En algunas realizaciones, un procesador del vehículo robótico 200 puede evaluar los objetos detectados, como a través de procedimientos de procesamiento visual y reconocimiento de imágenes y/o procedimientos adicionales de ubicación de objetos, para determinar posiciones, tamaños u otras características (por ejemplo, si los objetos son estacionarios o en movimiento) de cada uno de los objetos 31 - 34, 40, 50.
Además, el procesador del vehículo robótico 200 puede determinar que el vehículo robótico transporta una o más cargas útiles sensibles a la proximidad en función de los datos obtenidos, y usar esa determinación para establecer uno o más umbrales de proximidad que se aplicarán alrededor de los objetos detectados. En algunas realizaciones, el procesador puede aplicar diferentes valores a los umbrales de proximidad para diferentes tipos de objetos, como un primer umbral de proximidad para objetos estáticos y un segundo umbral de proximidad para objetos en movimiento (es decir, dinámicos). Por ejemplo, el procesador puede usar un umbral de proximidad para objetos estacionarios, como los árboles 31 - 34, y un umbral de proximidad mayor diferente para las criaturas en movimiento, el ser humano 40 y el perro 50. Dado que el vehículo robótico 200 transporta una o más cargas útiles, el procesador puede establecer umbrales de proximidad que tengan un valor más alto que los utilizados cuando el vehículo robótico no transporta cargas útiles. Por lo tanto, el procesador puede establecer un umbral de proximidad de objetos estáticos a una tercera distancia D21 y un umbral de proximidad de objetos dinámicos a una cuarta distancia D22, tanto la primera como la segunda distancia D21, siendo D22 un valor más alto que los utilizados si no se transportaron cargas útiles por el vehículo robótico.
El procesador puede entonces determinar un límite que rodea a cada uno de los objetos observados 31 - 34, 40, 50 correspondiente al umbral de proximidad particular asociado con ese objeto tal como se implementa en el sistema para evitar colisiones. Debido a que los diversos objetos tienen diferentes umbrales de proximidad apropiados como se describe, el procesador puede tener en cuenta todos los umbrales de proximidad determinados para trazar una ruta 66 de evitación alrededor de todos los objetos detectados. Para hacerlo de manera eficiente, el procesador puede generar un mapa interno que incluye ubicaciones de cada uno de los objetos detectados y calcula un perímetro de exclusión alrededor de cada objeto en función del umbral de proximidad apropiado para ese objeto. Tal mapa interno puede permitir que el procesador determine la ruta de evitación 66 sin tener que retroceder y garantizar que el vehículo robótico 200 no se acerque a ninguno de los objetos más cerca que su umbral de proximidad correspondiente.
Se pueden implementar varias realizaciones dentro de una variedad de vehículos robóticos configurados para comunicarse con una o más redes de comunicación, un ejemplo del cual en forma de un vehículo robótico 200 adecuado para uso con diversas realizaciones se ilustra en la Figura. 2. Con referencia a las Figuras 1A-2, el vehículo robótico 200, que opera en un entorno de misión 20, puede incluir una pluralidad de rotores 120 (por ejemplo, cuatro rotores), cada uno accionado por un motor 125 correspondiente. Un cuerpo 110 del vehículo robótico 200 puede soportar la pluralidad de rotores 120 y motores 125.
El vehículo robótico 200 puede incluir uno o más sensores a bordo, como una o más cámaras 236 u otros sensores como sensores de contacto, sensores de peso o un lector de identificación por radiofrecuencia. El vehículo robótico 200 puede incluir un dispositivo de procesamiento 210, que además puede incluir uno o más sensores de actitud, como un altímetro, un giroscopio, acelerómetros, una brújula electrónica, un receptor del sistema de posicionamiento por satélite, etc., que pueden ser utilizados por el procesador 220 para determinar la actitud del vehículo y la información de ubicación para controlar el movimiento y la navegación.
Las cámaras 236 pueden estar dispuestas en varias ubicaciones en el vehículo robótico 200 y pueden usarse diferentes tipos de cámara. Por ejemplo, un primer conjunto de cámaras 236 puede estar frente a un lado de cada uno de los rotores 120 en el plano de rotación del mismo, como si estuvieran montadas cerca de una parte central del vehículo robótico 200. Además, o como alternativa, se puede montar un segundo conjunto de cámaras 236 debajo de los rotores 120, como en una posición configurada para detectar si la carga, los rotores 120, los protectores de hélice 250 u otro equipo están instalados en el vehículo robótico 200. El vehículo robótico 200 también puede incluir otros tipos de sensores, incluidos sensores de detección y alcance, como radar, sonar, lidar y similares.
Los datos de imagen generados por las cámaras 236, así como los datos de uno o más tipos de sensores (por ejemplo, radar, sonar, lidar, etc.), pueden ser utilizados por un sistema de evitación de objetos que se ejecuta en el procesador 220. En varias realizaciones, la imagen y otros datos del sensor recibidos de las cámaras 236 pueden ser procesados por un sistema de evitación de objetos para detectar si el vehículo robótico 200 transporta ciertas cargas útiles. Los datos de imagen recibidos de las cámaras 236 también pueden ser procesados por un sistema de evitación de objetos para determinar una clasificación de la carga útil determinada para ser transportada por el vehículo robótico 200. En algunas realizaciones, los sensores activos (no mostrados) ubicados en una bodega de carga o punto de conexión, pero aún en el vehículo robótico, pueden permitir que el procesador detecte la presencia de una carga útil midiendo ciertos materiales incrustados en o sobre la carga útil.
El vehículo robótico 200 puede incluir un dispositivo de procesamiento 210 que puede acoplarse a cada uno de la pluralidad de motores 125 que accionan los rotores 120. El dispositivo de procesamiento 210 puede configurarse para monitorear y controlar las diversas funcionalidades, subsistemas y componentes del vehículo robótico 200. Por ejemplo, el dispositivo de procesamiento 210 puede configurarse para monitorear y controlar varios módulos, software, instrucciones, circuitos, hardware, etc. relacionados con la propulsión, navegación, administración de energía, administración de sensores y/o administración de estabilidad.
El dispositivo de procesamiento 210 puede albergar varios circuitos y dispositivos utilizados para controlar el funcionamiento del vehículo robótico 200. Por ejemplo, el dispositivo de procesamiento 210 puede incluir un procesador 220 que dirige el control del vehículo robótico 200. El procesador 220 puede incluir uno o más procesadores configurados para ejecutar instrucciones ejecutables por el procesador (por ejemplo, aplicaciones, rutinas, guiones, conjuntos de instrucciones, etc.) para controlar el movimiento, el uso de la antena y otras operaciones del vehículo robótico 200, incluidas las operaciones de varias realizaciones. En algunas realizaciones, el dispositivo de procesamiento 210 puede incluir una memoria 222 acoplada al procesador 220 y configurada para almacenar datos (por ejemplo, planes de navegación, datos de sensores obtenidos, mensajes/entradas recibidos, aplicaciones, etc.). El procesador 220 y la memoria 222 pueden configurarse o incluirse dentro de un sistema en chip (SoC) 215 junto con elementos adicionales tales como (entre otros) una interfaz de comunicación 224, una o más unidades de entrada 226, almacenamiento no volátil memoria 230, y una interfaz de hardware 234 configurada para interconectar el SoC 215 con hardware y componentes del vehículo robótico 200. Los componentes dentro del dispositivo de procesamiento 210 y/o el SoC 215 pueden acoplarse entre sí mediante varios circuitos, como un bus 225, 235 u otro circuito similar.
El dispositivo de procesamiento 210 puede incluir más de un SoC 215 aumentando así el número de procesadores 220 y núcleos de procesador. El dispositivo de procesamiento 210 también puede incluir procesadores 220 que no están asociados con el SoC 215. Los procesadores individuales 220 pueden ser procesadores multinúcleo. Cada uno de los procesadores 220 puede configurarse para propósitos específicos que pueden ser iguales o diferentes de otros procesadores 220 del dispositivo de procesamiento 210 o SoC 215. Uno o más de los procesadores 220 y los núcleos de procesador de configuraciones iguales o diferentes pueden agruparse. Un grupo de procesadores 220 o núcleos de procesador puede denominarse grupo de multiprocesadores.
Los términos "sistema en chip" o "SoC" se utilizan aquí para referirse a un conjunto de circuitos electrónicos interconectados que normalmente, pero no exclusivamente, incluyen uno o más procesadores (por ejemplo, 220), una memoria (por ejemplo, 222), y una interfaz de comunicación (por ejemplo, 224). El SoC 215 puede incluir una variedad de diferentes tipos de procesadores 220 y núcleos de procesador, como un procesador de propósito general, una unidad de procesamiento central (CPU), un procesador de señal digital (DSP), una unidad de procesamiento de gráficos (GPU), un procesador acelerado unidad de procesamiento (APU), un procesador de subsistema de componentes específicos del dispositivo de procesamiento, como un procesador de imagen para un subsistema de cámara o un procesador de pantalla para una pantalla, un procesador auxiliar, un procesador de un solo núcleo y un procesador de varios núcleos. El SoC 215 puede incorporar además otro hardware y combinaciones de hardware, como una matriz de compuertas programables en campo (FPGA), un circuito integrado de aplicación específica (ASIC), otro dispositivo lógico programable, lógica de compuerta discreta, lógica de transistores, hardware de monitoreo de rendimiento, vigilancia hardware y referencias de tiempo. Los circuitos integrados pueden configurarse de modo que los componentes del circuito integrado residan en una sola pieza de material semiconductor, como el silicio.
En varias realizaciones, el dispositivo de procesamiento 210 puede incluir o estar acoplado a uno o más componentes de comunicación 232, como un transceptor inalámbrico, una antena integrada y/o similares para transmitir y recibir señales inalámbricas a través del enlace de comunicación inalámbrica 25. El uno o más componentes de comunicación 232 pueden acoplarse a la interfaz de comunicación 224 y pueden configurarse para manejar señales de comunicación de red de área amplia inalámbrica (WWAN) (por ejemplo, redes de datos celulares) y/o señales de comunicación de red de área local inalámbrica (WLAN) (por ejemplo, señales de Wi-Fi, señales de Bluetooth, etc.) asociadas con transmisores/receptores terrestres (por ejemplo, estaciones base, balizas, puntos de acceso Wi-Fi, balizas de Bluetooth, celdas pequeñas (picoceldas, femtoceldas, etc.), etc.). El uno o más componentes de comunicación 232 pueden recibir datos de nodos de radio, como balizas de navegación (por ejemplo, balizas de alcance omnidireccional (VOR) de muy alta frecuencia (VHF), puntos de acceso Wi-Fi, estaciones base de red celular, estaciones de radio, etc.
El dispositivo de procesamiento 210, que usa el procesador 220, uno o más componentes de comunicación 232 y una antena, puede configurarse para realizar comunicaciones inalámbricas con una variedad de dispositivos informáticos remotos, ejemplos de los cuales incluyen la estación base o la torre celular (por ejemplo, la base estación 70), una baliza, un servidor, un teléfono inteligente, una tableta u otro dispositivo informático con el que el vehículo robótico 200 pueda comunicarse. El procesador 220 puede establecer el enlace de comunicación inalámbrica 25 a través de un módem y la antena. En algunas realizaciones, el uno o más componentes de comunicación 232 pueden configurarse para admitir múltiples conexiones con diferentes dispositivos informáticos remotos que utilizan diferentes tecnologías de acceso por radio. En algunas realizaciones, uno o más componentes de comunicación 232 y el procesador 220 pueden comunicarse a través de un enlace de comunicación seguro. Los enlaces de comunicación de seguridad pueden usar encriptación u otro medio seguro de comunicación para asegurar la comunicación entre uno o más componentes de comunicación 232 y el procesador 220.
El vehículo robótico 200 puede operar en el entorno de misión 20 comunicándose con una estación base 70, que puede proporcionar un enlace de comunicación a un dispositivo informático remoto 75 y/o un servidor remoto 80 a través de una red de comunicación 90. La estación base 70 puede proporcionar el enlace de comunicación inalámbrica 25, por ejemplo, a través de señales inalámbricas al vehículo robótico 200. El dispositivo informático remoto 75 puede configurarse para controlar la estación base 70, el vehículo robótico 200 y/o controlar las comunicaciones inalámbricas a través de una red de área amplia, como proporcionar puntos de acceso inalámbrico y/u otro punto de acceso a la red similar utilizando la estación base 70. Además, el dispositivo informático remoto 75 y/o la red de comunicación 90 pueden proporcionar acceso a un servidor remoto 80. El vehículo robótico 200 puede configurarse para comunicarse con el dispositivo informático remoto 75 y/o el servidor remoto 80 para intercambiar varios tipos de comunicaciones y datos, incluida información de ubicación, comandos de navegación, consultas de datos y datos de misión.
Los vehículos robóticos pueden navegar o determinar el posicionamiento utilizando altímetros o sistemas de navegación, como el Sistema de navegación global por satélite (GNSS), el Sistema de posicionamiento global (GPS), etc. En algunas realizaciones, el vehículo robótico 200 puede utilizar una fuente alternativa de señales de posicionamiento (es decir, distinta de GNSS, GPS, etc.). El vehículo robótico 200 puede usar información de posición asociada con la fuente de las señales alternativas junto con información adicional (por ejemplo, navegación a estima en combinación con la última ubicación GNSS/GPS confiable, navegación a estima en combinación con una posición de la zona de despegue del vehículo robótico, etc.) para posicionamiento y navegación en algunas aplicaciones. Por lo tanto, el vehículo robótico 200 puede navegar usando una combinación de técnicas de navegación, incluyendo navegación a estima, reconocimiento basado en cámaras de las características terrestres debajo y alrededor del vehículo robótico 200 (por ejemplo, reconocimiento de una carretera, puntos de referencia, señalización de carreteras, etc.), etc. que se pueden usar en lugar de o en combinación con la determinación de la ubicación GNSS/GPS y la triangulación o trilateración en función de las ubicaciones conocidas de los puntos de acceso inalámbricos detectados.
En algunas realizaciones, el dispositivo de procesamiento 210 del vehículo robótico 200 puede usar una o más de varias unidades de entrada 226 para recibir instrucciones de control, datos de operadores humanos o controles automatizados/preprogramados, y/o para recopilar datos que indiquen diversas condiciones relevantes al vehículo robótico 200. Por ejemplo, las unidades de entrada 226 pueden recibir entrada de uno o más de varios componentes, como cámara(s) u otros sensores de imágenes, sensores de detección y alcance (por ejemplo, radar, sonar, lidar, etc.), micrófono(s), funcionalidades de información de posición (por ejemplo, un receptor del sistema de posicionamiento global (GPS) para recibir coordenadas GPS), instrumentos de navegación (por ejemplo, indicador(es) de actitud, giroscopio(s), anemómetro, acelerómetro(s), altímetro(s), brújula(s), etc.), teclado(s), etc. La(s) cámara(s) puede(n) optimizarse para el funcionamiento diurno y/o nocturno.
Los vehículos robóticos aéreos pueden ser variedades de aeronaves aladas o de rotor. Por ejemplo, el vehículo robótico 200 puede tener un diseño de propulsión rotatoria que utiliza uno o más rotores 120 accionados por motores correspondientes para proporcionar despegue (o despegue) así como otros movimientos aéreos (por ejemplo, avance, ascenso, descenso), movimientos laterales, basculantes, giratorios, etc.). El vehículo robótico 200 se ilustra como un ejemplo de un vehículo robótico aéreo que puede utilizar varias realizaciones, pero no pretende implicar ni exigir que varias realizaciones se limiten a un avión de cuatro rotores.
El procesador 220 del vehículo robótico 200 puede realizar operaciones de monitoreo (por ejemplo, recopilación y procesamiento de datos) antes, durante y/o después del movimiento, por ejemplo, accediendo a lecturas de sensores integrados para determinar si una o más cargas útiles son transportadas por el vehículo robótico. En particular, el procesador puede recibir y analizar imágenes (es decir, video o imágenes fijas) de una o más cámaras (por ejemplo, cámaras 236). Las imágenes recibidas por el procesador pueden mostrar la totalidad o parte de una o más regiones del vehículo robótico en el que se pueden transportar cargas útiles. Por ejemplo, se puede disponer una cámara para proporcionar imágenes de las áreas donde se puede montar el equipo y/o donde se puede asegurar la carga útil.
En algunas realizaciones, el procesador puede determinar si una carga útil está presente a través de procedimientos de procesamiento visual y reconocimiento de imágenes. Por ejemplo, las imágenes recibidas por el procesador de un área de carga pueden compararse con imágenes previamente almacenadas de esa área de carga vacía y/o con carga. Además, las estructuras detectadas de la carga útil pueden analizarse para determinar una clasificación de cualquier carga útil determinada para ser transportada por el vehículo robótico. Además, se pueden usar otros sensores, como un sensor de contacto, un sensor de peso y/o un lector de identificación por radiofrecuencia (RFID) para detectar si hay una carga útil presente y, si se detecta, una clasificación de la carga útil detectada. En algunas realizaciones, el procesador puede configurarse para determinar que una carga útil está presente cuando se detecta cualquier estructura en un espacio vacío. En otras realizaciones, el procesador puede configurarse para determinar únicamente que una carga útil está presente cuando se identifica que está presente una carga útil específica o un tipo de carga útil.
En algunas realizaciones, el procesador puede determinar identidades específicas de cargas útiles detectadas o clasificaciones de cargas útiles, como el reconocimiento de estructuras particulares (por ejemplo, mediante el reconocimiento de formas) o la lectura de etiquetas/marcas en una estructura (por ejemplo, un código de barras) para las cuales el procesador pueden ser entrenados (por ejemplo, a través de una rutina de entrenamiento inicial) y para los cuales pueden especificarse valores de umbral de proximidad particulares (por ejemplo, asignados por el usuario). Cuanto más específica sea la clasificación, el procesador podrá asignar más umbrales de proximidad diferentes a varios objetos. Como parte de la clasificación de cargas útiles, el procesador puede determinar que algunas estructuras no se pueden clasificar, en cuyo caso la clasificación determinada puede ser desconocida o una clasificación predeterminada. En algunas realizaciones, las operaciones de clasificación de cargas útiles pueden realizarse para todas las estructuras detectadas transportadas por el vehículo robótico. En algunas realizaciones, una vez que se detecta una clase de carga útil asociada con un valor máximo de umbral de proximidad, el procesador puede dejar de clasificar las cargas útiles hasta que se elimine la estructura detectada.
La Figura 3 ilustra un procedimiento 300 para operar un vehículo robótico según algunas realizaciones. Con referencia a las Figuras 1A-3, el procedimiento 300 puede ser realizado por un procesador, como un procesador (220) dentro de un dispositivo de procesamiento (por ejemplo, 210) de un vehículo robótico (por ejemplo, 100, 200) para detectar si una o más cargas útiles (por ejemplo, cámaras 236) es transportado por el vehículo robótico y establece un umbral de proximidad en consecuencia en respuesta a ello.
En el bloque 305, el procesador puede iniciar una prueba para establecer el umbral de proximidad. La prueba para establecer el umbral de proximidad puede iniciarse en el arranque (es decir, cuando el procesador se enciende o se despierta del modo de suspensión). Además, la prueba para establecer el umbral de proximidad puede iniciarse cuando cambian las condiciones. Por ejemplo, al recibir el procesador una entrada de un sensor, como un sensor de contacto, la prueba para establecer el umbral de proximidad puede iniciarse automáticamente. Como otro ejemplo, en respuesta a un evento, como un choque o un fuerte impacto en el vehículo robótico, el procesador puede forzar el inicio de la prueba para establecer el umbral de proximidad. Además, el vehículo robótico puede configurarse para recibir una anulación de entrada de un operador o sistema de control que indique que hay o no está presente una carga útil, o particularmente que está o no está presente una carga útil sensible a la proximidad. La anulación de entrada puede reemplazar cualquier determinación con respecto a si el vehículo robótico transporta una carga útil en función de los datos del sensor.
En algunas realizaciones, el procesador puede repetir las operaciones del procedimiento 300 para detectar y responder a las cargas útiles detectadas como transportadas o extraídas del vehículo robótico. Por ejemplo, el procesador puede repetir las operaciones del procedimiento 300 continuamente o hasta que se identifiquen todas las cargas útiles detectadas para garantizar un funcionamiento seguro y adecuado del vehículo robótico. Como otro ejemplo, el procesador puede repetir las operaciones del procedimiento 300 para un número predefinido de iteraciones indicadas en las instrucciones de prueba previas a la salida proporcionadas al vehículo robótico antes del lanzamiento (por ejemplo, antes del despegue). Posteriormente, el procesador puede opcionalmente repetir las operaciones del procedimiento 300 a intervalos regulares en ruta hacia un destino o en otros momentos establecidos para hacerlo.
En el bloque 310, el procesador puede obtener datos de uno o más sensores que están configurados para detectar la presencia de una o más cargas útiles. Además, o como alternativa, como parte de las operaciones en el bloque 310, el procesador puede obtener datos de velocidad de rotación de la hélice de uno o más controladores electrónicos de velocidad (ESC) que accionan un motor que indica una tasa de revoluciones (por ejemplo, revoluciones por minuto (RPM)) y/ o uno o más motores del vehículo robótico que pueden analizarse para determinar si el vehículo robótico transporta una o más cargas útiles. Dichos datos obtenidos pueden almacenarse en la memoria local, como un búfer, para admitir el procesamiento de imágenes en operaciones posteriores. Los datos obtenidos pueden almacenarse para rastrear el historial de uso o datos de incidentes (por ejemplo, una circunstancia inusual detectada). Además, los datos almacenados pueden usarse para una comparación posterior con el análisis de imágenes para reconocer las mismas cargas útiles, si se retiran y luego se reinstalan en el vehículo robótico.
Las cámaras (por ejemplo, 236) pueden usarse exclusivamente o en combinación con otros sensores. Se pueden montar una o más cámaras en áreas de espera de carga u otras áreas donde se pueden montar o asegurar las cargas útiles. Las imágenes de la cámara pueden analizarse para detectar una carga útil o la eliminación de la misma. El procesador puede recibir imágenes de una o más cámaras (por ejemplo, 236) que generan imágenes de estructuras que pueden identificarse potencialmente como una carga útil y, por lo tanto, generarán imágenes de cargas útiles, si están en su lugar. En algunas implementaciones, el procesador puede recibir datos de imagen de varias cámaras, lo que puede permitir que el procesador evalúe mejor las estructuras transportadas por el vehículo robótico para determinar si dichas estructuras son una carga útil y, si tales estructuras son una carga útil, qué clase de carga útil.
El procesador puede recibir adicional o alternativamente datos de otros tipos de sensores, como sensores de contacto y/o sensores de peso que se activan cuando se instalan o cargan cargas útiles en el vehículo robótico. El material conductor puede estar incrustado en o sobre una carga útil, que cuando entra en contacto con un material conductor receptor del vehículo robótico puede indicar que el vehículo robótico transporta una carga útil y, opcionalmente, qué clase de carga útil transporta. De manera similar, una parte del vehículo robótico (por ejemplo, donde se monta o transporta la carga útil) puede incluir medidores de tensión que están configurados para detectar cuando hay una carga útil presente. Además, los sensores resistivos o capacitivos se pueden conectar o integrar en las cargas útiles. Además, o alternativamente, los sensores activos montados en un cuerpo del vehículo robótico, pero alejados de la carga útil, pueden medir material pasivo incrustado en una o más cargas útiles. Por ejemplo, el procesador puede recibir datos de un lector de RFID configurado para detectar la presencia de un transmisor de RFID que puede estar incluido o incrustado en una carga útil para que el procesador lo detecte.
En algunas realizaciones en las que el procesador adicional o alternativamente recibe datos de uno o más motores del vehículo robótico aéreo que indican una tasa de revolución (por ejemplo, RPM) de los respectivos uno o más rotores, el procesador puede usar la tasa de revolución del uno o más motores para determinar si el vehículo robótico transporta una carga útil. La tasa de revolución de un motor puede estar directamente relacionada con el empuje producido por una hélice asociada con ese motor. Cuando el vehículo robótico transporta una carga útil, el vehículo robótico pesará más. Tal peso adicional puede requerir que los motores giren más rápido para mantener una velocidad constante, nivelar el vuelo o realizar maniobras. Este peso adicional puede deducirse de la velocidad de revolución de los motores, que puede estar asociado con la instalación de algo adicional en el vehículo robótico, como una o más cargas útiles.
En el bloque 320, el procesador (u otro procesador configurado para realizar dicho análisis) puede analizar los datos del sensor obtenidos para determinar si el vehículo robótico transporta una o más cargas útiles. Por ejemplo, utilizando los datos de imagen de la cámara, el procesador puede realizar un análisis de procesamiento de imágenes para detectar bordes, masas y otras características distintivas de una o más cargas útiles dentro del campo de visión. Como otro ejemplo, el procesador puede reconocer señales de sensor de contacto y/o peso, así como señales de un lector RFID si se incluye, que indican que el vehículo robótico transporta una o más cargas útiles.
Como alternativa o adicionalmente, el procesador puede configurarse para obtener datos de uno o más motores o un controlador electrónico de velocidad (ESC) que impulsa un motor que indica una tasa de revoluciones (por ejemplo, RPM), que puede analizarse para determinar si una o más cargas útiles es transportado por el vehículo robótico. Dado que una carga útil agregará peso a un vehículo robótico, el análisis de los datos de r Pm de la hélice puede implicar comparar las RPM actuales con una tabla de datos que almacene un rango de RPM requerido para moverse, flotar o maniobrar con una o más cargas transportadas por el vehículo robótico.
Además, el centro de gravedad del vehículo robótico puede cambiar si el vehículo robótico transporta una o más cargas útiles, lo que puede detectarse comparando la velocidad de revolución de los diversos rotores. Las velocidades de revolución de uno o más rotores pueden ser ligeramente superiores cuando el centro geométrico del vehículo robótico no coincide con el centro de gravedad del vehículo. Además, durante el movimiento del vehículo robótico, el procesador puede considerar los datos de velocidad angular junto con los datos de velocidad de revolución del rotor para calcular un momento de inercia del vehículo robótico. Si el momento de inercia calculado es diferente de una línea base o predeterminada, esto puede ser una indicación de que se ha eliminado la masa adicional consistente con una o más cargas útiles transportadas por el vehículo robótico.
En algunas realizaciones, el análisis con respecto a si el vehículo robótico transporta una o más cargas útiles puede basarse únicamente en la detección de la presencia de una o más cargas útiles (por ejemplo, recibir una indicación de que una o más cargas útiles están instaladas desde un sensor de contacto). En algunas realizaciones, la determinación con respecto a si el vehículo robótico transporta una o más cargas útiles puede implicar un análisis adicional con respecto a las características de las estructuras transportadas por el vehículo robótico para determinar si tales estructuras son una o más cargas útiles.
En el bloque de determinación 325, el procesador puede determinar si el vehículo robótico transporta una o más cargas útiles basándose en los datos analizados en el bloque 320.
En respuesta a la determinación de que el vehículo robótico transporta una o más cargas útiles (es decir, el bloque de determinación 325 = "Sí"), el procesador puede establecer el umbral de proximidad en un valor más alto en el bloque 330. El umbral de proximidad de mayor valor puede ser una distancia que se considere segura o no amenazante para una o más cargas útiles transportadas por el vehículo robótico. Por el contrario, se puede usar un umbral de proximidad de valor más bajo cuando el vehículo robótico no transporta ninguna carga útil.
En respuesta a la determinación de que el vehículo robótico no transporta una o más cargas útiles (es decir, el bloque de determinación 325 = "No"), el procesador puede establecer el umbral de proximidad al valor más bajo en el bloque 340.
Establecer el umbral de proximidad en los bloques 330 y/o 340 puede implicar o no cambiar el valor del umbral de proximidad actual, dependiendo de la configuración del umbral de proximidad actual y la configuración del umbral de proximidad apropiado en función de la determinación de si se transportan una o más cargas útiles por el vehículo robótico. Por ejemplo, establecer el umbral de proximidad para evitar colisiones puede incluir elevar el umbral de proximidad de un primer valor a un segundo valor que es más alto que el primer valor en respuesta a la determinación de que el vehículo robótico transporta una o más cargas útiles. Como otro ejemplo, establecer el umbral de proximidad para evitar colisiones puede incluir reducir el umbral de proximidad al primer valor desde el segundo valor en respuesta a la determinación de que el vehículo robótico no transporta una o más cargas útiles. Establecer el umbral de proximidad para evitar colisiones también puede incluir mantener el umbral de proximidad en un valor establecido actualmente. Por ejemplo, establecer el umbral de proximidad para evitar colisiones puede incluir dejar el umbral de proximidad en el primer valor, que es más bajo que el segundo valor, en respuesta a la determinación de que el vehículo robótico no transporta cargas útiles y el valor establecido actualmente de la el umbral de proximidad es el primer valor. Como otro ejemplo, establecer el umbral de proximidad para evitar colisiones puede incluir dejar el umbral de proximidad en el segundo valor, que es más alto que el primer valor, en respuesta a la determinación de que el vehículo robótico transporta una o más cargas útiles y el vehículo robótico actualmente el valor establecido del umbral de proximidad es el segundo valor.
En el bloque 350, el procesador puede controlar uno o más motores del vehículo robótico para gobernar cómo navega el vehículo robótico usando el umbral de proximidad actualmente establecido. Por ejemplo, el procesador puede enviar señales para controlar uno o más de los motores (por ejemplo, 125) del vehículo robótico (por ejemplo, 100, 200) para la navegación. El procesador puede controlar uno o más motores para evitar obstáculos mientras mantiene una distancia de los obstáculos, cerca de una ruta de navegación del vehículo robótico, según el umbral de proximidad (es decir, establecido en los bloques 340 o 345). En algunas realizaciones, el vehículo robótico puede continuar funcionando normalmente ejecutando comandos de usuario y/o un plan de navegación precargado que se basa en el sistema de prevención de colisiones para evitar acercarse a cualquier objeto más cerca que la configuración actual del umbral de proximidad. En algunas realizaciones, el procesador puede modificar el control del vehículo robótico, como para ajustar o modificar un plan de navegación precargado para garantizar que el vehículo robótico no se acerque a un obstáculo detectado más cerca que la configuración actual del umbral de proximidad.
La Figura 4 ilustra un procedimiento 400 para operar un vehículo robótico de acuerdo con algunas realizaciones. Con referencia a las Figuras 1-4, el procedimiento 400 puede ser realizado por un procesador, como un procesador (por ejemplo, 220) dentro de un dispositivo de procesamiento (por ejemplo, 210) de un vehículo robótico (por ejemplo, 100, 200) para detectar si una o más cargas útiles (por ejemplo, las cámaras 236) son transportadas por el vehículo robótico y establecen un umbral de proximidad en consecuencia en respuesta a ello. En el procedimiento 400, el procesador puede realizar operaciones de los bloques 305, 310 y 350 del procedimiento 300 como se describe.
En el bloque 420, el procesador (u otro procesador configurado para realizar dicho análisis) puede analizar los datos obtenidos para reconocer y clasificar las cargas útiles de detección transportadas por el vehículo robótico. En algunas realizaciones, el procesador puede usar procedimientos de reconocimiento de imágenes para distinguir objetos dentro de imágenes y analizar las formas de los objetos para reconocer o clasificar los objetos. Por ejemplo, el procesador puede comparar datos de imagen con modelos de reconocimiento de objetos para determinar si los objetos pueden reconocerse como objetos particulares (por ejemplo, el usuario en función del reconocimiento facial) o clasificarse como ciertos tipos de objetos (por ejemplo, resistentes, frágiles, caros, desconocidos), etc.). Como otro ejemplo, utilizando los datos de imagen de la cámara, el procesador puede realizar un análisis de procesamiento de imágenes para detectar bordes, masas y otras características distintivas de las cargas útiles dentro del campo de visión de la cámara. Como otro ejemplo, el procesador puede detectar cargas útiles en un área de espera del vehículo robótico en función de los retornos de radar y/o lidar.
Como operación adicional en el bloque 420, el procesador puede analizar las cargas útiles detectadas para determinar una clasificación apropiada para la(s) carga(s) útil(es). Por ejemplo, el procesador puede realizar algoritmos de reconocimiento de imágenes en datos de imágenes para determinar si una estructura se reconoce como un tipo particular de carga útil. Dichos procesos de reconocimiento de imágenes pueden comparar imágenes de una carga útil particular con bases de datos de cargas útiles clasificadas o clasificables para determinar si existe la posibilidad de una coincidencia. Dichos procesos de reconocimiento de imágenes pueden usar el aprendizaje automático para desarrollar modelos para usar en la asignación de clasificaciones a las cargas útiles.
En algunas realizaciones, el procesador puede categorizar las cargas útiles en términos de algunas clasificaciones amplias en el bloque 420, como si las cargas útiles son sensibles a la proximidad, o si se sabe que el tipo de carga útil es frágil o no, etc. En algunas realizaciones, el procesador puede determinar categorías específicas de cargas útiles en el bloque 420, como reconocer y clasificar las cargas útiles como valiosas, frágiles, etc. En algunas realizaciones, el procesador puede determinar identidades específicas de cargas útiles en el bloque 420, como reconocer un tipo particular de equipo (por ejemplo, una cámara) o carga (por ejemplo, mercancía costosa) para el cual el procesador puede estar capacitado (por ejemplo, a través de una rutina de entrenamiento inicial) y para los cuales se pueden especificar valores de umbral de proximidad particulares (por ejemplo, asignados por el usuario). Cuanto más específica sea la clasificación hecha en el bloque 420, más umbrales de proximidad diferentes pueden ser asignados por el procesador a varias cargas útiles.
Como parte de la clasificación de cargas útiles en el bloque 420, el procesador puede determinar que algunas cargas útiles no se pueden clasificar, en cuyo caso la clasificación determinada puede ser desconocida o una clasificación predeterminada. En algunas realizaciones, las operaciones de clasificación de cargas útiles en el bloque 420 pueden realizarse para todas las estructuras detectadas transportadas por el vehículo robótico o algún subconjunto del mismo.
En el bloque de determinación 425, el procesador puede determinar si el vehículo robótico transporta una carga útil basándose en los datos analizados en el bloque 420.
En respuesta a la determinación de que el vehículo robótico no transporta ninguna carga útil (es decir, el bloque de determinación 425 = "No"), el procesador puede establecer el umbral de proximidad en un valor predeterminado en el bloque 440. El valor predeterminado del umbral de proximidad puede ser una distancia considerada segura o no amenazante a los objetos circundantes cuando el vehículo robótico no transporta una carga útil o cuando la carga útil transportada por el vehículo robótico no es una clase de carga útil sensible a la proximidad.
En respuesta a la determinación de que el vehículo robótico transporta una carga útil (es decir, el bloque de determinación 425 = "Sí"), el procesador puede determinar, en el bloque de determinación 430, si un cambio de umbral de proximidad debido a una clasificación de la(s) carga(s) útil(es) es garantizado. Por lo tanto, el procesador puede determinar si cualquier estructura analizada en el bloque 420 y determinada como una carga útil transportada por el vehículo robótico en el bloque de determinación 425 tiene una clasificación asociada o para la cual es apropiado un ajuste en el umbral de proximidad. Por ejemplo, el procesador puede evaluar las clasificaciones de la carga útil para determinar si una o más de las cargas útiles identificadas se clasifican como sensibles, valiosas o sensibles a la proximidad. El umbral de proximidad predeterminado se puede utilizar para cargas útiles para las que no se determina una clasificación.
En respuesta a la determinación de que una o más cargas útiles detectadas tienen una clasificación para la cual es apropiado cambiar el umbral de prioridad (es decir, el bloque de determinación 430 = "Sí"), el procesador puede establecer el umbral de proximidad utilizado para evitar colisiones en un valor correspondiente a esa clasificación de la carga útil en el bloque 445. Por ejemplo, si el procesador ha determinado que una carga útil es una carga costosa, el procesador puede aumentar el umbral de proximidad utilizado por el sistema de prevención de colisiones a una distancia adecuada para garantizar que un ser humano u otra criatura no se acerque al vehículo robótico. La cantidad por la cual se ajusta el umbral de proximidad (o el umbral de proximidad utilizado) puede ser diferente para diferentes tipos de clasificaciones. Por ejemplo, el umbral de proximidad utilizado para las cargas útiles clasificadas como sensibles puede ser menor que el umbral de proximidad utilizado para las cargas útiles clasificadas como costosas.
En respuesta a la determinación de que ninguna de las cargas útiles detectadas está asociada con un valor de umbral de proximidad diferente del valor predeterminado del umbral de proximidad (es decir, el bloque de determinación 430 = "No"), el procesador puede establecer el umbral de proximidad al valor predeterminado en bloque 440 si aún no está en el nivel predeterminado.
Establecer el umbral de proximidad en los bloques 440 y/o 445 puede implicar o no cambiar el valor del umbral de proximidad actual, dependiendo de la configuración del umbral de proximidad actual y la configuración del umbral de proximidad deseada en función de la determinación de qué clasificación de carga útil transporta el vehículo robótico Por ejemplo, establecer el umbral de proximidad para evitar colisiones puede incluir elevar el umbral de proximidad de un primer valor a un segundo valor que es más alto que el primer valor en respuesta a la determinación de que la clase de carga útil sensible a la proximidad está presente. Como otro ejemplo, establecer el umbral de proximidad para evitar colisiones puede incluir reducir el umbral de proximidad al primer valor desde el segundo valor en respuesta a la determinación de que se ha eliminado la clase de carga útil sensible a la proximidad. Establecer el umbral de proximidad para evitar colisiones también puede incluir mantener el umbral de proximidad en un valor establecido actualmente. Por ejemplo, establecer el umbral de proximidad para evitar colisiones puede incluir dejar el umbral de proximidad en el primer valor, que es más bajo que el segundo valor, en respuesta a la determinación de que hay una carga útil presente y el valor actualmente establecido del umbral de proximidad es el primer valor. Como otro ejemplo, establecer el umbral de proximidad para evitar colisiones puede incluir dejar el umbral de proximidad en el segundo valor, en respuesta a la determinación de que el valor apropiado para el umbral de proximidad en base a la clase de carga útil identificada es el segundo valor.
La Figura 5 ilustra un procedimiento 500 para detectar y clasificar cargas útiles para su uso en el procedimiento 500 según algunas realizaciones. Con referencia a las Figuras 1A-5, el procedimiento 500 puede ser realizado por un procesador, como un procesador (220) dentro de un dispositivo de procesamiento (por ejemplo, 210) de un vehículo robótico (por ejemplo, 200) para detectar cargas útiles (por ejemplo, 236) y realizar una acción en respuesta.
En el bloque 502, el procesador puede obtener datos de sensores de imagen, como una o más cámaras colocadas en el vehículo robótico. El procesador también puede obtener otros datos de sensores, como datos de radar o LIDAR, que son útiles para determinar la ubicación relativa de estructuras u objetos de carga útil. Dichos datos pueden almacenarse en la memoria local para su procesamiento, como la memoria intermedia.
En el bloque 504, el procesador puede analizar la imagen obtenida y otros datos para identificar la presencia y ubicación de las cargas útiles. Tal análisis de imágenes puede involucrar la identificación de zonas de bordes de diferentes colores y otros tipos de procesos que se usan típicamente para identificar objetos dentro de las imágenes. En algunas realizaciones, el vehículo robótico puede estar equipado con cámaras estereoscópicas para identificar objetos con mayor precisión.
Cada una de las cargas útiles que se identifican en el bloque 504 puede analizarse individualmente usando procesos de reconocimiento de imágenes. Para hacerlo, el procesador puede implementar un bucle para investigar individualmente cada carga útil identificada. Por lo tanto, en el bloque 506, el procesador puede seleccionar una de las cargas útiles identificadas y realizar un procesamiento de reconocimiento de objetos sobre los datos de imagen para la carga útil seleccionada para determinar la clasificación en el bloque 508. Como se ha descrito, dicho procesamiento de reconocimiento de imágenes puede implicar la comparación de datos de imágenes con la base de datos de cargas útiles clasificadas para determinar si existe una coincidencia cercana. Dichos procesos de reconocimiento de imágenes pueden implicar el uso de técnicas de aprendizaje automático.
En el bloque de determinación 510, el procesador puede determinar si se asigna una clasificación a la carga útil seleccionada.
En respuesta a la determinación de que no se asigna ninguna clasificación a la carga útil seleccionada (es decir, el bloque de determinación 510 = "No"), el procesador puede asignar un valor predeterminado para el umbral de proximidad asociado con la carga útil seleccionada en el bloque 512.
En respuesta a la determinación de que se asigna una clasificación a la carga útil seleccionada (es decir, el bloque de determinación 510 = "Sí"), el procesador puede asignar a la carga útil seleccionada un valor no predeterminado correspondiente a la clasificación de la carga útil seleccionada en el bloque 514.
En el bloque de determinación 516, el procesador puede determinar si hay otra carga útil dentro de los datos de imagen que se van a clasificar. Si es así (es decir, el bloque de determinación 516 = "Sí"), el procesador puede seleccionar otra carga útil identificada en el bloque 506 y repetir las operaciones de los bloques 508 - 514 como se describe. Cuando se han clasificado todas las cargas útiles (es decir, el bloque de determinación 516 = "No"), el procesador puede proceder a controlar los motores del vehículo robótico para gobernar cómo navega el vehículo robótico utilizando el umbral de proximidad establecido actualmente en el bloque 350 del procedimiento 300 como descrito.
La Figura 6 ilustra un procedimiento 600 para operar un vehículo robótico de acuerdo con algunas realizaciones. Con referencia a las Figuras 1A-6, el procedimiento 600 puede ser realizado por un procesador, como un procesador (220) dentro de un dispositivo de procesamiento (por ejemplo, 210) de un vehículo robótico (por ejemplo, 100, 200) para detectar obstáculos (por ejemplo, 31 - 34, 40, 50) y realizar una acción en respuesta.
En algunas realizaciones, el procesador del vehículo robótico puede usar la detección y clasificación de objetos para ajustar los umbrales de proximidad para una variedad de objetos detectados, y garantizar que dichos umbrales de proximidad excedan el umbral de proximidad para una clase de carga útil sensible a la proximidad si tal está siendo transportada por el vehículo robótico, y luego use dichos umbrales de proximidad ajustados mientras realiza la planificación de ruta alrededor de dichos objetos. Al evaluar cada uno de los umbrales de proximidad apropiados para las cargas útiles transportadas por el vehículo robótico y cada objeto detectado dentro de las proximidades del vehículo robótico, el procesador puede desarrollar un desvío o un plan de ruta alternativo que permita que el vehículo robótico maniobre alrededor de los objetos de una manera que evita acercarse a cualquier objeto más cerca que su umbral de proximidad correspondiente o el umbral de proximidad para una clase de carga útil sensible a la proximidad. Al realizar dicha planificación de ruta, el vehículo robótico puede seguir una ruta eficiente alrededor o a través de los objetos detectados en comparación con el uso del sistema de prevención de colisiones para evitar chocar con obstáculos individuales, lo que podría provocar que el vehículo robótico tenga que retroceder o seguir una ruta aleatoria a través de una pluralidad de obstáculos. Son posibles varios procedimientos para llevar a cabo dicha planificación de ruta. El procedimiento 600 ilustrado en la Figura 6 proporciona un ejemplo de un procedimiento que puede implementarse para este propósito.
En el bloque 610, el procesador del vehículo robótico puede controlar uno o más motores del vehículo robótico para ejecutar una ruta previamente planificada hacia un destino.
En el bloque 620, el procesador puede obtener datos de uno o más sensores que están configurados para detectar la presencia de objetos en las proximidades del vehículo robótico. Dichos sensores pueden incluir una o más cámaras, radar, lidar, etc. Los datos de dichos sensores pueden almacenarse en la memoria, como una memoria intermedia, para permitir el análisis por parte del procesador.
En el bloque 630, el procesador (u otro procesador configurado para realizar dicho análisis) puede analizar los datos del sensor obtenidos para detectar objetos que se encuentran en las proximidades del vehículo robótico. Por ejemplo, utilizando los datos de imagen de la cámara, el procesador puede realizar un análisis de procesamiento de imágenes para detectar bordes, masas y otras características distintivas de los objetos dentro del campo de visión. Como otro ejemplo, el procesador puede detectar objetos en las proximidades del vehículo robótico en función de los retornos de radar y/o lidar. En algunas realizaciones, los datos de radar y/o lidar se pueden usar para detectar y localizar objetos cercanos, aprovechando esa información en el procesamiento de imágenes para caracterizar los objetos detectados.
Como operación adicional en el bloque 630, el procesador puede analizar los objetos detectados para determinar una clasificación apropiada para los objetos detectados. Por ejemplo, el procesador puede realizar algoritmos de reconocimiento de imágenes en datos de imágenes para determinar si un objeto se reconoce como un tipo particular. Dichos procesos de reconocimiento de imágenes pueden comparar imágenes de un objeto particular con bases de datos de objetos clasificados o clasificables para determinar si existe la posibilidad de una coincidencia. Dichos procesos de reconocimiento de imágenes pueden usar el aprendizaje automático para desarrollar modelos para usar en la asignación de clasificaciones a los objetos.
En algunas realizaciones, el procesador puede categorizar objetos en términos de algunas clasificaciones amplias en el bloque 630, como si los objetos son animados o inanimados, o si se sabe que el tipo de objeto es frágil o no, etc. En algunas realizaciones, el procesador puede determinar categorías específicas de objetos en el bloque 630, como reconocer y clasificar objetos como adultos, niños, perros, gatos, árboles, etc. En algunas realizaciones, el procesador puede determinar identidades específicas de objetos en el bloque 630, como reconocer individuos particulares (por ejemplo, usando reconocimiento facial) o animales particulares (por ejemplo, el perro de la familia) para los cuales el procesador puede estar entrenado (por ejemplo, a través de una rutina de entrenamiento inicial) y para los cuales se pueden especificar valores de umbral de proximidad particulares (por ejemplo, asignados por el usuario). Cuanto más específica sea la clasificación realizada en el bloque 630, el procesador podrá asignar más umbrales de proximidad diferentes a varios objetos.
Como parte de la clasificación de objetos en el bloque 630, el procesador puede determinar que algunos objetos no se pueden clasificar, en cuyo caso la clasificación determinada puede ser desconocida o una clasificación predeterminada. En algunas realizaciones, las operaciones de clasificación de objetos en el bloque 630 se pueden realizar para todos los objetos detectados en las proximidades del vehículo robótico. En algunas realizaciones, solo los objetos más cercanos o los pocos más cercanos pueden clasificarse en el bloque 630.
En el bloque de determinación 635, el procesador puede determinar si alguno de los objetos identificados y clasificados presenta obstáculos u obstáculos potenciales para el vehículo robótico. En particular, el procesador puede determinar si alguno de los objetos identificados en el bloque 630 está cerca de la ruta previamente planificada hacia el destino.
En respuesta a la determinación de que no hay obstáculos u obstáculos potenciales en las cercanías del vehículo robótico (es decir, el bloque de determinación 635 = "No"), el procesador puede continuar controlando uno o más motores del vehículo robóti
En respuesta a la determinación de que uno o más objetos clasificados presentan o podrían presentar obstáculos al vehículo robótico (es decir, bloque de determinación 635 = "Sí"), el procesador, en el bloque 640, puede generar un mapa virtual de los objetos que se suman en un perímetro de exclusión alrededor de cada objeto basado en la mayor clasificación de ese objeto o el umbral de proximidad asociado con la carga útil clasificada determinada en el bloque 420 del procedimiento 400. Por lo tanto, en lugar de ajustar el umbral de proximidad usado en el sistema para evitar colisiones, el procesador puede usar el umbral de proximidad correspondiente y el umbral de proximidad asociado con la carga útil clasificada para extender el límite de un objeto como se representa en el mapa virtual generado en el bloque 640. Se puede usar un valor predeterminado del umbral de proximidad para agregar un perímetro de exclusión alrededor de los objetos (es decir, sin cambios en el umbral de proximidad) para los que no se determina una clasificación cuando el vehículo robótico no transporta una carga útil para la cual se requiere un umbral de proximidad mejorado apropiado.
En el bloque 650, el procesador puede usar el mapa generado en el bloque 640 para determinar una ruta de desvío alrededor o a través de los obstáculos identificados que asegure que el vehículo robótico permanezca fuera del umbral de proximidad respectivo para todos los obstáculos. El procesador puede realizar dicha planificación de rutas utilizando cualquiera de una variedad de algoritmos de planificación de rutas. El uso de los umbrales de proximidad específicos de la clasificación de objetos para añadir perímetros de exclusión alrededor de los objetos en el bloque 640 facilita la planificación de una ruta que maniobra alrededor de los objetos por al menos sus respectivos umbrales de proximidad.
En el bloque 660, el procesador puede controlar uno o más motores del vehículo robótico para ejecutar la ruta de desvío. Al hacerlo, el procesador puede continuar obteniendo datos de varios sensores en el bloque 620 y analizar los datos del sensor para reconocer y clasificar objetos cercanos en el bloque 630 como se describe. Una vez que el vehículo robótico ha superado los obstáculos, por ejemplo, completando la ruta de desvío (es decir, el bloque de determinación 635 = "No"), el procesador puede volver a controlar uno o más motores del vehículo robótico para ejecutar la ruta preplanificada hacia el destino en el bloque 610, y repita las operaciones de los procedimientos 300, 400, 500 y/o 600 como se describe.
La Figura 7 ilustra un procedimiento 700 para detectar y clasificar objetos para su uso en el procedimiento 600 según algunas realizaciones. Con referencia a las Figuras 1A-7, el procedimiento 700 puede ser realizado por un procesador, como un procesador (220) dentro de un dispositivo de procesamiento (por ejemplo, 210) de un vehículo robótico (por ejemplo, 200) para detectar obstáculos (por ejemplo, 120) y realizar una acción en respuesta.
En el bloque 702, el procesador puede obtener datos de sensores de imagen, como una o más cámaras colocadas en el vehículo robótico. El procesador también puede obtener otros datos de sensores, como datos de radar o LIDAR, que son útiles para determinar la ubicación relativa de los objetos. Dichos datos pueden almacenarse en la memoria local para su procesamiento, como la memoria intermedia.
En el bloque 704, el procesador puede analizar la imagen obtenida y otros datos para identificar la presencia y ubicación de los objetos representados. Tal análisis de imágenes puede involucrar la identificación de zonas de bordes de diferentes colores y otros tipos de procesos que se usan típicamente para identificar objetos dentro de las imágenes. En algunas realizaciones, el vehículo robótico puede estar equipado con cámaras estereoscópicas que pueden permitir que el procesador determine la distancia a varios objetos usando estereoscopia. En realizaciones en las que el vehículo robótico está equipado solo con una cámara monocular, las distancias a varios objetos pueden determinarse en función del cambio de posición de los objetos de un marco al siguiente a medida que el vehículo robótico se mueve hacia el entorno. En realizaciones en las que el vehículo robótico está equipado con radar y/o lidar, las distancias a los objetos pueden determinarse usando datos de esos sensores. Al determinar la ubicación de los objetos, el procesador puede generar un archivo o base de datos de coordenadas de objetos en la memoria que le permite generar un mapa de objetos en operaciones posteriores.
Cada uno de los objetos que se identifican en el bloque 704 puede analizarse individualmente usando procesos de reconocimiento de imágenes. Para hacerlo, el procesador puede implementar un ciclo para investigar individualmente cada objeto. Por lo tanto, en el bloque 706, el procesador puede seleccionar uno de los objetos identificados y realizar el procesamiento de reconocimiento de objetos sobre los datos de imagen para el objeto seleccionado para determinar la clasificación en el bloque 708. Como se ha descrito, dicho procesamiento de reconocimiento de imágenes puede implicar la comparación de datos de imágenes con la base de datos de objetos clasificados para determinar si existe una coincidencia cercana. Dichos procesos de reconocimiento de imágenes pueden implicar el uso de técnicas de aprendizaje automático.
En el bloque de determinación 710, el procesador puede determinar si se asigna una clasificación al objeto seleccionado.
En respuesta a la determinación de que no se asigna ninguna clasificación al objeto seleccionado (es decir, el bloque de determinación 710 = "No"), el procesador puede asignar una distancia de perímetro de exclusión predeterminada al objeto seleccionado en el bloque 712.
En respuesta a la determinación de que se asigna una clasificación al objeto seleccionado (es decir, bloque de determinación 710 = "Sí"), el procesador puede asignar al objeto seleccionado una distancia de perímetro de exclusión correspondiente a la clasificación del objeto seleccionado en el bloque 714.
En el bloque de determinación 716, el procesador puede determinar si hay otro objeto dentro de los datos de imagen para ser clasificado. Si es así (es decir, el bloque de determinación 716 = "Sí"), el procesador puede seleccionar otro objeto identificado en el bloque 706 y repetir las operaciones de los bloques 708 - 714 como se describe. Cuando todos los objetos han sido clasificados (es decir, el bloque de determinación 716 = "No"), el procesador puede proceder a generar un mapa de objetos añadiendo el perímetro de exclusión basado en la clasificación de cada objeto en el bloque 620 del procedimiento 600 como se describe.
Varias realizaciones ilustradas y descritas se proporcionan simplemente como ejemplos para ilustrar varias características de las reivindicaciones. Sin embargo, las características mostradas y descritas con respecto a cualquier realización dada no están necesariamente limitadas a la realización asociada y pueden usarse o combinarse con otras realizaciones que se muestran y describen. Además, no se pretende que las reivindicaciones queden limitadas por ningún ejemplo de realización. Por ejemplo, una o más de las operaciones de los procedimientos 300, 400, 500, 600 y/o 700 pueden sustituirse o combinarse con otra.
Las descripciones del procedimiento anterior y los diagramas de flujo del proceso se proporcionan simplemente como ejemplos ilustrativos y no pretenden requerir o implicar que las operaciones de las diversas realizaciones deben realizarse en el orden presentado. Como apreciará un experto en la técnica, el orden de las operaciones en las realizaciones anteriores puede realizarse en cualquier orden. Palabras tales como "a partir de entonces", "luego", "siguiente", etc., no pretenden limitar el orden de las operaciones; estas palabras se utilizan para guiar al lector a través de la descripción de los procedimientos. Además, cualquier referencia a los elementos de la reivindicación en singular, por ejemplo, utilizando los artículos "un", "una" o "el" no debe interpretarse como una limitación del elemento en singular.
Varios bloques lógicos, módulos, circuitos y operaciones de algoritmos ilustrativos descritos en relación con las realizaciones divulgadas en la presente memoria pueden implementarse como hardware electrónico, software informático o combinaciones de ambos. Para ilustrar claramente esta intercambiabilidad de hardware y software, varios componentes, bloques, módulos, circuitos y operaciones ilustrativos se han descrito anteriormente en general en términos de su funcionalidad. Si tal funcionalidad se implementa como hardware o software depende de la solicitud particular y las restricciones de diseño impuestas en el sistema general. Los expertos en la técnica pueden implementar la funcionalidad descrita de diversas maneras para cada aplicación particular, pero tales decisiones de realización no deben interpretarse como que provocan una desviación del ámbito de las reivindicaciones.
El hardware utilizado para implementar diversas lógicas, bloques lógicos, módulos y circuitos ilustrativos descritos en relación con las diversas realizaciones puede implementarse o realizarse con un procesador de propósito general, un procesador de señal digital (DSP), un circuito integrado de aplicación específica (ASIC), una matriz de compuertas programables en campo (FPGA) u otro dispositivo lógico programable, compuerta discreta o lógica de transistor, componentes de hardware discretos o cualquier combinación de los mismos diseñada para realizar las funciones descritas en la presente memoria. Un procesador de propósito general puede ser un microprocesador, pero, como alternativa, el procesador puede ser cualquier procesador, controlador, microcontrolador, o máquina de estado convencional. Un procesador también puede implementarse como una combinación de objetos inteligentes receptores, por ejemplo, una combinación de un DSP y un microprocesador, una pluralidad de microprocesadores, uno o más microprocesadores junto con un núcleo DSP o cualquier otra configuración similar. Alternativamente, algunas operaciones o procedimientos pueden ser realizados por circuitos que son específicos para una función dada.
En uno o más aspectos, las funciones descritas pueden implementarse en hardware, software, microprograma o cualquier combinación de los mismos. Si se implementan en software, las funciones pueden almacenarse como una o más instrucciones o código en un medio de almacenamiento legible por ordenador no transitorio o un medio de almacenamiento legible por procesador no transitorio. Las operaciones de un procedimiento o algoritmo divulgado en la presente memoria pueden incorporarse en un módulo de software ejecutable por procesador o instrucciones ejecutables por procesador, que pueden residir en un medio de almacenamiento legible por ordenador o legible por procesador no transitorio. Los medios de almacenamiento legibles por ordenador o legibles por procesador no transitorios pueden ser cualquier medio de almacenamiento al que pueda acceder un ordenador o un procesador. A modo de ejemplo, pero no de limitación, dichos medios de almacenamiento legibles por ordenador o legibles por procesador no transitorios pueden incluir RAM, ROM, EEPROM, memoria FLASH, CD-ROM u otro almacenamiento en disco óptico, almacenamiento en disco magnético u otros objetos inteligentes de almacenamiento magnético, o cualquier otro medio que pueda usarse para almacenar el código de programa deseado en forma de instrucciones o estructuras de datos y al que pueda acceder un ordenador. Disco magnético y disco óptico, como se usa en la presente memoria, incluye disco compacto (CD), disco láser, disco óptico, disco versátil digital (DVD) y disco Blu-ray donde los discos generalmente reproducen datos magnéticamente, mientras que los discos reproducen datos ópticamente con láser. Las combinaciones de lo anterior también se incluyen dentro del ámbito de los medios legibles por ordenador o legibles por procesador no transitorios. Además, las operaciones de un procedimiento o algoritmo pueden residir como uno o cualquier combinación o conjunto de códigos y/o instrucciones en un medio de almacenamiento legible por procesador no transitorio y/o medio de almacenamiento legible por ordenador, que puede incorporarse a un producto de programa informático.

Claims (15)

  1. REIVINDICACIONES
    i. Un procedimiento (300) para operar un vehículo robótico (200), que comprende:
    determinar (325), mediante un procesador (220), si el vehículo robótico transporta una carga útil; establecer (330, 340), por parte del procesador (220), un umbral de proximidad para evitar colisiones en respuesta a la determinación de que el vehículo robótico transporta una carga útil; y
    controlar (350), mediante el procesador, uno o más motores (125) del vehículo robótico utilizando el umbral de proximidad para evitar colisiones
    en el que determinar si el vehículo robótico transporta una carga útil comprende:
    obtener (310), por parte del procesador, datos de un sensor de carga útil (236) configurado para detectar si el vehículo robótico transporta una carga útil o de uno o más motores (125) que indican una tasa de revolución de uno o más respectivos motores; y
    analizar (320) los datos obtenidos para determinar si el vehículo robótico transporta una carga útil.
  2. 2. El procedimiento (300) de la reivindicación 1, en el que establecer (330, 340) el umbral de proximidad para evitar colisiones comprende uno de los siguientes:
    elevar (330) el umbral de proximidad de un primer valor a un segundo valor que es mayor que el primer valor en respuesta a la determinación de que el vehículo robótico no transporta una carga útil; reducir (340) el umbral de proximidad a un primer valor desde un segundo valor que es mayor que el primer valor en respuesta a la determinación de que el vehículo robótico transporta una carga útil, o mantener el umbral de proximidad en un valor establecido actualmente.
  3. 3. El procedimiento (300) de la reivindicación 1, en el que el sensor de carga útil (236) es al menos uno de un sensor de contacto, un sensor de peso, un sensor de imagen o un lector de etiquetas de identificación por radiofrecuencia.
  4. 4. El procedimiento (300) de la reivindicación 1, en el que analizar (320) los datos obtenidos para determinar si el vehículo robótico transporta una carga útil comprende:
    comparar los datos obtenidos con los datos recopilados previamente que indican que el vehículo robótico transporta una carga útil;
    determinar que el vehículo robótico transporta una carga útil en respuesta a la determinación de que los datos obtenidos coinciden con los datos recopilados previamente que indican que el vehículo robótico transporta una carga útil; y
    determinar que el vehículo robótico no transporta una carga útil en respuesta a la determinación de que los datos obtenidos no coinciden con los datos recopilados previamente que indican que el vehículo robótico transporta una carga útil.
  5. 5. El procedimiento (300) de la reivindicación 1, en el que analizar (320) los datos obtenidos para determinar si el vehículo robótico transporta una carga útil comprende:
    comparar los datos obtenidos con parámetros predeterminados que indican que el vehículo robótico transporta una o más cargas útiles;
    determinar que el vehículo robótico transporta una carga útil en respuesta a la determinación de que los datos obtenidos coinciden con los parámetros predeterminados que indican que el vehículo robótico transporta una carga útil; y
    determinar que el vehículo robótico no transporta una carga útil en respuesta a la determinación de que los datos obtenidos no coinciden con los parámetros predeterminados que indican que el vehículo robótico transporta una carga útil.
  6. 6. El procedimiento (300) de la reivindicación 1, en el que analizar (320) los datos obtenidos para determinar si el vehículo robótico transporta una carga útil comprende determinar cuántas cargas útiles transporta el vehículo robótico.
  7. 7. El procedimiento (300) de la reivindicación 1, que comprende además:
    recibir, por parte del procesador, una anulación de entrada que indica si el vehículo robótico transporta una carga útil, en el que determinar si el vehículo robótico transporta una carga útil se basa en la anulación de entrada recibida.
  8. 8. El procedimiento (500) de la reivindicación 1, que comprende además:
    determinar (508), por parte del procesador, una clasificación de la carga útil en respuesta a la determinación de que el vehículo robótico transporta una carga útil; y
    establecer (512, 514) el umbral de proximidad en base a la clasificación de la carga útil.
  9. 9. El procedimiento (500) de la reivindicación 8, en el que establecer el umbral de proximidad en base a la clasificación de la carga útil comprende cambiar (514) el umbral de proximidad de un valor predeterminado a un valor ajustado correspondiente a la clasificación de la carga útil.
  10. 10. El procedimiento (400) de la reivindicación 8, en el que:
    determinar (420) una clasificación de la carga útil comprende determinar si la carga útil es una clase de carga útil sensible a la proximidad; y
    establecer (430) el umbral de proximidad para evitar colisiones al valor en base a la clasificación de la carga útil comprende aumentar o disminuir el umbral de proximidad en respuesta a la clasificación de la carga útil que es la clase de carga útil sensible a la proximidad.
  11. 11. El procedimiento (400) de la reivindicación 10, en el que una clase de carga útil sensible a la proximidad incluye una o más de una cámara, rotores más grandes que un tramo predeterminado o equipo del vehículo robótico o carga más valiosa que una cantidad predeterminada.
  12. 12. El procedimiento (400) de la reivindicación 8, que comprende además determinar el umbral de proximidad correspondiente a la clasificación determinada de la carga útil accediendo a una estructura de datos en la memoria para el umbral de proximidad correlacionado con la clasificación de la carga útil.
  13. 13. El procedimiento (600) de la reivindicación 7, que comprende además:
    obtener (620), por parte del procesador, datos de objetos de un sensor de objetos configurado para detectar uno o más objetos en las proximidades del vehículo robótico;
    determinar (635), mediante el procesador en base a los datos del objeto, si uno o más objetos en las proximidades del vehículo robótico representan un obstáculo o un obstáculo potencial para el vehículo robótico; y
    determinar (630), por parte del procesador, una clasificación de un objeto que presenta un obstáculo o un obstáculo potencial para el vehículo robótico,
    en el que ajustar la configuración del umbral de proximidad para evitar colisiones se basa en un umbral de proximidad mayor determinado en base a la clasificación de la carga útil y un umbral de proximidad para la clasificación del objeto que representa un obstáculo u obstáculo potencial para el vehículo robótico.
  14. 14. Un dispositivo de procesamiento (210) para usar en un vehículo robótico (200), el dispositivo de procesamiento configurado para llevar a cabo los pasos de cualquiera de las reivindicaciones 1 a 13.
  15. 15. Un vehículo robótico (200), que comprende:
    uno o más rotores (120);
    el dispositivo de procesamiento (210) de la reivindicación 14 acoplado al uno o más rotores (120). medios para controlar uno o más motores del vehículo robótico utilizando el umbral de proximidad para evitar colisiones.
ES18830072T 2018-01-03 2018-12-04 Umbral ajustable de proximidad para evitar objetos de un vehículo robótico basado en la presencia de carga(s) útil(es) detectada(s) Active ES2907503T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/860,897 US10720070B2 (en) 2018-01-03 2018-01-03 Adjustable object avoidance proximity threshold of a robotic vehicle based on presence of detected payload(s)
PCT/US2018/063760 WO2019135849A1 (en) 2018-01-03 2018-12-04 Adjustable object avoidance proximity threshold of a robotic vehicle based on presence of detected payload(s)

Publications (1)

Publication Number Publication Date
ES2907503T3 true ES2907503T3 (es) 2022-04-25

Family

ID=64949421

Family Applications (1)

Application Number Title Priority Date Filing Date
ES18830072T Active ES2907503T3 (es) 2018-01-03 2018-12-04 Umbral ajustable de proximidad para evitar objetos de un vehículo robótico basado en la presencia de carga(s) útil(es) detectada(s)

Country Status (6)

Country Link
US (1) US10720070B2 (es)
EP (1) EP3735622B1 (es)
CN (1) CN111542794B (es)
ES (1) ES2907503T3 (es)
TW (1) TWI804538B (es)
WO (1) WO2019135849A1 (es)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10170910B2 (en) * 2016-09-29 2019-01-01 Enel X North America, Inc. Energy baselining system including automated validation, estimation, and editing rules configuration engine
US10566791B2 (en) 2016-09-29 2020-02-18 Enel X North America, Inc. Automated validation, estimation, and editing processor
US10423186B2 (en) 2016-09-29 2019-09-24 Enel X North America, Inc. Building control system including automated validation, estimation, and editing rules configuration engine
US10461533B2 (en) 2016-09-29 2019-10-29 Enel X North America, Inc. Apparatus and method for automated validation, estimation, and editing configuration
US10298012B2 (en) 2016-09-29 2019-05-21 Enel X North America, Inc. Network operations center including automated validation, estimation, and editing configuration engine
US10291022B2 (en) 2016-09-29 2019-05-14 Enel X North America, Inc. Apparatus and method for automated configuration of estimation rules in a network operations center
US10203714B2 (en) 2016-09-29 2019-02-12 Enel X North America, Inc. Brown out prediction system including automated validation, estimation, and editing rules configuration engine
US10803759B2 (en) 2018-01-03 2020-10-13 Qualcomm Incorporated Adjustable object avoidance proximity threshold based on presence of propeller guard(s)
US10636314B2 (en) 2018-01-03 2020-04-28 Qualcomm Incorporated Adjusting flight parameters of an aerial robotic vehicle based on presence of propeller guard(s)
US10717435B2 (en) 2018-01-03 2020-07-21 Qualcomm Incorporated Adjustable object avoidance proximity threshold based on classification of detected objects
US10719705B2 (en) 2018-01-03 2020-07-21 Qualcomm Incorporated Adjustable object avoidance proximity threshold based on predictability of the environment
AU2019275489A1 (en) * 2018-05-25 2020-12-10 Emesent IP Pty Ltd Mapping and control system for an aerial vehicle
JP2021149464A (ja) * 2020-03-18 2021-09-27 本田技研工業株式会社 車両制御装置、車両制御方法、およびプログラム
JP7409264B2 (ja) 2020-08-27 2024-01-09 トヨタ自動車株式会社 運搬システム、運搬方法、及びプログラム
CN112051836B (zh) * 2020-09-11 2021-09-24 江苏科技大学 基于多核模型的水下机器人推进器状态监测方法
CN114830056A (zh) * 2020-12-28 2022-07-29 深圳市大疆创新科技有限公司 一种无人飞行器的控制方法、无人飞行器及存储介质
CN114838736A (zh) * 2022-04-29 2022-08-02 深圳优地科技有限公司 避障路径规划方法、装置、无人车和存储介质

Family Cites Families (90)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4809178A (en) * 1986-05-22 1989-02-28 Kabushiki Kaisha Toyota Chuo Kenkyusho Obstacle data processing system for unmanned vehicle
JPH0690584A (ja) * 1992-09-08 1994-03-29 Mitsubishi Electric Corp 電動機のトルク制御装置
US5979824A (en) 1997-04-04 1999-11-09 Gagliano; Christopher Stabilizer fins-inverted for aircraft
JP3869108B2 (ja) * 1998-02-23 2007-01-17 株式会社小松製作所 無人車両の干渉予測装置および無人車両の誘導走行方法
US6270038B1 (en) 1999-04-22 2001-08-07 Sikorsky Aircraft Corporation Unmanned aerial vehicle with counter-rotating ducted rotors and shrouded pusher-prop
US7335071B1 (en) 2001-07-05 2008-02-26 Maruta Electric Boatworks Llc Electronic shut off systems
KR100412674B1 (ko) 2001-09-11 2003-12-31 현대자동차주식회사 적응형 차량 안전 거리 산출을 위한 타이어-노면 마찰계수 추정 방법
JP2003157479A (ja) * 2001-11-19 2003-05-30 Mazda Motor Corp 車両用自動通報装置
JP3959718B2 (ja) * 2002-12-03 2007-08-15 株式会社デンソー 車両用歩行者衝突検出装置
JP4051623B2 (ja) * 2003-02-26 2008-02-27 アイシン精機株式会社 車両危険度に応じた警報信号を出力する警報装置
JP2005172484A (ja) * 2003-12-09 2005-06-30 Tachi S Co Ltd 車両用シートの荷重判別方法およびその荷重判別装置
JP4839584B2 (ja) * 2004-07-28 2011-12-21 アイシン精機株式会社 乗員重量計測装置
US7658346B2 (en) 2005-02-25 2010-02-09 Honeywell International Inc. Double ducted hovering air-vehicle
JP4533787B2 (ja) * 2005-04-11 2010-09-01 フィグラ株式会社 作業ロボット
JP2006292624A (ja) * 2005-04-13 2006-10-26 Toyota Motor Corp 歩行者衝突判定装置
US7946528B2 (en) 2005-04-15 2011-05-24 Urban Aeronautics, Ltd. Flight control system especially suited for VTOL vehicles
US20070080793A1 (en) * 2005-10-11 2007-04-12 Blase Gaynell L Auto brake alert
US8103438B2 (en) 2007-09-26 2012-01-24 Trimble Navigation Limited Method and system for automatically directing traffic on a site
US8322648B2 (en) 2008-05-15 2012-12-04 Aeryon Labs Inc. Hovering aerial vehicle with removable rotor arm assemblies
US9043052B2 (en) 2008-05-27 2015-05-26 Wilfred So System and method for multiple vehicles moving a common payload
KR101048098B1 (ko) 2008-09-03 2011-07-11 한국과학기술원 로봇의 경로계획 장치 및 방법
US8543265B2 (en) 2008-10-20 2013-09-24 Honeywell International Inc. Systems and methods for unmanned aerial vehicle navigation
EP2182419B1 (en) 2008-11-04 2012-02-15 Saab Ab Avoidance manoeuvre generator for an aircraft
CA2748045C (en) 2009-01-05 2016-04-26 Gordon Toll Apparatus and method for defining a safety zone for a vehicle, a person or an animal
US8366037B2 (en) 2009-05-22 2013-02-05 Heliplane, Llc Towable aerovehicle system with automated tow line release
CA2797642A1 (en) 2009-11-25 2011-06-03 Aerovironment, Inc. Automatic configuration control of a device
US9230419B2 (en) * 2010-07-27 2016-01-05 Rite-Hite Holding Corporation Methods and apparatus to detect and warn proximate entities of interest
GB2483881B (en) 2010-09-22 2017-04-26 Irps Thomas A dual-function landing gear and rotor protector for a UAV
US9511751B2 (en) * 2011-07-22 2016-12-06 GM Global Technology Operations LLC Object identification and active safety control for vehicles
US9091762B2 (en) * 2011-10-27 2015-07-28 Gulfstream Aerospace Corporation Methods and systems for avoiding a collision between an aircraft on a ground surface and an obstacle
US8761991B1 (en) 2012-04-09 2014-06-24 Google Inc. Use of uncertainty regarding observations of traffic intersections to modify behavior of a vehicle
EP3373097A1 (en) 2012-08-14 2018-09-12 Husqvarna AB Robotic mower with object detection system
US9139383B2 (en) * 2012-09-13 2015-09-22 Translogic Corporation Control of pneumatic carrier system based on carrier or payload identification
US9633565B2 (en) 2012-11-15 2017-04-25 GM Global Technology Operations LLC Active safety system and method for operating the same
EP3039613A4 (en) 2013-07-02 2016-07-27 Jasper Mason Pons METHOD AND SYSTEM FOR IN-FLIGHT SCAN
DE202013006196U1 (de) 2013-07-09 2014-10-13 GM Global Technology Operations LLC (n. d. Gesetzen des Staates Delaware) Fahrerassistenzsystem für ein Kraftfahrzeug und Kraftfahrzeug
JP6175379B2 (ja) * 2014-02-19 2017-08-02 日立建機株式会社 電気駆動鉱山ダンプトラック、及びその操作ガイド方法
JP2015168386A (ja) * 2014-03-10 2015-09-28 トヨタ自動車株式会社 歩行者衝突判定装置
AU2015241429B2 (en) * 2014-03-31 2018-12-06 Irobot Corporation Autonomous mobile robot
CA2945189C (en) * 2014-04-10 2022-10-11 Quanser Consulting Inc. Robotic systems and methods of operating robotic systems
FR3020763B1 (fr) 2014-05-06 2016-06-03 Parrot Drone a voilure tournante de type quadricoptere, pourvu de pare-chocs amovibles de protection des helices
US9875661B2 (en) 2014-05-10 2018-01-23 Aurora Flight Sciences Corporation Dynamic collision-avoidance system and method
US20160016664A1 (en) 2014-07-19 2016-01-21 Umm Al-Qura University Unmanned aerial delivery device
US10561956B2 (en) 2014-07-25 2020-02-18 University Of Kansas Moveable member bearing aerial vehicles and methods of use
US10780988B2 (en) 2014-08-11 2020-09-22 Amazon Technologies, Inc. Propeller safety for automated aerial vehicles
US9613539B1 (en) * 2014-08-19 2017-04-04 Amazon Technologies, Inc. Damage avoidance system for unmanned aerial vehicle
US9925980B2 (en) * 2014-09-17 2018-03-27 Magna Electronics Inc. Vehicle collision avoidance system with enhanced pedestrian avoidance
SG10201406357QA (en) 2014-10-03 2016-05-30 Infinium Robotics Pte Ltd System for performing tasks in an operating region and method of controlling autonomous agents for performing tasks in the operating region
CA2971747C (en) * 2014-12-24 2022-03-01 Cqms Pty Ltd A system and method of calculating a payload weight
US10563379B2 (en) * 2014-12-24 2020-02-18 Cqms Pty Ltd System and method of identifying a payload destination
JP6126573B2 (ja) 2014-12-25 2017-05-10 本田技研工業株式会社 衝突回避支援装置
US20160200437A1 (en) 2015-01-12 2016-07-14 Mark Andrew Ryan Tethered Flight Control System for Small Unmanned Aircraft
GB201509509D0 (en) 2015-06-01 2015-07-15 Imp Innovations Ltd Aerial devices capable of controlled flight
CN205989812U (zh) 2015-06-25 2017-03-01 瑞德利斯技术公司 多旋翼无人机
CN204776022U (zh) 2015-07-03 2015-11-18 安徽泽众安全科技有限公司 旋翼飞行器可拆卸防护装置
US9927807B1 (en) * 2015-07-13 2018-03-27 ANRA Technologies, LLC Command and control of unmanned vehicles using cellular and IP mesh technologies for data convergence
US10586464B2 (en) 2015-07-29 2020-03-10 Warren F. LeBlanc Unmanned aerial vehicles
US20170043869A1 (en) 2015-08-11 2017-02-16 Intellitrax, Inc. Protection element and device for camera drone
US20180275654A1 (en) * 2015-09-03 2018-09-27 Commonwealth Scientific And Industrial Research Or Ganisation Unmanned Aerial Vehicle Control Techniques
US10019907B2 (en) 2015-09-11 2018-07-10 Qualcomm Incorporated Unmanned aerial vehicle obstacle detection and avoidance
KR101585650B1 (ko) 2015-09-11 2016-01-14 주식회사 나라항공기술 무인 비행체 보호 장치와 그의 장애물 감지 및 회피 방법
US20170158320A1 (en) 2015-09-20 2017-06-08 Daniel Bosch Unmanned aerial system
US10139828B2 (en) 2015-09-24 2018-11-27 Uber Technologies, Inc. Autonomous vehicle operated with safety augmentation
US9421869B1 (en) 2015-09-25 2016-08-23 Amazon Technologies, Inc. Deployment and adjustment of airborne unmanned aerial vehicles
US10618655B2 (en) * 2015-10-14 2020-04-14 Flirtey Holdings, Inc. Package delivery mechanism in an unmanned aerial vehicle
WO2017063088A1 (en) 2015-10-16 2017-04-20 4Front Robotics Ltd. Rotary wing aircraft
EP3368957B1 (en) * 2015-10-30 2022-02-09 SZ DJI Technology Co., Ltd. Systems and methods for uav path planning and control
US10496766B2 (en) 2015-11-05 2019-12-03 Zoox, Inc. Simulation system and methods for autonomous vehicles
US9914538B2 (en) 2015-11-20 2018-03-13 ZEROTECH (Shenzhen) Intelligence Robot Co., Ltd. Rotor shrouding apparatus, supporting assembly, and unmanned aerial vehicle using the same
JPWO2017086234A1 (ja) 2015-11-20 2017-12-28 株式会社プロドローン 無人航空機
US10242455B2 (en) 2015-12-18 2019-03-26 Iris Automation, Inc. Systems and methods for generating a 3D world model using velocity data of a vehicle
US9618940B1 (en) 2015-12-31 2017-04-11 Unmanned Innovation, Inc. Unmanned aerial vehicle rooftop inspection system
CA3001023A1 (en) 2016-01-08 2017-07-13 Pictometry International Corp. Systems and methods for taking, processing, retrieving, and displaying images from unmanned aerial vehicles
US9632507B1 (en) 2016-01-29 2017-04-25 Meritor Wabco Vehicle Control Systems System and method for adjusting vehicle platoon distances based on predicted external perturbations
CN107170298A (zh) * 2016-03-07 2017-09-15 群光电子股份有限公司 无人飞行器的防碰撞系统及其方法
US20170267234A1 (en) * 2016-03-18 2017-09-21 Soterea, Inc. Systems and methods for providing collision avoidance or mitigation
IL244838A0 (en) 2016-03-30 2016-07-31 Itai Orr System and method for autonomous driving of vehicles
CN109071015B (zh) 2016-04-29 2021-11-30 美国联合包裹服务公司 无人机拾取及递送系统
US20170323256A1 (en) 2016-05-06 2017-11-09 Elwha Llc Systems and methods for adjusting freight charges for an unmanned aerial vehicle
US10362392B2 (en) * 2016-05-18 2019-07-23 Georgia Tech Research Corporation Aerial acoustic sensing, acoustic sensing payload and aerial vehicle including the same
CN106044281B (zh) * 2016-07-08 2019-05-10 长沙理工大学 一种包装箱自动装车系统及装车方法
CN106240811A (zh) 2016-08-18 2016-12-21 上海未来伙伴机器人有限公司 无人机安全防护装置以及无人机安全防护方法
CN106347656A (zh) 2016-10-31 2017-01-25 上海未来伙伴机器人有限公司 一种可拆卸螺旋桨保护罩
US10328934B2 (en) 2017-03-20 2019-06-25 GM Global Technology Operations LLC Temporal data associations for operating autonomous vehicles
US20180290748A1 (en) 2017-04-03 2018-10-11 Versatol, Llc Autonomous in-tunnel intelligence, surveillance, and reconnaissance drone
US10719705B2 (en) 2018-01-03 2020-07-21 Qualcomm Incorporated Adjustable object avoidance proximity threshold based on predictability of the environment
US10636314B2 (en) 2018-01-03 2020-04-28 Qualcomm Incorporated Adjusting flight parameters of an aerial robotic vehicle based on presence of propeller guard(s)
US10717435B2 (en) 2018-01-03 2020-07-21 Qualcomm Incorporated Adjustable object avoidance proximity threshold based on classification of detected objects
US10803759B2 (en) 2018-01-03 2020-10-13 Qualcomm Incorporated Adjustable object avoidance proximity threshold based on presence of propeller guard(s)
US10766610B2 (en) 2018-01-22 2020-09-08 Mattel, Inc. Unmanned aerial vehicle with propeller guard

Also Published As

Publication number Publication date
TW201939188A (zh) 2019-10-01
US10720070B2 (en) 2020-07-21
US20190206268A1 (en) 2019-07-04
EP3735622A1 (en) 2020-11-11
CN111542794A (zh) 2020-08-14
TWI804538B (zh) 2023-06-11
CN111542794B (zh) 2023-06-30
WO2019135849A1 (en) 2019-07-11
EP3735622B1 (en) 2022-01-26

Similar Documents

Publication Publication Date Title
ES2907503T3 (es) Umbral ajustable de proximidad para evitar objetos de un vehículo robótico basado en la presencia de carga(s) útil(es) detectada(s)
EP3735621B1 (en) Adjustable object avoidance proximity threshold based on classification of detected objects
EP3735624B1 (en) Adjustable object avoidance proximity threshold
CN111542795B (zh) 基于螺旋桨防护装置的存在性的可调整的对象避开接近度门限
TWI731283B (zh) 空中機器人式運載工具、處理設備及其操作方法
US20200257319A1 (en) Personal security robotic vehicle
ES2883847T3 (es) Prevención de colisiones de vehículos
JP2019196150A (ja) 安全着陸可能領域を識別するためのシステム、方法、プログラム及びプログラムを記憶した記憶媒体