ROS2小车真机实战
·
通信方式
串口通信-用于板间 彼此都有发送/接收/接地,数据帧包括“起始位+数据位+校验位+停止位”,全双工
I2C通信-寻址线+数据线,谁都可以当主机,是半双工通信方式,用于线少低速,板间通信
SPI通信-通过片选线锁定对象,时钟线+主出从入线+主入从出线,是全双工,板间高速传输,如音视频
开发环境搭建
1.开发平台 —— VS + PlatformIO插件 + Serial Monitor插件
2.开发方式 —— Arduino开发(✔) 库函数开发(❌) 寄存器开发(❌)
3.主控单元 ——Fishbot驱动控制板 + ESP32单片机
4.传感装置 ——编码器 + 激光雷达
机器人控制系统实现
需要先把WIFI调通,并且执行Agent结点用于统一上下文结点
任务一:机器人能按给定的速度执行
收到上位机传来的(V,W命令)
运动学逆解成轮速(Vl,Vr)
根据电机参数取频占(80%)
用编码器数据算当前速度
用PID来稳定到目标速度
根据速度计算里程计数据
任务二:机器人能实时反馈自身位置
雷达采集原始数据(无法显示的那种)
通过WIFI转接板发送
上位机程序将WIFI数据转换为串口格式
串口的数据转化为接口形式(可以显示)
雷达数据一方面用于RVIZ建图使用,另一方面给AMCL算法使用
AMCL算法计算map->odom坐标变换
里程计测距模块计算odom->base_link
URDF+robotpublisher结点发送其它静态TF
如此以来就可以稳定了
更多推荐





所有评论(0)