吐槽一下:
在ROS的学习过程中,对于STM32,发现其串口传输每次只能够发送一个同一种数据类型的包。而对于ROS系统的自动导航,其所产生的导航数据是浮点型(float)型数据,如果需要对线性的XYZ以及航向角等数据同时发送需要另下点功夫。
在师兄的分享下,利用一种特殊的方法能够很好的解决这个问题。
但是又出现一个问题,ROS作为上位机在同时收发数据时,会出现错乱,要么只收不发,要么只发不收,或者直接启动失败。对于STM32,根据电控组的大哥讲述,下位机对于STM32的串口通讯是利用优先级进行处理收发数据的。
显然对于我而言,优先级是个啥?再者,对于机器人控制中,听得最多的,就是控制的实时性,将数据收发分成优先级处理,完全不符合我心目中对机器人控制的要求…
其实网上已经有很多关于此类的教程,但大部分个人感觉讲得比较深。看半天愣是没看懂。所以我将会把ROS与STM32通讯拆分为多步,与大家探讨ROS与STM32通讯的构建过程。
根据此方法进行构建,目前仍会存在串口初始化失败等问题。目前仍在寻找相关问题的解决方案。
第一节: ROS上位机向STM32发送一个字符。
第二节: ROS上位机向STM32发送并接收一个字符
第三节: ROS上位机循环读取键盘中的字符,并向STM32发送一个字符。
第四节:
第五节:
第六节:
第七节:
第八节:
第九节:
第十节:
标签:发送,ROS,优先级,STM32,上位,串口,分享 来源: https://blog.csdn.net/weixin_48848716/article/details/122239228
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。