Chinaunix首页 | 论坛 | 博客
  • 博客访问: 9417733
  • 博文数量: 1748
  • 博客积分: 12961
  • 博客等级: 上将
  • 技术积分: 20070
  • 用 户 组: 普通用户
  • 注册时间: 2009-01-09 11:25
个人简介

偷得浮生半桶水(半日闲), 好记性不如抄下来(烂笔头). 信息爆炸的时代, 学习是一项持续的工作.

文章分类

全部博文(1748)

文章存档

2024年(24)

2023年(26)

2022年(112)

2021年(217)

2020年(157)

2019年(192)

2018年(81)

2017年(78)

2016年(70)

2015年(52)

2014年(40)

2013年(51)

2012年(85)

2011年(45)

2010年(231)

2009年(287)

分类: 其他平台

2019-02-13 09:53:47

测试命令

点击(此处)折叠或打开

  1. roscore

  2. #加载参数
  3. rosparam load ./src/big_msgs/param/GlobalStaticConfig.yaml

  4. //启动底盘 rosserial server
  5. sudo chmod a+rwx /dev/ttyACM0; rosrun rosserial_python serial_node.py /dev/ttyACM0

  6. //启动键盘遥控程序
  7. sudo chmod a+rwx /dev/input/evnet*; rosrun remote_control_by_keyboard remote_control_by_keyboard_node

结构
    中大直流电机x2 -> 驱动器 ->  STM32F405RGT6_LQFP64  --usb vcp---> USB HUB --> Joule
    在单片机STM32上实现ROS. 实际上APB2上的串口84MHz也可以支撑很高的通讯率,并且用在ROS上有移植好的官方模板, 但是我们是玩技术的, 应该玩出新高度.
        1. 通过驱动器控制和获取电机的转动以及霍尔值
        2. 通过VCP + ROSSerial (订阅话题) 获得速度控制命令.
        3. 通过VCP + ROSSerial (发布话题) 送出本地信息.
        4. 融合碰撞,防跌落,IMU信息控制本地系统的运转和信息累积.

开发环境
    WIN10 + STM32CubeMX/AC6 开发固件. 固件部分因为使用了ROSSerial, 那就不再额外使用FreeRTOS了.
    AC6源码放在Joule上使用 ROS kinetic系统为STM32工程打上 ROSSerial 的补丁.





额外添加一个基本定时器
生成 Keil5 的工程.

在 joule ROS环境下
git clone 
修改 rosserial_stm32/src/ros_lib/STM32Hardware.h

点击(此处)折叠或打开

  1. 改成 stm32F4系列的, 这个文件在补丁打过之后还要再修改, 主要添加 TIM 以及 串口句柄的设定

  2. #include "stm32f4xx_hal.h"
  3. #include "stm32f4xx_hal_uart.h"
  4. #include "stm32f4xx_hal_tim.h"
修改 rosserial_stm32/src/rosserial_stm32/make_libraries.py 
点击(此处)折叠或打开
  1. STM32支持 double 类型
  2. 'float64' : ('double', 8, PrimitiveDataType, []),
执行 
    rosrun rosserial_stm32 make_libraries.py .

把 Keil5 工程中的 Src Inc 两个目录拷贝到 joule的某个目录下,  Joule上在此目录下执行 

点击(此处)折叠或打开

  1. rosrun rosserial_stm32 make_libraries.py .
然后把这两个目录在拷贝回来. 在keil5的工程中添加 新的CPP文件


 编译先通过再说.
阅读(4865) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~