【2023 · CANN训练营第一季】进阶班 Atlas 200I DK 智能小车

news2024/11/24 8:47:14

1 智能小车三维结构设计

1.1 基本模块

  • 坚固酷炫结构模块
  • 运动控制模块
  • 超声波传感器模块
  • 摄像头视觉模块
  • 其他传感器模块

1.2 结构设计基本原则

从零开始设计并搭建智能小车,在满足外观要求的基础上,要满足小车运转过程中的运动干涉率为O,并且需要考虑实际安装时的易用性与可行性,以及智能小车的重心位置的控制等。
1.2.png

1.3 Solidworks建模

1.31.png
1.32.png
1.33.png

1.4 智能小车所依赖各模块参数及要求

1.4.png

1.5 组装所有依赖的硬件

  • 安装原则
    自底部开始安装承载部分和电源,注意麦克纳姆轮的安装方向,以及螺丝的固定顺序,在铝合金外壳加工差异下,优先固定精度高的螺孔。确定所有接线正确后再固定外壳。

2 ESP32控制器开发入门

在使小车实现感知周围环境并自主完成相应的功能之前需要了解底层的控制部分是如何实现的,从传感器采集到数据之后,在开发者套件上进行推理,然后需要根据推理结果发出指令控制小车的运动状态,就需要使用微控制器。
2.png

  • ESP32单片机实现控制原理
    目前小车上需要使用ESP32进行控制的主要为四个电机以及摄像头云台的两轴舵机,二者的实现方式均是依靠PWM信号脉冲的占空比,改变信号的占空比就可以改变电机的转速以及舵机旋转的角度。

3 智能小车循迹驾驶与自动泊车实现

3.1 场景地图的制作

使用Photoshop软件绘制不同的图层,使用可以使小车正常转弯和停车的尺寸,得到场景地图并打印。
3.1.png

3.2 手动控制小车

了解了智能小车的底层控制方式并且将,ra文件烧录到ESP32之后,就可以启动程序手动控制小车的移动了。
3.2.png

3.3循环驾驶原理实现

3.3.png

3.4 Yolo网络

3.4.png

3.5自动泊车

3.5.png

4 智能小车目标追踪实现

4.png

5 ROS2与激光雷达建图入门

5.1 ROS2 (Robot Operating System)

在开发多传感器融合的样例时,ROS就可以很好做到一个通信桥梁的作用,规整各个传感器与话题、服务,内置多种插件,可以适用到多种不同的场景,还包含了不同的SLAM (Simultaneous Localization and Mapping)功能包,gmapping, hector slam,Cartographer等。
5.1.png
从算法的对数据的处理方式上看,目前常用的SLAM开源算法可以分为两类:
1. 基于滤波
比如扩展卡尔曼滤波(EKF: Extended KalmanFilter) .粒子滤波(PF: Particle Filter)等。
ROS中的gmapping.hector_slam算法都是基于滤波实现的。
2. 基于图优化
先通过传感器进行构图,然后对图进行优化。目前比较主流的是图优化的方法,Cartographer就是基于图优化实现的。图优化相对于滤波,不用实时的进行计算。效率更高,消耗的资源更少,所以在实际场景中使用的更多。

5.2 Cartographer

Cartographer是Google开源的一个可跨多个平台和传感器配置以2D和3D形式提供实时同时定位和建图系统。
5.2.png# 1 智能小车三维结构设计

1.1 基本模块

  • 坚固酷炫结构模块
  • 运动控制模块
  • 超声波传感器模块
  • 摄像头视觉模块
  • 其他传感器模块

1.2 结构设计基本原则

从零开始设计并搭建智能小车,在满足外观要求的基础上,要满足小车运转过程中的运动干涉率为O,并且需要考虑实际安装时的易用性与可行性,以及智能小车的重心位置的控制等。
1.2.png

1.3 Solidworks建模

1.31.png
1.32.png
1.33.png

1.4 智能小车所依赖各模块参数及要求

1.4.png

1.5 组装所有依赖的硬件

  • 安装原则
    自底部开始安装承载部分和电源,注意麦克纳姆轮的安装方向,以及螺丝的固定顺序,在铝合金外壳加工差异下,优先固定精度高的螺孔。确定所有接线正确后再固定外壳。

2 ESP32控制器开发入门

在使小车实现感知周围环境并自主完成相应的功能之前需要了解底层的控制部分是如何实现的,从传感器采集到数据之后,在开发者套件上进行推理,然后需要根据推理结果发出指令控制小车的运动状态,就需要使用微控制器。
2.png

  • ESP32单片机实现控制原理
    目前小车上需要使用ESP32进行控制的主要为四个电机以及摄像头云台的两轴舵机,二者的实现方式均是依靠PWM信号脉冲的占空比,改变信号的占空比就可以改变电机的转速以及舵机旋转的角度。

3 智能小车循迹驾驶与自动泊车实现

3.1 场景地图的制作

使用Photoshop软件绘制不同的图层,使用可以使小车正常转弯和停车的尺寸,得到场景地图并打印。
3.1.png

3.2 手动控制小车

了解了智能小车的底层控制方式并且将,ra文件烧录到ESP32之后,就可以启动程序手动控制小车的移动了。
3.2.png

3.3循环驾驶原理实现

3.3.png

3.4 Yolo网络

3.4.png

3.5自动泊车

3.5.png

4 智能小车目标追踪实现

4.png

5 ROS2与激光雷达建图入门

5.1 ROS2 (Robot Operating System)

在开发多传感器融合的样例时,ROS就可以很好做到一个通信桥梁的作用,规整各个传感器与话题、服务,内置多种插件,可以适用到多种不同的场景,还包含了不同的SLAM (Simultaneous Localization and Mapping)功能包,gmapping, hector slam,Cartographer等。
5.1.png
从算法的对数据的处理方式上看,目前常用的SLAM开源算法可以分为两类:
1. 基于滤波
比如扩展卡尔曼滤波(EKF: Extended KalmanFilter) .粒子滤波(PF: Particle Filter)等。
ROS中的gmapping.hector_slam算法都是基于滤波实现的。
2. 基于图优化
先通过传感器进行构图,然后对图进行优化。目前比较主流的是图优化的方法,Cartographer就是基于图优化实现的。图优化相对于滤波,不用实时的进行计算。效率更高,消耗的资源更少,所以在实际场景中使用的更多。

5.2 Cartographer

Cartographer是Google开源的一个可跨多个平台和传感器配置以2D和3D形式提供实时同时定位和建图系统。
5.2.png

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

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

相关文章

玩转ChatGPT:Show Me插件尝鲜

一、写在前面 之前,不少人问我GPT能否画技术路线图,然后看到了这个插件:Show Me: 简单问GPT这个插件的使用方法: 二、尝鲜过程 (1)用TA提供的例子试一试: 咒语:请用图…

009、实例连接访问控制

实例连接访问控制 1、实例连接访问控制概述2、pg_hba.conf文件3、名单格式4、pg_hba.conf 示例:5、当有重复或者冲突的时候1、实例连接访问控制概述 • 实例访问控制就像是一道防火墙,用它来控制来自于不同主机、不同用户是否 允许访问指定的数据库、以及验证方式。 2、pg…

【Tcp通信服务器流程】

TCP通信流程 1、服务器端(被动接收连接的角色) (1)创建一个用于监听的套接字 - 监听:监听有客户端的连接 - 套接字:这个套接字其实就是一个文件描述符 (2)将这个监听文件描述符和…

TextCNN文本分类

本文主要介绍TextCNN文本分类,主要从TextCNN的原理的Pytorch实现来逐步讲解。主要思想来自论文《Convolutional Neural Networks for Sentence Classification(EMNLP2014) 论文连接:[1408.5882] Convolutional Neural Networks f…

设计模式系列/ 职责链模式

必读 本篇主要分析设计模式之 职责链模式。 什么人适合学习本章节呢。 从未接触过设计模式的同学有n年工作经验 && 对职责链模式不了解的同学 1. 职责链模式意识形态 设计模式充斥着我们开发过程中的方方面面,责任链模式也是如此。也许你用到了设计模式&…

ElasticSearch-文档查询

目录 一、查询某个索引下的全部文档 二、根据查询条件查询文档 三、分页查询 四、查询指定返回的字段 五、排序 六、多条件查询 七、范围查询 八、全文检索与完全匹 一、查询某个索引下的全部文档 语法: GET /索引名称/_search {"query": {&quo…

[BJDCTF2020]Easy MD51

拿到题目后就一个空白页面,没啥特别的东西,传入参数也没啥变化 在查看源码无果后在响应头的找到了一份隐藏信息,应该就是页面对应的后端代码,我们提交的数据就是变量$pass的值 PHP中的MD5函数的意思是,将$pass变量的值…

LitCTF2023-部分Reserve复现

目录 一:[LitCTF 2023]snake pyc文件magic修复: pycdc工具转pyc文件为py文件: [LitCTF 2023]enbase64 [LitCTF 2023]ez_XOR [LitCTF 2023]For Aiur 在python38环境中将exe文件反编译为pyc文件 pycdc使用: [LitCTF 2023]程…

iptables防火墙1

iptables防火墙 iptables概述 Linux 系统的防火墙 :IP信息包过滤系统,它实际上由两个组件netfilter 和 iptables组成。 主要工作在网络层,针对IP数据包。体现在对包内的IP地址、端口、协议等信息的处理上。 netfilter/iptables 关系&#xf…

ADC模数转换器

目录 逐次逼近型ADC 原理图 ADC基本框图​编辑 输入通道 ​编辑 转换模式 ADC触发控制​编辑 数据对齐 ​编辑 采样时间 校准 硬件电路 来源b站江科大stm32入门教程 逐次逼近型ADC 原理图 规则组最好要和DMA一起使用 ADDCLK来自ADC预分频器 ,根据下图看出&…

OpenGL之绘制三角形

目录 OpenGL绘制图形的流程 标准化设备坐标 VAO和VBO VBO(顶点缓冲对象) VBO(顶点缓冲对象)创建流程 VAO(顶点数组对象) 绘制三角形 ​编辑给三角形添加颜色 顶点着色器 片段着色器 编译着色器 使用着色器为三角形添加颜色 OpenGL绘制图形的流程 在OpenGL中&…

二、Django REST Framework (DRF)序列化反序列化

参考: 为什么要学DRF和什么是REST API | 大江狗的博客 上一章: 一、Django REST Framework (DRF)& RESTful 风格api_做测试的喵酱的博客-CSDN博客 一、DRF框架介绍 1.1 介绍 Django REST Framework (DRF)这个神器我们可以快速开发出优秀而且…

基于SpringBoot的网吧管理系统的设计与实现

背景 随着信息技术和网络技术的飞速发展,人类已进入全新信息化时代,传统管理技术已无法高效,便捷地管理信息。为了迎合时代需求,优化管理效率,各种各样的管理系统应运而生,各行各业相继进入信息管理时代&a…

ICR-预测三种医学状况 #$60,000 #Kaggle

CompHub[1] 实时聚合多平台的数据类(Kaggle、天池…)和OJ类(Leetcode、牛客…)比赛。本账号会推送最新的比赛消息,欢迎关注! 以下信息由AI辅助创作,仅供参考 比赛名称 ICR - Identifying Age-Related Conditions[2] (见文末阅读原…

chatgpt赋能Python-pythonforrange

Python中的Range函数 在Python编程语言中,range()是一个用于生成一系列数字的函数。它可以接受1至3个整型参数:起始值、终止值和步长。生成的数字包括起始值,但不包括终止值。步长默认为1。 Range函数的语法 Python中range()函数的常规语法…

C++视角下的Qt按钮:从基础应用到高级定制

C视角下的Qt按钮:从基础应用到高级定制 一、Qt按钮基础 (Qt Button Basics)1.1 Qt按钮的定义与创建 (Definition and Creation of Qt Buttons)1.2 Qt按钮的属性 (Properties of Qt Buttons)文本 (Text)图标 (Icon)大小 (Size)样式 (Style)是否可用 (Enabled) 1.3 Qt…

Java【TCP 协议3】提高效率的五大机制

文章目录 前言一、滑动窗口与高速重传1, 什么是滑动窗口2, 什么是高速重传2.1, ack 丢包2.2, 数据丢包 二、流量控制1, 什么是流量控制 三、拥塞控制1, 什么是拥塞控制 四、延迟应答1, 什么是延迟应答 五、捎带应答1, 什么是捎带应答 总结 前言 各位读者好, 我是小陈, 这是我的…

JavaScript实现1-100之间所有的素数的代码

以下为实现1-100之间所有的素数的程序代码和运行截图 目录 前言 一、1-100之间所有的素数 1.1 运行流程及思想 1.2 代码段 1.3 JavaScript语句代码 1.4 运行截图 前言 1.若有选择,您可以在目录里进行快速查找; 2.本博文代码可以根据题目要求实现…

防火墙(二)

进一步了解防火墙 一、SNAT原理与应用模拟实验 二、DNAT的原理与应用模拟实验 三、抓包四、防火墙规则的备份和还原 一、SNAT原理与应用 SNAT应用环境:局域网主机共享单个公网IP地址接入Internet(私有不能早Internet中正常路由) SNAT原理&am…

【2023 · CANN训练营第一季】新手班 昇腾AI入门课(PyTorch)

1 昇腾AI全栈架构 昇腾计算产业是基于昇腾系列处理器和基础软件构睫的全栈Al计算基础设施.行业应用及服务,包括昇腾系列处理器、Atlas系列硬件、CANN (Compute Architecture for Neural Networks,异构计算架构》、Al计算框架、应用使能、全流…