zoukankan      html  css  js  c++  java
  • ROS之STM32来啦

    mbed是ARM自己high的一个所谓IoT的平台, 甚至不惜做了一个巨难用的在线编译IDE, 蛋疼欲裂, 内个字体非常非常反人类, 唯一的解决办法是用chrome浏览器, 然后下一个叫mbedEditor++的插件, 修改编译器的代码字体, 不然你迟早要瞎.

    OK, 进入正题, 我现在玩的ROS还是基于PC平台的, 如果要用PC来控制电机, 并收集电机的里程数据, 也就是说, 要将ROS跟模拟量之间连接起来, 有几个方案:

    http://wiki.ros.org/rosserial:

    用Aruino, 这个我玩过, 但是它的pwm只有255HZ, 这不是开玩笑么..

    嵌入式Linux, 我只是用来驱动电机, 用嵌入式linux会不会太浪费了..

    windows, 同上

    mbed, 这个东西, 我在看那本印度哥们写的书的时候, 他就提到了mbed, 但是后来, 他自己做的机器人居然用的是下面这个:

    tavic, 这个东西, 似乎是TI的一个launchpad board.

    由于种种原因吧(其实是我只会搞STM32), 只能接受mbed的方案, 了解了一下大概概念, 意思是要用蛋疼的在线ide, 编译代码, 然后下载bin文件, 然后丢到指定的ST官方的开发板nucleo板子里面, 插usb就能跑啦.

    首先, 去淘宝买一个F103/F40x的nucleo板子, 我只会F1,F0, 所以选择了F103RB, 大约100块包邮(其实挺黑的,成本他妈10块左右).

    然后把一个helloworld代码, import到在线IDE:

    https://developer.mbed.org/users/garyservin/code/ros_lib_indigo/

    然后编译, 下载bin文件, 插了necleo的板子, bin文件拷进去, 重启, 就相当于烧录啦..

    然后在ROS里面, 启动roscore, 再启动rosserial的节点:

    $ rosrun rosserial_python serial_node.py /dev/ttyACM0

    然后就用rostopic的命令echo一下chatter这个topic, 你就可以看到每秒钟输出的那句在STM32里面的hello world了.

    其实我很想知道, 如果这玩意儿要移植, 从nucleo移植到自己的板子上, 应该接哪个口? 为啥我试了所有的口, 还都接了逻辑分析仪, 转不到包, 是不是这个通讯协议还得研究一下, 必须从ROS节点端发送点儿啥, 才能收到板子那边发过来的数据.

  • 相关阅读:
    解决计算机改名无法连接TFS的问题
    MysqlHelper使用反射机制智能推算数据类型以及属性名称
    Cakephp中使用JavaScriptHelper来引入js文件
    CakePHP程序员必须知道的21条技巧
    cakephp文件结构
    去掉字符串前后所有空格
    小程序 支持html富文本吗
    2018年五月博客整理
    Angular cookies
    webstorm 快捷键
  • 原文地址:https://www.cnblogs.com/Montauk/p/6940252.html
Copyright © 2011-2022 走看看