Skip to content

激光雷达机器狗 SLAM

bash
# 激光雷达 ── USB-TTL ── Ubuntu(ROS2)
# 底盘 STM32 ── USB ── Ubuntu(ROS2)

# 电脑(Ubuntu + ROS2)是大脑
# STM32 只是“四肢 + 电机控制”
# 雷达数据必须“直达电脑”,不能绕 STM32
md
### 第 1 步(当前)

- USB-TTL 接雷达:让 Ubuntu 识别雷达(串口)
- ROS2 跑 `/scan`:把雷达数据变成 ROS2 的 /scan 话题

### 第 2 步

- RViz 看雷达点云:跑 SLAM 算法生成地图

### 第 3 步

- 推着小车跑 `slam_toolbox`
- 生成家里地图

### 第 4 步

- 再考虑:无线 / ROS 主控 / 导航

单片机:STM32、Arduino。 单片机的概念:单片机是微处理器,是微控制器的简称,它把微处理器、存储器、定时器、通信接口等集成在一块芯片上,具有体积小、功耗低、成本低、可靠性高、使用方便等特点,广泛应用于各种电子设备中。

自主导航系统中,响应式结构可以划分为:建图任务、定位任务、识别任务、规划任务和避障任务。从层级式结构来看,可以这么划分:环境感知、路径规划、运动规划。

一、准备工作

1.1 硬件准备

  • 机器狗(四轮小车)
  • 激光雷达

1.2 软件准备

  • ROS2
  • SLAM 算法
  • 机器狗驱动程序
  • 激光雷达驱动程序
  • 机器狗控制程序
  • 激光雷达数据预处理程序

二、开发流程

问题:我现在有个激光雷达,有个四轮小车,也在电脑上安装了 ubuntu 和 ROS2。现在我要怎么做才能把激光雷达的数据收集起来?

要把激光雷达(LiDAR)的数据在 ROS2 中跑起来,你需要完成 “硬件连接 -> 驱动安装 -> 数据查看” 这三步。

分布式网络通信:我需要把激光雷达的数据发送到我的电脑上,我该怎么实现?

2.1 机器狗驱动程序开发

  • 机器狗驱动程序需要实现机器狗的基本控制功能,包括前进、后退、左转、右转、停止等。
  • 机器狗驱动程序需要与机器狗硬件进行通信,实现机器狗的基本控制功能。

2.2 激光雷达驱动程序开发

  • 激光雷达驱动程序需要实现激光雷达的基本控制功能,包括启动、停止、获取激光雷达数据等。
  • 激光雷达驱动程序需要与激光雷达硬件进行通信,实现激光雷达的基本控制功能。

三、开发细节

3.1 mode 查询 USB 是否连接成功(小车连接)

An image

An image

An image

An image

An image

设置 Ubuntu,让 ubuntu 能识别到小车连接成功,如果看到这个界面,说明 USB 连接成功

An image

An image

3.2 安装 cutecom 来进行机器人底盘的串口收发数据(小车连接)

bash
sudo apt-get install cutecom

sudo cutecom

An image

An image

An image

3.3 查看 Node 节点信息

bash
ros2 node list

ros2 node info /my_node_name

An image

3.4 功能包的打包与发行

bloom.

bloom 是基于 Python 实现的,可以很方便地打包 Python 程序,生成可执行文件,并发布到 PyPI 上。

shell
# 安装bloom
$ sudo apt install python3-bloom
$ sudo apt install dpkg-dev debhelper dh-python
bash
pip install bloom

bloom init

bloom build

bloom publish