- 博客(40)
- 资源 (1)
- 问答 (1)
- 收藏
- 关注
原创 无人驾驶小车调试笔记(七)-- 相机校准
简介:在第五节的内容中,我们学习了使用rqt工具集观看摄像头视频流的方法,细心的同学应该会发现camera_node发布的视频数据中的图像有变形现象,图像变形会导致直线不直,部分区域变大,部分区域缩小,导致无法准确计算出我们需要的数据,为了解决这个问题,我们需要先校准相机,另外在虚拟仿真的学习过程中,我们了解到在后续的图像处理过程中,我们还需要知道相机的内参矩阵,以及投影变换矩阵,在这一章节中,我们详细介绍这些参数的求取过程。在求取参数过程中,我们需要借助棋盘格来辅助完成...
2022-05-20 13:49:40
2190
4
原创 无人驾驶小车调试笔记(六)-- 车轮校准
简介:小车的动力完全来自于两个电机带动的车轮,在理想状态下,给两个电机同样的驱动参数,两个车轮会以同样的转速带动小车直线行驶,而实际情况是每个电机可能都会有个体差异,也就是说给予同样的驱动参数,表现出的转动速度会有些许不同,两个轮子的差速会导致车辆拐弯,后果就是给了直线行驶的控制命令,但是车走着走着就偏离了原本的方向,所以在开始控制之前,我们需要先平衡两个车轮的转速,保证在同样驱动参数下,两个车轮转速大致相同,也就是可以走直线。车轮校准分为3步,测试、调整后再测试、保存参...
2022-05-03 22:58:54
1387
3
原创 两轮差速小车循线控制原理分析
硬件资料设定:小车驱动来自于两个相同的电机,转向依靠两轮差速实现,小车前后左右安装超声波传感器,前后各一个,左右各两个;功能目标:假设小车左侧有墙壁,通过超声波测距实现按指定距离沿墙行驶参数设定:车轮半径r=3cm,车轮间距wd=10cm,车身长length=16cm,侧边超声波传感器前后各一个,假设一个在车头一个在车尾,间距=车身=length=16cm,小车线速度恒定v = 0.2m/s,距离墙d=10cm,假设超声波传感器以10Hz的频率采集距离。在以上条件下,设定小车出发点,方向与墙平行
2022-04-26 23:32:24
8014
1
原创 关于python环境配置几个常见问题
最近在CSDN的问答模块体验了两周,因为最近正想系统的学习一下python,所以回答问题中关于python的比较多,然后就发现关很多问题都与python环境相关的,其中有不少细节是我平时也没注意到的,因为之前开发python项目都是只用IDE编码,没有使用IDE的各种插件,所以环境只有一套,使用起来基本不会有问题,最近为了解决各种问题,乱七八糟的插件功能开始使用,就发现了一些平时没有发现的问题,在这里简单记录一下:目录1、我到底有几个python?2、python我安装了,但是不...
2022-04-25 22:37:31
5001
5
原创 无人驾驶小车调试笔记(五)-- 命令行通信
简介:在这一章节中,我们需要安装有相关环境(虚拟机方式为例,需要安装有ROS系统,安装过程请参考无人驾驶虚拟仿真教程第2节)的电脑一台,组装好并经过初始化设置的无人驾驶小车一台,路由器一台,主要学习通过脚本或者命令行的方式来与小车进行交互,交互内容包括视频流获取、小车控制、tof传感器数据获取、按钮事件获取、车灯控制等内容。注:以下命令以duckiebot1为例目录1、确认网络连接配置2、通过rqt工具查看小车摄像头视频流3、通过Duckietown shell 实现控制...
2022-04-23 21:52:09
2363
原创 无人驾驶小车调试笔记(四)--地图介绍
简介:本文档描述了城市交通地图外观规范。规范是一组规则,功能系统已经通过这些规则得到验证。这意味着如果在构建城市交通地图时遵循这些规则,无人驾驶小车就可以工作。任何不遵守此处所述规则的城市交通地图都可能导致在其中运行的小车以意想不到的方式失败。尽管大多数算法对变化都是鲁棒的,但是外观规格的小扰动都可能会对小车的性能产生负面影响,因此地图规格要尽量按照规定参数组装。1、地板层1.1、地板层类型介绍地板层由互锁的黑色瓷砖制成。每个瓷砖代表一个道路元素:直线、弯道、...
2022-04-20 23:21:17
599
原创 无人驾驶小车调试笔记(三)--小车启动及初始化设置
准备工作:安装有相关环境的电脑一台,组装好的无人驾驶小车一台,烧录好系统的SD卡一张,与烧录SD卡配置一致的路由器一台。注:以下内容都以主机名为duckiebot1的小车为例说明。目录1、第一次启动小车2、初始化设置3、远程登陆4、更新电池固件5、更新驱动板固件1、第一次启动小车SD卡插入主控板卡槽,单按一下电池按钮,系统启动,正常现象为:1)车灯点亮,显示蓝色2)驱动板上第一、四个micro口附近指示灯点亮3)主控板上micro口附近指示...
2022-04-19 23:53:12
1506
原创 无人驾驶小车调试笔记(二)--SD卡初始化
简介:无人驾驶小车主控采用的是NVIDIA Jetson nano开发板,开发板系统安装在SD卡中,系统安装通过dt-shell命令行工具进行,具体操作流程呢如下:1、命令格式说明$ dts init_sd_card --hostname duckiebot1 --type duckiebot --configuration DB21M --wifi SmartCarAP:12345678 --country CHdts init_sd_card:初始化SD卡命令--host...
2022-04-17 21:26:06
767
1
原创 无人驾驶小车调试笔记(一)-- 调试环境部署
硬件简介:硬件是NVIDA Jetson Nano为主控的差速控制小车,主要由主控板、转接板、两个电机(动力来源)、高清摄像头、tof传感器、imu传感器、前后各两组车灯,顶部开关按钮、显示屏以及万向轮组成。 调试环境:调试环境要求ubuntu系统,可以是独立安装的主机,也可以是虚拟机,这里以VMware Workstation 15 Pro安装桌面版ubuntu20.04虚拟机为例来说明,虚拟机安装要求配置50G以上硬盘空间(小车系统镜像下载解压后占用32G左右空间),网...
2022-04-16 22:20:13
1671
原创 树莓派python脚本开机自启动设置
应用场景介绍:在另一篇文章中我介绍了如果通过树莓派实现红绿灯控制,通过python编码实现了红绿灯手控制,功能如下:1、树莓派上通过python脚本实现GPIO自动切换,并预留udp接口,可实现自动控制和手动控制切换。2、启动脚本自动控制GPIO18输出切换,udp向9999端口发送"change",转为手动切换,并改变输出状态,每发送一次改变一次状态,发送"auto"切换为自动控制。源码见链接部署到树莓派上之后,还需要实现开机自启动,这里介绍一下python脚本开机自启动的实现。1、新
2022-04-15 00:02:35
3798
原创 树莓派+python+gpio+udp实现红绿灯控制
树莓派上通过python脚本实现GPIO自动切换,并预留udp接口,可实现自动控制和手动控制切换。
2022-04-13 23:50:57
1619
1
原创 linux远程登录、拷贝及无线配置
简介:在调试过程中,我们需要在小车系统内进行某些操作时,可以为小车接上显示器、鼠标、键盘直接操作,但是这仅限于车辆静止不动且方便移动的情况下才适用,在大部分情况下是不方便的,尤其是小车移动过程中,这是绝对不可行的,所以我们需要通过网络远程登录小车系统进行操作,下面我们介绍一下远程登录的方法以及一些常用操作。
2022-04-12 09:48:41
481
原创 ROS2学习笔记(十一)-- ROS2 bag数据记录与回放
简介:ROS2提供了ros2 bag命令,可以记录指定主题的数据到文件中,也可以将记录下的内容再发布出来,相当于是数据的回放,除了通过命令行的方式实现数据记录以外,也可以通过编程实现主题数据记录以及而合成的主题数据记录。
2022-04-11 15:38:18
19616
2
原创 ROS2学习笔记(十)-- ROS2 launch启动文件
简介:接触过ROS1的同学对launch肯定不陌生,在ROS1中,我们常用launch实现node和master同时启动、多节点同时启动配置等功能,ROS2中的launch也是用于多节点启动、配置功能,但是在使用方法上有了很多不同,ROS1只支持xml格式的.launch文件配置,ROS2在兼容xml的基础上,还支持yaml和python格式,而python格式的launch是我的学习重点,因为相对于另外两种配置方式,使用python更加灵活:
2022-04-10 20:34:42
13726
6
原创 ROS2学习笔记(九)-- ROS2命令行操作常用指令总结(二)
简介:在第六、七、八章节中介绍了自定义消息(Message)、服务(Service)、动作(Action)的实现过程,另外还介绍了参数的应用,在学习过程中我们穿插了部分命令行操作用来调试或者验证相关功能,这一节详细介绍这些内容相关的命令行操作,通过虚拟仿真环境下已经实现的功能来验证。
2022-04-09 09:51:25
2547
原创 ROS2学习笔记(八)-- ROS2参数应用实现道路识别调试
简介:参数也是ROS2系统中很重要的一项功能,主要是用来对节点进行配置,一般用在调试过程中,通过命令行的方式修改节点的一些配置,用以辅助调试,另外节点参数也支持导入和导出,调试好的参数可以导出到本地保存,再次启动时可以加载调试好的参数直接使用。
2022-04-08 09:18:52
5115
3
原创 ROS2学习笔记(七)-- 自定义动作实现路口转弯
简介:ROS2底层通信机制有主题(Topic)和服务(Service)两种,两种通信机制可以解决大部分问题,但是还有一些问题用这两种机制解决起来比较复杂,以无人驾驶虚拟仿真环境中的应用举例,在十字路口或者丁字路口要实现转弯,因为在路口并没有给出转弯车道线,车辆转弯将没有任何依据,通过主题或者服务可以实现强制指挥小车转弯,但是什么时候结束强制指挥又是一个问题,像这类情况,我们就可以通过ROS2中的动作(Action)通信方式来解决。
2022-04-07 09:19:27
1723
原创 无人驾驶虚拟仿真(十六)--障碍物检测与识别2
简介:在上一节中,我们完成了障碍物检测模型训练以及python部署,在这一节中,我们将障碍物识别部署到ROS系统中。
2022-04-06 15:27:09
1598
原创 无人驾驶虚拟仿真(十五)--障碍物检测与识别1
简介:无人驾驶虚拟仿真环境中,道路障碍物默认有3种,路障、小鸭子(模拟行人)和小车,其中路障是静止状态,小鸭子和小车可以是静止状态,也可以是运动状态。障碍物色彩复杂多变、在道路中的位置随机且动态变化,普通的图像处理手段不再适用于障碍物的检测,在这里我们利用机器学习的手段来进行障碍物的检测。
2022-04-05 21:23:05
5781
原创 无人驾驶虚拟仿真(十四)--图像处理之交通标志牌识别2
简介:在上一节中,我们从原理上完成了交通标志牌的检测,在这一节中,我们将检测功能部署到ROS系统中。
2022-04-04 20:29:43
1481
原创 无人驾驶虚拟仿真(十三)--图像处理之交通标志牌识别1
简介:在实际交通地图环境中,我们预设了交通标志牌,可以通过交通标志牌对小车进行更加细致丰富的控制,标志牌形式如下:
2022-04-03 19:12:19
4547
原创 ROS2学习笔记(六)-- 自定义消息和服务实现控制指令优化以及在线换图
简介:前几节我们主要介绍了关于ROS2通讯机制--主题(Topic)的发布与订阅机制的使用方法,一般情况下,数据周期发布、数据交互频率高,或者数据生产与消费不是强关联的功能,我们通过主题的发布与订阅机制来实现,比如摄像头图像数据、小车控制指令等;ROS2系统底层通讯机制还有另外一种--服务(Service),服务一般用于数据交互频率比较低或者没有明显周期性质,而且需要实时返回交互结果的功能需求中,比如我们这一节要实现的在线更新地图的功能。
2022-04-02 15:48:24
2928
原创 ROS2学习笔记(五)-- ROS2命令行操作常用指令总结(一)
简介:在前面的章节中,我们先简单学习了ROS2的话题发布和订阅,两种操作都是通过python代码实现的,而在实际应用过程中,我们会经常用到命令行操作来辅助调试,更进一步的可以使用GUI工具辅助调试,比如前边用到的rqt中的Image View工具,这一节在现有功能基础上介绍一部分常用的命令行操作指令。
2022-04-01 15:46:33
13199
原创 ROS2学习笔记(四)-- 用方向键控制小车行走
简介:在上一节的内容中,我们通过ROS2的话题发布功能将小车实时视频信息发布了出来,同时使用GUI工具进行查看,在这一节内容中,我们学习一下如何订阅话题并处理话题消息,具体实现的功能就是通过方向键控制小车行驶。
2022-04-01 13:39:15
6236
4
原创 ROS2学习笔记(三)-- 采集虚拟仿真环境图像并发布
简介:ROS2功能的学习我们还是在基于OpenAI的gym虚拟仿真环境中来完成,gym虚拟仿真环境安装请参考另一篇教程,这里不再重复说明,接下来我们开始创建一个ROS2的功能节点,并发布虚拟仿真环境小车摄像头的图像,然后利用rqt工具查看图像。
2022-03-31 18:20:04
3523
4
原创 无人驾驶虚拟仿真(十二)--图像处理之红绿灯识别
简介:在交通地图中有红绿灯组件,一般放置在T形或者十字路口处,车辆行驶过程中,需要检测红绿灯信号来控制车辆启停,以符合基本的交通规则。红绿灯识别基本分为图像截取、斑点检测、颜色识别三步来实现。
2022-03-31 09:14:58
3946
4
原创 无人驾驶虚拟仿真(十一)--图像处理之红线检测
简介:在交通地图的路口设计了红线,其主要作用是用来提醒车辆需要进行某些功能检测了,比如红绿灯识别,路口交通标志识别等。在车道线识别中,我们已经提取到了红线的车道线,接下来只需要考虑如何计算红线与车辆之间的距离。
2022-03-31 09:07:53
462
原创 无人驾驶虚拟仿真(十)--车辆姿态控制(PID)
简介:在上一节内容中,我们估算出了车辆姿态,主要是位置偏差d和航向角偏差phi,出现偏差就需要矫正,根据物理常识我们知道不可能马上矫正,需要一个矫正的过程,图像采集处理又有一个时间间隔,在这个时间间隔里还会出现矫正过度,需要反向矫正的情况,再加上车辆本身的动力偏差,道路的影响等,我们无法通过简单计算来让车辆达到误差为0的状态,因此我们引入PID控制算法,目的是实现车辆姿态控制参数自动化调整。
2022-03-30 11:54:11
2475
原创 无人驾驶虚拟仿真(九)--车辆姿态预测及估算
简介:在上一节中我们检测到了车道线线段,并发布出来,在这一节内容中,我们要根据车道线来估算车辆位置,为什么说估算而不是计算,是因为我们无法根据车道线位置准确的计算出车辆姿态,每一条车道线线段都可以计算出一个车辆姿态数据,我们只能选取其中重合度较高的数据做为最终参考数据,为了让数据更加可靠,哦我们还需要用上一次的数据做参考,通过车辆速度和偏向角预测当前车辆姿态做为参考,再加入实时数据一起计算出当前车辆姿态。因为数据需要多次迭代,所以不方便分步来讲解,本节以ROS源码注释的方式来讲解。
2022-03-30 11:52:02
1634
4
原创 无人驾驶虚拟仿真(八)--图像处理之车道线识别3
简介:在上一节中,我们完成了单张图片车道线的检测,在最终的结果中,可以比较明确的观察出车辆相对车道线的位置,接下来,我们要把这一功能移植到ROS系统中,将小车抓取到的图像都处理成车道线数据,并发布到下一环节进行处理。
2022-03-30 11:49:35
3832
1
原创 无人驾驶虚拟仿真(七)--图像处理之车道线识别2
简介:上一节中我们计算得到了前视图到俯视图的投影变换矩阵,在这一节中我们要完成车道线的检测。当车辆摄像头获取到一张图像,我们大致需要经过以下步骤来得到车道线数据:
2022-03-30 11:47:27
2888
原创 无人驾驶虚拟仿真(六)--图像处理之车道线识别1
简介:车道线识别是无人驾驶的基础,通过多种手段获取地面车道线位置,再根据车辆参数估算出车辆相对位置,以此为依据计算出车辆运动参数,这一节中我们先了解一下视图的转换。
2022-03-30 11:44:32
3629
1
原创 无人驾驶虚拟仿真(五)--图像处理之色彩平衡
简介:同样的物体在不同的光照环境中会出现色彩偏差,为了减少色彩偏差对系统检测造成的影响,在对图像进行识别前,需要先评估图像明暗度,计算出明暗阈值,通过对图像的色彩平衡处理,可以校正图像色偏,过饱和或饱和度不足的情况。
2022-03-30 11:38:02
1885
原创 无人驾驶虚拟仿真(四)--通过ROS系统控制小车行走
简介:实现键盘控制虚拟仿真小车移动,w/s/a/d/空格,对应向前/向后/向左/向右/急停切换功能,q键退出
2022-03-30 11:31:08
7742
1
原创 无人驾驶虚拟仿真(三)--通过ROS系统查看仿真小车视频流
简介:在虚拟仿真平台的基础上实现ROS系统开发,将虚拟仿真平台中小车的视频流通过ROS系统的话题发布出来,然后用rqt_image_view工具播放实时图像。
2022-03-30 11:28:50
1719
java表达式转代码,含示例代码以及相关jar包
2022-04-29
Seaborn函数库数据可视化图像不持久显示
2022-07-13
TA创建的收藏夹 TA关注的收藏夹
TA关注的人