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
- 打开文件后,选择正确的板和端口,上传
操作:
- 这里使用Nyko游戏垫控制器进行控制
- 控制器通过蓝牙与Jetson进行配对,与Jetson tk1配合的网卡和天线是intel 7260带有wifi和蓝牙
- 新终端,执行roscore
$ 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/
获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号