项目简介
本项目是一个实现自主行驶汽车功能的毕业项目。通过深度相机获取环境图像,运用 3D 图像处理技术进行障碍物识别与检测,处理结果通过蓝牙发送至 Arduino 的 MCU,使汽车能在不碰撞障碍物的情况下驶向目标。但受新冠疫情影响,汽车行驶控制阶段未实现。
项目的主要特性和功能
3D 图像数据处理
- 用深度相机采集场景和物体图像,创建点云数据集。
- 采用 RANSAC 算法进行地面平面分割,欧几里得聚类算法进行物体分割。
- 通过计算物体投影到地面平面的凸包实现物体检测。
路径规划
- 设定汽车起始点和目标点。
- 利用 Dijkstra 算法规划从起始点到目标点的最短路径。
汽车行驶控制(未实现)
原计划将处理后的信息通过蓝牙发送至 Arduino 控制汽车行驶。
安装使用步骤
环境准备
确保拥有以下硬件设备: - 深度相机 Intel Realsense R200 - Arduino Mega - 汽车平台 - 地面垫 - 如 3D 几何形状的障碍物 - 相机稳定支架
软件安装与配置
安装以下软件: - PCL(Point Cloud Library)用于点云数据处理 - C++ 开发环境 - Java 开发环境 - Microsoft Visual Studio 2015 - Intel RealSense SDK 1.0 - Intel RealSense R200 Depth Camera Manager 2.1.27.2853 - Cloud Compare - Eclipse
代码运行
本项目仓库仅包含 C++ 代码:
- 运行 Source.cpp
接收并保存 3D 数据。
- 运行 Source2.cpp
进行地面平面分割、物体分割和物体检测。
路径规划实现
使用 Java 实现路径规划算法,处理凸包坐标时需进行适当转换以适应 Java 和 STDDRAW 库的要求。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】