前言:之前ROS跟单片机的底层通讯主要是通过串口自定的协议来做,比如官网提供的arduino串口驱动一样,需要ROS往下发一个指令,单片机再回传一个指令,要写一大堆的协议,这样很麻烦,效率也比较低,
想着如果stm32也能像ROS一样,进行订阅发布,不去管其中的协议那样就方便多了,基于这种想法,于是乎查了很多资料,发现了一个大神做了类似的工作:http://blog.csdn.net/wubaobao1993/article/details/70808959
具体就是移植了ros_lib,里面居然还有keil工程,下载下来稍微改改就能用了,感谢这位大神!
废话少说,上代码:
main函数:
主程序主要是订阅和发布程序,类似官网C++教程。
超声波读取程序:
STM32发布后,ROS端启动rosserial:
rosrun rosserial_python serial_node.py /dev/ttyUSB0
然后订阅
最后上一张测试效果图:
20ms读取一次,数据很稳定!