Quantcast
Channel: Sam的技术Blog
Viewing all articles
Browse latest Browse all 158

ROS底盘Base Controller研究 ros_arduino_bridge

$
0
0
作者: Sam (甄峰)  sam_code@hotmail.com

0.基础知识:
ros_arduino_bridge也是一个元包(以前叫栈)。它为arduino微处理器提供ROS Driver和Base Controller。这个Driver提供访问模拟和数字Sensors的能力。 PWM Servos,从Encoder获取数据,并产生odometry数据。换句话说,它为Arduino为底盘控制器的ROS模型提供了一个完整的Base Controller模型。这与rosserial是完全不同的。
这个Stack包含的Firmware缺省使用Pololu电机控制shield(https://www.pololu.com/product/2502)和Robogaia Encoder shield(https://www.robogaia.com/two-axis-encoder-counter-mega-shield-version-2.html)。 但可以被很容易的替换为其它电机控制板和Encoder控制。

ros_arduino_bridge的最大优势在于:
1. 完整的Base Controller框架:
2. 逻辑代码放在ROS 设备上,降低了Arduino压力。


1.实际使用
1.1: 下载和编译:
$cd ~/catkin_ws
$catkin_make

1.2:copy arduino库:
$roscd ros_arduino_firmware
$cd src/libraries
把ROSArduinoBridge copy到 Arduino IDE的libraries下。
在Linux下:
$cp ROSArduinoBridge -rf ~/sketchbook/libraries


1.3: Arduino IDE使用:
使用Arduino IDE打开 例子中的ROSArduinoBridge。


1.4:
ROS平台上:
$roslaunch ros_arduino_python arduino.launch

rostopic pub /cmd_vel geometry_msgs/Twist -r 1 -- '[2.0, 0.0, 0.0]' '[0.0, 0.0, 1.8]'
则设备应该在打转。










 

Viewing all articles
Browse latest Browse all 158

Trending Articles