经由云点的针对自动拖车挂接的联接器和牵引杆检测
文献发布时间:2023-06-19 09:44:49
技术领域
本公开涉及一种用于经由三维点云地图在自动拖车挂接(trailer hitching)期间检测拖车的联接器(coupler)和牵引杆(tow-bar)的方法和设备。
背景技术
拖车通常是无动力车辆,它们由动力牵引车辆来拉动。拖车可以是除了其他之外的公用事业拖车、弹出式露营车、旅行拖车、牲畜拖车、平板拖车、封闭式汽车搬运车和船用拖车。牵引车辆可以是汽车、跨界车、卡车、货车、运动型多用途车辆(SUV)、休闲车辆(RV)、或被配置成附接到拖车并且拉动拖车的任何其他车辆。可以使用拖车挂接件(hitch)来将拖车附接到动力车辆。接收方的挂接件安装在牵引车辆上,并且连接到拖车挂接件以形成连接。拖车挂接件可以是球窝关节(ball and socket)、第五轮(fifth wheel)和鹅颈管(gooseneck)或拖车千斤顶。还可以使用其他附接机构。除了在拖车与动力车辆之间的机械连接之外,在一些示例中,拖车还电连接到牵引车辆。由此,该电连接允许拖车从动力车辆的后灯电路获取馈送,从而允许拖车具有与该动力车辆的灯同步的尾灯、转向信号和制动灯。
传感器技术方面的最新进展已经导致了用于车辆的改进的安全性系统。由此,期望提供一种系统,该系统能够实时标识位于牵引车辆后面的拖车的联接器和牵引杆,并且能够进行实时联接器和牵引杆定位,从而允许牵引车辆自主地朝向拖车进行机动以用于自动挂接。
发明内容
本公开的一个方面提供了一种用于检测和定位与位于牵引车辆后面的拖车相关联的拖车挂接件的联接器的方法。该方法包括:在数据处理硬件处、从位于车辆的后部部分上并且与数据处理硬件通信的后置相机接收图像。该方法还包括:由数据处理硬件来确定图像内的感兴趣区域。感兴趣区域包括拖车挂接件的表示。该方法还包括:由数据处理硬件来确定表示感兴趣区域内部的对象的三维(3D)点云。该方法还包括:由数据处理硬件基于接收到的图像来确定后置相机在其中移动的相机平面。该方法还包括:由数据处理硬件将云点投影到相机平面上。该方法包括:由数据处理硬件基于投影到相机平面上的云点来确定联接器位置。该方法还包括:由数据处理硬件基于联接器位置来确定路径。当牵引车辆附接到拖车时,该路径结束。该方法还包括:从数据处理硬件向驾驶系统发送指令,从而使牵引车辆沿着该路径在后向方向(rearward direction)上自主地驾驶。
本公开的实现方式可以包括以下可选特征中的一个或多个。在一些实现方式中,该方法进一步包括:由数据处理硬件基于投影到相机平面上的云点来确定拖车相对于车辆的对准方向。该路径还可以基于该对准方向。
在一些示例中,该方法包括:由数据处理硬件来确定后置相机与联接器之间的纵向距离。该方法可以包括:确定垂直于该对准方向的平面;以及确定后置相机与该平面之间的第一距离。该第一距离指示纵向距离。该方法还可以包括:将后置相机的位置投影在该平面上;以及确定后置相机的位置在该平面上的投影与联接器在相机平面中的投影之间的第二距离。该第二距离指示纵向距离。该路径还可以基于纵向距离和/或横向距离。
在一些实现方式中,确定图像内的感兴趣区域包括:从数据处理硬件向显示器发送指令以显示接收到的图像;以及在数据处理硬件处接收对感兴趣区域的用户选择。
确定感兴趣区域的点云可以包括:执行视觉里程计(VO)算法、同时定位和地图创建(SLAM)算法、以及运动恢复结构(structure from motion)(SfM)算法之一。在一些示例中,该方法包括通过如下方式来在执行这些算法之前初始化数据处理硬件:从数据处理硬件向驾驶系统发送指令,从而使牵引车辆在前向或后向的笔直方向上驾驶达预定距离。
在一些实现方式中,确定相机平面包括:由数据处理硬件从接收到的图像来确定后置相机的至少三个三维位置。另外,确定相机平面还可以包括:由数据处理硬件基于该三个三维位置来确定相机平面。
在一些示例中,该方法进一步包括由数据处理硬件通过如下方式来确定道路平面:确定后置相机距支撑牵引车辆的道路的高度;以及使相机平面以后置相机的高度来移位(shift)。
在一些示例中,该方法包括通过如下方式来确定道路平面:由数据处理硬件从图像中提取包括道路的至少三个特征点;以及由数据处理硬件将点云中的点与每一个特征点相关联。用于确定道路平面的方法还可以包括:由数据处理硬件基于与该至少三个特征点相关联的点云中的至少三个点来确定道路平面。在一些示例中,确定相机平面包括:由数据处理硬件来确定后置相机距该道路的高度;以及由数据处理硬件使道路平面以后置相机的高度来移位。
在一些实现方式中,该方法进一步包括:由数据处理硬件基于联接器与道路平面之间的距离来确定联接器的高度。该路径还可以基于联接器的高度。
本公开的另一方面提供了一种用于检测和定位与位于牵引车辆后面的拖车相关联的拖车挂接件的联接器的系统。该系统包括:数据处理硬件;以及与数据处理硬件通信的存储器硬件。存储器硬件存储指令,该指令当在数据处理硬件上执行时使数据处理硬件执行包括上面描述的方法的操作。
在附图和以下描述中阐述了本公开的一个或多个实现方式的细节。其他方面、特征和优点从本描述和附图以及从权利要求将是显而易见的。
附图说明
图1是位于拖车前面的示例性牵引车辆的示意性俯视图。
图2是具有用户接口、传感器系统和控制器的示例性牵引车辆的示意图。
图3是牵引车辆和拖车的透视图。
图4是针对所捕获的图像内的感兴趣区域ROI的半密集或密集点云的透视图。
图5是点云到相机在其中移动的相机平面的投影的透视侧视图。
图6A和6B是点云在相机平面中的投影的示意性俯视图。
图7是用于检测和定位与牵引车辆后面的拖车相关联的拖车挂接件的联接器的操作的示例性布置的示意图。
在各种附图中,相似的参考符号指示相似的元件。
具体实施方式
参考图1和2,牵引车辆100(诸如但不限于汽车、跨界车、卡车、货车、运动型多用途车辆(SUV)和休闲车辆(RV))可以被配置成挂接到拖车200并且牵引拖车200。牵引车辆100通过牵引车辆挂接件120连接到拖车200,牵引车辆挂接件120具有连接到拖车挂接件210的牵引车辆挂接球122,拖车挂接件210具有拖车联接器212。期望具有一种能够自主地朝向拖车200倒车的牵引车辆100,该拖车200是根据在用户接口130(诸如,用户显示器132)上显示的拖车200、200a-c的一个或多个表示136、136a-c来标识的。另外,还期望具有由牵引车辆100支持的位置估计和跟踪系统160,该系统能够执行实时跟踪和估计拖车挂接件210(即,拖车200的联接器212和牵引杆214)的位置的算法。位置估计和跟踪系统160可以使用位于牵引车辆100的后部部分上的单个相机142a来捕获图像143,并且分析图像143以标识和跟踪拖车200的联接器212和牵引杆214。位置估计和跟踪系统160在每个所捕获的图像143内的预定感兴趣区域(ROI)300中生成半密集/密集点云400(如图4和5中所示),并且基于点云400,位置估计跟踪系统160定位点云400内的联接器212和牵引杆214。联接器212和牵引杆214在点云400中的定位可以通过众所周知的框架来生成,该框架诸如但不限于:视觉里程计(VO)、同时定位和地图创建(SLAM)、以及运动恢复结构(SfM)。附加地,位置估计和跟踪系统160确定在所生成的点云400内的后置相机142a的相机姿态。基于所确定的相机姿态,位置估计和跟踪系统160确定在牵引车辆100正朝向拖车200自主移动的同时相机142a在其中移动的相机平面310(图3)。位置估计和跟踪系统160然后可以使用相机平面310来减少接收到的图像143内的用于联接器212和牵引杆214的搜索空间的复杂性。当位置估计和跟踪系统160标识了图像143内的联接器212以及联接器位置时,位置估计和跟踪系统160使用牵引杆214的形状以找到拖车200的对准方向220。
参考图1-6,在一些实现方式中,牵引车辆100的驾驶员想要牵引位于牵引车辆100后面的拖车200。牵引车辆100可以被配置成:接收与所选拖车200、200a-c的表示相关联的驾驶员选择134的指示。在一些示例中,驾驶员使牵引车辆100朝向所选拖车200、200a-c来机动,而在其他示例中,牵引车辆100朝向所选拖车200、200a-c自主地驾驶。牵引车辆100可以包括驾驶系统110,该驾驶系统110基于例如具有x、y和z分量的驾驶命令而使牵引车辆100跨道路表面来机动。如所示出的,驾驶系统110包括右前车轮112、112a、左前车轮112、112b、右后车轮112、112c和左后车轮112、112d。驾驶系统110也可以包括其他车轮配置。驾驶系统110还可以包括:制动系统114,其包括与每个车轮112、112a-d相关联的制动器;以及加速系统116,其被配置成调整牵引车辆100的速度和方向。另外,驾驶系统110可以包括悬架系统118,该悬架系统118包括与每个车轮112、112a-d相关联的轮胎、轮胎空气、弹簧、减震器、以及将牵引车辆100连接到其车轮112、112a-d的连杆,并且允许牵引车辆100与车轮112、112a-d之间的相对运动。悬架系统118可以被配置成调整牵引车辆100的高度,从而允许牵引车辆挂接件120(例如,牵引车辆挂接球122)与拖车挂接件210(例如,拖车挂接联接器212)对准,这允许牵引车辆100与拖车200之间的自主连接。
牵引车辆100可以通过相对于牵引车辆100所定义的三个相互垂直的轴(横向轴X、前后轴Y和中央竖直轴Z)的移动的各种组合而跨道路表面移动。横向轴X在牵引车辆100的右侧与左侧之间延伸。沿着前后轴Y的前向驾驶方向被指定为F,也被称为前向运动。另外,沿着前后方向Y的后方或后向驾驶方向被指定为R,也被称为后向运动。当悬架系统118调整牵引车辆100的悬架时,牵引车辆100可以绕X轴和或Y轴倾斜,或者沿着中央竖直轴Z移动。
牵引车辆100可以包括用户接口130。用户接口130经由一个或多个输入机构或屏幕显示器132(例如,触摸屏显示器)从驾驶员接收一个或多个用户命令,和/或向驾驶员显示一个或多个通知。用户接口130与车辆控制器150通信,该车辆控制器150进而与传感器系统140通信。在一些示例中,用户接口130显示牵引车辆100的环境的图像,从而导致用户接口130(从驾驶员)接收到发起一个或多个行为的执行的一个或多个命令。在一些示例中,用户显示器132显示位于牵引车辆100后面的拖车200、200a-c的一个或多个表示136、136a-c。在这种情况下,驾驶员选择拖车200、200a-c的表示136、136a-c,从而使控制器150执行与所选表示136、136a-c的拖车200、200a-c相关联的位置估计和跟踪系统160。在一些示例中,在用户显示器132显示位于牵引车辆100后面的拖车200、200a-c的一个表示136、136a-c的情况下,控制器150可以自动地、或在来自驾驶员的用以自主地附接到拖车200、200a-c的指示时执行与该一个表示136、136a-c的一个拖车200、200a-c相关联的位置估计和跟踪系统160。车辆控制器150包括与非暂时性存储器154(例如,硬盘、闪速存储器、随机存取存储器、存储器硬件)通信的计算设备(或处理器或数据处理硬件)152(例如,具有一个或多个计算处理器的中央处理单元),该非暂时性存储器154能够存储在(一个或多个)计算处理器152上可执行的指令。
牵引车辆100可以包括传感器系统140以提供可靠且鲁棒的驾驶。传感器系统140可以包括不同类型的传感器,这些传感器可以单独地使用或者彼此一起使用以创建对牵引车辆100的环境的感知,环境的感知被用于牵引车辆100以进行驾驶并且帮助驾驶员基于传感器系统140检测到的对象和障碍物来做出明智的决策。传感器系统140可以包括一个或多个相机142。在一些实现方式中,牵引车辆100包括后置相机142a,后置相机142a被安装以提供图像143,图像143具有牵引车辆100的后方驾驶路径的视图。后置相机142a可以包括鱼眼镜头,该鱼眼镜头包括产生强烈的视觉失真的超广角镜头,该视觉失真意图创建宽的全景或半球形图像143。鱼眼相机捕获具有极广角视图的图像143。此外,由鱼眼相机捕获的图像143具有特征性凸面非直线外观。其他类型的相机也可以用于捕获牵引车辆100的后方驾驶路径的图像143。
在一些示例中,传感器系统140还包括与牵引车辆100的一个或多个车轮112、112a-d相关联的一个或多个车轮编码器144。车轮编码器144是将车轮的角位置或运动转换成模拟或数字输出信号的机电设备。因此,车轮编码器144确定车轮已经行进的速度和距离。
传感器系统140还可以包括与牵引车辆100相关联的一个或多个加速度和车轮角度传感器146。加速度和车轮角度传感器146确定牵引车辆100在横向轴X和前后轴Y的方向上的加速度。
传感器系统140还可以包括IMU(惯性测量单元)148,IMU 148被配置成测量车辆的线性加速度(使用一个或多个加速度计)和旋转速率(使用一个或多个陀螺仪)。在一些示例中,IMU 148还确定牵引车辆100的前进方向参考。因此,IMU 148确定牵引车辆100的俯仰(pitch)、侧倾(roll)和偏航(yaw)。
传感器系统140可以包括其他传感器,诸如但不限于雷达、声纳、LIDAR(光检测和测距,其可能需要测量散射光的性质的光学远程感测,以找到远处目标的距离和/或其他信息)、LADAR(激光检测和测距)、超声传感器、立体相机等。车轮编码器144、加速度和车轮角度传感器146、以及IMU 148将传感器数据145输出到控制器150,即位置估计和跟踪系统160。
车辆控制器150执行位置估计和跟踪系统160,该位置估计和跟踪系统160从后置相机142a接收图像143,并且确定拖车200相对于驾驶员经由用户接口130所标识的牵引车辆100的位置。更具体地,位置估计和跟踪系统160确定接收到的图像143内的联接器212的位置和牵引杆214的位置。另外,位置估计和跟踪系统160在三维(3D)坐标系或全局坐标系中确定联接器212的位置和牵引杆214的位置。在一些示例中,位置估计和跟踪系统160还确定要与拖车200对准的牵引车辆100的对准方向220,以使得牵引车辆100的前后轴Y与拖车200的前后轴Y重叠。位置估计和跟踪系统160包括迭代算法,该算法使车辆-拖车系统(见图3)的挂接和对准过程自动化。
位置估计和跟踪系统160从后置相机142a接收图像143。在一些实现方式中,位置估计和跟踪系统160指令用户接口130在显示器132上显示接收到的图像143,并且从用户征求对所显示的图像143内的感兴趣区域(ROI)300的选择。ROI 300是包括拖车挂接件210的边界框。在其他示例中,位置估计和跟踪系统160可以包括牵引杆-联接器标识算法,该算法标识图像143内的拖车挂接件210,并且通过作为ROI 300的边界框来形成拖车挂接件210的边界。
位置估计和跟踪系统160生成牵引杆214和联接器212、以及拖车200在ROI 300内的一部分的半密集/密集点云400,如图4中所示。点云是空间中的一组数据点,更具体地,点云包括对象外表面上的多个点。
位置估计和跟踪系统160可以使用一种或多种技术来定位点云400中的牵引杆214和联接器212。这些技术中的一些包括但不限于:视觉里程计(VO)、同时定位和地图创建(SLAM)、以及运动恢复结构(SfM)。VO是一种用于通过分析从相机142a接收到的图像143来确定拖车200、相机142a、联接器212或牵引杆214的位置和取向的方法。VO方法可以提取图像特征点并且在图像序列中对它们进行跟踪。特征点的示例可以包括但不限于:拖车200、联接器212或牵引杆214上的边缘、拐角或滴状体(blob)。VO方法还可以直接使用图像序列中的像素强度作为视觉输入。SLAM方法构造或更新未知环境的地图,而同时保持跟踪一个或多个目标。换句话说,SLAM方法使用接收到的图像143作为外部信息的唯一来源,以建立牵引车辆100和相机142a的位置和取向,而同时构造ROI 300中的对象的表示。SfM方法基于接收到的图像143(即,2D图像)来估计ROI 300中的对象的3D结构。SfM方法可以基于相机142所捕获的图像143的序列来估计相机142a和牵引车辆100的姿态。
在一些实现方式中,位置估计和跟踪系统160执行SLAM方法或SfM方法,因此首先初始化位置估计和跟踪系统160。因此,位置估计和跟踪系统160向驾驶系统110发送指令或命令190,从而使驾驶系统110将牵引车辆110沿着前后轴Y在笔直方向上(例如,在前向驾驶方向F或后向驾驶方向R上)移动达预定距离。在一些示例中,该预定距离是几厘米。该预定距离可以在5cm至50cm之间。沿着前后轴Y的前向F和后向R驾驶移动会使得SLAM或SfM初始化。附加地,沿着前向F和后向R驾驶移动,位置估计和跟踪系统160执行跟踪器算法,以更新由驾驶员所提供或由位置估计和跟踪系统160所确定的图像143内的ROI 300。随着牵引车辆100在后向方向R上移动,拖车200、牵引杆214和联接器212的视角和尺寸在图像143中改变。ROI 300包括牵引杆和联接器,使得ROI 300中的特征点或像素强度由位置估计和跟踪系统160来跟踪。ROI 300用于过滤掉图像143中不是牵引杆214和联接器212的任何事物。
位置估计和跟踪系统160分析接收到的图像143的所有序列而不是两个图像。因此,位置估计和跟踪系统160在做出其确定时更加鲁棒。作为公认的理论的VO、SLAM和SfM框架允许车辆在自生成的3D点云地图中进行实时定位。由VO、SLAM或SfM算法生成的3D点云地图允许平面确定模块162在3D世界中(不是在图像帧中)找到拖车联接器212。
在一些实现方式中,位置估计和跟踪系统160基于VO、SLAM或SfM算法之一来确定3D点云地图的尺度。当通过仅使用单目相机来生成3D点云地图时,它会遭受尺度模糊性的影响,即仅利用单目相机制成的地图仅可按尺度来恢复。然而,如果位置估计和跟踪系统160不知道地图的尺度,则位置估计和跟踪系统160可以通过将VO、SLAM或SfM算法与车辆传感器数据145进行融合来确定地图的尺度。在另一个示例中,位置估计和跟踪系统160基于道路平面320来确定地图的尺度。位置估计和跟踪系统160在地图中确定从相机位置到道路平面320的距离。地图的尺度由相机142a的高度(来自相机数据141)除以在该步骤中计算出的距离来给出。3D点云地图表示环境的结构,而没有提供与地图内的结构的距离有关的详细信息。因此,位置估计和跟踪系统160确定包括距离信息的地图的尺度,并且这允许位置估计和跟踪系统160确定联接器212在世界坐标中的位置。
位置估计和跟踪系统160包括平面确定模块162,平面确定模块162被配置成确定相机平面310和道路平面320。在一些实现方式中,平面确定模块162确定相机142a沿着其移动的相机平面310以及道路平面320。为了确定相机平面310,平面确定模块162使用从相机142a接收到的相机142a的至少三个先前3D位置作为相机数据141。相机数据141可以包括内在(intrinsic)参数(例如,焦距、图像传感器格式和主要点)和外在(extrinsic)参数(例如,从3D世界坐标到3D相机坐标的坐标系变换,换句话说,外在参数定义了在世界坐标中的相机中心的位置和相机的前进方向)。另外,相机数据141可以包括相机142a相对于地面(例如,当车辆被装载和卸载时)的最小/最大/平均高度、以及相机142a与牵引车辆挂接球122之间的纵向距离。平面确定模块162基于相机142a的至少三个先前3D位置中的三个点的3D位置来确定相机平面310。在一些示例中,位置估计和跟踪系统160基于相机平面310来确定道路平面320。在一些实现方式中,由于道路平面320是相机平面310以相机142a距地面的高度(在相机信息141中提供)进行的移位,因此平面确定模块162基于相机平面310和相机数据141来确定道路平面320。当用于确定相机平面310的三个3D点共线时,该过程是有用的,在这种情况下,存在与这些3D点所给定的线共面的无限数量的相机平面310。
为了确定道路平面320,平面确定模块162从所捕获的2D图像143中提取与该道路相关联的至少三个特征点。随后,位置估计和跟踪系统160确定该三个特征点在点云400内的3D位置,并且然后位置估计和跟踪系统160基于该三个特征点来计算道路平面320。在一些示例中,位置估计和跟踪系统160基于道路平面320来确定相机平面310。在一些实现方式中,由于相机平面310是道路平面320以相机142a距地面的高度(由相机信息141所提供)进行的移位,因此位置估计和跟踪系统160基于道路平面320和相机信息141来确定相机平面310。
随着牵引车辆100在后向R方向上自主地移动,平面确定模块162可以实时确定和更新平面310、320,或者如果平面确定模块162确定该道路是平坦的,则位置估计和跟踪系统160可以仅确定一次平面310、320。上述方法使用三个点来确定相机平面310或道路平面320。然而,在一些示例中,平面确定模块162可以依赖于多于三个点来确定平面310、320。在这种情况下,位置估计和跟踪系统160使用最小二乘方法、随机抽样共识(RANSAC)方法、支持向量机(SVM)方法、或这些算法的任何变型来确定平面310、320。通过使用多于三个点来确定平面310、320,平面确定模块162增加了对离群值的鲁棒性。
一旦平面确定模块162确定了相机平面310和道路平面320,作为位置估计和跟踪系统160的一部分的检测模块164就确定牵引杆214和联接器212的位置。如图5中所示,检测模块164将与ROI 300相对应的云点402投影到相机平面310上。然后,检测模块164执行基于计算机视觉的标识算法(例如,神经网络、相关性过滤器等)以找到如投影在相机平面310上的牵引杆214或联接器212的已知形状。在一些示例中,牵引杆214和联接器212的形状的特性可以存储在存储器硬件154中,或者可以使用训练算法而被训练以标识形状。然后,检测模块164可以基于联接器212的所确定的位置L
在一些实现方式中,距离估计模块166通过确定相机平面310中的联接器位置L
在一些实现方式中,联接器高度模块168确定联接器212相对于地面的高度(未示出)。例如,联接器高度模块168可以确定由检测模块164所确定的联接器位置L
位置和估计跟踪系统160检测牵引杆214和联接器212,然后确定联接器位置L
当牵引车辆100沿着所规划的路径自主地机动时,路径规划系统170基于连续地从位置估计和跟踪系统160接收到更新的信息来连续地更新该路径。在一些示例中,对象检测系统沿着所规划的路径来标识一个或多个对象,并且向路径规划系统170发送与该一个或多个对象的位置有关的数据。在这种情况下,路径规划系统170重新计算所规划的路径以避开该一个或多个对象,同时还执行预定的机动。在一些示例中,路径规划系统确定碰撞概率,并且如果碰撞概率超过预定阈值,则路径规划系统170调整该路径并且将其发送到驾驶员辅助系统180。
一旦路径规划系统170确定了所规划的路径,则车辆控制器150就执行驾驶员辅助系统180,驾驶员辅助系统180进而包括路径跟随行为182。路径跟随行为182接收所规划的路径,并且执行向驾驶系统110发送命令190的一个或多个行为182a-b,从而使车辆100沿着所规划的路径自主地驾驶,这使牵引车辆100自主地连接到拖车200。
路径跟随行为182包括:制动行为182a、速度行为182b和转向行为182c。在一些示例中,路径跟随行为182还包括挂接件连接行为和悬架调整行为。每个行为182a-182c会使牵引车辆100采取动作,诸如除了其他之外的后向驾驶、以特定角度转弯、制动、加速、减速。车辆控制器150可以通过控制驾驶系统110、更具体地通过向驾驶系统110发布命令190而使牵引车辆100跨道路表面在任何方向上机动。
可以执行制动行为182a以基于所规划的路径使车辆100停止或使车辆100减速。制动行为182a向驾驶系统110(例如,制动系统(未示出))发送信号或命令190,以使牵引车辆100停止或降低牵引车辆100的速度。
可以执行速度行为182b以基于所规划的路径通过加速或减速来改变牵引车辆100的速度。速度行为182b将信号或命令190发送到制动系统114以用于减速,或发送到加速系统116以用于加速。
可以执行转向行为182c以基于所规划的路径来改变牵引车辆100的方向。由此,转向行为182c向加速系统116发送指示转向角度的信号或命令190,从而使驾驶系统110改变方向。
如先前所讨论的,位置估计和跟踪系统160通过将云点402投影在相机平面310上来确定联接器的位置L
在一些实现方式中,位置估计和跟踪系统160生成所捕获的图像143的半密集或密集点云,而不是仅如先前所描述的ROI 300。通过生成捕获图像143的半密集或密集点云,位置估计和跟踪系统160可以检测图像143内的对象,因此,路径规划系统170可以使用所标识的对象来调整所规划的路径并且避开检测到的对象。
位置估计和跟踪系统160从单个后置相机142a接收图像,因此,位置估计和跟踪系统160不需要图像143中的拖车联接器212的尺寸的先验知识。位置估计和跟踪系统160使用标准CPU,该标准CPU使用或不使用GPU或图形加速器。
图7提供了方法700的操作的示例性布置,该方法700用于使用图1-6B中描述的系统来检测和定位与位于牵引车辆100后面的拖车200相关联的拖车挂接件210的联接器212。在框702处,方法700包括:在数据处理硬件152处、从位于牵引车辆100的后部部分上并且与数据处理硬件152通信的后置相机142a接收图像143。在一些示例中,数据处理硬件152与存储器硬件154通信,存储器硬件154被配置成存储指令、图像143和/或数据。在框704处,方法700包括:由数据处理硬件152来确定图像143内的感兴趣区域300。感兴趣区域300包括拖车挂接件210的表示。在框706处,方法700包括:由数据处理硬件152来确定表示感兴趣区域300内部的对象的三维(3D)点云400。在框708处,方法700包括:由数据处理硬件152基于接收到的图像143来确定后置相机142a在其中移动的相机平面310。在框710处,方法700包括:由数据处理硬件152将与点云400相关联的云点402投影到相机平面310上。在框712处,方法700包括:由数据处理硬件152基于投影到相机平面310上的云点402来确定联接器位置L
在一些实现方式中,方法700进一步包括:由数据处理硬件152基于投影到相机平面310上的云点402来确定拖车200相对于牵引车辆100的对准方向220。该路径还可以基于对准方向220。在一些示例中,方法700包括:由数据处理硬件152来确定后置相机与联接器212之间的纵向距离和横向距离。该方法包括:确定垂直于对准方向220的平面F;确定后置相机142a与平面F之间的第一距离d
在一些示例中,确定图像143内的感兴趣区域300(在框704处)包括:从数据处理硬件152向显示器发送指令以显示接收到的图像143;以及在数据处理硬件152处接收对感兴趣区域300的用户选择。
在一些实现方式中,确定感兴趣区域300的点云400(在框706处)包括:执行视觉里程计(VO)算法、同时定位和地图创建(SLAM)算法、以及运动恢复结构(SfM)算法之一。在一些示例中,方法700还包括通过如下方式来在执行这些算法之前初始化数据处理硬件152:从数据处理硬件152向驾驶系统110发送指令,从而使牵引车辆110在前向F或后向R的笔直方向上驾驶达预定距离。
在一些示例中,确定相机平面310(在框708处)包括:由数据处理硬件152从接收到的图像143来确定后置相机的至少三个三维位置;以及由数据处理硬件152基于该三个三维位置来确定相机平面310。在一些实现方式中,方法700还包括:由数据处理硬件152通过如下方式来确定道路平面320:确定后置相机142a距支撑牵引车辆100的道路的高度;以及使相机平面310以后置相机的高度来移位。
在一些实现方式中,方法700包括通过如下方式来确定道路平面320:由数据处理硬件152从图像143中提取包括道路的至少三个特征点;由数据处理硬件152将点云400中的点402与每一个特征点相关联;以及由数据处理硬件152基于与该至少三个特征点相关联的点云400中的至少三个点来确定道路平面320。在一些示例中,确定相机平面310包括:由数据处理硬件152来确定后置相机142a距该道路的高度;以及由数据处理硬件152使道路平面320以后置相机142a的高度来移位。
方法700包括:由数据处理硬件152基于联接器212与道路平面320之间的距离来确定联接器212的高度,其中该路径基于联接器212的高度。
此处描述的系统和技术的各种实现方式可以以数字电子电路、集成电路、专门设计的ASIC(专用集成电路)、计算机硬件、固件、软件和/或其组合来实现。这些各种实现方式可以包括在一个或多个计算机程序中的实现方式,该程序可在可编程系统上执行和/或解释,该系统包括至少一个可编程处理器(其可以是专用或通用的),该处理器被耦合以从存储系统、至少一个输入设备和至少一个输出设备接收数据和指令并且向其传输数据和指令。
这些计算机程序(也被称为程序、软件、软件应用或代码)包括用于可编程处理器的机器指令,并且可以以高级过程性和/或面向对象的编程语言、和/或以汇编/机器语言来实现。如本文所使用的,术语“机器可读介质”和“计算机可读介质”指代用于向可编程处理器提供机器指令和/或数据的任何计算机程序产品、装置和/或设备(例如,磁盘、光盘、存储器、可编程逻辑器件(PLD)),包括接收机器指令作为机器可读信号的机器可读介质。术语“机器可读信号”指代用于向可编程处理器提供机器指令和/或数据的任何信号。
在本说明书中描述的功能性操作和主题的实现方式可以以数字电子电路来实现,或者以计算机软件、固件或硬件(包括在本说明书中公开的结构及其结构等同物)来实现,或者以它们中的一个或多个的组合来实现。此外,本说明书中描述的主题可以被实现为一个或多个计算机程序产品,即在计算机存储介质上编码以供数据处理装置执行或用以控制数据处理装置的操作的计算机程序指令的一个或多个模块。计算机可读介质可以是机器可读存储设备、机器可读存储基板、存储器设备、影响机器可读传播信号的物质组成、或它们中的一个或多个的组合。术语“数据处理装置”、“计算设备”和“计算处理器”涵盖了用于处理数据的所有装置、设备和机器,作为示例,包括可编程处理器、计算机或多个处理器或计算机。除了硬件之外,该装置还可以包括针对所讨论的计算机程序创建执行环境的代码,例如构成处理器固件、协议栈、数据库管理系统、操作系统、或它们中的一个或多个的组合的代码。传播信号是人工生成的信号,例如机器生成的电气、光学或电磁信号,该信号被生成以对信息进行编码以用于传输到合适的接收器装置。
类似地,虽然在附图中以特定次序描绘了操作,但是这不应当被理解为需要以所示出的特定次序或以顺序次序来执行这种操作、或者执行所有图示的操作以实现合期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上面描述的实施例中的各种系统组件的分离不应当被理解为在所有实施例中都需要这种分离,并且应当理解的是,所描述的程序组件和系统通常可以一起集成在单个软件产品中或者封装到多个软件产品中。
已经描述了多个实现方式。虽然如此,应当理解的是,可以在不偏离本公开的精神和范围的情况下做出各种修改。相应地,其他实现方式在以下权利要求的范围内。
- 经由云点的针对自动拖车挂接的联接器和牵引杆检测
- 半拖车接轮联接器以及组装牵引车和拖车的方法