STM32_ROS_V2(9.5更新):
(1)增加4颗ws2812B RGB灯,焊接在背部,PB15_SPI2引脚输入,采用SPI与DMA控制,实现呼吸灯,跑马灯等功能,见附录代码
(2)增加一路ADC电路电阻(分压测量电路,PA4_ADC1采集),测量12V航模电池电压
加上四颗ws2812B后小车灯光效果:

STM32_ROS_V2(9.2更新):
(1)拿到嘉立创PCB后,焊接完毕效果图,测试功能无问题:

(2) STM32程序优化(STM32源程序已更新)
1.Data_transition()函数放进control 5ms控制中断运行
2.利用1ms定时器 引出10ms定时器变量 在主函数while(1)中10ms运行USART3_SEND();发送数据函数
3.经测试在这种控制模式下整个系统没有任何延时
(3)串口调试软件设置(用于模拟ROS端串口数据发送,控制小车运动以及校准里程计)

1.其中发送9帧,右边勾选16进制发送,自动循环发送,1ms(千万不要勾选发送新行,否则结尾发送\r\n,程序无法读出正确数据)
2.发送9帧中,第一帧和最后一帧为帧头帧尾,第8帧为(1-7)帧相加校验位,具体可查看usart3.c文件
STM32F407VET6核心板(8. 2 8更新):
(1)更新STM32F407VET6核心板PCB与原理图,将整个核心板模块化(查看工程文档)

(2)更新STM32_ROS_V2中USART3接口为XH2.54*5PIN形式接口,采用下图的CH340驱动

淘宝链接:6.0微yDVQXMS3wd5微 https://m.tb.cn/h.fYZoODG USB转TTL CH340模块STC单片机下载线刷机板USB转串口 XH-5P接口
STM32_ROS_V2(8.26更新):
(1)为了保持电路整洁性,重新位置PCB布局,让主控板螺丝孔位与jetson nano孔位保持一致
(2)陀螺仪MPU9250-->ICM20602(模拟SPI采集,实现1ms采集不卡顿 见附录代码)
(3)删除 一路舵机接口 一路步进电机接口 红外接口
(4)JTAG下载接口改为JINK OB下载器(该下载器为四线 节省PCB布局位置,使用方法与普通Jlink一致,需安装Jlink驱动)


(5)电容电阻改为0603封装
(6)增加两路串口 一路为UART4连接NRF转串口模块,用于山外上位机发送波形数据调试 第二路为UART5 闲置备用
(7)电路2D模型

STM32_ROS_V1:
(1)打板焊接以后效果图:

(2)编写程序,测试所有外设:

(3)无问题!组装小车,测试蓝牙控制小车移动:

(4)在树莓派上装好带ROS的ubuntu系统,编写程序,测试导航:

(5)整车底板与框架3D建模:
采用Solidworks 2020建模,将底板转为CAD图档,发给淘宝店家亚克力板定制,2块200x300cm(5cm厚度)价格20元左右:

Solidworks建模文件见附件,需平级或高版本打开。
(6)拿到定制亚克力板后,组装整车
(ROS方案已改为Jetson Nano主控,因为树莓派WIFI连接信号较差,且无法使用CVbridge)
整车配置:
1. 供电方式:航模动力电池(12V)
2. 结构形式:全向运动模型(麦克纳姆轮)
3. 控制方式:PC 端上位机控制、蓝牙/手柄控制、无人驾驶模式
4. 行驶电机:直流有刷电机*4,电压 6-24V、带AB双向增量霍尔编码器,额定转矩 3.4N*m
5. 视 觉:Logi C505e USB摄像头 800万像素160度广角摄像头
6. 惯 导:MPU9250 : 9轴姿态:3轴加速度、3轴陀螺仪、3轴磁力计,IIC/SPI 通信协议
7. 激光雷达:思岚RPLIDAR A1,10米测距、配套完整 USB 串口、SDK 开源工具
8. 电源模块:12V->5V 4A DC-DC直流转换模块(Jetson Nano供电)
9. 交互系统:TJC 7英寸HMI电阻式串口屏、2W喇叭
10. 控 制 器:STM32 复合驱动板、Jetson NANO 控制器
(1)STM32复合驱动板参数:
处理器:STM32F407VGT6
控制器特点:2组舵机接口、4路驱动电机接口、2个按钮模块、LED灯、JLINK接口、OLED 显示屏、内置开关、PS2 接口、HC05蓝牙接口、HMI串口屏接口、IMU 接口、TYPEC供电接口
(2)Jetson Nano 控制器参数:
CPU: 四核 ARM Cortex-A57 MPCore处理器
GPU: NVIDIA Maxwell w / 128 NVIDIA CUDA核心
内存: 4 GB 64 位 LPDDR4
显卡: HDMI 和 DisplayPort 输出
USB: 4 个USB 3端口
I / O: I2C,SPI,UART 以及与Raspberry Pi兼容的GPIO接头
11. 通信系统: WIFI 通信、UART TTL、USB 串口、SOCKET、RosMsg
12. 操作系统: Ubuntu 18.04 LTS、ROS-melodic、Windows
13. 编程语言: C/C++/Python3
14. 使用软件: Keil5、Kdevelop、VS2015、Pycharm、Solidworks
15. 匹配环境: OpenCV3.4.12、Pychtorch、Pip3、Rviz、Gazebo


(7)机器人建图导航定位实验
7.1网络控制图传小车(利用键盘控制小车移动,并将图像信息显示于Rviz)

7.2 cartographer算法实现建图

7.3 Dijsktra算法实现的全局路径规划与自主导航

原理图(1 / 3)



PCB
