# TspRosCar **Repository Path**: hyg2021/TspRosCar ## Basic Information - **Project Name**: TspRosCar - **Description**: Ros小车 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 8 - **Created**: 2026-04-03 - **Last Updated**: 2026-04-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## TspRosCar:TaishanPi Ros Car ![封面](./5.Docs/Images/封面.jpg) 本项目是基于泰山派开发板制作的ROS小车,具有扫描建图、自动导航、物体跟随等功能。 **功能演示视频**:[TspRosCar功能演示](https://www.bilibili.com/video/BV1rKw5zaEac/) **软件资料链接**:[TspRosCar](https://gitee.com/imhaozi/TspRosCar) **硬件资料链接**:[泰山派ROS小车](https://oshwhub.com/32_haozi/taishan-pie-ros-trolley) ## 1. 项目说明 ### 1.1 Hardware Hardware文件夹内此项目用到的电路的原理图和PCB文件,使用**立创EDA专业版**进行设计。 主要包含两块板子: * 下位机PCB:提供小车底盘控制电路;并为小车底盘提供支撑; * 上位机PCB:引出泰山派控制接口;并为激光雷达提供支撑; ### 1.2 Firmware Firmware中提供了上面两块板子的固件源码,以及QT上位机工程源码,主要包含以下三个工程: * RosCarBase:小车底盘。使用STM32单片机作为主控、两个N20编码电机作为驱动,完成底盘的速度功能功能;小车底盘对外通过串口进行通信; * RosCarWs:ROS应用。泰山派作为小车的核心控制单元,通过串口3获取雷达数据、串口5与底盘进行数据交互。泰山派Ubuntu20系统运行ROS程序,计算小车需要的运行速度后下发小车进行控制; * RosCarApp:上位机UI。在UI界面中,通过WebSocket与泰山派中的ROS应用进行通信,实现小车的状态显示、模式控制、地图管理等功能。 * TaishanPi:添加串口5后的内核。 ### 1.3 Software 编译好的上位机应用。 ### 1.4 Model 文件夹里是项目中用到的所有结构件的3D模型文件,可以用于3D打印。 ### 1.5 Docs 相关的参考文件,包括雷达手册、芯片手册等。 ## 2. 硬件设计 电路主要包含两部分设计,设计为两块PCB: * 下位机:底盘控制电路 * 上位机:泰山派接口扩展 ### 2.1 底盘控制电路 底盘控制电路主要包含以下部分:电源电路、充电电路、电机驱动部分、串口通信、状态灯显示。 充电电路:使用TypeC作为电源输入接口,使用CS5090EA或SCS5090EA作为2串锂电池充电管理芯片,将5V电压升高到8.4V进行充电。 ![充电电路](./5.Docs/Images/充电电路.png) 电源电路:使用ME3118电源芯片将锂电池电压降低到5V给电机和泰山派进行供电,最大可提供3A驱动电流,满足本项目需求;使用经典ME6211C33M5G将5V电源降低到3.3V给STM32单片机进行供电,最大0.5A电流足以满足STM32要求。 ![电源电路](./5.Docs/Images/电源电路.png) 电机驱动电路:使用经典TB6612FNG对两个编码器电机进行驱动,配合PID可完成速度控制和反馈,给上位机提供里程计计算能力。 ![电机驱动电路](./5.Docs/Images/电机驱动电路.png) 其他电路:提供程序下载口、通信接口(上位机通信)、外部供电(备用)、状态指示灯(充电状态和通信状态指示); ![通信端口](./5.Docs/Images/通信端口.png) ### 2.2 上位机控制电路 上位机接口扩展较为简单,主要引出串口、提供风机和雷达控制电路。通过IO高低电平控制雷达和风机的供电。 ![上位机控制电路](./5.Docs/Images/上位机控制电路.png) ## 3. 结构设计 结构设计效果如下图所示。 ![透明结构图](./5.Docs/Images/透明结构图.png) ### 3.1 物料准备 | 物料 | 厂家 | 价格 | | ------------------------------------------------------------ | ----------------------------- | ------- | | 泰山派套装 | 立创商城 | 188 | | M1C1_Mini雷达 | 动力工具DIY小站 | 43.8 | | OV9732摄像头 | 仁恒光电摄像头厂家 | 47.66 | | N20编码器电机(6v、300RPM)、万向轮 | 必晖数码经营部 | 43 | | 散热风扇(20*20*06MM 5v 2线 A型插头侧吹风) | JSDYFAN旗舰店 | 8.7 | | 18650平头3500mAh电池 * 2 | NUOXIANGNX旗舰 | 26.7 | | PCB_BOM | 立创商城/优信电子 | 30 | | M3单头铜柱20mm * 4、
M3单头铜柱12mm * 2、
M3单头铜柱8mm * 6、
M3螺丝螺母 * 5、
M2自攻螺丝6mm * 2(固定摄像头)、
M1.4螺丝12mm和螺母 * 2(固定风扇) | - | 10 | | 外壳 | 嘉立创纸盒裁剪 / 嘉立创3D打印 | 0/20 | | **共计** | - | 400-500 | PS:为了减少打印件的硬件成本,此处设计大多采用铜柱支撑,外壳主要起到对摄像头的支撑作用和美观作用。 ### 3.2 安装步骤 1. 底盘组装 准备如下材料,焊接完成的底板、两个万向轮、两个N20电机及端子线(固定的螺丝是买轮子送的)。**注意**:这里电机上的接线端子,原有的是卧贴的,需要用烙铁拆掉改成和底板上的一样的立贴的 。 ![底盘准备](./5.Docs/Images/底盘准备.jpg) 将万向轮和电机固定到底板,固定完成后如下图所示。 ![底盘固定](./5.Docs/Images/底盘固定.png) 2. 上位机组装 准备如下材料,泰山派开发板、焊接完成的底板、雷达、M3单头铜柱12mm * 2、M3单头铜柱20mm * 4、M3单头铜柱8mm * 6、M3螺母7个。 ![上位机准备](./5.Docs/Images/上位机准备.jpg) 将铜柱和螺丝按照下图中固定, 1. 泰山派四个螺丝孔下方使用4个20mm铜柱,上方使用两个M3螺丝和两个12mm铜柱固定; 2. 风扇使用两个M1.4长12mm的螺丝和螺母固定在上位机板子上; 3. 雷达三个螺丝孔上下分别固定3个8mm铜柱。 ![上位机固定1](./5.Docs/Images/上位机固定1.jpg) 按照泰山派在下、上位机板在中间、雷达在上的顺序组装,组装完成后如下图所示。 ![上位机固定2](./5.Docs/Images/上位机固定2.png) 3. 外壳组装 准备如下材料,刚刚组装好的底板和上位机板、3D打印外壳、摄像头、M2自攻螺丝6mm * 2、自制USB转SH1.0_5p线大约20cm(使用USB焊接壳子和SH1.0单头线制作 ,买摄像头也会送一根但是很长需要自己剪短点)、M3螺丝 * 4、M3沉头螺丝 * 3。 ![外壳组装1](./5.Docs/Images/外壳组装1.jpg) 连接底板和上位机板 1. 使用GH1.25_4P线连接底板和上位机板,将泰山派天线插上,塞到雷达和上位机板子之间; 2. 使用四个M3螺丝,从底板底部连接上位机板下方的铜柱,将上位机板和底板固定; 3. 将USB摄像头使用M2自攻螺丝固定到外壳上,并将USB插头连接泰山派USB口。 ![外壳组装2](./5.Docs/Images/外壳组装2.jpg) ![外壳组装3](./5.Docs/Images/外壳组装3.jpg) 将外壳装上,并使用3个M3沉头螺丝固定外壳到雷达的铜柱上即可组装完成,如下图所示。 ![外壳组装4](./5.Docs/Images/外壳组装4.png) 另: 初代机用嘉立创的纸壳子做的外壳,这是他的来时路。 ![外壳组装5](./5.Docs/Images/外壳组装5.png) ## 4. 软件设计 ### 4.1 软件架构 软件主要功能的核心架构如下图所示,从上到下分别为QT上位机、ROS程序、底盘下位机程序。*软件可能维护更改,以实际代码为准。* 1. 导航、建图等核心功能主要使用了movebase、gmapping等开源软件包,主要需要自己配置参数; 2. 底盘控制、电量显示、摄像头和雷达数据自己实现后对接软件包。 3. QT上位机根据需求功能调用不同的接口即可。 ![软件架构](./5.Docs/Images/软件架构.png) 所有功能对应UI显示的各个部分: 1. 状态显示:通过上位机UI进行交互,实时显示小车当前获取到的地图、小车位置、摄像头画面、电池电压等信息; 2. 模式控制:UI中可选目标跟随控制、自动导航控制、手动遥控控制模式; 3. 地图管理:UI包含地图管理功能,如创建、删除、使用、保存、获取地图列表等功能; 4. 功耗管理:摄像头、雷达设备可单独控制开关,降低不使用时的功耗。 ![上位机UI](./5.Docs/Images/上位机UI.png) ### 4.2 软件部署 #### 4.2.1 TaishanPi 1. 官方资料中下载Ubuntu20系统镜像`ubuntu20.04_hdmi_20231130_update.img`,按照官方教程烧录; 2. 下载资料中提供的`boot.img`文件,使能串口5; 3. 分配空闲空间; 4. 安装SSH、ROS; 5. 添加串口权限、IO权限、摄像头权限; > 系统设置教程参考 Docs/泰山派系统设置.pdf #### 4.2.2 RosCarBase 使用Keil打开,编译后烧录到底盘STM32中; #### 4.2.3 RosCarWs 1. 程序中依赖多个软件包,分别安装即可(首次使用安装) 1. 建图:`sudo apt install ros-noetic-gmapping` 2. 自动探索建图:`sudo apt install ros-noetic-explore-lite` 3. websocket通信:`sudo apt install ros-noetic-rosbridge-suite` 4. 地图加载和保存:`sudo apt install ros-noetic-map-server` 1. 若安装报错先安装依赖,第一个推荐方案拒绝,使用第二个推荐方案:`sudo aptitude install libsdl1.2-dev libsdl-image1.2-dev` 5. 导航:`sudo apt-get install ros-noetic-navigation` 5. teb规划器:`sudo apt install ros-noetic-teb-local-planner` 6. 其他:按照上述顺序进行安装,若安装报错自行搜索 2. 将Firmware中的`RosCarWs`文件夹复制到泰山派中; ~~~ sh # 源码放到开发板 lckfb@MiWiFi-R3GV2-srv:~$ ls Desktop Documents Downloads Music Pictures Public RosCarWs Templates Videos lckfb@MiWiFi-R3GV2-srv:~$ cd RosCarWs/ # 编译 lckfb@MiWiFi-R3GV2-srv:~/RosCarWs$ catkin_make # 添加源 lckfb@MiWiFi-R3GV2-srv:~/RosCarWs$ source devel/setup.bash ~~~ 3. 运行程序前首先执行一下IO权限设置的脚本,否则无法正常打开雷达和风扇 ~~~ sh # 添加IO权限 lckfb@MiWiFi-R3GV2-srv:~/RosCarWs$ chmod 777 src/launch_pkg/launch/setup_gpio_permissions.sh lckfb@MiWiFi-R3GV2-srv:~/RosCarWs$ sudo ./src/launch_pkg/launch/setup_gpio_permissions.sh 尝试导出 GPIO 36... GPIO 36 已导出并设置权限。 尝试导出 GPIO 98... GPIO 98 已导出并设置权限。 完成!现在普通用户可以操作 GPIO 36 和 98。 # 如果报错 使用vi打开,然后以下设置保存 因为这个文件可能在windows上打开过 :set ff=unix ~~~ 4. 运行命令如下`roslaunch launch_pkg all.launch`,然后就可以在上位机中进行连接了 #### 4.2.4 RosCarApp 使用QT打开并运行,也可以直接运行打包好的上位机。 > 泰山派和运行上位机的电脑需要在一个网络下运行。 ### 4.3 参数描述 小车一般无需具体的代码修改。 主要硬件相关参数修改如下,位于launch_pkg中的launch文件 ![参数修改1](./5.Docs/Images/参数修改1.png) 目标跟随主要参数修改如下,位于camera_pkg中的launch文件 ![参数修改2](./5.Docs/Images/参数修改2.png) 其他参数一般无需修改。 ## 参考资料 感谢各位开源资料贡献者对此项目的帮助,项目开发过程中主要用到的参考资料如下: 泰山派官方资料:https://wiki.lckfb.com/zh-hans/tspi-rk3566/ ROS环境搭建:https://fishros.com/ ROS学习教程:https://www.bilibili.com/video/BV1BP4y1o7pw 雷达模型参考:https://makerworld.com.cn/zh/models/1664914-x2ji-guang-lei-da-biao-zhun-stepwen-jian-yi-ji-3dd#profileId-1827959 小车结构参考:https://oshwhub.com/lw95/newbot Linux/安卓系统编译知识:公众号【A-花开堪折】