NVIDIA Jetson 项目:机器人足球比赛

2023-10-28 07:10

本文主要是介绍NVIDIA Jetson 项目:机器人足球比赛,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

推荐:使用 NSDT场景编辑器 助你快速搭建可二次编辑器的3D应用场景

 

NVIDIA Jetson 项目:机器人足球比赛

事实上,整个比赛都致力于这个想法。RoboCup小型联盟(SSL)视觉停电技术挑战赛鼓励团队“探索本地传感和处理,而不是非车载计算机和全球摄像机感知环境的典型方法。来自巴西累西腓伯南布哥联邦大学的学生 João Guilherme、他的导师 Edna Barros 和其他 SSL 队友建造了一个由 NVIDIA Jetson Nano 开发套件提供支持的全向机器人,用于自主执行足球任务。

该团队用单目摄像头构建了他们的全向机器人,可以自主执行以下任务:

  • 地方化
  • 足球检测和抓取
  • 坐标计算
  • 将球传给其他团队机器人
  • 空门得分

该团队使用AI软件管道构建了机器人,平均处理速度为30 FPS,硬件仅消耗约10.8 W的功率。

机器人的前部有一个踢腿装置,是一个四轮全向机器人。图 1 显示了机器人的几何形状。

显示SSL全向机器人运动能力的图表。

图1.由 NVIDIA Jetson 纳米开发套件提供支持的全向机器人的运动能力,可自主执行足球任务

“我们通过三项足球任务评估我们的系统:抢球、进球和传球,分别实现了 80%、80% 和 46.7% 的成功率,”该团队在迈向自主机器人杯小型联盟机器人中解释道。

在比赛期间,球队将使用场外计算机执行大部分计算,接收球的位置并收集场地几何信息和裁判命令。比赛在11个(B级)和180个(A级)机器人的团队之间进行,机器人通过RF通信以最小的带宽接收导航命令。机器人的直径和高度限制在150毫米(B分区)和<>毫米(A分区),因此得名小尺寸联盟。

SSL RoboCup比赛包括四个阶段:

  1. 在球场上的某个地方抓住一个静止的球
  2. 空门带球得分
  3. 将机器人移动到特定坐标
  4. 打进一个间接进球(需要两个机器人)

此外,这一挑战要求机器人检测野外物体,估计其位置,计算导航路径并记录过去的轨迹。

“SSL匹配是高度动态的环境,具有极其资源受限的机器人,需要解决方案考虑尺寸,功耗,准确性和处理速度权衡。这项工作提出了一种架构,使这些机器人能够自主执行基本的足球任务,也就是说,无需接收任何外部信息,“Guilherme和他的队友在迈向自主RoboCup小型联盟机器人中表示。

项目硬件

该团队在其项目中使用了以下硬件:

  • Jetson 纳米开发套件,用于执行嵌入式视觉和决策
  • 全向机器人
  • 罗技 C922 摄像头,提供单目视觉
  • 惯性传感器,用于实现测程估计
  • STM32F767ZI微控制器单元(MCU),用于接收来自Nano的目标相对位置和导航标志,并使用惯性里程计执行低级控制和轨迹估计

足球机器人AI检测管道和运动规划流程图。

图2.足球机器人的AI检测流水线及运动规划

有关所用硬件的更多信息,请参阅 RobôCIn 2020 团队描述文件。

技术挑战

在比赛的视觉停电挑战赛中,获胜的机器人必须能够完成各种基于足球的技能,包括抓住一个静止的球,在空球上得分,移动到特定的坐标,以及得分一个间接进球(传给另一个机器人)。

机器人必须能够仅使用嵌入式传感和处理来执行这些技能。这项挑战没有高度限制,因此该团队在他们的典型机器人顶部增加了一个机载摄像头Jetson Nano和一个电源板。

图中显示了两个版本的足球机器人。左边的那个是为视觉停电挑战而修改的,带有板载摄像头和电源板。原始机器人显示在右侧。

图3.该团队为视觉停电挑战赛改装的足球机器人(左)和他们原来的机器人(右)

此外,这一挑战要求机器人检测野外物体,估计其位置,计算导航路径并记录过去的轨迹。SSL足球比赛利用外部摄像头和机外计算机来感知环境并向机器人发送命令。

根据研究人员的说法,SSL Vision架构“存在诸如相机的视野,颜色分割,软件延迟和通信中断等限制,迫使团队开发处理复杂条件的解决方案。例如,比赛中的一个常见问题是球遮挡,当机器人在相机图像上的投影与球重叠时,就会发生这种情况。另一个问题是球和机器人的位置会闪烁,偶尔不会检测到或错误地检测到它们。

在SSL竞赛中,机器人和球分别达到3.7米/秒和6.5米/秒的速度,导致快速移动的游戏需要高吞吐量的解决方案。此外,尺寸限制加上使用电池作为电源要求解决方案具有低功耗。此外,在比赛中进行精确的长距离踢球和传球,需要准确的位置估计。

该团队还指出了精确电机控制的重要性,因此机器人可以在足球场上移动并保持其测量位置准确。该团队需要一种方法来降低机器人对其位置的内部理解与其实际物理位置的分歧率。有关更多详细信息,请参阅迈向自主机器人杯小型联盟机器人。

显示机器人如何检测球场上的足球的流程图。

图4.足球机器人的摄像头有助于物体检测以及用于决策和路径规划的视野

项目软件和人工智能

该团队使用OpenCV2以及校准和姿势计算技术来提取单眼相机(固定在机器人上)的“内在和外在参数”。他们使用SSD MobileNet v2来检测相机帧上物体的2D边界框。他们还使用了一个程序,将线性回归应用于SSD MobileNet创建的边界框坐标,用于估计预先校准的相机参数。这将在场上分配对应于对象底部中心(具有对象与相机的相对位置)的点,因此也分配给机器人。

结果

该团队对他们的机器人在今年的挑战中的表现感到满意。亮点包括:

  • 抓住一个静止的球: 在 12 次尝试中的 15 次中,机器人能够在球接触运球器时停止,成功率为 80%。
  • 进球: 12次跑动中有15次打进一球。
  • 通过:机器人在 7 次尝试中的 15 次中传球,成功率为 46.7%。

访问 机器人世界杯 2023 结果以查看完整的结果列表。该团队自 2019 年以来一直参加 RoboCup 小型联赛,并在 2022 年赢得了他们的第一个世界冠军(B 级)。他们目前是三届拉丁美洲冠军。RobôCIn 2023 年 RoboCup 小型联赛扩展团队描述文件介绍了该团队在 2023 月下旬在法国波尔多举行的 RoboCup <> 中对小型联赛 (SSL) B 级冠军的项目所做的改进,当时他们获得了第一名。

机器人抓住固定球的 gif。

图5.机器人抓住静止球(左)并进球(右)

未来计划

Guilherme分享了他们的团队在比赛中遇到的挑战的一些见解,以及未来赛事的改进机会。他指出,大多数失败是由于来自场外物体的假阳性检测。“我们正在研究一种检测场边界并应用掩模丢弃这些物体的解决方案,”他说。

团队需要更快的对象检测解决方案。“尽管到目前为止我们能够执行基本技能,但对于SSL环境来说,30 FPS的处理速度仍然很低。在主要比赛中,相机通常以 70 FPS 的速度运行,“他说。

机器人的技能仅使用检测到的物体的相对位置来实现,也就是说,没有机器人在现场的自我定位知识。“我们相信这些信息可能有助于优化我们在足球任务中的表现,同时也使我们能够避免处罚,”Guilherme指出。例如,机器人不应进入守门员的区域。“我们正在研究一种基于蒙特卡罗定位(MCL)的自我定位算法,并将在未来几个月内分享。

该团队计划在未来为机器人系统添加更多功能(例如场线检测、定位算法和路径规划),他们将努力优化系统的每个部分以满足这些需求。

此外,该团队继续研究检测场边界和线以及估计机器人自我定位的解决方案。他们还计划用Jetson Orin Nano取代Jetson Nano,这样他们就可以用机器人实现更快的处理速度。这种升级应该有助于球队在联赛中更有效地竞争。

要了解有关团队原始项目的更多信息,请访问开发人员论坛和 GitHub。探索 Jetson 社区项目,从机器人开发人员同行那里获得更多想法和灵感。

原文链接:NVIDIA Jetson 项目:机器人足球比赛 (mvrlink.com)

这篇关于NVIDIA Jetson 项目:机器人足球比赛的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/291558

相关文章

一文教你如何将maven项目转成web项目

《一文教你如何将maven项目转成web项目》在软件开发过程中,有时我们需要将一个普通的Maven项目转换为Web项目,以便能够部署到Web容器中运行,本文将详细介绍如何通过简单的步骤完成这一转换过程... 目录准备工作步骤一:修改​​pom.XML​​1.1 添加​​packaging​​标签1.2 添加

tomcat多实例部署的项目实践

《tomcat多实例部署的项目实践》Tomcat多实例是指在一台设备上运行多个Tomcat服务,这些Tomcat相互独立,本文主要介绍了tomcat多实例部署的项目实践,具有一定的参考价值,感兴趣的可... 目录1.创建项目目录,测试文China编程件2js.创建实例的安装目录3.准备实例的配置文件4.编辑实例的

springboot集成Deepseek4j的项目实践

《springboot集成Deepseek4j的项目实践》本文主要介绍了springboot集成Deepseek4j的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价... 目录Deepseek4j快速开始Maven 依js赖基础配置基础使用示例1. 流式返回示例2. 进阶

SpringBoot项目启动报错"找不到或无法加载主类"的解决方法

《SpringBoot项目启动报错找不到或无法加载主类的解决方法》在使用IntelliJIDEA开发基于SpringBoot框架的Java程序时,可能会出现找不到或无法加载主类com.example.... 目录一、问题描述二、排查过程三、解决方案一、问题描述在使用 IntelliJ IDEA 开发基于

SpringBoot项目使用MDC给日志增加唯一标识的实现步骤

《SpringBoot项目使用MDC给日志增加唯一标识的实现步骤》本文介绍了如何在SpringBoot项目中使用MDC(MappedDiagnosticContext)为日志增加唯一标识,以便于日... 目录【Java】SpringBoot项目使用MDC给日志增加唯一标识,方便日志追踪1.日志效果2.实现步

Ubuntu中Nginx虚拟主机设置的项目实践

《Ubuntu中Nginx虚拟主机设置的项目实践》通过配置虚拟主机,可以在同一台服务器上运行多个独立的网站,本文主要介绍了Ubuntu中Nginx虚拟主机设置的项目实践,具有一定的参考价值,感兴趣的可... 目录简介安装 Nginx创建虚拟主机1. 创建网站目录2. 创建默认索引文件3. 配置 Nginx4

SpringBoot项目启动错误:找不到或无法加载主类的几种解决方法

《SpringBoot项目启动错误:找不到或无法加载主类的几种解决方法》本文主要介绍了SpringBoot项目启动错误:找不到或无法加载主类的几种解决方法,具有一定的参考价值,感兴趣的可以了解一下... 目录方法1:更改IDE配置方法2:在Eclipse中清理项目方法3:使用Maven命令行在开发Sprin

Nginx实现高并发的项目实践

《Nginx实现高并发的项目实践》本文主要介绍了Nginx实现高并发的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录使用最新稳定版本的Nginx合理配置工作进程(workers)配置工作进程连接数(worker_co

Vue项目的甘特图组件之dhtmlx-gantt使用教程和实现效果展示(推荐)

《Vue项目的甘特图组件之dhtmlx-gantt使用教程和实现效果展示(推荐)》文章介绍了如何使用dhtmlx-gantt组件来实现公司的甘特图需求,并提供了一个简单的Vue组件示例,文章还分享了一... 目录一、首先 npm 安装插件二、创建一个vue组件三、业务页面内 引用自定义组件:四、dhtmlx

SpringBoot项目注入 traceId 追踪整个请求的日志链路(过程详解)

《SpringBoot项目注入traceId追踪整个请求的日志链路(过程详解)》本文介绍了如何在单体SpringBoot项目中通过手动实现过滤器或拦截器来注入traceId,以追踪整个请求的日志链... SpringBoot项目注入 traceId 来追踪整个请求的日志链路,有了 traceId, 我们在排