完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
前言
最初参考网上资料移植了一份基于串口的STM32通过rosserial和ROS系统通信的代码。对于小数据量格式的消息,可以正常通信,但消息量一大便会出错(如:发布ROS提供的odom和imu格式的消息)。网上还有另一种建立单片机和ROS系统的通信方式,这里的第二点有介绍,这里就不再叙述了。专为turtlebot3设计的OPENCR硬件通过USB虚拟串口可以很好的和ROS系统通信。鉴于此,我便想可以通过USB虚拟串口的方式和ROS系统通信。 小插曲1:采用USB虚拟串口和ROS系统之前,我尝试了好多方法都不能使传感器消息的发布频率达到程序设定的传感器的发布频率,如串口循环发送中断接收、串口中断发送中断接收、串口DMA发送接收等都不能很好的达到效果。 小插曲2:在想做一个ROS底盘之前,做了一个平衡车,感觉搭建一个基于ROS的平衡车也是非常cool的(主要是不想破费买硬件了,哈哈!),这也正是下面代码介绍的第二个分支为平衡车分支的原因。限于对平衡控制方面的一些理解不到位,故最后在平衡车实现导航时存在一些问题。这些问题调试起来比较困难,故又萌生了先制作一个稳定底盘的想法。 在整个过程,我也是边学习ROS的知识,边学习底盘构建的嵌入式方面的知识。但对于目前来说,基本达到了我可以开发程度的极限,故将代码open出来给那些需要的人参考,也非常希望各路大牛可以给一些参考和指导,不胜感激! 开源代码 目前代码放置在github上地址为https://github.com/Apex-yuan/ROS_STM32F1 目前只包含下位机部分,上位机部分的代码等后续整理好再上传。 代码总共分为三个分支: master 基于STM32F1平台建立的ROS和STM32之间的通信模板(USB VCP + rosserial) ros_balancecar 基于STM32平台的ROS机器人平衡底盘控制程序(双轮平衡+差速控制) ros_stablecar 基于STM32平台的ROS机器人稳定底盘控制程序(差分模型) 在Doc文件夹内有一个log.md的文件,记录了更新修改的内容。 代码特性 支持手机APP控制小车运动 支持虚拟示波器显示动态参数(通过蓝牙传输) 采用dmp库获取mpu6050融合后的姿态信息(偏航角误差较大,又进行了简单的数据滤波) 支持pwm电机控制 支持编码器获取轮子转速 支持上位机通过topic形式动态调参(后续可通过ROS参数服务器的形式实现,暂未实现) 支持USB虚拟串口 pid控制 平衡小车的直立+速度+方向控制算法(仅在平衡车分支的代码中包含) … |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1763 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1617 浏览 1 评论
1059 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
723 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1670 浏览 2 评论
1933浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
726浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
566浏览 3评论
592浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
550浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-21 08:45 , Processed in 0.808345 second(s), Total 75, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号