• 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节点端发送点儿啥, 才能收到板子那边发过来的数据.

  • 相关阅读:
    练习10.9-2
    [转]JVM 内存初学 (堆(heap)、栈(stack)和方法区(method) )
    JAVA成员变量为什么不能在类体中先定义后赋值
    core image几个滤镜样例 oc版本号和swift版本号
    UVa 11997 K Smallest Sums 优先队列&&打有序表&&归并
    Android基础新手教程——4.4.1 ContentProvider初探
    Restore IP Addresses -- LeetCode
    Android中Intent传递类对象的方法一(Serializable)
    Effective C++:条款22:将成员变量声明为private
    javascript cookie
  • 原文地址:https://www.cnblogs.com/Montauk/p/6940252.html
Copyright © 2020-2023  润新知