用于稳定运载工具所捕获视频的运载工具轨迹确定的制作方法

文档序号:15884140发布日期:2018-11-09 18:31阅读:160来源:国知局
用于稳定运载工具所捕获视频的运载工具轨迹确定的制作方法

远程控制运载工具已经变得越来越流行。对于无人驾驶飞行器(uav)情况尤其如此,uav通常包括允许uav更容易飞行、尤其是由新手用户飞行的稳定技术。这些远程控制运载工具中的一些还包括相机,相机允许捕获视频并且将其传输回用户以在用户的位置处的屏幕上显示,从而向用户提供运载工具“看到”的内容的第一人称视图(fpv)(例如,在用户在运载工具的位置处的情况下,用户会看到的内容)。虽然来自这些运载工具的第一人称视图视频是有益的,但并非没有问题。一个这样的问题是视频的回放可能在一些用户中引起晕动病。



技术实现要素:

提供本“发明内容”是为了以简化的形式介绍概念的选择,这些概念将在下面的“具体实施方式”中进一步描述。本“发明内容”不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。

根据一个或多个方面,标识针对运载工具的粗略航路点。确定针对运载工具的从运载工具的当前位置到粗略航路点的轨迹,该轨迹减小运载工具的移动方向的突然变化,减小运载工具的速度的突然变化,以及减小运载工具的加速度的突然变化。沿着轨迹选择一个或多个精细航路点,并且向移动控制系统传送命令,该命令用于将运载工具从当前位置操纵到粗略航路点并且经过一个或多个精细航路点中的每个精细航路点。当运载工具从当前位置操纵到粗略航路点时,经由运载工具的相机系统捕获视频。

根据一个或多个方面,粗略航路点确定模块被配置为标识针对运载工具的粗略航路点。轨迹确定模块被配置为确定针对运载工具的从运载工具的当前位置到粗略航路点的轨迹,该轨迹减小运载工具的移动方向的突然变化,减小运载工具的速度的突然变化,以及减小运载工具的加速度的突然变化。精细航路点选择模块被配置为沿着轨迹选择多个精细航路点。移动控制模块被配置为通过经过一个或多个精细航路点中的每个来将运载工具从当前位置操纵到粗略航路点,并且相机系统被配置为在运载工具从当前位置操纵到粗略航路点时捕获视频。

附图说明

参考附图描述详细描述。在附图中,附图标记的最左边的数字标识首次出现附图标记的图。在说明书和附图中的不同实例中使用相同的附图标记可以指示相似或相同的项目。图中表示的实体可以指示一个或多个实体,并且因此可以在讨论中可互换地引用单数或复数形式的实体。

图1示出了其中可以实现用于稳定运载工具捕获的视频的运载工具轨迹确定的示例环境。

图2示出了根据一个或多个实施例的用于相机系统的视频捕获设备的若干示例布置。

图3示出了更详细地实现本文中讨论的技术的示例系统。

图4示出了根据一个或多个实施例的示例轨迹。

图5示出了根据一个或多个实施例的附加示例轨迹。

图6是示出根据一个或多个实施例的用于稳定运载工具捕获的视频的运载工具轨迹确定的示例过程的流程图。

图7示出了包括表示可以实现本文中描述的各种技术的一个或多个系统和/或设备的示例计算设备的示例系统。

具体实施方式

本文中讨论了用于稳定运载工具捕获的视频的运载工具轨迹确定。运载工具包括或附接有捕获视频的相机系统,并且因此运载工具也可以称为相机载体。本文中使用的运载工具是指通过远程控制和/或通过运载工具的预编程(例如,通过预先编程要由运载工具行进的路径)而控制的运载工具。运载工具可以包括无人驾驶飞行器(uav)或无人机、无人驾驶地面运载工具(例如,沿着轨道或车轮移动)、无人驾驶浮动和/或潜水运载工具、移动计算设备等。运载工具还可以包括用作远程控制相机载体的人,例如通过将控制命令转换成声音或振动以告知人类载体要去哪里。运载工具记录捕获的视频和/或向远程用户设备无线地传输捕获的视频。

远程用户设备包括用于回放捕获的视频的至少一部分的观看设备。捕获的视频可以与相机系统对其的捕获近似同时地和/或在对其的捕获之后的任何时间被传输到远程用户设备。例如,可以记录并且在几小时、几天、几周等之后在观看设备处回放由相机系统记录的捕获视频。观看设备例如是虚拟现实(vr)眼镜或vr头戴式接收器、或者增强现实(ar)眼镜或ar头戴式接收器。

运载工具的相机系统在运载工具移动时捕获视频。当运载工具正在移动时,标识粗略航路点。粗略航路点可以先前已经指定(例如,作为运载工具要行进的预编程路径的一部分),或者可以在运载工具正在移动时自动确定(例如,当运载工具响应于来自远程控制设备的用户输入而改变方向时)。确定针对运载工具的从运载工具的当前位置到粗略航路点的轨迹,轨迹通过减小不想要的相机移动来稳定捕获的视频。稳定捕获的视频的轨迹是指减小(例如,最小化)运载工具的移动方向的突然变化,减小(例如,最小化)运载工具的速度的突然变化,和/或减小(例如,最小化)运载工具的加速度的突然变化的轨迹。在轨迹上选择一个或多个更精细的粒度方向点(本文中称为精细航路点),并且运载工具通过经过这些精细航路点来沿着轨迹移动到粗略航路点。该轨迹提供设备在其通往粗略航路点的途中的平稳移动,以减小(或甚至消除)运载工具在其朝向粗略航路点行进时的突然或急剧移动。

当捕获视频时,运载工具的突然或急剧移动以及因此相机系统的突然或急剧移动可能导致在用户观看捕获的视频时在用户方面产生晕动病的视频。当观看者使用ar或vr眼镜或者vr或ar头戴式接收器观看视频时(在这种情况下,晕动病也可以被称为vr疾病)或者当观看者在三维(3d)屏幕或显示器上观看视频时,晕动病发生的人数和/或晕动病的严重程度会加剧。使用本文中讨论的技术,减小或甚至消除了运载工具的这些突然或急剧的移动,从而减小或消除了在观看所捕获的视频的用户方面的晕动病。这些突然或急剧的移动包括就地旋转、摆动、突然的高度变化、快速的加速和减速等。

图1示出了其中可以实现用于稳定运载工具捕获的视频的运载工具轨迹确定的示例环境100。环境100包括运载工具102、控制器104、用户设备106、观看设备108和网络110。网络110可以是各种不同网络中的任何一种,包括因特网、局域网(lan)、公共电话网络、内联网、其他公共和/或专有网络、其组合等。用户设备106可以是各种不同类型的计算设备中的任何一种,诸如台式计算机、服务器计算机、膝上型计算机或上网本计算机、移动设备(例如,平板计算机或平板设备、蜂窝或其他无线电话(例如,智能手机)、笔记本计算机、移动台)等。

尽管被示出为uav,但是运载工具102可以是通过远程控制控制和/或通过运载工具的预编程控制的任何运载工具,如上所述。环境100可选地包括控制器104,并且在运载工具102通过远程控制控制的情况下,控制器104是向运载工具102无线地发送控制运载工具102的命令的远程控制单元。在图1的所示示例中,用户112使用控制器104来控制运载工具102。可以为不同类型的运载工具提供不同的控制命令,诸如指示要向哪个方向移动的命令、指示是上升还是下降的命令、指示要以哪个速度移动的命令等。还可以向运载工具102提供附加的基于非移动的控制,诸如指示打开或关闭灯的命令、指示开始或停止捕获视频的命令等。在一个或多个实施例中,控制器104经由网络110向运载工具102无线地发送命令。另外地或替代地,控制器104直接而不是经由网络110向运载工具无线地发送命令。尽管控制器104被示出为与用户设备106和观看设备108分离,但是控制器104可以替代地实现为用户设备106和/或观看设备108的一部分。

在一个或多个实施例中,不是响应于从远程控制器接收的命令而移动,而是运载工具102根据运载工具要行进的预编程路径或指示运载工具要行进的路径的其他预编程指令来移动。在这种情况下,环境100不需要包括控制器104。运载工具102的预编程可以以各种方式进行,诸如由用户112,由运载工具102的设计者或销售者等。运载工具102可以通过以下方式来预编程:直接与运载工具102交互,经由另一设备(例如,用户设备106)与运载工具102通信,等等。

运载工具102包括捕获视频的相机系统。运载工具102将捕获的视频发送到用户设备106和/或记录捕获的视频(例如,在运载工具102上或在其他地方,诸如耦合到网络110的数据存储库(未示出))。相机系统可以并入运载工具102中并且因此可以是运载工具102的一部分,或者替代地可以耦合或附接到运载工具102。视频是由相机系统以某个速率(诸如每秒30帧(fps))捕获的一组多个视频帧。由相机系统发送到用户设备106的视频也被称为流视频(或流视频内容、或视频流),以允许视频内容在用户设备处被接收并且在视频内容被接收时在观看设备108上显示,而不是在回放视频内容之前等待用户设备106接收整个视频内容文件。

在一个或多个实施例中,运载工具102的相机系统经由网络110向用户设备106发送视频。另外地或替代地,运载工具102的相机系统直接地而不是经由网络110向运载工具102无线地发送视频。用户设备106是相对于运载工具102的远程设备,其是指用户设备106与运载工具102无线地通信。

由运载工具102的相机系统发送的视频由用户设备106来接收并且处理。该处理包括解码视频并且确定如何经由观看设备108向用户112显示解码的视频。视频的该处理可以使用各种公共和/或专有技术中的任何一种来执行,并且可以基于用户112的期望、运载工具102的设计者或销售者的期望等而变化。

在一个或多个实施例中,观看设备108是虚拟现实(vr)眼镜或头戴式接收器或者增强现实(ar)眼镜或头戴式接收器。这样的观看设备108向用户112提供由运载工具102的相机系统捕获的视频的第一人称视图。尽管被示出为眼镜,但是观看设备108可以替代地是视频可以在其上显示的其他类型的设备。例如,观看设备108可以是3d显示器、弯曲或平面显示屏(例如,计算机显示屏、膝上型屏幕、移动设备屏幕)等。

在一个或多个实施例中,观看设备108是立体声设备,同时显示视频的两个不同帧(或同一帧的两个不同版本)(例如,一个用于vr或ar眼镜(或头戴式接收器)的左眼,一个用于vr或ar眼镜(或头戴式接收器)的右眼)。立体视频可以以各种方式生成,诸如通过从运载工具102捕获和流传输两个不同的视频流,处理视频以从一个或多个视频捕获设备生成立体视图的外观,等等。替代地,观看设备108可以是单个显示器(例如,单声道)、或者三个或更多个显示器。

在所示示例中,用户设备106和观看设备108是两个不同的设备。替代地,用户设备106和观看设备108可以实现为同一设备的一部分。例如,用户设备106可以实现为观看设备108的一部分。

在一个或多个实施例中,观看设备108和/或用户设备106还向运载工具102的相机系统无线地发送控制运载工具102的相机系统的命令。这些命令可以直接发送到相机系统,或者替代地可以经由运载工具102发送到相机系统。发送到相机系统的这些命令是指示要捕获视频的方向的命令(例如,作为用户112正在观看的方向的结果(例如,相对于用户112的头部的一个或多个轴的角度或旋转))。例如,用户112可以将他或她的头部向左转90度,以指示运载工具102的相机系统以与其先前捕获视频的位置向左成90度的角度捕获视频(紧接在从观看设备108接收命令之前)。执行以不同角度捕获视频的方式可以基于实现相机系统的方式而变化,并且可以包括运载工具102的旋转或移动,可以包括独立于运载工具102的任何旋转或移动的相机系统的旋转或移动,可以包括选择特定的视频捕获设备,等等。应当注意,观看设备108发送的命令与控制器104发送的命令的不同之处在于,观看设备108发送的命令控制运载工具102在哪个方向捕获视频(其可能涉及或不涉及运载工具的移动),而控制器104发送的命令控制运载工具102的移动(其可能涉及或不涉及运载工具102捕获视频的方向的变化)。

在一个或多个实施例中,观看设备108经由网络110向运载工具102的相机系统无线地发送命令。另外地或替代地,观看设备108直接地而不是经由网络110向运载工具102的相机系统发送命令。另外,观看设备108向相机系统无线地发送命令可以是观看设备108自身发送命令和/或用户设备106代表观看设备108发送命令。

运载工具102上的相机系统可以以各种不同的方式实现。在一个或多个实施例中,运载工具102的相机系统被实现为具有大约(例如,在10%内)的180度视野。这可以使用单个视频捕获设备或者替代地以各种不同布置而配置的多个视频捕获设备来实现。每个视频捕获设备包括能够感测图像的图像传感器,并且可以使用诸如电荷耦合器件(ccd)、互补金属氧化物半导体(cmos)、n型金属氧化物半导体(nmos)等各种不同技术中的任何一种来实现。替代地,运载工具102的相机系统被实现为具有不同的(例如,更大的)视野,尽管相机系统的视野小于观察装置108提供的视野。

图2示出了用于相机系统200的视频捕获设备的若干示例布置。相机系统200可以被包括作为图1的运载工具102的一部分或附接到图1的运载工具102。相机系统200可以是具有图像传感器204和镜头206的单个视频捕获设备202。替代地,相机系统200可以是具有近似平行(例如,在3至5度内并行)的视线的两个视频捕获设备202,诸如布置208中所示。替代地,相机系统200可以是具有近似平行(例如,在3至5度内平行)的视线的三个或更多个视频捕获设备202,诸如布置210中所示。

替代地,相机系统200可以是布置为网格的具有近似平行(例如,在3至5度内平行)的视线的三个或更多个视频捕获设备202。这样的相机系统的前视图在布置212中示出。替代地,相机系统200可以是布置为半圆形的多个(例如,四个)视频捕获设备202,诸如布置214中所示。替代地,相机系统200可以是布置为圆形的多个(例如,八个)视频捕获设备202,诸如布置216中所示。

尽管在图2中示出了视频捕获设备的示例布置,但是应当注意,可以使用视频捕获设备的各种不同布置中的任何一种。例如,视频捕获设备可以布置在半球,球体等中。

图3以更多细节示出了实现本文中讨论的技术的示例系统300。系统300包括运载工具102和用户设备106。运载工具102包括相机系统302、移动控制系统304、通信组件306、视频存储库308和轨迹确定系统310。相机系统302包括一个或多个视频捕获设备,诸如以上关于图2讨论的任何布置的一个或多个视频捕获设备202。相机系统302还包括用于支持捕获视频的帧并且将捕获的帧提供给通信组件306和/或视频存储库308的附加软件、固件和/或硬件。

移动控制系统304包括用于管理运载工具102的移动的各种软件、固件和/或硬件,诸如各种电机、伺服系统等。在一个或多个实施例中,用于运载工具102的移动命令经由通信组件306从用户设备106接收,并且移动控制系统304执行这些命令。另外地或替代地,移动命令可以从运载工具102的另一组件或模块接收,诸如其中存储有预编程的路径的运载工具102的存储器或其他存储设备。从通信组件306(或其他组件或模块)接收的移动命令可以通过轨迹确定系统310修改或改变,以减小运载工具102的移动方向的突然变化,减小运载工具102的速度的突然变化,和/或减小运载工具102的加速度的突然变化,如下面更详细地讨论的。

由移动控制系统304执行命令的方式基于特定命令而变化。例如,可以通过增加或减小特定电机(例如,转动螺旋桨的电机)的速度、激活或停用特定伺服系统等来执行命令。

通信组件306管理与用户设备106的通信。在一个或多个实施例中,通信组件306从图1的控制器104接收移动命令,并且将这些移动命令提供给移动控制系统304。另外地或替代地,通信组件306接收指向相机系统302的命令并且将这些命令提供给相机系统302。指向相机系统302的命令可以从图1的用户设备106或观看设备108接收,如上面讨论的。

在一个或多个实施例中,通信组件306还从相机系统302接收视频帧,并且将视频帧传输到用户设备106。通信组件306(和/或相机系统302)可以可选地在将视频传输到用户设备之前对视频执行各种处理,诸如使用各种公共和/或专有协议(例如,如itu-th.264建议书(02/2014)中讨论的h.264协议、如itu-th.265建议书(04/2015)中讨论的h.265协议、从www.webmproject.org的“thewebmproject”可获取的vp9视频编码格式)中的任何一种对视频进行编码,使用各种公共和/或专有协议(例如,使用对称密钥密码术,使用公共密钥密码术)中的任何一种对视频进行加密,等等。

用户设备106包括通信组件312、视频显示系统314、以及可选的用户输入系统316。通信组件312从运载工具102的通信组件306接收视频。通信组件312可选地取决于在通信组件306传输视频之前执行了什么处理(如果有的话)而对视频执行各种处理。例如,通信组件312可以使用各种公共和/或专有协议中的任何一种来解码视频,使用各种公共和/或专有协议中的任何一种来解密视频,等等。通信组件312将经处理(例如,经解码和/或解密)的视频提供给视频显示系统314。

在用户设备将命令发送到相机系统302的情况下,这些命令经由通信组件312来发送。

视频显示系统314生成一个或多个帧用于由观看设备108显示和/或向观看设备108提供数据,从而允许观看设备108生成用于显示的帧。在一个或多个实施例中,视频显示系统314为观看设备108生成和/或提供数据以同时显示一对视频帧。该对视频帧对应于由相机系统302捕获的帧(或帧对),并且当由观看设备显示时提供立体声效果。这允许例如用户112具有由相机系统302捕获的视频的第一人称视图,诸如通过使用vr或ar眼镜(或头戴式接收器)。

用户输入系统316接收控制运载工具102的用户输入。这些输入可采用各种形式,诸如棒的移动或按钮的按压、做出手势或触摸触摸屏上的位置(可选地,显示由相机系统302捕获的视频的同一屏幕)、语音命令等。

另外地或替代地,通信组件306可以将捕获的视频传输到除了用户设备106之外的另一设备,诸如耦合到图1的网络110的存储设备。补充或替代代替通信组件306将捕获的视频传输到用户设备106或某些其他设备,相机系统302还可选地将捕获的视频存储在视频存储库308中。一旦存储在视频存储库308中,捕获的视频可以随后被传送到一个或多个其他设备(诸如用户设备106)用于回放。因此,由相机系统302捕获的视频可以与对其的捕获近似同时地回放(尽管由于处理(例如,编码、加密、解码、解密等)和经由无线通信的传输而可能存在一些时间延迟(例如,小于一秒或两秒))和/或在稍后的某个时间(例如,在捕获视频之后的几小时、几天、几周等)回放。

轨迹确定系统310确定运载工具102的轨迹,该轨迹减小(例如,最小化)运载工具102的移动方向的突然变化,减小(例如,最小化)运载工具102的速度的突然变化,和/或减小(例如,最小化)运载工具102的加速度的突然变化。轨迹确定系统310向移动控制系统304传送引起移动控制系统304沿着轨迹操纵运载工具102的命令。这导致运载工具102的移动以及因此由相机系统302捕获的稳定的视频——运载工具102的移动方向的突然变化减小(例如,最小化),运载工具102的速度的突然变化减小(例如,最小化)和/或运载工具102的加速度的突然变化减小(例如,最小化)。

轨迹确定系统310包括粗略航路点确定模块322、轨迹确定模块324、精细航路点选择模块326和移动控制模块328。通常,轨迹确定系统310标识运载工具的在运载工具102的当前位置与运载工具102的粗略航路点之间的轨迹。粗略航路点是指运载工具102将要行进到的物理位置。确定减小(例如,最小化)运载工具102的移动方向的突然变化、减小(例如,最小化)运载工具102的速度的突然变化、和/或减小(例如,最小化)运载工具102的加速度的突然变化的轨迹,并且沿着该轨迹选择多个物理位置。沿着轨迹的这些多个物理位置被称为精细航路点。向移动控制系统304提供沿着轨迹将运载工具从精细航路点移动到精细航路点的命令。

粗略航路点确定模块322标识或确定粗略航路点,并且可以以各种不同方式中的任何一种来这样做。在一个或多个实施例中,诸如其中运载工具102将要采取的路径在运载工具102中被预编程的实施例中,粗略航路点也在运载工具102中被预编程。粗略航路点可以由各种不同用户或其他个人中的任何一个预编程到运载工具102中,诸如向运载工具102预编程路径的用户或实体。在这样的实施例中,粗略航路点确定模块322通过检索或以其他方式获取预编程的粗略航路点来确定粗略航路点。

粗略航路点还可以以各种其他方式来标识。例如,到用户设备106或观看设备108的用户输入可以指定运载工具102的方向的变化(例如,使运载工具102向右飞行的用户输入)。响应于这样的用户输入,粗略航路点确定模块322标识与用户输入相对应的物理位置(例如,向右移动的量),并且确定在这个确定的物理位置处存在粗略航路点。在一个或多个实施例中,物理位置与远离运载工具102的某个物理距离相关联(例如,在前方的特定英尺数并且与右侧成一定角度,其对应于由用户输入指定的向右移动的量)。物理距离可以是设定的物理距离(例如,100英尺)或可变距离(例如,预期运载工具102以运载工具102的当前速度在诸如30秒等一定量的时间内移动的英尺数)。

另外地或替代地,可以基于其他用户输入来确定粗略航路点。在一个或多个实施例中,到用户设备106或观看设备108的触摸屏的用户输入可以指定特定的物理位置。例如,由相机系统302捕获的视频可以显示在触摸屏上,并且用户可以触摸触摸屏的位置以指定他或她希望运载工具102移动到何处。例如,用户可以触摸显示的树,响应于此,粗略航路点确定模块322标识显示器中的树并且确定在该树处存在粗略航路点(或者远离树的阈值距离,使得粗略航路点在树附近,但运载工具102没有撞到树)。

轨迹确定模块324生成运载工具102的当前位置与粗略航路点确定模块322确定的粗略航路点之间的轨迹。轨迹确定模块324生成的轨迹减小(例如,最小化)运载工具102的移动方向的突然变化,减小(例如,最小化)运载工具102的速度的突然变化,和/或减小(例如,最小化)运载工具102的加速度的突然变化。在一个或多个实施例中,轨迹确定模块324通过分析指定运载工具102的速度(运载工具102正在移动的速度和方向)、运载工具102的加速度和运载工具102的方向的变化的一组计算来确定轨迹。分析包括计算表示轨迹的多项式,使得运载工具102的速度的变化减小(例如,最小化),运载工具102的加速度的变化减小(例如,最小化),并且运载工具102的移动方向的变化减小(例如,最小化)。计算运载工具轨迹,并且通过减小(例如,最小化)运载工具轨迹的突动或抖动量,轨迹形状、速度和加速度的突然变化被减小(例如,最小化)。

轨迹确定模块324生成表示运载工具102的在运载工具102的当前位置与运载工具102的粗略航路点之间的轨迹的多项式x(t)。在一个或多个实施例中,运载工具102的轨迹在三维(3d)空间中,尽管替代地对于一些运载工具,轨迹可以在二维(2d)空间中。多项式x(t)定义为:

x(t)=a0+a1t+a2t2+a3t3+a4t4+a5t5

其中t是指范围从作为运载工具102处于当前位置的时间的时间t1到作为运载工具102处于粗略航路点的时间的时间t2的时间。系数α0、α1、α2、α3、α4、α5基于各种附加等式来计算,使得沿着由多项式x(t)表示的轨迹的速度的变化减小(例如,最小化),沿着由多项式x(t)表示的轨迹的加速度的变化减小(例如,最小化),并且沿着由多项式x(t)表示的轨迹的移动方向的变化减小(例如,最小化)。

图4示出了根据一个或多个实施例的示例轨迹。为了便于解释,参考图4的示例400进行轨迹确定模块324确定轨迹的讨论。示例轨迹402被示出为当前位置404与粗略航路点406之间的曲线。多项式x(t)表示图4的示例中的轨迹402。

轨迹确定模块324还使用以下等式:

其中x1(t)是指运载工具102的当前位置的物理位置,x2(t)是指粗略航路点的物理位置,t1是指运载工具102处于位置x1(t)的时间,并且时间t2是指运载工具102处于位置x2(t)的时间。

运载工具102的速度被计算为多项式x(t)关于时间的一阶导数。因此,运载工具102在时间t1的速度被计算为在时间t1评估的轨迹关于时间的一阶导数:

类似地,运载工具102在时间t2的速度被计算为在时间t2评估的轨迹关于时间的一阶导数:

运载工具102的加速度被计算为多项式x(t)关于时间的二阶导数。轨迹确定模块324正在减小(例如,最小化)轨迹的加速度,并且轨迹确定模块324因此在时间t1和时间t2针对运载工具102的加速度使用零值。因此,轨迹确定模块324可以使用以下等式来将在时间t1评估的轨迹关于时间的二阶导数设置为零,指示运载工具102在时间t1的加速度为零:

类似地,轨迹确定模块324可以使用以下等式来将在时间t2评估的轨迹关于时间的二阶导数设置为零,指示运载工具102在时间t2的加速度为零:

因此,轨迹确定模块324具有以下六个等式:

给定这六个等式,轨迹确定模块324可以容易地求解六个系数α0、α1、α2、α3、α4、α5。

在一个或多个实施例中,轨迹确定模块324求解六个系数α0、α1、α2、α3、α4、α5,使得由“抖动”表示的运载工具102的移动被减小或最小化。抖动是指突然或急剧移动,因此减小或最小化抖动减小或最小化运载工具102的移动方向的突然变化。运载工具102的抖动被计算为多项式x(t)关于时间的三阶导数。因此,运载工具102的抖动计算如下:

具有最小化的抖动的轨迹是由最小化以下度量的多项式x(t)表示的轨迹:

在给定上述六个等式的情况下,可以使用各种不同的公共和/或专有数学优化技术中的任何一种来确定最小化该度量的由多项式x(t)表示的轨迹的六个系数α0、α1、α2、α3、α4、α5。这样的数学优化技术的示例包括最小二乘拟合、拉格朗日优化等。

在一个或多个实施例中,轨迹确定模块324求解轨迹的系数,使得由“突动”表示的运载工具102的移动被减小或最小化。突动是指运载工具102的移动方向的突然快速变化,其包括突然或急剧移动以及更快的方向变化(例如,急剧的回旋或180度的方向变化)。减小(例如,最小化)突动通常提供比减小(例如,最小化)抖动更平滑的轨迹。因此,减小或最小化突动减小或最小化运载工具102的移动方向的突然变化。运载工具102的突动被计算为多项式x(t)关于时间的四阶导数。因此,运载工具102的突动计算如下:

具有最小化突动的轨迹是由最小化以下度量的多项式x(t)表示的轨迹:

为了最小化轨迹的抖动,使用如上所述的5次多项式。为了最小化轨迹的突动,使用7次多项式x'(t),并且7次多项式x'(t)定义为:

x′(t)=a0+a1t+a2t2+a3t3+a4t4+a5t5+a6t6+a7t7

其中t是指范围从作为运载工具102处于当前位置的时间的时间t1到作为运载工具102处于粗略航路点的时间的时间t2的时间。系数α0、α1、α2、α3、α4、α5、α6、α7基于各种附加等式来计算,使得沿着由多项式x'(t)表示的轨迹的速度的变化减小(例如,最小化),沿着由多项式x'(t)表示的轨迹的加速度的变化减小(例如,最小化),并且沿着由多项式x'(t)表示的轨迹的移动方向的变化减小(例如,最小化)。多项式x'(t)表示运载工具102的轨迹,并且类似于本文中讨论的多项式x(t)来使用,不同之处在于,多项式x'(t)在减小(例如,最小化)突动时使用,而多项式x(t)在减小(例如,最小化)抖动时使用。

如上所述,运载工具102的抖动被计算为多项式x'(t)关于时间的三阶导数。轨迹确定模块324正在减小(例如,最小化)轨迹的抖动,并且轨迹确定模块324因此在时间t1和时间t2针对运载工具102的抖动使用零值。因此,轨迹确定模块324可以使用以下等式来将在时间t1评估的轨迹关于时间的三阶导数设置为零,指示运载工具102在时间t1的抖动为零:

类似地,轨迹确定模块324可以使用以下等式来将在时间t2评估的轨迹关于时间的三阶导数设置为零,指示运载工具102在时间t2的抖动为零:

因此,当减小(例如,最小化)突动时,轨迹确定模块324具有以下八个等式:

给定这八个等式,轨迹确定模块324可以容易地求解八个系数α0、α1、α2、α3、α4、α5、α6、α7。可以使用各种不同的公共和/或专有数学优化技术中的任何一种来确定上面给出的最小化该度量的由多项式x'(t)表示的轨迹的八个系数α0、α1、α2、α3、α4、α5、α6、α7。这样的数学优化技术的示例包括最小二乘拟合、拉格朗日优化等。

精细航路点选择模块326沿着轨迹选择一个或多个精细航路点。精细航路点表示沿着从当前位置到粗略航路点的轨迹的不同物理位置,并且可以沿着轨迹以规则或不规则的间隔设置。在图4的示例400中,精细航路点被示出为沿着轨迹402的星。因此,例如,当前位置404与粗略航路点406之间的精细航路点包括精航路点412、414、416、418等。

精细航路点选择模块326可以以各种不同方式中的任何一种来选择精细航路点。在一个或多个实施例中,精确航路点以定时间隔来选择,诸如沿着轨迹的大约每5秒、每10秒等(的阈值量内)是精细航路点。例如,在示例400中,如果运载工具102在时间t1处于当前位置404,则一个精细航路点可以是在时间t1+5秒,另一精细航路点可以是在t1+10秒,另一精细航路点可以是在t1+15秒,等等。

另外地或替代地,精细航路点以距离间隔来选择,诸如大约每3英尺、每10英尺等(的阈值量内)。运载工具102沿着轨迹移动的距离取决于运载工具102的速度,并且因此沿着轨迹的精细航路点的位置可以基于运载工具102的速度容易地标识。

移动控制模块328向移动控制系统304发出使运载工具102从精细航路点到精细航路点移动的命令。该移动可以包括各种电机、伺服系统等的激活或停用、各种电机、伺服系统等的运行速度的变化(例如,电机的每分钟转数(rpm)的增加或减少)等。例如,给定轨迹402并且假定运载工具102处于当前位置404,则移动控制模块328向移动控制系统发出以下命令,该命令用于首先将运载工具102操纵到与精细航路点412相对应的物理位置,然后将运载工具102操纵到与精细航路点414相对应的物理位置,然后将运载工具102操纵到与精细航路点416相对应的物理位置,等等。因此,当运载工具102向粗略航路点406行进时,运载工具102经过精细航路点。

不是向移动控制系统304发出使运载工具从精细航路点到精细航路点移动的命令,而是移动控制模块328可以直接控制各种硬件,诸如电机、伺服系统等。例如,一个或多个车轮中的每个车轮的速度、一个或多个转子中的每个转子的速度等可以基于精细航路点来计算。给定这些计算出的速度,移动控制模块328向各种电机、伺服系统等(例如,车轮电机、转子电机等)提供用于控制运载工具102沿着轨迹从精细航路点到精细航路点的移动的控制信号。

应当注意,运载工具102可以沿着具有多个不同粗略航路点的路径移动。这可以是已经被预编程到运载工具102中的多个不同粗略航路点和/或其他输入的结果。例如,每当接收到改变运载工具102的移动方向的用户输入(例如,指示向上移动或进一步向右移动的用户输入等)时,轨迹确定系统310确定新的粗略航路点和具有新的精细航路点的新的轨迹。

图5示出了根据一个或多个实施例的附加示例轨迹。在图5的示例500中,示出了从当前位置502行进到最终目的地504的路径。沿着路径的粗略航路点506、508、510、512、514和516由圆圈示出,粗略航路点之间的轨迹被示出为粗略航路点之间的线。粗略航路点之间的精细航路点被示出为星。例如,示出了沿着粗略航路点510和512之间的轨迹522的精细航路点518和520。

在一个或多个实施例中,在路径包括多个不同的粗略航路点的情况下,两个粗略航路点之间的每个轨迹被约束为先前轨迹的平滑延续。例如,粗略航路点512和514之间的轨迹526被约束为粗略航路点510和512之间的轨迹522的平滑延续。轨迹的这种约束是先前轨迹的平滑延续可以以各种不同方式来完成。在一个或多个实施例中,在确定轨迹时,由于轨迹确定模块324减小(例如,最小化)抖动或突动并且使用运载工具102在粗略航路点处的速度,轨迹确定模块324因此自动地将轨迹约束为先前轨迹的平滑延续。因此,例如,轨迹526是从粗略航路点512到粗略航路点514的曲线,其相对于将是从粗略航路点512到粗略航路点514的直线(并且会导致运载工具在粗略航路点512处发生急剧的突然转弯)的轨迹减小了抖动或突动。

在一个或多个实施例中,轨迹确定模块324通过减小(例如,最小化)抖动和/或突动来确定运载工具102的轨迹。当突动使用四阶导数计算而抖动使用三阶导数计算时,用于减小抖动的计算资源(例如,处理能力、存储器等)可以小于用于减小突动的计算资源。因此,例如,如果轨迹确定系统310在具有较低计算资源(例如,较慢的处理器和/或较少的存储器)的运载工具102中实现,则轨迹确定模块324通过减小(例如,最小化)抖动来确定运载工具102的轨迹。然而,如果轨迹确定系统310在具有更高计算资源(例如,更快的处理器和/或更多的存储器)的运载工具102中实现,则轨迹确定模块324通过减小(例如,最小化)突动来确定运载工具102的轨迹。

图6是示出根据一个或多个实施例的用于稳定运载工具捕获的视频的运载工具轨迹确定的示例过程600的流程图。过程600由诸如图1或图3的运载工具102等运载工具执行,并且可以用软件、固件、硬件或其组合来实现。过程600被示出为一组动作,并且不限于所示出的用于执行各种动作的操作的顺序。过程600是用于稳定运载工具捕获的视频的运载工具轨迹确定的示例过程;本文中参考不同附图来包括对用于稳定运载工具捕获的视频的运载工具轨迹确定的附加讨论。

在过程600中,标识运载工具的粗略航路点(动作602)。如上所述,粗略航路点可以以各种不同方式中的任何一种来标识或确定,诸如基于用户输入,基于预编程路径或粗略航路点,等等。

确定运载工具从运载工具的当前位置到在动作602中标识的粗略航路点的轨迹(动作604)。如上所述,轨迹减小了移动方向的突然变化、速度的突然变化和/或加速度的突然变化。在一个或多个实施例中,在动作604中确定轨迹以减小(例如,最小化)轨迹的抖动或突动,如上所述。

沿着轨迹选择一个或多个精细航路点(动作606)。这些精细航路点可以基于在运载工具沿着轨迹操纵到粗略航路点、运载工具沿着轨迹移动的距离等时所经过的时间来选择,如上所述。这导致非常平滑的轨道状轨迹,其减小(例如,最小化)加速度并且还避免摆动移动以及从左到右的急转弯和旋转,这些可能导致捕获视频的观看者的晕动病。

通过经过精细航路点来将运载工具操纵到粗略航路点(动作608)。这种操纵可以以各种方式执行,诸如通过向运载工具的电机或其他硬件提供用于将运载工具操纵到粗略航路点并且经过精细航路点的控制信号来向运载工具的移动控制系统传送用于将运载工具操纵到粗略航路点并且经过精细航路点的命令,等等。通过经过精细航路点,运载工具保持在轨迹上,保持运载工具的平稳移动并且减小可能导致捕获视频的观看者的晕动病的运动。

当运载工具从当前位置操纵到粗略航路点时,运载工具的相机系统捕获视频(动作610)。当视频被捕获和/或记录在视频存储库中用于稍后回放时,可以将该捕获的视频传输(例如,流传输)到观看设备。

对于每个新的粗略航路点重复过程600。例如,每当接收到指示运载工具102的移动的变化的新的用户输入时(例如,向右或向左转,上升或下降,增加或减小速度等),执行过程600以标识粗略航路点并且确定新的轨迹。

应当注意,本文中讨论的技术可以与附加相机系统稳定技术结合使用。例如,相机系统可以安装在机械平衡环上,该机械平衡环使用陀螺仪来稳定相机系统的角度旋转。然而,本文中讨论的技术通过减小机械平衡环不能解决的相机系统的较大过渡移动(例如,左右摆动、上下移动、突然加速等)来提供捕获视频的附加稳定。

尽管本文中参考特定模块、组件或系统讨论特定功能,但是应当注意,本文中讨论的各个模块、组件或系统的功能可以分成多个模块、组件或系统,并且/或者多个模块、组件或系统的至少一些功能可以组合到单个模块、组件或系统中。

图7示出了总体上在700处的包括示例计算设备702的示例系统,示例计算设备702表示可以实现本文中描述的各种技术的一个或多个系统和/或设备。计算设备702可以是例如与运载工具相关联的设备、片上系统和/或任何其他合适的计算设备或计算系统。计算设备702可以由例如图1或图3的运载工具102来实现,或者被包括作为其一部分。

如图所示的示例计算设备702包括彼此通信地耦合的处理系统704、一个或多个计算机可读介质706和一个或多个i/o接口708。虽然未示出,但是计算设备702还可以包括系统总线或将各种组件彼此耦合的其他数据和命令传输系统。系统总线可以包括不同总线结构中的任何一个或其组合,诸如存储器总线或存储器控制器、外围总线、通用串行总线、和/或利用各种总线架构中的任何一种的处理器或本地总线。还构想了各种其他示例,诸如控制和数据线。

处理系统704表示使用硬件执行一个或多个操作的功能。因此,处理系统704被示出为包括可以被配置为处理器、功能块等的硬件元件710。这可以包括在作为专用集成电路或使用一个或多个半导体形成的其他逻辑器件的硬件中的实现。硬件元件710不受形成它们的材料或其中采用的处理机构的限制。例如,处理器可以包括(多个)半导体和/或晶体管(例如,电子集成电路(ic))。在这样的上下文中,处理器可执行指令可以是电子可执行指令。

计算机可读介质706被示出为包括存储器/存储装置712。存储器/存储装置712表示与一个或多个计算机可读介质相关联的存储器/存储容量。存储器/存储装置712可以包括易失性介质(诸如随机存取存储器(ram))和/或非易失性介质(诸如只读存储器(rom)、闪存、光盘、磁盘等)。存储器/存储装置712可以包括固定介质(例如,ram、rom、固定硬盘驱动器等)以及可移除介质(例如,闪存、可移除硬盘驱动器、光盘等)。计算机可读介质706可以以各种其他方式配置,如下面进一步描述的。

一个或多个输入/输出接口708表示通过使用各种输入/输出设备允许用户向计算设备702输入命令和信息并且还允许将信息呈现给用户和/或其他组件或设备的功能。输入设备的示例包括键盘、光标控制设备(例如,鼠标)、麦克风(例如,用于语音输入)、扫描仪、触摸功能(例如,被配置为检测物理触摸的电容或其他传感器)、相机(例如,其可以采用可见或诸如红外频率等不可见波长来检测不涉及作为手势的触摸的移动)等。输出设备的示例包括显示设备(例如,显示器或投影仪)、扬声器、打印机、网卡、触觉响应设备等。因此,计算设备702可以以下面进一步描述的各种方式被配置为支持用户交互。

计算设备702还包括轨迹确定系统714。轨迹确定系统714提供用于确定减小运载工具的移动方向的突然变化、减小运载工具的速度的突然变化和/或减小运载工具的加速度的突然变化的轨迹的各种功能,如上所述。轨迹确定系统714可以实现例如图3的轨迹确定系统310。

本文中可以在软件、硬件元件或程序模块的一般上下文中描述各种技术。通常,这样的模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、元素、组件、数据结构等。本文中使用的术语“模块”、“功能”和“组件”通常表示软件、固件、硬件或其组合。本文中描述的技术的特征是平台无关的,这表示这些技术可以在具有各种处理器的各种计算平台上实现。

所描述的模块和技术的实现可以存储在某种形式的计算机可读介质上或通过某种形式的计算机可读介质来传输。计算机可读介质可以包括可以由计算设备702访问的各种介质。作为示例而非限制,计算机可读介质可以包括“计算机可读存储介质”和“计算机可读信号介质”。

“计算机可读存储介质”是指能够持久存储有形的信息和/或存储的介质和/或设备,这与仅仅信号传输、载波或信号本身相反。因此,计算机可读存储介质是指非信号承载介质。计算机可读存储介质包括诸如易失性和非易失性、可移除和不可移除介质等硬件和/或以适于存储诸如计算机可读指令、数据结构、程序模块、逻辑元件/电路或其他数据等信息的方法或技术实现的存储设备。计算机可读存储介质的示例可以包括但不限于ram、rom、eeprom、闪存或其他存储器技术、cd-rom、数字通用盘(dvd)或其他光学存储装置、硬盘、磁带盒、磁带、磁盘存储装置或其他磁存储设备、或者适于存储期望信息并且可以由计算机访问的其他存储设备、有形介质或制品。

“计算机可读信号介质”是指被配置为诸如经由网络将指令传输到计算设备702的硬件的信号承载介质。信号介质通常可以在诸如载波、数据信号或其他传输机制等调制数据信号中实施计算机可读指令、数据结构、程序模块或其他数据。信号介质还包括任何信息传递介质。术语“调制数据信号”表示以使得能够在信号中对信息进行编码的方式设置或改变其一个或多个特征的信号。作为示例而非限制,通信介质包括有线介质(诸如有线网络或直接有线连接)以及无线介质(诸如声学、rf、红外和其他无线介质)。

如前所述,硬件元件710和计算机可读介质706表示以硬件形式实现的指令、模块、可编程设备逻辑和/或固定设备逻辑,其可以在一些实施例中采用以实现本文中描述的技术的至少一些方面。硬件元件可以包括集成电路或片上系统的组件、专用集成电路(asic)、现场可编程门阵列(fpga)、复杂可编程逻辑器件(cpld)和硅或其他硬件设备上的其他实现。在这个上下文中,硬件元件可以作为执行由硬件元件实现的指令、模块和/或逻辑定义的程序任务的处理设备以及用于存储用于执行的指令的硬件设备(例如,先前描述的计算机可读存储介质)来操作。

前述的组合也可以用于实现本文中描述的各种技术和模块。因此,软件、硬件或程序模块和其他程序模块可以实现为在某种形式的计算机可读存储介质上和/或由一个或多个硬件元件710实现的一个或多个指令和/或逻辑。计算设备702可以被配置为实现与软件和/或硬件模块相对应的特定指令和/或功能。因此,模块作为由计算设备702作为软件可执行的模块的实现可以至少部分使用硬件来实现,例如,通过使用处理系统的计算机可读存储介质和/或硬件元件710。指令和/或功能可以由一个或多个制品(例如,一个或多个计算设备702和/或处理系统704)可执行/操作以实现本文中描述的技术、模块和示例。

本文中描述的技术还可以全部或部分地通过使用分布式系统来实现,诸如经由平台724通过“云”722,如下所述。云722包括和/或表示用于资源726的平台724。平台724抽象出云722的硬件(例如,服务器)和软件资源的底层功能。资源726可以包括当计算机处理在远离计算设备702的服务器上执行时可以利用的应用和/或数据。资源726还可以包括通过因特网和/或通过订户网络(诸如蜂窝或wi-fi网络)提供的服务。

平台724可以抽象资源和功能以将计算设备702与其他计算设备连接。平台724还可以用于抽象资源缩放以提供对应的缩放级别以满足对经由平台724实现的资源726的需求。因此,在互连设备实施例中,本文中描述的功能的实现可以分布在整个系统700上。例如,功能可以部分在计算设备702上以及经由抽象云722的功能的平台724来实现。

在本文中的讨论中,描述了各种不同的实施例。应当认识和理解,本文中描述的每个实施例可以单独使用或与本文中描述的一个或多个其他实施例结合使用。本文中讨论的技术的其他方面涉及以下实施例中的一个或多个。

一种方法,包括:标识针对运载工具的粗略航路点;确定针对运载工具的从运载工具的当前位置到粗略航路点的轨迹,该轨迹减小运载工具的移动方向的突然变化,减小运载工具的速度的突然变化,并且减小运载工具的加速度的突然变化;沿着轨迹选择一个或多个精细航路点;向移动控制系统传送命令,该命令将运载工具从当前位置操纵到粗略航路点并且经过一个或多个精细航路点中的每个精细航路点;并且当运载工具从当前位置操纵到粗略航路点时,经由运载工具的相机系统捕获视频。

作为任何上述方法的替代或补充,以下中的任一项或组合:运载工具包括无人驾驶飞行器:由于运载工具通过一个或多个精细航路点从当前位置操纵到粗略航路点,捕获的视频被稳定;该视频包括运载工具的第一人称视图;该方法还包括记录视频用于稍后回放;该方法还包括向观看设备传输视频用于由观看设备的用户回放,观看设备包括虚拟现实或增强现实眼镜或者虚拟现实或增强现实头戴式接收器;该方法还包括轨迹通过减小运载工具的抖动来减小运载工具的移动方向的突然变化;该方法还包括通过最小化轨迹的三阶导数来确定轨迹来减小运载工具的移动方向的突然变化;该方法还包括轨迹通过减小运载工具的突动来减小运载工具的移动方向的突然变化;该方法还包括通过最小化轨迹的四阶导数来确定轨迹来减小运载工具的移动方向的突然变化。

一种设备,包括:被配置为标识运载工具的粗略航路点的粗略航路点确定模块;被配置为确定针对运载工具的从运载工具的当前位置到粗略航路点的轨迹的轨迹确定模块,该轨迹减小运载工具的移动方向的突然变化,减小运载工具的速度的突然变化,以及减小运载工具的加速度的突然变化;被配置为沿着轨迹选择多个精细航路点的精确航路点选择模块;被配置为通过经过一个或多个精细航路点中的每个精细航路点来将运载工具从当前位置操纵到粗略航路点的移动控制模块;以及被配置为在运载工具从当前位置操纵到粗略航路点时捕获视频的相机系统。

作为任何上述设备的替代或补充,以下中的任一项或组合:移动控制模块还被配置为通过向运载工具的一个或多个电机提供控制信号来操纵运载工具;该设备包括无人机;轨迹通过减小相机系统的抖动来减小运载工具的移动方向的突然变化;轨迹通过减小相机系统的突动来减小运载工具的移动方向的突然变化;视频包括运载工具的第一人称视图,该视频由于运载工具通过经过一个或多个精细航路点来从当前位置操纵到粗略航路点被稳定。

一种设备,包括:一个或多个处理器;其上存储有多个指令的计算机可读存储介质,这些指令响应于一个或多个处理器的执行而引起一个或多个处理器执行包括以下操作的动作:标识针对运载工具的粗略航路点;确定针对运载工具的从运载工具的当前位置到粗略航路点的轨迹,该轨迹减小运载工具的移动方向的突然变化,减小运载工具的速度的突然变化,并且减小运载工具的加速度的突然变化;沿着轨迹选择多个精细航路点;将运载工具从当前位置操纵到粗略航路点并且经过一个或多个精细航路点中的每个精细航路点;当运载工具从当前位置操纵到粗略航路点时,经由运载工具的相机系统捕获视频。

作为任何上述设备的替代或补充,以下中的任一项或组合:轨迹通过减小相机系统的抖动来减小运载工具的移动方向的突然变化;轨迹通过减小相机系统的突动来减小运载工具的移动方向的突然变化;视频包括运载工具的第一人称视图,由于运载工具经过一个或多个精细航路点从当前位置操纵到粗略航路点,视频被稳定。

尽管用结构特征和/或方法动作专用的语言描述了本主题,但是应当理解,所附权利要求书中定义的主题不必限于上述具体特征或动作。而是,上述具体特征和动作被公开作为实现权利要求的示例形式。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1