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

news2024/10/5 20:25:12
推荐:使用 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)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/892255.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

非结构化数据库-MinIO基本集成

是什么 MinIO 是一个高性能的分布式对象存储服务&#xff0c;适合存储非结构化数据&#xff0c;如图片&#xff0c;音频&#xff0c;视频&#xff0c;日志等。对象文件最大可以达到5TB。 安装启动 mkdir -p /usr/local/minio cd /usr/local/minio# 下载安装包 wget https:/…

Spring之AOP的特性

一. AOP简介 AOP是Aspect-Oriented Programming的缩写&#xff0c;即面向切面编程。利用oop思想&#xff0c;可以很好的处理业务流程&#xff0c;但是不能把系统中某些特定的重复性行为封装到模块中。例如&#xff0c;在很多业务中都需要记录操作日志&#xff0c;结果我们不得…

互联网的边缘与核心部分

边缘部分是用户直接使用&#xff0c;用来进行通信和资源共享。 核心部分由大量网络和连接网络的路由器组成。这部分是为边缘部分提供服务的。 边缘部分 处在互联网边缘的部分就是连接在互联网上的所有的主机。这些主机又称为端系统(end system)。 主机间的通信其实是进程间…

(三)行为型模式:3、解释器模式(Interpreter Pattern)(C++示例)

目录 1、解释器模式&#xff08;Interpreter Pattern&#xff09;含义 2、解释器模式的UML图学习 3、解释器模式的应用场景 4、解释器模式的优缺点 5、C实现解释器模式的实例 1、解释器模式&#xff08;Interpreter Pattern&#xff09;含义 解释器模式&#xff08;Interp…

WebSocket服务端数据推送及心跳机制(Spring Boot + VUE)

一、WebSocket简介 HTML5规范在传统的web交互基础上为我们带来了众多的新特性&#xff0c;随着web技术被广泛用于web APP的开发&#xff0c;这些新特性得以推广和使用&#xff0c;而websocket作为一种新的web通信技术具有巨大意义。WebSocket是HTML5新增的协议&#xff0c;它的…

Linux Vm上部署Docker

创建ubutu虚拟机并远程连接&#xff0c; 参考 https://blog.csdn.net/m0_48468018/article/details/132267096 在终端中切换到root用户&#xff0c;并安装docker服务 2.1 切换到root用户 sudo su2.2 安装docker服务 , 参考 https://docs.docker.com/engine/install/ubuntu/ …

Dart 入门Hello world

1、下载Dart sdk IntelliJ & Android Studio | Dart 2、安装Dart 插件 3、安装后重启IDEA&#xff0c;创建Dart项目 4、创建dart文件 5、编写函数&#xff1a; void main() {print("Hello world"); } 6、运行&#xff1a; 官网学习&#xff1a;Dart 语言开发文…

Android漏洞之战——整体加壳原理和脱壳技巧详解

一、前言 为了帮助更加方便的进行漏洞挖掘工作&#xff0c;前面我们通过了几篇文章详解的给大家介绍了动态调试技术、过反调试技术、Hook技术、过反Hook技术、抓包技术等&#xff0c;掌握了这些可以很方便的开展App漏洞挖掘工作&#xff0c;而最后我们还需要掌握一定的脱壳技巧…

21.1 CSS 文字样式

1. 字体倾斜 font-style属性: 为文本设置字体样式.常用取值: normal: 正常显示文本. 快捷键: fstab. italic: 显示斜体文本. 快捷键: fsntab.<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>fo…

Linux系列讲解 —— 【debugfs】交互式文件系统调试器

手册上说debugfs可以用于检查和更改ext2、ext3或ext4文件系统的状态。似乎很牛的样子&#xff0c;但是我并没有试验出来它多么强大的功能&#xff0c;无非就是在某些文件损坏导致无法删除的时候&#xff0c;我用debugfs来删除这些文件而已&#xff0c;如果有人知道它其他的妙用…

ChatGLM2-6B安装部署(详尽版)

1、环境部署 安装Anaconda3 安装GIT 安装GUDA 11.8 安装NVIDIA 图形化驱动 522.25版本&#xff0c;如果电脑本身是更高版本则不用更新 1.1、检查CUDA 运行cmd或者Anaconda&#xff0c;运行以下命令 nvidia-smi CUDA Version是版本信息&#xff0c;Dricer Version是图形化…

分布式光伏运维平台在公益场馆屋顶光伏发电系统的应用分析

摘要&#xff1a;2021年9月&#xff0c;国家发改委印发烷善能源消费强度和总量双控制度方案》&#xff0c;提出鼓励可再生能源的使用&#xff0c;支持可再生能源发展。在这样的政策推动下&#xff0c;光伏发电市场无疑将迎来高质量发展的新机遇。现结合山东博物馆光伏电站日常管…

C#语音播报问题之 无法嵌入互操作类型SpVoiceClass,请改用适用的窗口

C#语音播报问题之 无法嵌入互操作类型SpVoiceClass&#xff0c;请改用适用的窗口 解决办法如下&#xff1a; 只需要将引入的Interop.SpeechLib的属性嵌入互操作类型改为false 改为false 即可解决&#xff01;

【Spring专题】Spring之Bean的生命周期源码解析——阶段二(二)(IOC之属性填充/依赖注入)

目录 前言阅读准备阅读指引阅读建议 课程内容一、依赖注入方式&#xff08;前置知识&#xff09;1.1 手动注入1.2 自动注入1.2.1 XML的autowire自动注入1.2.1.1 byType&#xff1a;按照类型进行注入1.2.1.2 byName&#xff1a;按照名称进行注入1.2.1.3 constructor&#xff1a;…

快速实现SAP的移动化和流程优化

热门议题&#xff1a; 1、企业如何快速解决人员移动办公的需求&#xff0c;比如在苹果安卓手机&#xff0c;平板电脑&#xff0c;MAC登录SAP。2、企业如何解决用户经常抱怨的流程复杂&#xff0c;操作繁琐&#xff0c;难以使用等问题 公司介绍&#xff1a; Synactive,Inc. 是…

【校招VIP】前端校招考点之vue底层特性

考点介绍&#xff1a; 大家在面试途中遇到的相对多的问题&#xff0c;也是难点的问题&#xff0c;一般都有vue底层原理。对于只会用但是不懂的小白来说真是太痛苦了&#xff0c;仅仅能说出来 一些 数据劫持&#xff0c;双向数据绑定&#xff0c;虚拟dom树的名词来说远远不够。 …

通过 HttpClient 发送请求

文章目录 1. 引入 maven 依赖2. 发送 GET 方式的请求3. 发送 POST 方式的请求 1. 引入 maven 依赖 <dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactId> </dependency>2. 发送 GET 方式的请求…

《Go 语言第一课》课程学习笔记(六)

变量声明&#xff1a;静态语言有别于动态语言的重要特征 变量所绑定的内存区域是要有一个明确的边界的。也就是说&#xff0c;通过这样一个变量&#xff0c;我们究竟可以操作 4 个字节内存还是 8 个字节内存&#xff0c;又或是 256 个字节内存&#xff0c;编程语言的编译器或解…

【考研数学】概率论与数理统计 | 第一章——随机事件与概率(3,全概率公式、贝叶斯公式与三大概型)

文章目录 引言六、全概率公式与贝叶斯公式6.1 全概率公式6.2 贝叶斯公式 七、三大概型7.1 古典概型7.2 几何概型7.3 伯努利概型 引言 承接前文&#xff0c;在事件的独立之后&#xff0c;我们开始学习全概率公式、贝叶斯公式以及概型。 六、全概率公式与贝叶斯公式 定义—— 完…

【Diffusion】李宏毅2023机器学习Diffusion笔记

文章目录 1 想法概述2 实际过程阶段1 Add Noise阶段2 Denoise 3 数学原理4 为什么推理时要额外加入noise5 一些不知道对不对的Summary 1 想法概述 从一张充满噪声的图中不断denoise&#xff0c;最终得到一张clear的图片。为了确定当前图片中噪声占比的大小&#xff0c;同时输入…