python arduino小车,搭建ROS小车底盘-第六篇ros_arduino_bridge功能包的使用

本文介绍了如何使用ros_arduino_bridge功能包来搭建ROS小车底盘,包括功能包的介绍、系统要求、硬件兼容性、安装步骤、固件上传、配置参数以及传感器和电机控制器的连接测试。该功能包支持多种传感器和控制硬件,通过Python和Arduino进行交互,实现对小车的控制和数据读取。
摘要由CSDN通过智能技术生成

搭建ROS小车底盘-ros_arduino_bridge功能包的使用

说明

介绍ros_arduino_bridge功能包

ROSArduinoBridge

这个ROS功能包集包括了Arduino库(ROSArduinoBridge)和一系列用来控制基于Arduino的ROS功能包,它使用的是标准的ROS消息和服务。这个功能包集并不依赖于ROS串口

使用这个功能包时,注意选择相应的版本,因为不同的版本之间有些并不能兼容。indigo-devel branch是针对ROS Indigo以及更高版本的,它使用的是Catkin编译系统。

这个功能包集包括一个兼容不同驱动的机器人的基本控制器(base controller),它可以接收ROS Twist类型的消息,可以发布里程数据到个人电脑。这个控制器(base controller)要求使用一个电机控制器和编码器来读取里程数据

特点

可以直接支持ping声呐和Sharp红外线传感器

也可以从通用的模拟和数字信号的传感器读取数据

可以控制数字信号的输出

支持PWM伺服机

如果使用所要求的硬件的话,可以配置基本的控制

如果你的Arduino编程基础好的话,并且具有python基础的话,你就可以很自由的改动代码来满足你的硬件要求

目前indigo-devel版本的功能包集支持下面的控制器硬件

注意:

Robogaia Mega Encoder shield 仅适用于Arduino Mega,

板上编码计数器(ARDUINO_ENC_COUNTER)目前仅支持Arduino Uno

上面非硬性规定,有一定的编程基础,你也可以按需更改

系统要求:

安装python-serial功能包(Ubuntu)

介绍:这个功能包集可以在兼容Arduino的控制器上进行读取传感器上的数据,以及控制PWM伺服机。但是你必须具备上面所说的被支持的硬件(电动机控制器和编码器),你才能使用这个功能包集中的基本控制器(base controller)

安装:

$ sudo apt-get install python-serial

$ sudo pip install --upgrade pyserial

$ sudo easy_install -U pyserial

安装电动机控制器和编码器合适的库

对于上面提到过的Pololu VNH5019 Dual Motor Shield,它的相应的库可以在这里找到:访问库

对于Pololu MC33926 Dual Motor Shield,则在这里可以找到对应的库:访问库

Robogaia Mega Encoder shield的库可以在这里找到:访问库

这些库应该被安装到你的标准Arduino sketchbook/libraries路径下面

这个功能包集假设你使用的Arduino IDE的版本是1.0或以上。

Linux下连接Arduino

Arduino很可能是通过接口/dev/ttyACM# 或者 /dev/ttyUSB#来连接你的Linux系统的。这里的#可以是0,1,2等数字,当然这根据你连接的设备数量而定。得到这个数字#最简单的方式就是拔掉所有的USB设备,然后插上你的Arduino,然后运行下面这个命令

$ ls /dev/ttyACM*

$ ls /dev/ttyUSB*

上面这两个命令的有一个可以返回你想要的结果(例如/dev/ttyACM0),假设你的Arduino连接的是/dev/ttyACM0

查看接口的访问权限

$ ls -l /dev/ttyACM0

crw-rw—- 1 root dialout 166, 0 2013-02-24 08:31 /dev/ttyACM0

上面的结果中,只有root和”dialout”组才有读写权限

你需要成为dialout组的一个成员。你仅仅需要马上加入这组中,并且它会对你之后插入的所有的USB设备都起作用。

运行这个命令来加入dialout组

$ sudo usermod -a -G dialout your_user_name

命令中your_user_name就是你在Linux下登录的用户名。之后你可能需要注销登录,然后再重新登录进去,或者就简单的重启一下电脑

确认已经成功让用户加入组,如果你可以在列出的组中找到dialout,这就说明你已经加入到dialout中了

$ groups

安装ros_arduino_bridge功能包集

安装ros_arduino_bridge

$ cd ~/catkin_workspace/src

$ git clone https://github.com/hbrobotics/ros_arduino_bridge.git

$ cd ~/catkin_workspace

$ catkin_make

这个被提供的Arduino库叫做ROSArduinoBridge&#x

  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值