基于亚博Arduino电机拓展板的ROS小车

Posted xhwy123

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于亚博Arduino电机拓展板的ROS小车相关的知识,希望对你有一定的参考价值。

文章目录


前言

最近之前的项目结项了,于是想自己做一辆ROS小车来玩玩,奈何本人技术薄弱,两眼一抹黑,遂参考了百度和ROS-wiki上的很多材料,才完成了一辆基于Arduino的ROS小车,现将各个过程分享出来,留作纪念。


一、硬件搭建

笔者手头只有一辆亚博智能的Arduino两轮平衡车,于是拆了自己搭建了一辆三轮小车,各项参数如下。
  1. Arduino UNO R3开发板一块

  2. GM37 编码电机和轮子一对,万向轮一个![(https://img-blog.csdnimg.cn/f567258438ef43cf9db1415259184367.png)

  3. 亚博智能平衡车驱动板一块(基于TB6612FNG)

  4. 一块小车底板,各种螺丝固定件若干

  5. 一块12V的18650锂电池

具体搭建过程:略,不得不说,在这一块商家做得不错,只需要把拓展板插到Arduino上,把电机和电机线固定好就行了。(方便的同时也为后续埋下了隐患,所以建议大家在使用拓展板的时候要先详细了解他的原理图啊,哭)

二、软件环境搭建

  • Ubuntu 16.04 64位
  • #Python 2.7.12
  • #Arduino IDE 1.8.8-Linux
  • #ROS kinetic version: 1.12.17
  • 参考了wiki上ros_arduino_bridge的包和亚博智能的平衡车代码。

1.在window下安装VMware和Ubuntu 16.04

略,因为笔者用的是ROS-kinetic,需要注意的是Ubuntu的版本。

2.安装ROS-kinetic(各种坑)

安装过程:略,网上很多,笔者这边分享一篇安装教程,需要注意的是最后一步更新ROS时 经常会出现更新失败,多试几次就行了。

https://blog.csdn.net/weixin_40929324/article/details/88615311?spm=1001.2101.3001.6650.6&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-6.no_search_link&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-6.no_search_link&utm_relevant_index=10

3.在Ubuntu下安装Arduino IDE

参考:https://blog.csdn.net/weixin_44747675/article/details/98764397

  • tar -xvf arduino-1.8.8-linux64.tar.xz
  • cd arduino-1.8.8/
  • chmod +x install.sh
  • ./install.sh

4.将Arduino连接到电脑

将Arduino连接到电脑,在这里可以更改USB设备,连接到虚拟机还是主机。

5.Linux安装串口驱动

  • 1.安装串口驱动
    sudo apt-get install python-serial
  • 2.查询接口:
    ls /dev/ttyACM* 或 ls /dev/ttyUSB* #我的是/dev/ttyACM0
    chmod 777 /dev/ttyACM0
  • 3.查询访问权限
    ls -l /dev/ttyACM0
  • 4.运行这个命令来加入dialout组
    sudo usermod -a -G dialout user_name
    #其中user_name为登录的用户名
  • 5.打开Arduino IDE
    sudo arduino
  • 6.在arduino自带的库管理器搜索并安装MsTimer2.h和PinChangeInterrupt.h这两个包。
  • 7.将下位机代码烧录到Adrduino中,略。

6.启用ROS节点

  • 1.开一个终端,启用总节点:
    roscore

  • 2.再新开一个终端,将我的src/ros_arduino_bridge移到自己的工作空间/src中,然后在工作空间中。
    cd …
    catkin_make
    source devel/setup.bash
    roslaunch ros_arduino_python arduino.launch

  • 3.最后再开一个终端启动键盘
    sudo apt-get install ros-kinetic-teleop-twist-keyboard
    rosrun teleop_twist_keyboard teleop_twist_keyboard.py

附Arduino原理图和代码和ROS上位机代码
链接:https://pan.baidu.com/s/1HYhKTkT7klrl5TyOY6M0cQ 
提取码:1234 
--来自百度网盘超级会员V4的分享
#更新:2021.12.30 校正PID:可以看到实时的速度曲线,方便进行pid参数的调整
#操作方式,启用新的终端,然后输入以下指令
#rqt_plot /Lencoder /Lpidout /Lvel
#rqt_plot /Rencoder /Rpidout /Rvel
#详细介绍,详见https://www.ncnynl.com/archives/201612/1208.html
 - [2022.06.04] 使用思岚的激光雷达,由于时间原因暂且搁置。

以上是关于基于亚博Arduino电机拓展板的ROS小车的主要内容,如果未能解决你的问题,请参考以下文章

SimpleFOC无刷电机平衡小车

SimpleFOC无刷电机平衡小车

arduino红外控制小车程序(俩引脚的直流电机)

基于L298N驱动的麦克纳姆轮的小车组装与驱动电机介绍

基于L298N驱动的麦克纳姆轮的小车组装与驱动电机介绍

超声波+红外线避障小车(Arduino + L298P电机驱动扩展板)