作者: 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]'
则设备应该在打转。