< >
Home » ROS与RaceCar教程 » ROS与RACECAR教程-Arduino ROS节点进行小车控制

ROS与RACECAR教程-Arduino ROS节点进行小车控制

ROS与RACECAR教程-Arduino ROS节点进行小车控制

说明:

  • 介绍如何通过arduino节点控制小车运动
  • 我们构建了一个面包板,使用Arduino ROS Node与Jetson接口。
  • 然后我们安装软件,并使用ROS远程操作节点进行测试,以控制汽车与游戏控制器启动。

硬件选择:

  • 通过比较Teensy和常规Arduino,用常规Arduino替换Teensy更容易,并且在Jetson上可使用Arduino软件。
  • 目前使用Arduino Nano. Nano被选中,因为部件已经在手,如果购买新的,Arduino Micro或其他版本都可以。
  • 注意:这些比较便宜,容易替代。需要注意,例如,Arduino Nano使用CH-340串行到USB芯片而不是FTDI芯片。

Arduino ROS 节点

  • 关于arduino中如何使用ros,可以参考文章
  • 我们将使用Arduino ROS节点,使用Arduino Servo库向小车发送转向伺服和ESC的PWM脉冲。
  • 连线图:

请输入图片描述

注意:

  • 注意转向伺服系统从ESC接头接收6V的电,从车载电池获取电力。
  • Arduino通过USB接收5V电源,并向转向伺服和ESC发送信号。
  • 为了避免冲突,可以添加隔离电路。
  • 在将Arduino面包板连接到小车之前,确保小车电池与ESC断开连接。
  • 这款Nano使用迷你USB连接器。
  • 组装图:

请输入图片描述

软件安装:

  • 软件安装的先决条件是ROS和Arduino的适当的串行到USB驱动程序。

  • FTDI是标准Arduinos的常用选择,参考文章安装ftdi驱动

  • 下载源码安装:

$ git clone https://github.com/jetsonhacks/installJetsonCar.git
$ cd installJetsonCar
$ ./installJetsonCar.sh
  • 进入Arduino sketchbook 目录并打开jetsoncar sketch文件jetsoncar.ino
  • Arduino sketchbook目录位于~/sketchbook/jetsoncar
  • jetsoncar sketch文件是jetsoncar.ino
  • 打开文件后,选择正确的板和端口,上传

操作:

$ roscore
  • 新终端,执行串口管理
$ rosrun rosserial_python serial_node.py /dev/ttyUSB0
  • 新终端,执行游戏杆控制
$ roslaunch jetsoncar_teleop nyko_teleop.launch
  • 为了发送cmd_vel主题,在控制左操纵杆,右触发器或右按钮时必须按下游戏控制器上的“Y”按钮。
  • 注意:确保小车处于稳定状态,轮胎与周围环境无接触。
  • 一旦你满意,一切正常,连接小车电池,并按ESC上的电源按钮。 控制器应该控制汽车行动。

Arduino Nano

  • Nano使用CH-340串口转usb,而大部分的arduino板使用FTDI芯片
  • Nano适合的linux驱动是USB Winchiphead CH341 Single Port Serial Driver
  • 当rosserial node连接多次会出现挂起问题,jetson2.6会出现这个问题,切换到2.5版本可以解决这个问题:
  • 安装install pyserial 2.5:
sudo apt-get install python-pip -y
pip install –user ‘pyserial==2.5’

参考:

  • http://www.jetsonhacks.com/2016/08/02/jetson-racecar-11-arduino-ros-node-for-car-control/

纠错,疑问,交流: 请进入讨论区点击加入Q群

获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号


标签: ros与racecar教程