CN110099656A - 用于控制智能轮椅的***和方法 - Google Patents
用于控制智能轮椅的***和方法 Download PDFInfo
- Publication number
- CN110099656A CN110099656A CN201780079497.2A CN201780079497A CN110099656A CN 110099656 A CN110099656 A CN 110099656A CN 201780079497 A CN201780079497 A CN 201780079497A CN 110099656 A CN110099656 A CN 110099656A
- Authority
- CN
- China
- Prior art keywords
- frame
- displacement
- information
- robot
- processor
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 78
- 238000006073 displacement reaction Methods 0.000 claims description 167
- 238000004891 communication Methods 0.000 claims description 54
- 238000003384 imaging method Methods 0.000 claims description 37
- 230000033001 locomotion Effects 0.000 claims description 17
- 238000004458 analytical method Methods 0.000 description 64
- 230000008569 process Effects 0.000 description 41
- 230000006870 function Effects 0.000 description 25
- 238000001514 detection method Methods 0.000 description 17
- 238000010586 diagram Methods 0.000 description 17
- 238000013439 planning Methods 0.000 description 17
- 238000012545 processing Methods 0.000 description 17
- 230000001133 acceleration Effects 0.000 description 10
- 230000004888 barrier function Effects 0.000 description 8
- 230000003190 augmentative effect Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 239000011159 matrix material Substances 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 239000011521 glass Substances 0.000 description 3
- 230000007774 longterm Effects 0.000 description 3
- 238000010295 mobile communication Methods 0.000 description 3
- 238000003860 storage Methods 0.000 description 3
- 241000208340 Araliaceae Species 0.000 description 2
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 2
- 235000003140 Panax quinquefolius Nutrition 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 235000008434 ginseng Nutrition 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 238000005303 weighing Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000005266 casting Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000000465 moulding Methods 0.000 description 1
- 230000004297 night vision Effects 0.000 description 1
- 238000011017 operating method Methods 0.000 description 1
- 230000003716 rejuvenation Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000006641 stabilisation Effects 0.000 description 1
- 238000011105 stabilization Methods 0.000 description 1
- 239000003381 stabilizer Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012384 transportation and delivery Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0212—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61G—TRANSPORT, PERSONAL CONVEYANCES, OR ACCOMMODATION SPECIALLY ADAPTED FOR PATIENTS OR DISABLED PERSONS; OPERATING TABLES OR CHAIRS; CHAIRS FOR DENTISTRY; FUNERAL DEVICES
- A61G5/00—Chairs or personal conveyances specially adapted for patients or disabled persons, e.g. wheelchairs
- A61G5/04—Chairs or personal conveyances specially adapted for patients or disabled persons, e.g. wheelchairs motor-driven
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B62—LAND VEHICLES FOR TRAVELLING OTHERWISE THAN ON RAILS
- B62K—CYCLES; CYCLE FRAMES; CYCLE STEERING DEVICES; RIDER-OPERATED TERMINAL CONTROLS SPECIALLY ADAPTED FOR CYCLES; CYCLE AXLE SUSPENSIONS; CYCLE SIDE-CARS, FORECARS, OR THE LIKE
- B62K11/00—Motorcycles, engine-assisted cycles or motor scooters with one or two wheels
- B62K11/007—Automatic balancing machines with single main ground engaging wheel or coaxial wheels supporting a rider
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/20—Instruments for performing navigational calculations
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0231—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
Landscapes
- Engineering & Computer Science (AREA)
- Remote Sensing (AREA)
- Radar, Positioning & Navigation (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Aviation & Aerospace Engineering (AREA)
- Veterinary Medicine (AREA)
- Public Health (AREA)
- General Health & Medical Sciences (AREA)
- Animal Behavior & Ethology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Electromagnetism (AREA)
- Mechanical Engineering (AREA)
- Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
Abstract
本申请包括用于控制机器人的***和方法。该***可以包括处理器,执行包括接收信息、建立地图、规划路线和生成控制参数的操作;移动模块,执行控制参数以四处移动并保持传感器以感测信息;以及平衡环,用于支撑传感器以感测信息。
Description
技术领域
本申请涉及用于控制智能轮椅的***和方法。特别地,本申请涉及移动机器人和用于控制图像检测及处理、路径探索和机器人移动的控制方法。
背景技术
可移动智能设备(例如清洁机器人和智能平衡车)在日常生活中变得普遍。仅举几例,智能轮椅可以改善许多使用轮椅的人的生活。智能轮椅可以使用机器人***来实现其功能和特征。为了在现有区域内提供服务,机器人***被配置为识别环境并基于现有的地图自动移动。随着人们对服务需求的快速扩展,能够更新地图、规划路线和自动移动的多功能机器人***是必要的,能适应更复杂区域的智能机器人也是更受期望的。能够了解周围环境并协助其用户完成各种任务的智能轮椅是有必要的。
发明内容
本申请的一方面涉及一种***,该***包括储存指令的存储器和与该存储器通信的处理器。当执行指令时,处理器可以被配置为通过通信端口与移动模块和平衡环建立通信。处理器可以被配置为从移动模块和平衡环支撑的传感器获取信息以构建地图。处理器也可以被配置为基于该信息规划路线。处理器也可以被配置为基于该信息生成控制参数。
本申请的另一方面涉及一种方法。该方法可以包括通过通信端口与移动模块和平衡环建立通信。该方法可以包括从由移动模块和平衡环支撑的传感器获取信息以构建地图。该方法还可以包括基于该信息规划路线。该方法还可以包括基于该信息生成控制参数。
本申请的另一方面涉及一种体现计算机程序产品的非暂时性计算机可读介质。计算机程序产品包括在处理器和移动模块之间及在处理器和平衡环之间建立通信的通信端口。通信端口可以使用应用程序接口(API)来建立通信。
附图说明
本申请的方法、***和/或程序将作为示例性的实施例进一步描述。这些示例性实施例将通过附图进行详细描述。这些实施例是非限制性的示例性实施例,在这些实施例中,各图中相同的编号表示相同的结构,其中:
图1是根据本申请的一些实施例所示的示例性机器人控制***的图;
图2是根据本申请的一些实施例所示的如图1所示的机器人控制***中的示例性机器人的框图;
图3是根据本申请的一些实施例所示的如图2所示的机器人中的示例性处理器的框图;
图4是根据本申请的一些实施例所示的如图3所示的处理器中的示例性分析模块的框图;
图5是根据本申请的实施例所示的处理器中的示例性导航模块的框图;
图6是根据本申请的实施例所示的机器人的运动控制的示例;
图7是根据本申请的实施例所示的机器人的运动控制的示例;
图8是根据本申请的实施例所示的如图2所示的传感器的示例性架构的框图。
图9是根据本申请的一些实施例所示的如图2所示的机器人中的示例性机器人主体的框图;
图10示出了根据本申请的实施例所示的移动模块的示例;
图11是根据本申请的一些实施例所示的如图9所示的机器人主体中的示例性平衡环的示意图;
图12示出了根据本申请的一些实施例所示的简单的机器人***;
图13是根据本申请实施例所示的确定控制机器人的控制参数的示例性过程的流程图;
图14是根据本申请实施例所示的由处理器构建地图的示例性过程的流程图;
图15是根据本申请的实施例所示的确定一个或以上参考帧的示例性过程的流程图;
图16是根据本申请的实施例所示的获取深度信息、强度信息和位移信息的示例性过程的流程图;
图17A是根据本申请实施例所示的确定位移起始值的示例性过程的流程图;
图17B示出了根据本申请实施例所示的确定机器人姿态的示例性过程的流程图;
图18示出了根据本申请的实施例所示的陀螺仪和加速计如何确定水平面和Z轴之间的角度的框图;
图19是根据本申请的实施例所示的确定与帧相关的角度的示例性过程的流程图;以及
图20是根据本申请的实施例所示的调整智能电话中的传感器的垂直移动的示例性过程的流程图。
具体实施方式
在下面的详细描述中,为了对相关的披露有全面的理解,本申请列举了大量具体的细节并举例说明。然而,显而易见地,对本领域的技术人员来讲,可以在没有这些细节的情况下实施本申请。在其他情况下,为了避免不必要地模糊本申请的一些方面,本申请已经以相对高的级别概略地描述了公知的方法、程序、***、组件和/或电路。
应当理解,本文使用的“***”、“设备”、“单元”和/或“模块”是用于区分不同级别的不同组件、元件、部件、部分或组件的一种方法。然而,如果其他术语可以实现相同的目的,则可通过其他表达来替换这些术语。
应当理解,当一种设备、单元或模块被描述为“在…上”、“连接”或“耦合”在另一种设备、单元或模块上,除非上下文另有明确说明,这些设备、单元或模块可以直接与其他设备、单元或模块连接、耦合或通信连接,或其他中间设备、单元或模块也可存在。在本申请中,术语“和/或”可包括任何一个或以上相关所列条目或其组合。
本申请中所使用的术语仅用于描述特定的示例性实施例,而并不旨在限制本申请的范围。如本申请使用的单数形式“一”、“一个”及“该”可以同样包括复数形式,除非上下文明确提示例外情形。应当理解,如在本说明书中所示,术语“包括”、“包含”仅提示存在所述特征、整体、步骤、操作、组件和/或部件,但并不排除存在或添加一个或以上其他特征、整体、步骤、操作、组件、部件和/或其组合的情况。
根据以下对附图的描述,本申请所述的和其他的特征、操作方法、相关元件的功能和经济的结构更加显而易见,这些都构成说明书的一部分。然而,应当理解,附图仅仅是为了说明和描述的目的,并不旨在限制本申请的范围。应当理解的是,附图并不是按比例绘制的。
此外,虽然本申请中的***和方法主要是关于确定智能轮椅中使用的机器人的状态,但是还应该理解,这仅是一个示例性实施例。本申请的***或方法可以应用于任何其他种类的智能设备或车辆。例如,本申请的***或方法可以应用于不同的智能设备***,包括平衡轮、无人地面车辆(UGV)、智能轮椅等或其任意组合。机器人***还可以包括应用管理和/或分发的任何智能***,例如,用于发送和/或接收快递、将人或物品运送到某些位置的***。
智能轮椅可以使用机器人来执行功能,例如,感测或检测周围环境、四处移动、抬起物体、收集人类用户的信息。本申请中的术语“机器人”、“智能设备(smart device)”、“智能设备(intelligent device)”、“智能机器人(smart robot)”和“智能机器人(intelligent robot)”可互换使用,指可自动移动和操作的装置、设备或工具。本申请中的术语“用户设备”可表示用于请求服务、订购服务或协助提供服务的工具。本申请中的术语“移动终端”可以指用户可以用来控制机器人的工具或界面。
本申请中使用的定位技术可以包括全球定位***(Global Positioning System,GPS)、全球卫星导航***(Global Navigation Satellite System,GLONASS)、北斗导航***(Compass Navigation System,COMPASS)、伽利略定位***、准天顶卫星***(Quasi-Zenith Satellite System,QZSS)、无线保真(Wireless Fidelity,WiFi)定位技术等或其任意组合。以上定位技术中的一个或以上可以在本申请中交换使用。
本申请描述了机器人控制***100作为示例性***,以及为机器人控制***100构建地图和规划路线的方法。本文披露的方法和***旨在基于例如由机器人控制***100获取的信息构建地图。获取的信息可以由位于机器人控制***100中的传感器捕获。传感器可以是光学或磁电类型。例如,传感器可以是相机或激光雷达。
图1是根据本申请的一些实施例所示的示例性机器人控制***100的示意图。机器人控制***100可包括机器人110、网络120、用户设备130和数据库140。用户可以通过网络120使用用户设备130来控制机器人。
机器人110和用户设备130可以建立通信。机器人110和用户设备130之间的通信可以是有线的或无线的。例如,机器人110可以经由网络120建立与用户设备130或数据库140的通信,并且可以基于来自用户设备130的操作命令(例如,移动或旋转的命令)无线地控制机器人110。又例如,机器人110可以通过电缆或光纤直接连接到用户设备130或数据库140。在一些实施例中,机器人110可以基于机器人110和数据库140之间的通信,更新或下载存储在数据库140中的地图。例如,机器人110可以在线路过程中捕获信息。可以分析该信息以构建地图。在一些实施例中,整个地图可以存储在数据库140中。在一些实施例中,由机器人110构建的地图可以包括与整个地图的一部分相对应的信息。在一些实施例中,整个地图的相应部分可以由构建的地图更新。当机器人110确定目的地和自身的位置时,机器人110可以访问存储在数据库140中的整个地图。机器人110可以选择包括目的地以及机器人110的位置的整个地图的一部分规划路线。在一些实施例中,机器人110可以基于所选择的地图、目的地和机器人110的位置规划路线。在一些实施例中,机器人110可以采用用户设备130的地图。例如,用户设备130可以从因特网下载地图。用户设备130可以基于从因特网下载的地图指示机器人110的移动。又例如,用户设备130可以从数据库140下载最新的地图。一旦确定了目的地和机器人110的位置,用户设备130就可以将从数据库140获取的地图发送到机器人110。在一些实施例中,用户设备130可以是机器人110的一部分。在一些实施例中,如果构建的地图包括机目的地和器人110的位置,则机器人110可以基于由其自身构建的地图规划路线。
网络120可以是单个网络或是不同网络的组合。例如,网络120可以是局部区域网络(LAN)、广域网(WAN)、公共网络、专用网络、无线局部区域网络(WLAN)、虚拟网络、城域网(MAN)、公共交换电话网络(PSTN)或其任意组合。例如,机器人110可以通过蓝牙与用户设备130和数据库140通信。网络120还可以包括各种网络接入点。例如,诸如基站或互联网交换点之类的有线或无线接入点可以包括在网络120中。用户可以从用户设备130向机器人110发送控制操作并通过网络120接收结果。机器人110可以直接或经由网络120访问存储在数据库140中的信息。
可以连接到网络120的用户设备130可以是移动设备130-1、平板电脑130-2、手提电脑130-3、内置设备130-4等或其任意组合。在一些实施例中,移动设备130-1可包括可穿戴设备、智能移动设备、虚拟现实设备、增强现实设备等或其任意组合。在一些实施例中,用户可以通过可穿戴设备控制机器人110,可穿戴设备可以包括智能手环、智能鞋袜、智能眼镜、智能头盔、智能手表、智能衣服、智能背包、智能配件等或其任意组合。在一些实施例中,智能移动设备可以包括智能电话、个人数字助理(PDA)、游戏设备、导航设备、销售终端设备(POS)等或其任意组合。在一些实施例中,虚拟现实设备和/或增强型虚拟现实设备可以包括虚拟现实头盔、虚拟现实眼镜、虚拟现实眼罩、增强现实头盔、增强现实眼镜、增强现实眼罩等或其任意组合。例如,该虚拟现实设备和/或增强现实设备可包括Google Glass、Oculus Rift、HoloLens、Gear VR等。在一些实施例中,内置设备130-4可以包括机载计算机、机载电视等。在一些实施例中,用户设备130可以是具有定位技术的设备,用于定位用户的位置和/或与用户相关的用户设备130的位置。例如,路线可以由机器人110基于地图、目的地以及机器人110的位置确定。机器人110的位置可以由用户设备130获取。在一些实施例中,用户设备130可以是具有图像捕获能力的设备。例如,可以基于由图像传感器(例如,相机)捕获的信息更新存储在数据库140中的地图。在一些实施例中,用户设备130可以是机器人110的一部分。例如,具有相机、陀螺仪和加速计的智能电话可以由机器人110的平衡环支撑。用户设备130可以用作检测信息的传感器。又例如,处理器210和存储器220可以是智能电话的一部分。在一些实施例中,用户设备130还可以充当机器人110的用户的通信接口。例如,用户可以触摸用户设备130的屏幕以选择机器人110的控制操作。
数据库140可以存储整个地图。在一些实施例中,可能存在多个与数据库140无线连接的机器人。与数据库140连接的每个机器人可以基于由其传感器捕获的信息构建地图。在一些实施例中,由机器人构建的地图可以是整个地图的一部分。在更新过程中,构建的地图可以替换整个地图中的相应区域。当需要规划从机器人110的位置到目的地的路线时,每个机器人可以从数据库140下载地图。在一些实施例中,从数据库140下载的地图可以是整个地图的一部分,至少包括机器人110的位置和目的地。数据库140还可以存储与机器人110连接的用户有关的历史信息。历史信息可以包括,例如用户的先前操作或与机器人110如何动作有关的信息。如图1所示,机器人110和用户设备130可以访问数据库140。
应当注意,上述机器人控制***100仅用于说明***的一个例子,并不意图限制本申请的范围。
图2是根据本申请的一些实施例所示的如图1所示的机器人控制***100中的示例性机器人110的框图。机器人110可包括处理器210、存储器220、传感器230、通信端口240、输入/输出接口250和机器人主体260。传感器230可以获取信息。在一些实施例中,信息可包括图像数据、陀螺仪数据、加速计数据、位置数据和距离数据。处理器210可以处理该信息以生成一个或以上结果。在一些实施例中,一个或以上结果可以包括位移信息和深度信息(例如,相机在相邻两帧内的位移、物体在相邻两帧内的深度)。在一些实施例中,处理器210可以基于一个或以上结果构建地图。处理器210还可以进一步将地图发送到数据库140以进行更新。在一些实施例中,处理器210可包括一个或以上处理器(例如单核处理器或多核处理器)。仅作为示例,处理器210可包括中央处理器(CPU)、特定应用积体电路(ASIC)、特定应用指令集处理器(ASIP)、图像处理器(GPU)、物理运算处理单元(PPU)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、可编程逻辑器件(PLD)、控制器、微控制器单元、精简指令集计算机(RISC)、微处理器等或其任意组合。
存储器220可以存储用于处理器210的指令,并且当执行指令时,处理器210可以执行本申请中描述的一个或以上功能或操作。例如,存储器220可以存储由处理器210执行的指令以处理由传感器230获取的信息。在一些实施例中,存储器220可以自动存储由传感器230获取的信息。存储器220还可以存储由处理器210生成的一个或以上结果(例如,用于构建地图的位移信息和/或深度信息)。例如,处理器210可以生成一个或以上结果并将其存储在存储器220中,并且处理器210可以从存储器220读取一个或以上结果以构建地图。在一些实施例中,存储器220可以存储由处理器210构建的地图。在一些实施例中,存储器220可以存储由处理器210从数据库140或用户设备130获取的地图。例如,存储器220可以存储由处理器210构建的地图,然后可以将构建的地图发送到数据库140以更新整个地图的相应部分。又例如,存储器220可以暂时地存储由处理器210从数据库140或用户设备130中下载的地图。在一些实施例中,存储器220可包括大容量存储器、可移动存储器、易失性读写内存、只读存储器(ROM)等或其任意组合。示例性的大容量存储器可以包括磁盘、光盘、固态磁盘等。示例性可移动存储器可以包括闪存驱动器、软盘、光盘、内存卡、压缩盘、磁带等。示例性易失性读写内存可以包括随机存取存储器(RAM)。示例性随机存取存储器可包括动态随机存取存储器(DRAM)、双倍数据速率同步动态随机存取存储器(DDR SDRAM)、静态随机存取存储器(SRAM)、晶闸管随机存取存储器(T-RAM)和零电容随机存取存储器(Z-RAM)等。示例性随机存取存储器可以包括掩模随机存取存储器(MROM)、可编程随机存取存储器(PROM)、可擦除可编程随机存取存储器(EPROM)、电可擦除可编程随机存取存储器(EEPROM)、光盘随机存取存储器(CD-ROM)或数字通用盘随机存取存储器。
传感器230可以包括任何能够获取图像数据、陀螺仪数据、加速计数据、位置数据、物体或障碍物的距离数据,以及任何可以由机器人110使用以执行本申请中描述的各种功能的其他数据的设备。例如,传感器230可包括一个或以上夜视摄像头,用于在低光环境下获取图像数据。在一些实施例中,由传感器230获取的数据和/或信息可以存储在存储器220中并且可以由处理器210处理。在一些实施例中,一个或以上传感器230可以安装在机器人主体260中。更具体地,例如,一个或以上图像传感器可以安装在机器人主体260中的平衡环中。一个或以上导航传感器、陀螺仪和加速计可以安装在平衡环和移动模块中。在一些实施例中,传感器230可以在处理器210的控制下自动探索周围环境并检测位置。例如,传感器230可用于动态感测或检测物体、障碍物等的位置。
通信端口240可以是用于在机器人110内通信的端口。也就是说,通信端口240可以在机器人110的组件之间交换信息。在一些实施例中,通信端口240可以将处理器210的信息/数据/信号发送到机器人110的内部部分以及从机器人110的内部部分接收信号。例如,处理器210可以从安装在机器人主体260中的传感器230接收信息。又例如,处理器210可以通过通信端口240将控制操作发送到机器人主体260。发送-接收过程可以通过通信端口240实现。通信端口240可以根据某些无线通信规范接收各种无线信号。在一些实施例中,通信端口240可以作为用于已知无线局域通信的通信模块,例如Wi-Fi、蓝牙、红外(IR)、超宽带(UWB)、ZigBee等,或者作为移动通信模块,例如3G、4G或长期演进(LTE),或者作为用于有线通信的已知通信方法。在一些实施例中,通信端口240不限于用于从内部设备发送/接收信号的元件,并且可以实现为用于交互式通信的接口。例如,通信端口240可以通过使用应用程序接口(API)的电路在处理器210和机器人110的其他部分之间建立通信。在一些实施例中,用户设备130可以是机器人110的一部分。在一些实施例中,处理器210和用户设备130之间的通信可以由通信端口240执行。
输入/输出接口250可以是用于机器人110与诸如数据库140的其他外部设备之间的通信的接口。在一些实施例中,输入/输出接口250可以控制来自/到机器人110的数据传输。例如,最新的地图可以从数据库140发送到机器人110。又例如,基于由传感器230获取的信息构建的地图可以从机器人110发送到数据库140。输入/输出接口250还可进一步包括各种附加元件,例如,用于无线通信的无线通信模块(未示出)或用于转动广播信号的调谐器(未示出),取决于机器人110的设计类型以及用于从外部输入接收信号/数据的元件。输入/输出接口250可以作为用于已知无线局域通信的通信模块,例如Wi-Fi、蓝牙、红外(IR)、超宽带(UWB)、ZigBee等,或者作为移动通信模块,例如3G、4G或长期演进(LTE),或者作为有线通信的已知输入/输出接口。在一些实施例中,输入/输出接口250可以作为用于已知有线通信的通信模块,例如光纤或通用串行总线(USB)。例如,机器人110可以通过USB接口与计算机的数据库140交换数据。
机器人主体260可以是持有处理器210、存储器220、传感器230、通信端口240和输入/输出接口250的主体。机器人主体260可以执行来自处理器210的指令以来回移动、旋转传感器230以获取或检测区域信息。在一些实施例中,机器人主体260可包括移动模块和平衡环。参见本申请中其他地方的机器人主体260的描述,例如,图9及其描述。在一些实施例中,传感器230可以分别安装在移动模块和平衡环中。
图3是根据本申请的一些实施例所示的示例性处理器210的框图。如图3所示,处理器210可包括分析模块310、导航模块320和机器人控制模块330。
分析模块310可以分析从传感器230获取的信息并生成一个或以上结果。分析模块310可以基于一个或以上结果构建地图。在一些实施例中,构建的地图可以传输到数据库140。在一些实施例中,分析模块可以从数据库140接收最新地图并发送到导航模块320。导航模块320可以规划从机器人110的位置到目的地的路线。在一些实施例中,整个地图可以存储在数据库140中。地图分析模块310的构建可以对应于整个地图的一部分。更新过程可以用构建的地图替换整个地图的相应部分。在一些实施例中,由分析模块310构建的地图可以是最新的并且包括机器人110的位置和目的地。分析模块310可以不从数据库140接收地图。由分析模块310构建的地图可以发送到导航模块320以规划路线。机器人控制模块330可以基于导航模块320计划的路线生成机器人110的控制参数。在一些实施例中,控制参数可以暂时存储在存储器220中。在一些实施例中,控制参数可以传输到机器人主体260以控制机器人110的运动。参见本申请中其它地方的控制参数的确定描述,例如,图6和图7及其描述。
图4是根据本申请的一些实施例所示的如图3所示的处理器210中的示例性分析模块310的框图。在一些实施例中,分析模块310可包括图像处理单元410、位移确定单元420、深度确定单元430、闭环控制单元440和物体检测单元450。
图像处理单元410可以处理图像数据以执行机器人110的一个或以上功能。图像数据可以包括例如,一个或多个图像(例如,静止图像、视频帧等)、每个帧中的每个像素点的初始深度、位移,和/或任何与一个或以上图像相关的其他数据。在一些实施例中,位移可以包括采集两个相邻的时间间隔之间车轮的位移和相机相对于车轮的位移。图像数据可以由能够提供图像数据的任何设备提供,例如传感器230(例如,一个或以上图像传感器)。在一些实施例中,图像数据可包括关于多个图像的数据。图像可以包括视频帧序列(也称为“帧”)。每个帧可以是帧、场等。
在一些实施例中,图像处理单元410可以处理图像数据以生成机器人110的运动信息。例如,图像处理单元410可以处理两个帧(例如,第一帧和第二帧)以确定帧之间的差值。然后,图像处理单元410可以基于差值生成机器人110的运动信息。在一些实施例中,第一帧和第二帧可以是相邻的帧(例如,当前帧和前一帧、当前帧和后续帧等)。或者,第一帧和第二帧不必是相邻的帧。更具体地,例如,图像处理单元410可以确定第一帧中和第二帧中的一个或以上相应像素点以及包括相应像素点的一个或以上区域(也称为“重叠区域”)。响应于确定第一像素点和第二像素点对应于同一物体,图像处理单元410可以将第一帧中的第一像素点确定为第二帧中的第二像素点的相应像素点。第一像素点以及第二帧中其对应的像素点(例如,第二像素点)可以对应于相对于物体的相同位置。在一些实施例中,图像处理单元410可以在第一帧中识别在第二帧中没有相应像素点的一个或以上像素点。图像处理单元410可以进一步标识包括所识别的像素点的一个或以上区域(也被称为“非重叠区域”)。非重叠区域可以对应于传感器230的运动。在一些实施例中,在第二帧中没有相应像素点的第一帧中的非重叠区域中的像素点可以在进一步处理(例如,由位移确定单元420和/或深度确定单元430执行的处理)中省略。
在一些实施例中,图像处理单元410可以识别第一帧中的像素点和第二帧中相应像素点的强度。在一些实施例中,可以获取第一帧中的像素点和第二帧中的相应像素点的强度,作为确定第一帧和第二帧之间的差值的标准。例如,RGB强度可以被选择作为确定第一帧和第二帧之间的差值的标准。像素点、对应的像素点和RGB强度可以被发送到位移确定单元420和/或深度确定单元430,用于确定第二帧的位移和深度。在一些实施例中,深度可以表示两个帧中的物体的空间深度。在一些实施例中,位移信息可以是帧的一组位移。在一些实施例中,深度信息可以是帧的一组深度。帧、位移信息和深度信息可用于构建地图。
位移确定单元420可以基于由图像处理单元410提供的数据和/或任何其他数据确定位移信息。位移信息可以包括一个或以上位移,其可以表示生成图像数据的传感器230(例如,捕获多个帧的图像传感器)之一的运动信息。例如,位移确定单元420可以在两个帧中获取关于相应像素点的数据,例如在第一帧和第二帧中获取。该数据可以包括,例如,相应像素点的一个或以上值,例如像素点的灰度值、强度等。位移确定单元420可以基于任何合适的颜色模型确定像素点的值,例如RGB(红色、绿色和蓝色)模型、HSV(色调、饱和度和亮度)模型等。在一些实施例中,位移确定单元420可以确定两个帧中相应像素点对的值之间的差值。例如,图像处理单元410可以识别第一帧中的第一像素点及其在第二帧中的相应像素点(例如,第二像素点)。可以基于第一像素点的帧的变换确定第二像素点。第一像素点和第二像素点可以对应于同一物体。位移确定单元420可以进一步确定第一像素点的值与第二像素点的值之间的差值。在一些实施例中,可以通过最小化第一帧和第二帧中的相应像素点对之间的差值的总和确定位移。
在一些实施例中,位移确定单元420可以确定表示位移初始估计值的初始位移ξji,1。例如,初始位移ξji,1可以基于如下等式(1)确定:
其中,x表示第一帧中像素点的帧;ω(x,Di(x),ξji)表示第二帧中相应像素点的帧,ω(x,Di(x),ξji)和x可以在物体的相同相对位置,ω(x,Di(x),ξji)是摄像机的位移ξji之后的x的变换像素点。Ω是一组像素点对,每对像素点包括第一帧中的像素点和第二帧中的相应像素点。Ii(x)是像素点x的RGB强度,并且Ij(ω(x,Di(x),ξji))是像素点ω(x,Di(x),ξji)的RGB强度。
ω(x,Di(x),ξji)是相机的位移ξji之后的像素点x的变换帧。在一些实施例中,位移确定单元420可以基于起始值ξji和初始深度Di(x)计算相应的像素点ω(x,Di(x),ξji)。在一些实施例中,初始深度Di(x)是零矩阵。在一些实施例中,起始值ξji可以是变量。为了获取初始位移ξji,1,位移确定单元420可能需要如迭代函数(1)中所示的位移的起始值ξji。在一些实施例中,可以基于车轮的位移ξji′和相机相对于车轮的位移ξji″确定位移的起始值ξji。参见本申请中其他地方关于起始值ξji的描述,例如,图17A及其描述。在一些实施例中,位移的起始值可以是ξji′以及ξji″的矢量和。尝试起始值和起始值ξji周围的变量,可以获取两个帧的最小差值。
在一些实施例中,深度确定单元430可以确定更新的深度Di,1(x).。更新的深度Di,1(x)可以由函数(2)确定
其中,深度Di(x)表示函数(2)中两个帧的差值的变量,当两个帧的差值最小时,将值Di,1(x)确定为更新的深度。在一些实施例中,初始深度Di(x)可以是零矩阵。
位移确定单元420还可以基于更新的深度Di,1(x)产生更新的位移ξji,1u。在一些实施例中,可以基于函数(1),通过用更新的深度Di,1(x)替换初始深度Di(x),获取更新的位移ξji,1u。
闭环控制单元440可以执行闭环检测。例如,闭环控制单元440可以检测机器人110是否返回先前访问过的位置并且可以基于该检测更新位移信息。在一些实施例中,响应于确定机器人110已返回到路线中先前访问的位置,闭环控制单元440可使用一般图形优化(g2o)检测循环调整帧的更新的位移以减少误差。g2o是用于减少非线性误差的通用优化框架。可以将经调整的更新的帧的位移设置为位移信息。在一些实施例中,如果机器人110包括深度传感器,例如激光雷达,则深度可以直接获取,位移可以基于函数(1)确定,然后可以通过闭环控制单元440调整位移以生成调整的位移。
尤其是,当深度传感器检测到深度信息时,基于函数(1),位移信息可以是一组位移,然后由闭环控制单元440调整。当深度信息是一组更新的深度时,位移信息可以是在计算函数(1)、函数(2)之后的得到一组位移并且由闭环控制单元440调整。
在一些实施例中,闭环控制单元440可以基于帧、位移信息和深度信息生成地图。
分析模块310还可以包括物体检测单元450,物体检测单元450可以检测障碍物、物体和从机器人110到障碍物和物体的距离。在一些实施例中,可以基于由传感器230获取的数据检测障碍物和物体。例如,物体检测单元450可以基于由声纳、红外距离传感器、光流传感器或激光雷达捕获的距离数据检测物体。
图5是处理器210中的示例性导航模块320的框图。在一些实施例中,导航模块320可包括映射单元510和路线规划单元520。在一些实施例中,映射单元510可以从数据库140接收地图。在一些实施例中,映射单元510可以处理用于路线规划的地图。在一些实施例中,地图可以是数据库140中整个地图的一部分。例如,包括确定的目的地和机器人110的位置的地图可以适合于规划路线。在一些实施例中,从数据库140获取的地图可以是3D地图。在一些实施例中,映射单元510可以通过投影技术将3D地图转换成2D地图。也就是说,映射单元510可以将3D地图中的物体分割为像素点并将像素点投影到水平陆地表面以生成2D地图。一旦通过映射单元510获取2D地图,路线规划单元520可以基于所传送的2D地图规划从机器人110的位置到目的地的路线。
机器人控制模块330可以基于导航模块320中的路线规划单元520规划的路线确定控制参数。在一些实施例中,机器人控制模块330可以将路线分段成一组路线段。机器人控制模块330可以获取路线段的一组连接点。在一些实施例中,两个路线段之间的连接点可以是前段的停止点和后段的开始点。可以基于开始点和停止点确定路线段的控制参数。
在一些实施例中,在机器人110在某一路线段的运动期间,机器人110的停止点可能与路线段的预定停止点不匹配,路线规划单元520可基于不匹配的停止点(机器人110的新位置)和目的地规划新路线。在一些实施例中,机器人控制模块330可以对新路线进行分段并生成一个或以上新路线段,然后机器人控制模块330可以为每个新的路线段确定一组控制参数。
图6和图7是机器人110的运动控制的示例。如图6所示,移动模块围绕具有角速度ω的点ICC移动。移动模块具有两个车轮,包括以速度vl移动的左轮610和以速度vr移动的右轮620。在一些实施例中,左轮610和右轮620可具有距离L。左轮610和右轮620到两个轮的中心点O的距离都为L/2。中心点O和点ICC之间的距离为R。
图7示出了确定机器人110的控制参数的示例。如图7所示,机器人110的移动模块在dt内从点O1移动到点O2。点O1和点O2具有相对于点ICC的角度α。使用dt、L、R和α,可以计算左轮的速度vl和右轮的速度vr。
图8是根据本申请的实施例所示的如图2所示的传感器230的示例性架构的框图。传感器230可包括图像传感器810、加速计820、陀螺仪830、声纳840、红外距离传感器850、光学流量传感器860、激光雷达870和导航传感器880。
图像传感器810可以捕获图像数据。在一些实施例中,分析模块310可以基于图像数据构建地图。在一些实施例中,图像数据可以包括帧、每个帧中的每个像素点的初始深度和位移。在一些实施例中,初始深度和位移可用于确定深度和位移。关于获取深度和位移的细节可以在本申请的其他地方找到。(例如,与图4中的函数(1)有关的描述)。在一些实施例中,位移可以包括采集两个相邻的时间间隔内车轮的位移和相机相对于车轮的位移。
加速计820和陀螺仪830可以一起起作用以保持移动模块和平衡环的平衡。对于从传感器230获取稳定信息来说,平衡是必要的。在一些实施例中,加速计820和陀螺仪830可以一起作用以在阈值范围内抑制俯仰姿态。在一些实施例中,加速计820和陀螺仪830可以由移动模块和平衡环支撑。参见本申请中其他地方的关于保持平衡的描述,例如,图18和图19及其描述。
声纳840、红外距离传感器850和光学流量传感器860可用于定位机器人110。在一些实施例中,可以采用声纳840、红外距离传感器850和光学流量传感器860中的任何一个或任意组合定位机器人110。
激光雷达870可以检测一帧中物体的深度。也就是说,激光雷达870可以获取每个帧的深度,不需要通过处理器210中的分析模块310计算深度,并且激光雷达870获取的深度可以直接用于计算如图4中的函数(1)所描述的位移。可以通过闭环控制单元440调整基于函数(1)获取的位移。
声纳840、红外距离传感器850和光学流量传感器860可以通过检测机器人110与物体或障碍物之间的距离定位机器人110,导航传感器880可以将机器人110定位在一个大致的区域或位置。在一些实施例中,导航传感器880可以使用任何类型的定位***定位机器人110,例如全球定位***(GPS)、北斗导航或定位***以及伽利略定位***。
图9是根据本申请的一些实施例所示的如图2所示的机器人110中的示例性机器人主体260的框图。机器人主体260可包括壳体910、移动模块920和平衡环930。壳体910可以是机器人主体260的壳体,机器人主体260的壳体可以保护机器人110中的模块和单元。移动模块920可以是机器人110中的移动操作组件。在一些实施例中,移动模块920可以基于由处理器210中的机器人控制模块330生成的控制参数移动。例如,在由机器人控制模块330所确定的路线的路线段中,可以基于路线段的开始点和停止点确定控制参数。然后,控制参数可以从机器人控制模块330发送到移动模块920,以使机器人110从开始点移动到停止点。在一些实施例中,平衡环930可以是图8中描述的至少一个传感器的支持部件。平衡环930可以支撑图像传感器810(例如,相机)以获取帧。在一些实施例中,平衡环930可以支撑图像传感器810以捕获帧。在一些实施例中,平衡环930可以支撑加速计820和陀螺仪830,保持由平衡环支撑的传感器的平衡以获取稳定的信息。在一些实施例中,平衡环930可以支撑声纳840、红外距离传感器850和光学流量传感器860中的至少一个,以检测机器人110与物体或障碍物之间的距离。在一些实施例中,平衡环930还可以支撑激光雷达870或其他传感器以检测深度信息或其他信息。在一些实施例中,导航传感器880可以安装在平衡环930中。在一些实施例中,平衡环930支撑的传感器可以集成到智能电话中。
图10示出了移动模块920的示例。移动模块920可包括运动单元和载体1010。运动单元可包括两个车轮,并且两个车轮可包括左轮610和右轮620。载体1010可以携带声纳840或光学流量传感器860以检测物体或障碍物。在一些实施例中,载体1010可包括加速计820(图10中未示出)和陀螺仪830(图10中未示出)以保持移动模块920的平衡。在一些实施例中,载体1010可以包括其他传感器,例如红外距离传感器850,以获取其他所需信息。
如图9中所描述的,平衡环930可以支撑传感器320以获取信息以生成地图、规划路线或生成控制参数。图11是根据本申请的一些实施例所示的如图9所示的机器人主体260中的示例性平衡环930的示意图。在一些实施例中,平衡环930可包括控制围绕X轴旋转的转子1170、控制围绕Y轴旋转的转子1150和控制围绕Z轴旋转的转子1130。X轴可以是水平平面中的第一轴。Y轴可以是水平平面中的第二轴。Z轴可以是垂直于水平面的垂直轴。在一些实施例中,平衡环930可包括连接转子1170和传感器的杆1180、连接转子1150和转子1170的杆1160以及连接转子1130和转子1150的杆1140。在一些实施例中,平衡环930可包括连接部分1110和连杆1114,及动态Z缓冲杆1120。在一些实施例中,传感器可以集成在用户设备130(例如,智能电话)中。用户设备130可以包括传感器,诸如图像传感器810、加速计820、陀螺仪830和导航传感器880。还可以包括连接块1190,用于将用户设备130放置于平衡环930中。在平衡环930的操作期间,可以通过用户设备130中的传感器获取信息。在一些实施例中,可以通过调整平衡环930的姿态控制用户设备130中的传感器以获取适当的信息。在一些实施例中,可以通过旋转围绕X、Y和Z轴的转子1170、转子1150和转子1130调节平衡环930的姿态。
传统的3轴平衡环可用于航空摄影。为了使平衡环930在沿路线移动期间稳定,在平衡环930中采用动态Z缓冲杆1120。动态Z缓冲杆1120可以在Z轴上保持稳定。在一些实施例中,动态Z缓冲杆1120可以是与Z轴一起伸展和缩回的伸缩杆。在平衡环930中操作动态Z缓冲杆1120的方法可以在图20中示出。可以基于由机器人控制模块330生成的控制参数控制转子1130、1150和1170的旋转以及动态Z缓冲杆1120的垂直移动。
在机器人110中可以存在多个模块和单元,图12示出了根据本申请的一些实施例所示的机器人110的简单***。如图12所示,机器人110可以由处理器210、移动模块920和平衡环930组成。在一些实施例中,处理器210可包括分析模块310、导航模块320和机器人控制模块330。移动模块920可包括运动单元1210、第一类型传感器1220和通信端口240。平衡环930可包括平衡环控制单元1230、通信端口240和第二类型传感器1240。在一些实施例中,处理器210可以发送控制参数以控制移动模块920中的运动单元1210及平衡环930中的平衡环控制单元1230。
在一些实施例中,第一类型传感器1220和第二类型传感器1240可以获取信息。分析模块310可以处理所获取的信息并构建地图。在一些实施例中,构建的地图可以被传输到数据库140。为了确定到目的地的路线,可能需要用于导航的地图,分析模块310可以从数据库140下载最新地图并将其发送到导航模块320。导航模块320可以处理最新地图并确定从机器人的定位位置到目的地的路线。在一些实施例中,整个地图可以存储在数据库140中。在一些实施例中,分析模块310可以不用下载整个地图,包括机器人110的位置和目的地在内的整个地图的一部分可以足够用于规划路线。在一些实施例中,由分析模块310构建的地图可以包括机器人110的位置和目的地,并且地图是数据库140中的最新地图,由分析模块310建立的地图可以被发送到导航模块320以用于规划路线。导航模块320可以包括映射单元510和路线规划单元520。在一些实施例中,映射单元510可以基于来自分析模块310的最新地图或构建的地图生成用于路线规划的2D地图。路线规划单元520可以规划路线,该路线可以被传输到机器人控制模块330。机器人控制模块330可以将路线分成一个或以上路线段。机器人控制模块330还可以为每个路线段生成控制参数。对于每个路线段,有一个开始点和一个停止点,一个路线段的停止点可能是下一个路线段的开始点。在一些实施例中,在机器人110某一路线段期间,机器人110的停止位置可能与路线段的预定停止点不匹配,这可能影响路线的其余部分。基于不匹配的位置(机器人110的新位置)和目的地,有必要重新规划路线。在一些实施例中,在分路线段之后如果检测到不匹配,则由导航模块320可以操作重新规划过程。
在一些实施例中,由移动模块920中的第一类型传感器1220和平衡环930中的第二类型传感器1240捕获的信息可能不适合构建地图。如果移动模块920中的第一类型传感器1220和平衡环930中的第二类型传感器1240不稳定,机器人控制模块330可以生成控制参数以调整移动模块920和平衡环930的姿态以稳定第一类型传感器1220和第二类型传感器1240。
传感器可以安装在移动模块920和平衡环930中。在一些实施例中,第一类型传感器1220可包括加速计820、陀螺仪830、声纳840、红外距离传感器850、光学流量传感器860、激光雷达870和导航传感器880中的至少一个。在一些实施例中,第二类型传感器1240可包括图像传感器810、加速计820、陀螺仪830、声纳840、红外距离传感器850、光学流量传感器860、激光雷达870和导航传感器880中的至少一个。
如图12所示,处理器210可以通过通信端口240建立与移动模块920和平衡环930的通信。在一些实施例中,通信端口240可以是任何形式。例如,通信端口240可以是有线或无线收发器。在一些实施例中,通信端口240可以实现为用于交互式通信的接口。例如,通信端口240可以使用API通过电路建立处理器210和机器人110的其他部分之间的通信。在一些实施例中,API是一组用于构建软件和应用程序的子例程定义、协议和工具。API可以通过提供所有构建块,使得开发程序更加容易,之后将其组合在一起。在一些实施例中,API协议可用于设计用于无线通信的电路,例如Wi-Fi、蓝牙、红外(IR)、超宽带(UWB)、ZigBee等,或者例如3G、4G或长期演进(LTE)的移动通信模块。API可以分离底层硬件(例如,移动模块920或平衡环930)和控制部分(例如,处理器210)。在一些实施例中,处理器210(例如,智能电话的一部分)可以通过调用通信端口240中的API控制移动模块920中的车轮的移动和平衡环930中的图像传感器(例如,相机)的姿态。在一些实施例中,移动模块920中的第一类型传感器1220可以将信息(例如,位置数据)发送到智能电话。在一些实施例中,平衡环930中的第二类型传感器1240可以将信息(相机的姿态)发送到智能电话。
图13是用于确定控制机器人110的控制参数的示例性过程1300的流程图。过程1300可以基于存储在存储器220中的指令由机器人110的处理器210执行。
在步骤1310,处理器210可以从传感器230获取信息。如图3和图12中所述,处理器210中的分析模块310可以通过API通信端口240从移动模块920中的第一类型传感器1220和平衡环930中的第二类型传感器1240接收信息。在一些实施例中,可以分析信息以控制机器人110的移动。在一些实施例中,可以分析信息以保持机器人110中的移动模块920和平衡环930的稳定。
在步骤1320,处理器210可以基于所接收的信息确定目的地和机器人110的位置。例如,处理器210中的分析模块310可以从传感器230(例如,声纳、红外距离传感器、光流传感器、激光雷达或导航传感器)接收位置数据。在一些实施例中,目的地可以由用户通过输入/输出接口250确定。例如,用户可以输入机器人110的目的地。处理器210可以使用目的地信息确定机器人110的移动路线。在一些实施例中,处理器210可以基于所接收的信息确定机器人110的位置。在一些实施例中,处理器210可以基于由传感器230获取的信息确定机器人110的大致位置。例如,处理器210可以基于导航传感器880使用定位***(例如,GPS)获取的信息确定机器人110的粗略位置。又例如,处理器210可以基于由声纳840、红外距离传感器850和光学流量传感器860中的至少一个获取的信息确定机器人110的精确位置。
在步骤1330中,处理器210可以基于目的地和机器人110的位置获取地图。地图可用于规划路线。在一些实施例中,包括城市的多个点的整个地图可以存储在数据库140中。当处理器210在步骤1310和步骤1320确定目的地和机器人110的位置时,可能需要包括机器人110的位置和目的地的地图规划位置和目的地之间的路线。在一些实施例中,包括机器人110的位置和目的地的地图可以是整个地图的一部分。在一些实施例中,处理器210中的分析模块310可以基于目的地和机器人110的位置从数据库140获取整个地图的正确部分。在一些实施例中,分析模块310可以基于由传感器230获取的信息构建地图。可以将构建的地图发送到数据库140以更新整个地图。在一些实施例中,构建的地图可以包含机器人110的位置和目的地。所生成的地图可以由导航模块320用于规划路线。
在步骤1340,可以基于在步骤1330所获取的地图,规划从机器人110的位置到目的地的路线。路线规划可以由导航模块320执行。在一些实施例中,如图12所示,导航模块320可以通过映射单元510将获取的地图转换为2D地图。然后,路线规划单元520可以基于2D地图规划从机器人110的位置到目的地的路线。
在步骤1350中,机器人控制单元330可以将计划路线分割为一个或以上路线段。可以基于阈值进行路线分段。例如,如果规划路线的长度短于阈值,则可以不执行路线分段。在一些实施例中,可以基于存储在存储器220中的指令,由机器人控制单元330来执行分割操作。
在步骤1360中,机器人控制模块330可以基于步骤1350中的一个或以上路线段,确定用于控制机器人的控制参数。在一些实施例中,由机器人控制模块330在步骤1350分割的每个路线段可以具有起始点和停止点。在一些实施例中,机器人控制模块330可以基于起始点和停止点来确定路线段的控制参数。确定两点之间控制参数的例子可以在图6和图7中找到。在一些实施例中,控制参数可以是时间相关的。例如,当机器人110在路线段中以直线经过点1和点2时,机器人110可以在从点1到点2的不同时间帧内采用不同的速度。在一些实施例中,控制参数可用于在机器人110沿着路线移动期间稳定机器人110。例如,可以稳定移动模块920和平衡环930以便准确地感测信息。再例如,沿颠簸路线,控制参数可用于保持平衡环930沿垂直轴的稳定性。
在一些实施例中,当机器人110基于预定的控制参数经过一段路线段时,机器人110可以通过机器人控制模块330停止在相对于该路线段预定停止点的不匹配点处。导航模块320可以基于机器人110的不匹配点(新位置)和目的地重新规划新路线。机器人控制模块330可以将新路线分段为一个或以上新路线段,机器人控制模块330可以为一个或以上新的路线段确定机器人110的新控制参数。在一些实施例中,可以在将该路线段的实际位置与预定停止点进行比较后估计每个路线段之后的不匹配情况。
图14是用于由处理器210生成地图的示例性过程1400的流程图。构建地图的过程可以由分析模块310基于由传感器230获取的信息执行。
在步骤1410,分析模块310可以从图像传感器810获取图像数据。在一些实施例中,图像数据可包括多个帧、帧中每个像素点的初始深度和/或位移。位移可包括车轮的位移和相机相对于车轮的位移。在一些实施例中,初始深度可以设置为零矩阵。在一些实施例中,如果例如具有深度检测功能的激光雷达或相机包括在传感器230中,则可以通过图像传感器810获取深度信息。
在步骤1420中,可以由分析模块310基于图像数据确定一个或以上参考帧。在一些实施例中,图像数据可以包括多个帧、帧中每个像素点的初始深度和/或位移。在一些实施例中,分析模块310可以从多个帧中选择一个或以上参考帧。参见本申请中其他地方的描述,例如,图15及其描述。在一些实施例中,可以使用一个或以上参考帧帧构建地图。
在步骤1430,分析模块310可以基于一个或以上参考帧确定深度信息和位移信息。也就是说,图像数据可以由分析模块310处理,以获取每个帧的位移信息和深度信息。用于确定位移信息和深度信息的方法可以在本申请的其他地方找到。参见例如,图4及其描述。
在步骤1440中,分析模块310可以基于一个或以上参考帧、深度信息和位移信息,生成地图。在一些实施例中,可以通过连接一个或以上参考帧与其对应的位移生成3D图。
可以基于多个参考帧及其对应的位移信息和深度信息确定地图。在一些实施例中,步骤1420和步骤1430可以没有特定的顺序。例如,用于确定一个或以上参考帧的步骤1420可以包括用于确定位移信息和深度信息的步骤1430。也就是说,步骤1430可以是用于确定步骤1420中的一个或以上参考帧的子步骤。如图4中所述,可以处理图像数据并生成一个或以上结果。在一些实施例中,一个或以上结果可以包括位移信息和深度信息(例如,相邻两个帧内的相机的位移、两个相邻帧中的物体的深度)。在一些实施例中,可以通过g2o环路检测技术调整一个或以上结果,以生成调整后的位移信息。在一些实施例中,调整后的位移信息可用于生成地图作为位移信息。分析模块310可以基于一个或以上参考帧及其对应的深度信息和位移信息生成地图。
图15是用于确定一个或以上参考帧的示例性过程1500的流程图。该过程可以由分析模块310、位移确定单元420和深度确定单元430基于由图像传感器810获取的图像数据执行。更具体地,分析模块310可以基于一个或以上结果(例如,位移信息和深度信息),确定一个或以上参考帧。
在步骤1502中,分析模块310可以获取包括多个帧的图像数据。多个帧可以包括至少第一帧和第二帧。在一些实施例中,第一帧可以是先前帧,第二帧可以是第一帧的后续帧。也就是说,图像传感器810可以在某一时刻捕获第一帧并且在下一时刻捕获第二帧。也就是说,多个帧可以在时域中彼此相邻。
在步骤1504中,分析模块310可以将第一帧确定为第一参考帧帧,并将第二帧确定为第一候选帧帧。
在步骤1506中,分析模块310可以在第一参考帧中确定与第一候选帧中的一个或以上第二像素点相对应的一个或以上第一像素点。在一些实施例中,第一参考帧和第一候选帧可以具有重叠的区域。第一像素点和第二像素点可以表示第一参考帧和第一候选帧的重叠区域中的物体的相同位置。在一些实施例中,一个或以上第一像素点可以是图4中描述的一组像素点Ω。在一些实施例中,第一参考帧和第一候选帧可以没有重叠区域。也就是说,第一参考帧中的区域在第一候选帧中可能没有相应的区域。第一参考帧中的像素点和第一候选帧可以不被选为第一像素点和/或第二像素点。
在步骤1508中,分析模块310可以确定第一参考帧和第一候选帧的深度信息、强度信息和/或位移信息。关于确定深度信息、强度信息和位移信息的方法,参考结合图4的描述。
在步骤1510中,分析模块310可以确定候选帧是否是最后一帧。也就是说,分析模块310可以检测相对于时域的候选帧帧的下一帧是否存在。如果是,则过程前进到步骤1512,否则过程前进到步骤1514。
在步骤1512中,如果候选帧是最后一帧,则分析模块310可以输出参考帧及其对应的深度和/或位移。在一些实施例中,分析模块310可以遍历多个帧以获取所有参考帧及其对应的深度信息和位移信息。
在步骤1514中,分析模块310可以确定第一参考帧和第一候选帧之间的差值。在一些实施例中,第一参考帧和第一候选帧之间的差值可以基于第一参考帧和第一候选帧的强度信息确定。在一些实施例中,第一参考帧的强度可以由一个或以上第一像素点的RGB强度确定。第一候选帧的强度可以由一个或以上第二像素点的RGB强度确定。在一些实施例中,可以在步骤1504中确定第一参考帧和第一候选帧的强度信息。在一些实施例中,在确定第一参考帧和第一候选帧之间的差值之前,可以在步骤1514中确定第一参考帧和第一候选帧的强度信息。
在步骤1516中,分析模块310可以确定第一参考帧和第一候选帧之间的差值是否大于阈值。如果是,则过程前进到步骤1518,否则过程前进到步骤1520。
在步骤1518中,如果第一参考帧与第一候选帧之间的差值大于阈值,分析模块310可以将第一候选帧指定为第二参考帧,并将多个帧中帧第一候选帧之后的下一帧指定为第二参考帧。在一些实施例中,候选帧的下一帧可以是紧邻于候选帧之后的一帧。然后,过程1500可以将第二参考帧和第二候选帧发送到步骤1506以重复上述处理过程。
在步骤1520中,如果第一参考帧与第一候选帧之间的差值不大于阈值,分析模块310可以将多个帧中第一候选帧之后的第三帧指定为第二候选帧帧。然后,过程1500可以将第二参考帧和第二候选帧发送到步骤1506以重复上述处理过程。
在一些实施例中,步骤1518或步骤1520可以输出新的参考帧和新的候选帧以供分析模块310分析。在一些实施例中,当参考帧和候选帧之间的差值大于阈值时,可以通过用候选帧替换参考帧生成新的参考帧。在一些实施例中,可以通过用下一帧或第三帧代替候选帧来生成候选帧。也就是说,候选帧的更换可能是无条件的,参考帧的更换可能是有条件的。
当在步骤1512中生成地图时,过程1500可以终止。在一些实施例中,可以指定一些终止标准,使得过程1500可以及时结束。例如,可以在过程1500中实施计数器,使得过程1500中的循环数可以不大于预定的阈值。
图16是用于获取参考帧和/或候选帧的深度信息和位移信息的示例性过程1600的流程图。在一些实施例中,该过程可以由分析模块310执行。在一些实施例中,该过程可以类似于如图4所示的获取的位移和深度的方法。
在步骤1610中,分析模块310可以从图像传感器810获取的多个帧中获取第一帧和第二帧。在一些实施例中,分析模块310可以从图像传感器捕获的多个帧中选择第一帧和第二帧。在一些实施例中,第一帧和第二帧可以相对于时域彼此相邻。第一帧可以是先前帧,第二帧可以是后续帧。
在步骤1620中,分析模块310可以在第一帧中识别与第二帧中的一个或以上第二像素点相对应的一个或以上第一像素点。可以使用如图15所示的步骤1506中描述的过程来执行识别第一帧中的像素点与第二帧中的像素点。
在步骤1630,分析模块310可以基于一个或以上第一像素点和一个或以上第二像素点获取初始深度。在一些实施例中,初始深度可以设置为零矩阵。在步骤1640中,分析模块310可以基于一个或以上第一像素点、一个或以上第二像素点和/或初始深度确定初始位移。例如,可以使用如图4中所述的函数(1)来执行步骤1640。
在步骤1650中,分析模块310可以基于一个或以上第一像素点、一个或以上第二像素点和初始位移确定更新的深度。在一些实施例中,步骤1650可以使用如图4所述的函数(2)来执行。
在步骤1660中,分析模块310可以基于一个或以上第一像素点、一个或以上第二像素点和/或更新的深度确定更新的位移。在一些实施例中,步骤1660可以通过使用如图4所述的函数(1),通过使用更新的深度替换初始深度执行。
如图4的描述所示,可以计算初始位移以确定函数(1)中的位移。如函数(1)所示,可能需要位移的起始值确定初始位移。图17A是用于确定位移的起始值的示例性过程1700的流程图。该过程可以由分析模块310基于由图像传感器810获取的图像数据执行。
在步骤1710中,可以通过分析模块310获取图像数据。在一些实施例中,可以基于图像数据确定位移的起始值。更具体地,可以基于图像数据中的位移确定位移的起始值。在一些实施例中,图像数据中的位移可以包括采集两个相邻的时间间隔之间运动单元(两个车轮)的位移和相机相对于运动单元的位移。
在步骤1720中,分析模块310可以基于图像数据获取与运动单元相关的第一位移。在一些实施例中,运动单元可包括两个车轮。在一些实施例中,与运动单元相关的第一位移可以是在一段时间内两个车轮的中心点的位移。在一些实施例中,与运动单元相关的第一位移可以是在一段时间内安装导航传感器的点的位移。在一些实施例中,导航传感器可以安装在两个车轮的中心点。在一些实施例中,时间段可以是图像传感器810获取两个帧之间的时间。
在步骤1730中,分析模块310可以获取与图像传感器810相关的相对于运动单元的第二位移。在一些实施例中,第二位移可以是图像传感器810相对于运动单元的相对位移。在一些实施例中,图像传感器810可以是相机。
在步骤1740中,分析模块310可以基于第一位移和第二位移确定与图像传感器810相关的第三位移。在一些实施例中,第三位移可以被计算为第一位移和第二位移的矢量和。在一些实施例中,第三位移可以是用于确定初始位移的位移起始值。
在机器人110的移动期间,需要控制平衡环以获取机器人110的精确姿态。在一些实施例中,可以通过控制平衡环930中的轴的旋转角度来控制机器人110的姿态。图17B示出了用于确定机器人110姿态的示例性过程1705的流程图。该过程可以由分析模块310基于平衡环930中的轴的旋转角度来执行。
在步骤1715中,可以通过分析模块310获取图像数据。如图17A所示,图像数据可包括帧、位移和初始深度。在一些实施例中,图像数据还可以包括旋转信息。
在步骤1725中,分析模块310可以获取相对于参考轴的第一旋转角。第一旋转角可以基于图像数据与移动模块920(例如,移动模块920的一部分,运动单元)相关。在一些实施例中,可以基于来自图像数据的旋转信息获取与运动单元相关的相对于参考轴的第一旋转角。在一些实施例中,第一旋转角可以是一段时间内的角度。在一些实施例中,时间段可以是图像传感器810获取两个帧之间的时间。
在步骤1735中,分析模块310可以获取在该时间段内与图像传感器810相关的相对于移动模块920(例如,移动模块920的一部分,运动单元)的第二旋转角。在一些实施例中,第二旋转角可以是图像传感器810相对于运动单元的相对角度。在一些实施例中,图像传感器810可以是相机。
在步骤1745中,分析模块310可以确定与图像传感器810相关的相对于参考轴的第三旋转角度。在一些实施例中,可以基于第一旋转角和第二旋转角确定第三旋转角度。在一些实施例中,第三角度可以被计算为第一旋转角和第二旋转角的矢量和。
在机器人110的移动期间,传感器230可以安装在移动模块920和平衡环930中以感测信息。在一些实施例中,传感器230可以安装在载体1010中,或者传感器可以安装在由平衡环930支撑的智能电话中。在一些实施例中,移动模块920和平衡环930可能需要全方向稳定以获取精确和可靠的信息。图18描述了一种相对于水平面保持平衡的方法。
图18给出了示例性框图1800,示出了陀螺仪和加速计如何确定水平面和Z轴之间的角度。在一些实施例中,水平面可以是载体1010的承载平面。可以基于陀螺仪数据和加速计数据确定水平面和Z轴之间的角度。在一些实施例中,水平面可以是平衡环930的相对平面,以检测平衡环930的俯仰角。
如图18所示,该***可包括组合器1810、积分器1820、组合器1840和组件提取器1830。组合器1810、积分器1820、组合器1830和组件提取器1840可以形成用于确定输出角度的反馈回路。对于每个由图像传感器810获取的帧,水平面和Z轴之间的角度可以由积分器1820获取。假设图像传感器810在时间t1拍摄第一帧,图像传感器810在时间t2拍摄第二帧。在时间t1以及t2,可以通过陀螺仪830和加速计820获取角速度和角度。在一些实施例中,可以处理时间t1的与第一帧相关的反馈输出角度θ1、时间t2的陀螺仪数据和加速计数据,以确定时间t2的与第二帧相关的输出角度θ2。
首先,可以在时间t1处理第一帧的陀螺仪数据和加速计数据。积分器1820可以生成与第一帧相关的输出角度θ1。加速计820可以生成第一角度θ1′。组合器1840可以基于输出角度θ1和第一角度θ1′生成第二角度θ1″。在一些实施例中,第二角度θ1″可以通过从第一角度θ1′减去输出角度θ1的矢量计算得到。补偿角速度ω1″可以由组件提取器1830基于第二角度θ1″确定。在一些实施例中,组件提取器1830可以是微分器。
其次,可以在时间t2处理第二帧的陀螺仪数据和加速计数据。陀螺仪830可以生成角速度ω2。组合器1810可以基于角速度ω2和补偿角速度ω1″生成修正的角速度ω2′。在一些实施例中,修正的角速度ω2′可以计算为角速度ω2和补偿角速度ω1″的矢量和。结果,积分器1820可以基于修正的角速度ω2′在时间t2输出与第二帧相关的角度θ2。
在一些实施例中,图18中描述的方法可以由处理器210执行。例如,陀螺仪数据和加速计数据可以通过API通信端口发送到处理器210(例如,智能电话的一部分)。对于每个帧,处理器210可以确定捕获帧时的输出角度。在一些实施例中,可以在每次拍摄每个帧时检测水平面和Z轴之间的角度。可以基于与帧相关的实时输出角度来保持水平平衡。
图19是用于确定与帧相关的角度的示例性过程1900的流程图。过程1900可以由处理器210执行。
在步骤1910中,处理器210可以获取包括第一帧和第二帧的多个帧。在一些实施例中,第一帧和第二帧可以由图像传感器810在相邻时刻捕获。例如,在时间t1由图像传感器810拍摄第一帧,在时间t2由图像传感器810拍摄第二帧,t1至t2之间的时间可以是图像传感器810的采样间隔。
在步骤1920中,可以由处理器210获取与第一帧和/或第二帧相关的陀螺仪数据和加速计数据。在一些实施例中,陀螺仪数据和加速计数据可以包括诸如角速度和角度的参数。
在步骤1930中,处理器210可以基于与第一帧相关的加速计数据确定第一角度数据。在一些实施例中,第一角度数据可包括第一角度。
在步骤1940中,处理器210可以基于第一角度数据和与第一帧相关的角度数据确定补偿角度数据。在一些实施例中,与第一帧相关的角度数据可以是与第一帧相关的输出角度。在一些实施例中,可以通过向量减去与第一帧相关的输出角度处理第一角度数据。在一些实施例中,补偿角度数据可以是补偿角速度。补偿角速度可以由组件提取器1830基于与第一角度数据中的第一帧相关的输出角度的差值确定。
在步骤1950中,处理器210可以基于补偿角度数据和与第二帧相关的陀螺仪数据确定第二角度数据。在一些实施例中,第二角度数据可以是在采集第二帧的时间t2处由与第二帧相关的处理器210检测到的水平面和Z轴之间的角度。
如图18和图19所示,与第二帧相关的输出角度可以通过与第一帧相关的输出角度反馈。利用该循环和陀螺仪数据和加速计数据,每个帧的输出角度可以由处理器210获取。在一些实施例中,水平面和Z轴之间的角度可能超过阈值,然后可以生成用于保持平衡的控制信号。
图18和图19中示出了用于保持移动模块920或平衡环930的水平平衡的方法。在机器人110的移动期间,安装在由平衡环930支撑的智能电话中的传感器可以获取信息。在一些实施例中,信息可包括图像数据、陀螺仪数据、加速计数据和由其他传感器获取的数据。处理器210需要保持水平平衡,以使智能手机中的第二类型传感器1240稳定地获取信息。另一方面,对于平衡环930支撑的智能电话中的第二类型传感器1240来说,为了稳定地获取信息,道路可能并不平坦。在一些实施例中,为获取稳定信息,对智能手机中的传感器来说,垂直轴的平衡也是必须的。
图20是用于调整智能电话中第二类型传感器1240的垂直移动的示例性过程2000的流程图。在一些实施例中,该过程可以由处理器210执行,基于由机器人控制单元330生成的控制参数控制图11中所示的动态Z缓冲杆1120。
在步骤2010中,处理器210可以获取电动机沿旋转轴的第一位移。在一些实施例中,旋转轴可以是Z轴。在一些实施例中,第一位移可以是沿Z轴的矢量。
在步骤2020中,处理器210可以确定电动机沿Z轴的位移是否大于阈值。在一些实施例中,阈值可以是第二类型传感器1240可以稳定地获取信息的限制值。
在步骤2030中,处理器210可以生成第一控制信号,使得当电动机的位移大于阈值时使电动机移动到初始位置。在一些实施例中,初始位置可以是预设的并且适合于获取信息的位置。
在步骤2040中,处理器210可以将第一控制信号输出到电动机,以使安装在智能手机中的第二类型传感器1240回到初始位置,以获取稳定的信息。
在步骤2050中,当电动机的位移不大于阈值时,处理器210可以获取沿旋转轴的第一加速度。在一些实施例中,可以通过安装在智能电话中的加速计820获取加速度。
在步骤2060中,处理器210可以基于第一加速度生成第二加速度。在一些实施例中,第二加速度可以是第一加速度的滤波加速度。
在步骤2070中,处理器210可以基于第二加速度确定第二位移。在一些实施例中,可以基于第二加速度的整数值计算第二位移。在一些实施例中,第二位移可以是沿Z轴的矢量。
在步骤2080中,处理器210可以基于第二位移生成第二控制信号以控制电动机的移动。在一些实施例中,第二控制信号可以基于第二位移和阈值确定位移的剩余容差,然后处理器210可以控制智能电话中的传感器沿Z轴移动。
在步骤2090中,处理器210可以将第二控制信号输出到电动机。
尽管本申请已经示出并描述了各种参考的实施例,本领域普通技术人员将理解,在不脱离由所附权利要求及其等同物限定的本申请的精神和范围的情况下,可以在其中进行形式和细节上的各种改变。
Claims (20)
1.一个***,包括:
移动模块,包括车轮、载体和第一类型传感器;
平衡环,包括第二类型传感器;
处理器,包括分析器、导航器和控制器,
其中所述处理器被配置为:
与所述平衡环和所述移动模块分别建立通信;
从所述第二类型传感器和所述第一类型传感器分别获取信息;
确定所述目的地和所述***的位置;
基于所述信息生成地图;
基于所述地图规划所述***的路线;
基于所述路线和所述信息确定所述***的控制参数;以及
基于所述控制参数控制所述***的移动和姿态。
2.根据权利要求1所述的***,其特征在于,所述处理器使用应用程序接口分别与所述平衡环和所述移动模块进行通信。
3.根据权利要求1所述的***,其特征在于,所述处理器进一步被配置为:
将所述路线划分为一个或以上路线段;以及
基于所述一个或以上路线段确定用于控制所述***的所述控制参数。
4.根据权利要求1所述的***,其特征在于,所述处理器进一步被配置为:
获取图像数据;
基于所述图像数据,获取与所述移动模块相关的相对于参考轴的第一旋转角;
获取与图像传感器相关的相对于所述移动模块的第二旋转角;以及
基于所述第一旋转角和所述第二旋转角,确定与所述图像传感器相关的相对于参考轴的第三旋转角。
5.根据权利要求4所述的***,其特征在于,所述第三旋转角是所述第一旋转角和所述第二旋转角的矢量和。
6.根据权利要求1所述的***,其特征在于,所述处理器进一步被配置为:
获取图像数据;
基于所述图像数据确定具有像素点的至少一个参考帧;
基于对应于至少一个参考帧的图像数据确定深度信息和位移信息;以及
基于所述至少一个参考帧、所述深度信息和所述位移信息生成地图。
7.根据权利要求6所述的***,其特征在于,所述处理器进一步被配置为:
获取包括至少第一帧和第二帧的多个帧;
确定所述第一帧作为第一参考帧,所述第二帧作为第一候选帧;
确定所述第一参考帧中的至少一个第一像素点,其对应于所述第一候选帧中的至少一个第二像素点;
确定所述第一参考帧和所述第一候选帧的深度信息、强度信息和/或位移信息;
如果所述第一候选帧是所述最后一帧,则输出所述第一参考帧、所述深度信息、所述强度信息和所述位移信息;
如果所述第一候选帧不是所述最后一帧,则基于所述第一参考帧和所述第一候选帧的所述强度信息,确定所述第一参考帧和所述第一候选帧之间的差值;
如果所述第一参考帧与所述第一候选帧之间的所述差值大于阈值,则确定所述第一候选帧作为第二参考帧及所述多个帧中的下一帧作为第二候选帧;
如果所述第一参考帧与所述第一候选帧之间的所述差值不大于阈值,则确定所述多个帧中的第三帧作为第二候选帧;以及
遍历所述多个帧以获取所有参考帧及其相应的深度信息和位移信息。
8.根据权利要求7所述的***,其特征在于,所述处理器进一步被配置为:
基于所述至少一个第一像素点和/或所述至少一个第二像素点获取初始深度信息;
基于所述图像传感器的位移的起始值和/或所述初始深度信息确定图像传感器的初始位移;
基于所述至少一个第一像素点、所述至少一个第二像素点,和/或所述所述图像传感器的所述初始位移确定更新的深度信息;以及
基于所述图像传感器的所述位移起始值和/或所述更新的深度信息,确定所述图像传感器的更新的位移。
9.根据权利要求8所述的***,其特征在于,所述处理器进一步被配置为:
基于所述图像数据获取与所述车轮相关的第一位移;
获取与图像传感器相关的相对于所述车轮的第二位移;
基于所述第一位移和所述第二位移,确定与所述图像传感器相关的第三位移;
将所述第三位移设为所述位移的起始值,以确定所述初始位移。
10.根据权利要求9所述的***,其特征在于,所述第三位移是所述第一位移和所述第二位移的矢量和。
11.一种方法,包括:
在处理器和平衡环之间、在所述处理器和移动模块之间建立通信;
通过所述处理器,从所述第二类型传感器和所述第一类型传感器分别获取信息;
通过所述处理器,确定目的地和机器人的位置;
通过所述处理器,基于所述信息,获取地图;
通过所述处理器,基于所述地图,规划从所述机器人的所述位置到所述目的地的路线;
基于所述路线和所述信息,确定所述移动模块和平衡环的控制参数;以及
基于所述控制参数,控制所述机器人的移动和姿态。
12.根据权利要求11所述的方法,其特征在于,所述处理器使用应用程序接口分别与所述平衡环和所述移动模块进行通信。
13.根据权利要求11所述的方法,进一步包括:
通过所述处理器,将所述路线划分为一个或以上路线段;以及
基于所述一个或以上路线段,确定用于控制所述机器人的所述控制参数。
14.根据权利要求11所述的方法,进一步包括:
获取图像数据;
基于所述图像数据,获取与所述移动模块相关的相对于参考轴的第一旋转角;
获取与图像传感器相关的相对于所述移动模块的第二旋转角;以及
基于所述第一旋转角和所述第二旋转角,确定与所述图像传感器相关的相对于参考轴的第三旋转角。
15.根据权利要求14所述的方法,其特征在于,所述第三旋转角是所述第一旋转角和所述第二旋转角的矢量和。
16.根据权利要求11所述的方法,进一步包括:
获取图像数据;
基于所述图像数据确定具有像素点的至少一个参考帧;
基于对应于至少一个参考帧的图像数据确定深度信息和位移信息;以及
基于所述至少一个参考帧、所述深度信息和位移信息生成地图。
17.根据权利要求16所述的方法,进一步包括:
获取包括至少第一帧和第二帧的多个帧;
将所述第一帧确定为第一参考帧,所述第二帧为第一候选帧;
确定所述第一参考帧中的至少一个第一像素点,其对应于所述第一候选帧中的至少一个第二像素点;
确定所述第一参考帧和所述第一候选帧的深度信息、强度信息和/或位移信息;
如果所述第一候选帧是所述最后一帧,则输出所述第一参考帧、所述深度信息、所述强度信息和/或位移信息;
如果所述第一候选帧不是所述最后一帧,则基于所述第一参考帧和所述第一候选帧帧的所述强度信息,确定所述第一参考帧与所述第一候选帧之间的差值;
如果所述第一参考帧与所述第一候选帧之间的所述差值大于阈值,则确定所述第一候选帧作为第二参考帧及所述多个帧中的下一帧作为第二候选帧;
如果所述第一参考帧与所述第一候选帧之间的所述差值不大于阈值,确定所述多个帧中的第三帧作为第二候选帧;以及
遍历所述多个帧以获取所有参考帧及其相应的深度信息和位移信息。
18.根据权利要求17所述的方法,进一步包括:
基于所述至少一个第一像素点和/或所述至少一个第二像素点获取初始深度信息;
基于所述图像传感器的位移的起始值和/或所述初始深度信息确定所述图像传感器的初始位移;
基于所述至少一个第一像素点、所述至少一个第二像素点和/或所述图像传感器的初始位移确定更新的深度信息;以及
基于所述位移起始值和/或所述更新的深度信息,确定所述图像传感器的更新的位移。
19.根据权利要求18所述的方法,进一步包括:
基于所述图像数据获取与所述车轮相关的第一位移;
获取与图像传感器相关的相对于所述车轮的第二位移;
基于所述第一位移和所述第二位移,确定与所述图像传感器相关的第三位移;以及
将所述第三位移设为所述位移的起始值,以确定所述初始位移。
20.根据权利要求19所述的方法,其特征在于,所述第三位移是所述第一位移和所述第二位移的矢量和。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2017/072100 WO2018133073A1 (en) | 2017-01-22 | 2017-01-22 | Systems and methods for controlling intelligent wheelchair |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110099656A true CN110099656A (zh) | 2019-08-06 |
Family
ID=62907621
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780079497.2A Pending CN110099656A (zh) | 2017-01-22 | 2017-01-22 | 用于控制智能轮椅的***和方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11294379B2 (zh) |
CN (1) | CN110099656A (zh) |
WO (1) | WO2018133073A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112902963A (zh) * | 2021-01-21 | 2021-06-04 | 西安交通大学 | 一种智能轮椅的路径规划避障方法 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220066438A1 (en) * | 2018-12-19 | 2022-03-03 | Honda Motor Co., Ltd. | Device for controlling guidance robot, guidance system in which same is used, and method for controlling guidance robot |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104990560A (zh) * | 2015-07-31 | 2015-10-21 | 小米科技有限责任公司 | 导航路线生成方法及装置 |
CN205215560U (zh) * | 2015-10-28 | 2016-05-11 | 熊勇 | 基于arduino***自动行驶的可折叠轮毂电机智能轮椅 |
CN105809687A (zh) * | 2016-03-08 | 2016-07-27 | 清华大学 | 一种基于图像中边沿点信息的单目视觉测程方法 |
EP3067770A1 (en) * | 2013-11-07 | 2016-09-14 | Fuji Machine Mfg. Co., Ltd. | Automatic driving system and automatic travel machine |
CN105984485A (zh) * | 2015-03-23 | 2016-10-05 | 丰田自动车株式会社 | 自动驾驶装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102600026A (zh) * | 2012-03-09 | 2012-07-25 | 常州汉迪机器人科技有限公司 | 全向智能电动轮椅 |
US10099379B2 (en) * | 2014-08-21 | 2018-10-16 | Elwha Llc | Systems, devices, and methods including a wheelchair-assist robot |
CN104535966A (zh) | 2014-10-14 | 2015-04-22 | 桂林电子科技大学 | 智能轮椅室内导航***及其控制方法 |
CN108139758A (zh) * | 2015-10-09 | 2018-06-08 | 深圳市大疆创新科技有限公司 | 基于显著性特征的载运工具定位 |
-
2017
- 2017-01-22 WO PCT/CN2017/072100 patent/WO2018133073A1/en active Application Filing
- 2017-01-22 US US16/469,176 patent/US11294379B2/en active Active
- 2017-01-22 CN CN201780079497.2A patent/CN110099656A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3067770A1 (en) * | 2013-11-07 | 2016-09-14 | Fuji Machine Mfg. Co., Ltd. | Automatic driving system and automatic travel machine |
CN105984485A (zh) * | 2015-03-23 | 2016-10-05 | 丰田自动车株式会社 | 自动驾驶装置 |
CN104990560A (zh) * | 2015-07-31 | 2015-10-21 | 小米科技有限责任公司 | 导航路线生成方法及装置 |
CN205215560U (zh) * | 2015-10-28 | 2016-05-11 | 熊勇 | 基于arduino***自动行驶的可折叠轮毂电机智能轮椅 |
CN105809687A (zh) * | 2016-03-08 | 2016-07-27 | 清华大学 | 一种基于图像中边沿点信息的单目视觉测程方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112902963A (zh) * | 2021-01-21 | 2021-06-04 | 西安交通大学 | 一种智能轮椅的路径规划避障方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2018133073A1 (en) | 2018-07-26 |
US11294379B2 (en) | 2022-04-05 |
US20190384300A1 (en) | 2019-12-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10715963B2 (en) | Navigation method and device | |
CN105143907B (zh) | 定位***和方法 | |
CN110225736B (zh) | 一种智能轮椅的环境信息收集与反馈***及方法 | |
AU2013334573B2 (en) | Augmented reality control systems | |
CN104956404B (zh) | 具有功率有效深度传感器使用的实时三维重建 | |
CN106447766B (zh) | 一种基于移动设备单目相机的场景重建方法及装置 | |
US20210056751A1 (en) | Photography-based 3d modeling system and method, and automatic 3d modeling apparatus and method | |
CN110494792A (zh) | ***设备的视觉跟踪 | |
CN109906069B (zh) | 一种具有医疗监测及反应功能的智能轮椅*** | |
KR100855657B1 (ko) | 단안 줌 카메라를 이용한 이동로봇의 자기위치 추정 시스템및 방법 | |
CN110553648A (zh) | 一种用于室内导航的方法和*** | |
WO2019221800A1 (en) | System and method for spatially registering multiple augmented reality devices | |
CN106625673A (zh) | 狭小空间装配***及装配方法 | |
CN109648558A (zh) | 机器人曲面运动定位方法及其运动定位*** | |
CN110197615A (zh) | 用于生成地图的方法及装置 | |
CN114111776A (zh) | 定位方法及相关装置 | |
AU2016401548B2 (en) | Multi-measurement-mode three-dimensional measurement system and measurement method | |
CN111083633A (zh) | 移动终端定位***及其建立方法、移动终端的定位方法 | |
CN113352338A (zh) | 机械臂控制方法、装置、电子设备以及拉花*** | |
CN110099656A (zh) | 用于控制智能轮椅的***和方法 | |
CN110177532A (zh) | 一种基于大数据及人工智能的智能轮椅*** | |
CN110072501B (zh) | 一种智能轮椅的机械传动控制方法与*** | |
CN108801260B (zh) | 基于水下机器人的数据处理方法及装置 | |
JP7293057B2 (ja) | 放射線量分布表示システムおよび放射線量分布表示方法 | |
CN116342700A (zh) | 坐标系转换关系确定方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190806 |