从0制作自己的ros导航小车
系列文章:
①【从0制作自己的ros导航小车:介绍及准备】
②【从0制作自己的ros导航小车:下位机篇】01、工程准备_标准库移植freertos
③【从0制作自己的ros导航小车:下位机篇】02、电机驱动、转速读取、PID控制
④【从0制作自己的ros导航小车:下位机篇】03、mpu6050偏航角获取
⑤【从0制作自己的ros导航小车:上、下位机通信篇】上、下位机串口DMA通信
⑥【从0制作自己的ros导航小车:上位机篇】01、里程计与坐标变换发布
⑦【从0制作自己的ros导航小车:上位机篇】02、ros1多机通讯与坐标变换可视化
⑧【从0制作自己的ros导航小车:上位机篇】03、添加urdf模型(发布各传感器与小车基坐标系之间的静态坐标变换)
⑨【从0制作自己的ros导航小车:上位机篇】04、使用gmapping建图
⑩【从0制作自己的ros导航小车:上位机篇】05、导航!
前言
本篇说明需要具备的知识和软硬件。可以不用全部具备,但基础要有,写的不是非常详细。
本小车分为上位机与下位机两部分,上位机使用旭日x3派运行ros进行开发和算法实现,下位机使用stm32驱动电机和传感器数据采集。
一、知识
①stm32部分(当然也可以使用其它控制类开发板,例如arduino,本专栏使用stm32):
最好有开发基础,没有的话可以看江协科技的stm32基础教程,讲的很全面,不用全部看,前面可以都看,主要看定时器输入捕获、定时器编码器接口、oled、pwm、uart等等。看过野火或者正点原子的教程也可以。
②上位机端(本专栏使用的上位机是旭日x3派,其实就是和树莓派类似的开发板,树莓派应该都有听说过,上位机的选择很多,一般嵌入式linux开发板都可以):
可以学一些linux基础命令行,然后建议直接学ros,这是一个开发机器人的平台,可以从这里开始linux开发之旅。
ros教程很多,建议学习b站赵虚左老师的课,对小白入门比较友好,也可以看鱼香ros、古月居等知名博主的课。
二、硬件准备
①下位机
对于已经买了小车成品底盘的小伙伴,前面很多都不需要看,只需要关注上位机开发就好了。没有完整小车底盘的可以往下看:
*小车底盘
*带霍尔式编码器的直流减速电机
*GY-521 mpu6050模块
*tb6612电机驱动模块
*stm32f103c8t6
*USB转ttl串口调试模块
*烧录器
②上位机
选择很多:树莓派、香橙派、imx6ull、旭日x3派、jetson nano等等。
*旭日x3派
*激光雷达
③供电
本小车直接使用能够输出5v3a的充电宝对stm32和旭日x3派进行供电,使用两节18650对tb6612单独供电。其余的供电策略可以参考别的文章,也可以:根据上位机的供电需求来准备一个稳压模块,注意电流一定要满足,否则开发板可能会频繁重启,准备多节电池能够输出满足开发板的电压电流即可,将稳压模块和电源连接起来即可,稳压模块的输出用于开发板和电机驱动模块供电。
三、软件准备
①上位机
本文使用的旭日x3派是使用SD卡烧录Ubuntu系统的,对于其它开发板根据自己的资料进行系统安装。旭日x3派参考https://developer.horizon.cc/documents_rdk/installation/install_os。
系统安装完成之后使用串口连接电脑和开发板,使用串口登录开发板,参考https://developer.horizon.cc/documents_rdk/installation/remote_login
进入开发板之后,使用鱼香ros的一键安装来安装ros1,注意烧录的ubuntu版本是20.04,所以安装的ros1对应版本是noetic,参考https://fishros.org.cn/forum/topic/20/%E5%B0%8F%E9%B1%BC%E7%9A%84%E4%B8%80%E9%94%AE%E5%AE%89%E8%A3%85%E7%B3%BB%E5%88%97?lang=zh-CN
ros安装完成之后上位机软件准备完毕。
②下位机
使用keilv5-MDK进行开发,安装参考:https://blog.csdn.net/weixin_43992330/article/details/135207272