从零搭建一台基于ROS的自动驾驶车-----1.整体介绍

news2024/9/20 18:29:56

系列文章目录

北科天绘 16线3维激光雷达开发教程
基于Rplidar二维雷达使用Hector_SLAM算法在ROS中建图
Nvidia Jetson Nano学习笔记–串口通信
Nvidia Jetson Nano学习笔记–使用C语言实现GPIO 输入输出
Autolabor ROS机器人教程


文章目录

  • 系列文章目录
  • 前言
  • 一、小车底盘
  • 二、激光雷达
  • 三、建图
  • 四、定位
  • 五、导航
  • 总结


前言

最近期间开始学习Linux嵌入式,ROS,激光SLAM,学的很杂,学的很乱,学习的过程中愈发地想造一台ROS小车,小车的最终要实现的功能是实现自动导航运动。经过一段时间的学习,已经初步实现了导航功能。
下面我将记录一下实现的过程。


整个智能车主要由 主控制器(我用的是NVIDIA Jetson AGX Xavier 简称为Nvidia),一个二维雷达,一个小车底盘等组成。本文只是做一个概述,详细的实现过程和代码我将会写在后面的博客。
目前是实现一个比较简单的导航功能,整个实现过程大部分也是按照Autolabor机器人的教程来做的。
请添加图片描述

一、小车底盘

智能车的底盘一般采用四轮差速底盘,通常Nvidia通过串口或者CAN协议来控制底盘的运动,也可以获取小车的编码器数据等等,在我的车里面采用的是四轮底盘,Nvidia通过串口发送数据给底盘来控制其运动。

二、激光雷达

激光雷达是激光SLAM中非常重要的一个传感器,可以通过激光雷达+cartography算法来建图,也可以通过激光雷达+amcl来实现定位功能,也可以用在move_base功能包中来实现避障功能。

三、建图

在现实生活中,当我们需要实现导航时,可能会首先参考一张全局性质的地图,然后根据地图来确定自身的位置、目的地位置,并且也会根据地图显示来规划一条大致的路线… 对于机器人导航而言,也是如此,在机器人导航中地图是一个重要的组成元素,当然如果要使用地图,首先需要绘制地图。 在激光SLAM中 建图的算法有很多,但是对于二维雷达来说效果比较好的建图算法就是Cartography。

四、定位

导航伊始和导航过程中,机器人都需要确定当前自身的位置,如果在室外,那么 GPS 是一个不错的选择,而如果室内、隧道、地下或一些特殊的屏蔽 GPS 信号的区域,由于 GPS 信号弱化甚至完全不可用,那么就必须另辟蹊径了,比如前面的 SLAM 就可以实现自身定位,除此之外,ROS 中还提供了一个用于定位的功能包: amcl。
说白了定位就是在地图中让机器人确定自己所在的位置,可以采用激光雷达+amcl来实现定位功能。

amcl(adaptiveMonteCarloLocalization)自适应的蒙特卡洛定位,是用于2D移动机器人的概率定位系统。它实现了自适应(或KLD采样)蒙特卡洛定位方法,该方法使用粒子过滤器根据已知地图跟踪机器人的姿态。

五、导航

导航就是机器人从A点运动至B点的过程,在这一过程中,机器人需要根据目标位置计算全局运动路线,并且在运动过程中,还需要时时根据出现的一些动态障碍物调整运动路线,直至到达目标点,该过程就称之为路径规划。在 ROS 中提供了 move_base 包来实现路径规则,该功能包主要由两大规划器组成:
全局路径规划(gloable_planner)

根据给定的目标点和全局地图实现总体的路径规划,使用 Dijkstra 或 A* 算法进行全局路径规划,计算最优路线,作为全局路线

本地时时规划(local_planner)

在实际导航过程中,机器人可能无法按照给定的全局最优路线运行,比如:机器人在运行中,可能会随时出现一定的障碍物… 本地规划的作用就是使用一定算法(Dynamic Window Approaches) 来实现障碍物的规避,并选取当前最优路径以尽量符合全局最优路径

全局路径规划与本地路径规划是相对的,全局路径规划侧重于全局、宏观实现,而本地路径规划侧重与当前、微观实现。


总结

整个智能车的组成部分就上面所介绍,后面我将一一介绍智能车的每一个部分。

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

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

相关文章

Redis入门(三)

第5章 Redis的相关配置(redis.conf) 1)计量单位说明,大小写不敏感 # 1k > 1000 bytes # 1kb > 1024 bytes # 1m > 1000000 bytes # 1mb > 1024*1024 bytes # 1g > 1000000000 bytes # 1gb > 1024*1024*1024 bytes # # units are case insensiti…

如何安装Apache服务

目录 什么是Apache 第一步 关闭防火墙和安全机制 第二步 系​统​上​定​义 SELinux 最​高​级​别 第三步 导入对应的依赖包并解包 第四步 安装依赖环境 第五步 移动相关文件 第六步 编译安装 第七步 编译 第八步 备份配置文件 第九步 优化执行路径 第十步 添加…

S32K324芯片学习笔记-实时控制系统-eMIOS

文章目录 Enhanced Modular IO Subsystem (eMIOS)eMISO配置通道类型通道配置BCTU Interface 简介功能框图Unified channels (UC)Buffered modesUC control and datapath diagramUC modesGPIO模式SAIC (Single Action Input Capture)模式Single Action Output Capture (SAOC) mo…

AI自动写代码:GitHub copilot插件在Idea的安装和使用教程

GitHub Copilot 是微软与OpenAI共同推出的一款AI编程工具,基于GitHub及其他网站的源代码,根据上文提示为程序员自动编写下文代码,可以极大地提高编写代码的效率。 先看看ChatGpt是怎么回答Copilot的功能特点: 给大家简单提取一…

【go】新手go module 踩坑入门rc_server

go1.3 后废弃了GOPATH 但是gomodule 要自己设置 :go env -w GO111MODULE=auto Microsoft Windows [版本 10.0.22621.1848] © Microsoft Corporation。保留所有权利。 C:\Users\zhangbin>adb connect 127.0.0.1:7555 connected to 127.0.0.1:7555 C:\Users\zhangbin&…

【计算机通识】未来的计算机

欢迎来到博主 Apeiron 的博客,祝您旅程愉快 ! 时止则止,时行则行。动静不失其时,其道光明。 目录 1、缘起 2、未来的计算机 2.1、光子计算机 2.2、生物计算机 2.3、量子计算机 3、总结 1、缘起 自然界中的一切事物都是处…

3d重建+神经渲染

3d重建 基于深度相机(结构光、TOF、双目摄像头)的三维重建基于图像的三维重建:深度学习基于视觉几何的传统三维重建:这种三维重建方法研究时间比较久远,技术相对成熟。主要通过多视角图像对采集数据的相机位置进行估计,再通过图像…

经典同步问题之哲学家就餐

文章目录 一:问题描述方案一:方案二:方案三: 一:问题描述 五个哲学家共用一张圆桌,分别坐在周围的五张椅子上,在圆桌上有五个碗和五只筷子,他们的生活方式是交替的进行思考和进餐。…

2023年测试岗前景?为什么要做自动化测试?8年测试总结...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 自动化测试是把以…

Web网页制作期末复习(2)——常用文本标签、列表标签、表格标签、Form表单、块元素与行内元素(内联元素)

目录 常用文本标签 列表标签 有序列表 无序列表 定义列表 表格标签 表格组成与特点 表格标签 表格属性 ​​​合并表格单元格 Form表单 属性说明 表单元素 文本框 密码框 提交按钮 块元素与行内元素(内联元素) 内联元素和块级元素…

3、DuiLib了解xml的使用和布局

文章目录 1、了解 XML 使用和布局2、VerticalLayout和HorizontalLayout3、TabLayout4、TileLayout5、Container6、ChildLayout 1、了解 XML 使用和布局 本节主要介绍 DuiLib 中 XML 关键字的使用和一些特性,通过构建一个简单的带标题栏和简单结构的窗口&#xff0c…

模型分享---登陆注册界面

目录 模型---登陆注册界面 验证码的生成: CheckCodeUtil.java: Servlet: 普通用户登陆: css: jsp: 运行结果: 管理员登陆: 运行结果: 注册: 普通用户: css: jsp: 运行…

FreeRTOS实时操作系统(三)任务挂起与恢复

系列文章目录 FreeRTOS实时操作系统(一)RTOS的基本概念 FreeRTOS实时操作系统(二)任务创建与任务删除(HAL库) 文章目录 系列文章目录前言任务挂起与恢复普通挂起恢复实例中断恢复实例 前言 继续跟着正点…

记录--封装一个通过js调用的全局vue组件

这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 前言 在使用vue项目编写的时候,不可避免的会碰到需要时js api来调用组件进行显示的情况 例如饿了么element ui 的 Notification 通知、Message 消息提示等组件 虽然已经提供了,…

postman和jmete接口测试的用法与区别

目录 前言 接口测试的目的 接口测试怎么测: 1.创建接口用例集(没区别) 2.步骤的实现(有区别) 3数据用例的实现 4断言的实现 5执行 6其他 总结: 前言 前阶段做了一个小调查,发现软件测…

DETR 系列有了新发现?DETRs with Hybrid Matching 论文阅读笔记

DETR 系列有了新发现?DETRs with Hybrid Matching 论文阅读笔记 一、Abstract二、引言三、相关工作目标检测中的 DETR其它视觉任务中的 DETR标签赋值 四、方法4.1 基础知识通用的 DETR 框架通用的可变形 Deformable-DETR 框架 4.2 混合匹配4.2.1 混合分支计划一对一…

client-go的Indexer三部曲之三:源码阅读

欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 《client-go的Indexer三部曲》全部链接 基本功能性能测试源码阅读 本篇概览 本文是《client-go的Indexer三部曲》系列的终篇,主要任务是阅读和…

Vue全家桶(四):Vue Router 路由

目录 Vue Router1. 相关理解1.1 Vue Router的理解1.2 对SPA应用的理解1.3 路由的理解 2. 基本路由2.1 vue-router使用步骤2.2 几个注意点2.3 触发路由2.4 嵌套路由2.5 路由传递参数方式2.5.1 params 方式2.5.2 Query的方式 2.6 命名路由2.7 路由的props配置2.8 路由跳转的repla…

H3C-HCL模拟器-VLAN划分实验

一、实验拓扑结构图: 二、实验需求: 1. 按图示为PC配置IP地址 2. SW1和SW2上分别创建vlan10和vlan20,要求PC3和PC5属于vlan10,PC4和PV6属于vlan20 3. SW1和SW2相连的接口配置为trunk类型,允许vlan10和vlan20通过 4…

AI工程化的“基座能力”?—— 聊聊GPT Function Calling

点击↑上方↑蓝色“编了个程”关注我~ 这是Yasin的第 94 篇原创文章 最近AI大模型火出了圈,很多人惊叹它的智能程度。但大多数人都以为它的能力主要在“聊天”、“写文案”这方面。然而实际它能做的远远更多。 Chat GPT是当今世界上最智能的模型,它前段时…