Skip to content

A Computer Vision and SLAM platform based oak-d and livox.

License

Notifications You must be signed in to change notification settings

void-echo/car_detect_web

Repository files navigation

Car_detect_web

What a random name for a project.

A Computer Vision and SLAM platform based oak-d and livox.

This project is made possible by @Ding Wang, @Sirui Liang, @Jingjie Zhang, @Yanwen Sun and Haonan Wang.

使用说明书

效果展示

image-20230715211513602

https://github.com/void-echo/car_detect_web/blob/master/static/picture/video.mp4

本项目主要由以下硬件设备组件构成:

  • Livox Mid 40 雷达

  • Oak-d RGB-D摄像头

  • 极创-JC600 履带式无人车

  • RS232-USB 转换器及其驱动

  • 以太网网线

  • 装备了Ubuntu 18.04 的PC一台

环境配置

在运行该系统之前,你需要安装以下环境:

  1. Ubuntu 18.04
  2. Python 3.10.9
  3. 相对应的python库(python依赖已经在requirements.txt当中写明)
  4. ROS Melodic
  5. Livox ROS Driver
  6. Cmake 3.10 及以上版本
  7. Opencv 4.5 及以上版本

如何运行

  1. 硬件软件设备准备完毕后,使用USB转RS232串口将电脑与小车链接,将网线与 livox 雷达链接,打开电脑。
  2. 配置项目环境。推荐使用 requirements.txt 建立 venv 或 conda 环境。
  3. 我们的项目主程序是 MAIN.py 程序。在终端中输入 python MAIN.py 即可运行。(如果电脑上有多个 conda 环境,需要先激活环境)
  4. 程序默认会在 127.0.0.1:8000 上建立一个本地服务器,可以在浏览器中输入该地址访问网页。
  5. 网页分为两个部分,第一部分是项目总览图和成员简介,在这里可以看到我们的项目总体情况和成员介绍。
  6. 第二部分是项目实时监控界面,可以看到小车的实时位置和雷达扫描的实时数据。在这里可以通过点击按钮来切换平台的不同模式,共计 10 个不同的模式:
    1. livox loam 改进版模式:在这个模式下,小车会使用 livox loam 改进版算法来进行建图,并且实时绘制点云图。
    2. oak-d SLAM 模式:使用基于 specularAI 的并行优化算法,利用 oak-d 摄像头进行建图、绘制点云图。
    3. 实时小车避障模式:在这个模式下,小车会实时进行避障,并且自动行驶。
    4. PCD 文件展示框。此处可以展示 PCD 文件,并且支持点云的旋转、缩放、平移等操作。
    5. 避障功能实例视频展示。
    6. OpenCV 边缘检测:小车利用 oak-d 摄像头进行边缘检测。
    7. 预训练模型拉普拉斯金字塔边缘检测:小车利用 oak-d 摄像头进行边缘检测,使用的是 300x300 像素大小的预训练模型。
    8. OpenCV 关键点追踪:小车利用 oak-d ,结合 depthai API 和 opencv 库进行关键点追踪。
    9. livox-loam 建图。小车利用 livox loam 算法进行建图。livox loam 算法是一种激光雷达建图算法,在 2019 年由香港大学的 Ji Zhang 等人提出。
    10. 物体追踪。oak-d 摄像头进行物体和人体的追踪,可以记住人物的编号,当人物离开画面后再次进入画面时,可以自动识别出编号。

实际运行效果已经向各个项目实训验收老师展示。

环境搭建

1. Ubuntu 18.04

Ubuntu 18.04 是本项目的操作系统,我们使用的是 Ubuntu 18.04 LTS 版本。

为什么使用 Ubuntu 18.04 LTS 版本?因为 Livox Loam 算法支持的最高版本是 Ubuntu 18.04,与此同时,Livox Loam 算法 依赖的 ROS Melodic 也是支持的最高版本。

注意,经过测试,虚拟机中的 Ubuntu 18.04 很难链接 Livox 雷达。考虑到系统所需要的性能、为了编码和进程切换方便,我们建议使用物理机安装 Ubuntu 18.04。

如果你的电脑本来是 Windows 系统,可以参考 这个教程. 需要准备的东西:大概半小时的时间,以及一个容量超过 4GB 的 U 盘。

2. Python 环境

建议直接用 conda 会更方便一些。另外也不会干扰到系统已有的 python 环境。

环境创建后,只需要安装 requirements.txt 中的依赖。

这个项目是基于 Python 3.10.9 开发的,其他版本的有可能 Python 也可以运行,但并没有经过测试。

ROS Melodic

ROS 是机器人操作系统,是一个开源的机器人操作系统软件平台,它为机器人软件开发提供了一系列的标准操作系统服务。ROS 的目标是为机器人研究和开发提供代码共享的平台。

ROS Melodic 是 ROS 的一个版本,是目前支持 Ubuntu 18.04 的最高版本。

配置 ROS 环境是一个相当复杂的过程,我们建议直接参考 ROS Melodic 官方教程 进行配置。尽量不要忽略任何步骤。

注意,如果已经有了其他版本的 ROS,最后建议不把 ROS Melodic 的环境变量加入到 ~/.bashrc 中,而是在需要的时候手动 source。

3. Livox SDK

Livox SDK 是 Livox 雷达的软件开发包,可以用来链接 Livox 雷达,获取雷达数据。

除了 Livox SDK 之外,还需要安装 Livox Viewer、Livox ROS Driver 等工具。具体步骤可以参考 Livox 官方教程。这里不再赘述。

其他独立环境例如 OpenCV、PCL、CMake 等等,可以参考分别的网上教程。

注意:CMake 的安装必须在环境配置的最开始进行,因为 ROS 的安装需要 CMake 的支持,而 CMake 卸载的话,会顺便把 ROS 也卸载掉一部分。这可能会导致一些很难定位、解决的问题。