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


文章目录

  • 前言
  • 一、硬件搭建
  • 二、软件环境搭建
    • 1.在window下安装VMware和Ubuntu 16.04
    • 2.安装ROS-kinetic(各种坑)
    • 3.在Ubuntu下安装Arduino IDE
    • 4.将Arduino连接到电脑
    • 5.Linux安装串口驱动
    • 6.启用ROS节点

前言 最近之前的项目结项了,于是想自己做一辆ROS小车来玩玩,奈何本人技术薄弱,两眼一抹黑,遂参考了百度和ROS-wiki上的很多材料,才完成了一辆基于Arduino的ROS小车,现将各个过程分享出来,留作纪念。
一、硬件搭建 笔者手头只有一辆亚博智能的Arduino两轮平衡车,于是拆了自己搭建了一辆三轮小车,各项参数如下。
  1. Arduino UNO R3开发板一块
  2. GM37 编码电机和轮子一对,万向轮一个![(https://img-blog.csdnimg.cn/f567258438ef43cf9db1415259184367.png)
  3. 亚博智能平衡车驱动板一块(基于TB6612FNG)
    ubuntu|基于亚博Arduino电机拓展板的ROS小车
    文章图片

  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连接到电脑 【ubuntu|基于亚博Arduino电机拓展板的ROS小车】将Arduino连接到电脑,在这里可以更改USB设备,连接到虚拟机还是主机。
ubuntu|基于亚博Arduino电机拓展板的ROS小车
文章图片

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] 使用思岚的激光雷达,由于时间原因暂且搁置。

    推荐阅读