站内搜索
发作品签到
泰山派ROS小车
专业版

泰山派ROS小车

简介

基于泰山派开发板开发的一款ROS导航机器人。使用较低的成本完成搭建,可以作为机器人编程学习、算法验证的绝佳工具。

简介:基于泰山派开发板开发的一款ROS导航机器人。使用较低的成本完成搭建,可以作为机器人编程学习、算法验证的绝佳工具。
星火计划2026
复刻成本:400

开源协议

CC BY-NC 3.0

创建时间:2026-03-03 14:20:15更新时间:2026-03-27 13:51:57

描述

TspRosCar:TaishanPi Ros Car

封面.jpg

本项目是基于泰山派开发板制作的ROS小车,具有扫描建图、自动导航、物体跟随等功能。

功能演示视频TspRosCar功能演示

软件资料链接TspRosCar

硬件资料链接泰山派ROS小车

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进行充电。

image.png

电源电路:使用ME3118电源芯片将锂电池电压降低到5V给电机和泰山派进行供电,最大可提供3A驱动电流,满足本项目需求;使用经典ME6211C33M5G将5V电源降低到3.3V给STM32单片机进行供电,最大0.5A电流足以满足STM32要求。

image.png

电机驱动电路:使用经典TB6612FNG对两个编码器电机进行驱动,配合PID可完成速度控制和反馈,给上位机提供里程计计算能力。

image.png

其他电路:提供程序下载口、通信接口(上位机通信)、外部供电(备用)、状态指示灯(充电状态和通信状态指示);

image.png

2.2 上位机接口扩展

上位机接口扩展较为简单,主要引出串口、提供风机和雷达控制电路。通过IO高低电平控制雷达和风机的供电。

image.png

3. 结构设计

结构设计效果如下图所示。

透明结构图.png

3.1 物料准备

物料厂家价格
泰山派套装立创商城188
M1C1_Mini雷达动力工具DIY小站43.8
OV9732摄像头仁恒光电摄像头厂家47.66
N20编码器电机(6v、300RPM)、万向轮必晖数码经营部43
散热风扇(202006MM 5v 2线 A型插头侧吹风)JSDYFAN旗舰店8.7
18650平头3500mAh电池 * 2NUOXIANGNX旗舰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电机及端子线(固定的螺丝是买轮子送的)。注意:这里电机上的接线端子,原有的是卧贴的,需要用烙铁拆掉改成和底板上的一样的立贴的 。

1.jpg

将万向轮和电机固定到底板,固定完成后如下图所示。

2.png

  1. 上位机组装

准备如下材料,泰山派开发板、焊接完成的底板、雷达、M3单头铜柱12mm * 2、M3单头铜柱20mm * 4、M3单头铜柱8mm * 6、M3螺母7个。

3.jpg

将铜柱和螺丝按照下图中固定,

  1. 泰山派四个螺丝孔下方使用4个20mm铜柱,上方使用两个M3螺丝和两个12mm铜柱固定;
  2. 风扇使用两个M1.4长12mm的螺丝和螺母固定在上位机板子上;
  3. 雷达三个螺丝孔上下分别固定3个8mm铜柱。

4.jpg

按照泰山派在下、上位机板在中间、雷达在上的顺序组装,组装完成后如下图所示。

5.png

  1. 外壳组装

准备如下材料,刚刚组装好的底板和上位机板、3D打印外壳、摄像头、M2自攻螺丝6mm * 2、自制USB转SH1.0_5p线大约20cm(使用USB焊接壳子和SH1.0单头线制作 ,买摄像头也会送一根但是很长需要自己剪短点)、M3螺丝 * 4、M3沉头螺丝 * 3。

6.jpg

连接底板和上位机板

  1. 使用GH1.25_4P线连接底板和上位机板,将泰山派天线插上,塞到雷达和上位机板子之间;
  2. 使用四个M3螺丝,从底板底部连接上位机板下方的铜柱,将上位机板和底板固定;
  3. 将USB摄像头使用M2自攻螺丝固定到外壳上,并将USB插头连接泰山派USB口。

7.jpg

8.jpg

将外壳装上,并使用3个M3沉头螺丝固定外壳到雷达的铜柱上即可组装完成,如下图所示。

9.png

另:
初代机用嘉立创的纸壳子做的外壳,这是他的来时路。

e91a101c-caf4-4f03-9bce-47144ef62ecb.png

4. 软件设计

4.1 软件架构

软件主要功能的核心架构如下图所示,从上到下分别为QT上位机、ROS程序、底盘下位机程序。软件可能维护更改,以实际代码为准。

  1. 导航、建图等核心功能主要使用了movebase、gmapping等开源软件包,主要需要自己配置参数;
  2. 底盘控制、电量显示、摄像头和雷达数据自己实现后对接软件包。
  3. QT上位机根据需求功能调用不同的接口即可。

whiteboard_exported_image.png

所有功能对应UI显示的各个部分:

  1. 状态显示:通过上位机UI进行交互,实时显示小车当前获取到的地图、小车位置、摄像头画面、电池电压等信息;
  2. 模式控制:UI中可选目标跟随控制、自动导航控制、手动遥控控制模式;
  3. 地图管理:UI包含地图管理功能,如创建、删除、使用、保存、获取地图列表等功能;
  4. 功耗管理:摄像头、雷达设备可单独控制开关,降低不使用时的功耗。

上位机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
    6. teb规划器:sudo apt install ros-noetic-teb-local-planner
    7. 其他:按照上述顺序进行安装,若安装报错自行搜索
  2. 将Firmware中的RosCarWs文件夹复制到泰山派中;

    # 源码放到开发板
    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权限设置的脚本,否则无法正常打开雷达和风扇

    # 添加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文件
image.png

目标跟随主要参数修改如下,位于camera_pkg中的launch文件

image.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-花开堪折】

设计图

未生成预览图,请在编辑器重新保存一次

BOM

暂无BOM

3D模型

序号文件名称下载次数
1
打印外壳.STL
21

附件

序号文件名称下载次数
1
SoildWorks模型和外壳STL.zip
46
克隆工程
添加到专辑
0
0
分享
Logo GIF0
侵权投诉
知识产权声明&复刻说明

本项目为开源硬件项目,其相关的知识产权归创作者所有。创作者在本平台上传该硬件项目仅供平台用户用于学习交流及研究,不包括任何商业性使用,请勿用于商业售卖或其他盈利性的用途;如您认为本项目涉嫌侵犯了您的相关权益,请点击上方“侵权投诉”按钮,我们将按照嘉立创《侵权投诉与申诉规则》进行处理。

请在进行项目复刻时自行验证电路的可行性,并自行辨别该项目是否对您适用。您对复刻项目的任何后果负责,无论何种情况,本平台将不对您在复刻项目时,遇到的任何因开源项目电路设计问题所导致的直接、间接等损害负责。

底部导航