工程名称:泰山派ROS小车
工程作者:imhaozi
前言
小伙基于泰山派,做了个多功能的ROS小车~

小编看完表示:
成本这么低,还能实现
计算机视觉+ROS的结合…?
好像有点意思!!
*0***1
它能做什么?
”
① 基于上位机/键盘 控制小车旋转、前进、后退
② 支持图传:在此基础上,还能识别物体,目标跟随;要是运用这个功能,做一个赛博小宠物,岂不是很萌哈哈……
③ 能快速创建“地图”:支持创建/删除/保存/加载
④ 支持GPS+避障:自动导航效果如下
……
小编OS:最最最重要的是。
这是一个【可用的】【相对低成本】的ROS机器人方案
硬件成本预计400-500元左右

制作过程,你能学机器人编程、验证算法……
制作完后,你还能获得一个“好玩”的小车~~
真是一举两得,两全齐美,三……啊!
话不多说!咱瞅瞅它的硬件/软件设计方案↓看到就是学到~
*0***2
硬件设计方案
”
0**1**
设计图
作者基于泰山派设计了2块PCB板:
下位机
提供小车底盘控制电路,为小车底盘提供支撑
主要包含电源/充电/电机驱动电路、串口通信、状态灯显示

原理图

PCB图
上位机
引出泰山派控制接口,为激光雷达提供支撑;
主要引出串口,并通过IO高低电平控制雷达和风机的供电

原理图

PCB图
整体结构图

02
工作原理&参数
1
小车底盘:使用STM32作为主控、两个N20编码电机作为驱动,完成底盘的速度功能
2
ROS应用:通过串口3获取雷达数据、串口5与底盘进行数据交互。再通过泰山派Ubuntu20系统运行ROS程序,计算小车需要的运行速度后下发小车进行控制
3
上位机UI:通过WebSocket与泰山派中的ROS应用进行通信,实现小车的状态显示、模式控制、地图管理等功能
4
充电电路:使用TypeC作为电源输入接口,使用CS5090EA或SCS5090EA作为2串锂电池充电管理芯片,将5V电压升高到8.4V进行充电
5
电源电路:使用ME3118将锂电池电压降低到5V给电机和泰山派进行供电;使用ME6211C33M5G将5V电源降低到3.3V给STM32供电…
6
电机驱动电路:使用TB6612FNG对两个编码器电机进行驱动,配合PID可完成速度控制和反馈,给上位机提供里程计算能力
*0***3
软件设计方案
”
本章主要说明——软件核心架构、UI显示、软件部署教程、软件参数说明。
0**1**
软件核心架构
软件主要功能的核心架构如下图所示,从上到下分别为QT上位机、ROS程序、底盘下位机程序。软件可能维护更改,以实际代码为准。

说明:
-
导航、建图等核心功能主要使用了movebase、gmapping等开源软件包,主要需要自己配置参数;
-
底盘控制、电量显示、摄像头和雷达数据自己实现后对接软件包。
-
QT上位机根据需求功能调用不同的接口即可。
0**2**
软件UI显示
软件部分所有功能对应UI显示的各个部分:

说明:
-
状态显示:通过上位机UI进行交互,实时显示小车当前获取到的地图、小车位置、摄像头画面、电池电压等信息;
-
模式控制:UI中可选目标跟随控制、自动导航控制、手动遥控控制模式;
-
地图管理:UI包含地图管理功能,如创建、删除、使用、保存、获取地图列表等功能;
-
功耗管理:摄像头、雷达设备可单独控制开关,降低不使用时的功耗。
0**3**
软件部署
① TaishanPi
-
官方资料中下载Ubuntu20系统镜像ubuntu20.04_hdmi_20231130_update.img,按照官方教程烧录;
-
下载资料中提供的boot.img文件,使能串口5;
-
分配空闲空间;
-
安装SSH、ROS;
-
添加串口权限、IO权限、摄像头权限;
② RosCarBase
使用Keil打开,编译后烧录到底盘STM32中;
③ RosCarWs
程序中依赖多个软件包,分别安装即可(首次使用安装)
-
若安装报错先安装依赖,第一个推荐方案拒绝,使用第二个推荐方案:sudo aptitude install libsdl1.2-dev libsdl-image1.2-dev
-
建图:sudo apt install ros-noetic-gmapping
-
自动探索建图:sudo apt install ros-noetic-explore-lite
-
websocket通信:sudo apt install ros-noetic-rosbridge-suite
-
地图加载和保存:sudo apt install ros-noetic-map-server
-
导航:sudo apt-get install ros-noetic-navigation
-
teb规划器:sudo apt install ros-noetic-teb-local-planner
-
其他:按照上述顺序进行安装,若安装报错自行搜索
将Firmware中的RosCarWs文件夹复制到泰山派中;
# 源码放到开发板lckfb@MiWiFi-R3GV2-srv:~$ lsDesktop 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
运行程序前首先执行一下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
运行命令如下roslaunch launch_pkg all.launch,然后就可以在上位机中进行连接了
④ RosCarApp
使用QT打开并运行,也可以直接运行打包好的上位机。
泰山派和运行上位机的电脑需要在一个网络下运行。
0**4**
软件参数描述
小车一般无需具体的代码修改。
主要硬件相关参数修改如下,位于launch_pkg中的launch文件

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

*0***4
开源网址
”
你喜欢这个作品吗?如果是你,你会怎么设计它?欢迎评论区唠唠丫!
目前,项目已全开源!
——想复刻****?想给作者**点赞*?下面会附上开源网址↓,欢迎大家在遵循作者开源协议的情况下,友好复刻学习~~*
开源网址:https://oshwhub.com/32\_haozi/taishan-pie-ros-trolley
参考资料
感谢各位开源资料贡献者对此项目的帮助,项目开发过程中主要用到的参考资料如下:
-
ROS环境搭建:https://fishros.com/
-
Linux/安卓系统编译知识:公众号【A-花开堪折】
评论区
登录后即可参与讨论
立即登录