本人电子信息工程专业,致力于图像开发两年,因为现在导师要求做一个智能机器人,因此要从底层开始设计

也希望能给那些想要自己动手制作小车的朋友一点参考。

本文主要介绍ROS下使用rosserial和STM32(ST库)进行通信,移植网上各位大神的代码,实现自己想要的功能

主要参考:https://www.baidu.com/link?url=HHBcr34K6SbLnst52P-4mSGPKxvCAQXGwGbHb5C_cp97Oe8f8cDQ8My__1_I3D-B0MezdtSdFuXy8awy6odoeqcmc8YiFrvOT8nCAFGr-YqwF1TCLtuqvRBkzquqXlP0&wd=&eqid=b7c144b80000b29c000000065ba1fb47

  • rosserial的详细介绍:http://wiki.ros.org/rosserial
  • rosserial_client的介绍:http://wiki.ros.org/rosserial_client
  • rosserial_client的教程程:http://wiki.ros.org/rosserial_client/Tutorials
  • rosserial协议的介绍:http://wiki.ros.org/rosserial/Overview/Protocol

STM32工程中集成了ros_lib让STM32像arduino一样操作,让广大机友从写stm32解析器结点中解放出来。下面就来一一讲解:

一、工程目录

1是延时函数; 2是串口配置;3是定义写的数据类型;4是读的数据类型;5、6是ros_lib自带的无需修改;7则是把STM32串口和ros_lib结合起来的桥梁;

本文配置的串口是串口1波特率是57600,大家可以根据自己的实际需求来更改对应的串口即可,要保证配置好的串口是可以手发正常的;

下面看一下我写的配置:

当配置好这个了之后我们就可以开始主函数代码了:

引入自己写的头文件、F1的头文件和ROS的头文件

先定义一个nh、和我们要发布和订阅的主题名称。写法和我们在ubuntu上写ROS程序没有太大的差别

然后就是等待连接和进行订阅和发布:

然后我们在一个大循环中使用系统时钟进行主题的定时发布和订阅:

感觉使用这种方法的好处是不用一直去对串口数据进行处理,但是不好的就是速度没有直接使用串口那么快。

写好底盘的代码后我们在我们的Ubuntu(ROS系统)中使用:git clone https://github.com/ros-drivers/rosserial.git  下载rosserial的包然后使用catkin_make进行编译,编译完成后先运行roscore  然后再运行rosrun rosserial_python serial_node.py /dev/ttyUSB0

如果出现  "robot_Star Connected!"则说明连接成功。

附上我自己做的板子,STM32F407支持大功率电机和电调两种控制,因为我自己的机子使用的是电调驱动的

带GPS、4路编码器、4路电机输出、三路超声波、8路PWM输出、板载MPU9250、DHT22(温湿度检测)、OLED显示、外接按键输入接口、RGB_LED灯、电压检测、电机过流保护、5路串口输出、CAN总线接口、5V4A电压输出(给树莓派供电)、还引出了很多的IO口、资源够用、频率够快、目前底层驱动代码还在编写、可能要过一段时间才能写完、到时也会和大家分享、希望大家能多多关注、相互学习。

示例工程代码下载:https://download.csdn.net/download/qq_36349536/10676733

没有积分的,可以进群获取,更多资料请进群获取:

ros下使用rosserial和STM32F1/STM32F4系列进行通信(MDK5工程)相关推荐

  1. Arduino框架下STM32F1/F4系列HID模式程序烧录教程

    Arduino框架下STM32F1/F4系列HID模式程序烧录教程 相关篇<Arduino框架下STM32全系列开发固件安装指南> HID BootLoader烧录模式 "Upl ...

  2. STM32F4+DP83848以太网通信指南系列(一):知识储备

    丁丁的博客:https://www.hexcode.cn/article/show/stm32-ethernet1 2017-12-09 17:32:19 以太网通信 stm32 STM32F4+DP ...

  3. STM32开发笔记47:STM32F4+DP83848以太网通信指南系列(一):知识储备

    单片机型号:STM32F407VGT 本章为系列指南第一章,主要是介绍一下项目思路,并且尽可能列出从零开始着手开发这个项目过程中,所需要理解的各类知识点,关于这些知识点,如果需要更详细的介绍,请列为看 ...

  4. STM32F4+DP83848以太网通信指南系列知识储备

    本章为系列指南第一章,主要是介绍一下项目思路,并且尽可能列出从零开始着手开发这个项目过程中,所需要理解的各类知识点,关于这些知识点,如果需要更详细的介绍,请列为看官自行百度谷歌. STM32F407简 ...

  5. ZED 相机 ORB-SLAM2安装环境配置与ROS下的调试

    注:1. 对某些地方进行了更新(红色标注),以方便进行配置. 2. ZED ROS Wrapper官方github已经更新,根据描述新的Wrapper可能已经不适用与Ros Indigo了,如果大家想 ...

  6. ROS系统MoveIt玩转双臂机器人系列(二)--生成MoveIt配置包

    ROS系统MoveIt玩转双臂机器人系列(二)--生成MoveIt配置包 注:本篇博文全部源码下载地址为:Git Repo. 1. 下载到本地后解压到当前文件夹然后运行:catkin_make 编译. ...

  7. vscode编译、调试stm32F4系列mcu的程序

    捣腾很长时间了,用vscode编译.调试stm32F4系列mcu的程序.记录下. launch.json @TOC // AUTOMATICALLY GENERATED FILE. PLEASE DO ...

  8. ROS下安装和运行SVO数据包和实时测验的过程记录

    安装与运行的所有文档: https://github.com/uzh-rpg/rpg_svo/wiki  或者 http://blog.sina.com.cn/s/blog_7b83134b0102w ...

  9. STM32F4系列单片机选型详解

    一. 简介 本篇文章将全面介绍STM32F4系列单片机的详细情况,在实际项目中对F4系列的选型具有一定的指导意义. 那里有广告!!!! 二. 整体介绍 整个F4可以分为三个系列: 入门型系列, 基础系 ...

最新文章

  1. python获利模式_Python 分段利润提成
  2. 李德毅获吴文俊人工智能最高成就奖 | AI日报
  3. HTML5(WebSockets)的脆弱性?
  4. ZTE物联网之智能电表简介
  5. 不同进制数的表示方法
  6. SUSE10下配置FTP服务
  7. C语言和C++的区别整理详解!
  8. Swift 获取字符的个数 、字符串的遍历
  9. JEP 尝鲜系列 3 - 使用虚线程进行同步网络 IO 的不阻塞原理
  10. 微信聊天记录数据分析
  11. 【免费资源分享】给大家分享一款自己编写的免费语音合成软件,免费文字转语音,无需提供任何接口么,傻瓜式使用!
  12. android bugly qq,Android如何快速集成腾讯Bugly
  13. 为Python程序添加桌面快捷方式
  14. 爬虫基础-----1.python基础
  15. 一款非常nice的国产U盘启动制作工具——Ventoy
  16. 14 metabase定制
  17. 基因相关性——字符串入门
  18. table自定义表格样式
  19. Mac OS和Office版本问题
  20. 行业实战 | 5G+边缘计算+“自由视角” 让体育赛事更畅快

热门文章

  1. bat执行cmd命令
  2. 国内列为一级学报的期刊
  3. 百度搜索有广告?不存在的。
  4. 一个简单的百度换肤效果
  5. 【MapReduce】MapReduce读写MySQL数据
  6. 腾讯QQ登录“无法访问个人文件夹”解决方法
  7. 再见吧 buildSrc, 拥抱 Composing builds 提升 Android 编译速度
  8. PLC的顺控继电器(SCR编程)总结
  9. 51单片机:静态数码管详细教程
  10. mysql导出gkb_mysql高效导入导出工具之mydumper