rosserial_arduino的安装及使用

本文主要是使用rosserial_arduino包,可以通过msp430launchpad for arduino IDE直接使用ROS。此ide和audrino ide 的使用方法大同小异。rosserial提供了一个通信协议,它通过arduino的UART来工作。它允许arduino作为一个ROS的节点,可以直接发布和订阅ROS的消息,发布TF变换,以及获取ROS的系统时间。
我是在Ubuntu系统下编译好,拷贝到Windows的。

一.安装rosserial_arduino

1 修改环境变量

source /opt/ros/indigo/setup.bash
roscore

2 创建一个工作空间

mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src

3 下载编译

git clone https://github.com/ros-drivers/rosserial.git
cd ..
catkin_make (如果这样编译到最后出错,尝试`catkin_make -j2`就好咯)
catkin_make install
source ~/catkin_ws/install/setup.bash
cd ~/catkin_ws/install/share/rosserial_arduino
rosrun rosserial_arduino make_libraries.py .

即可生成ros_lib文件夹,通过u盘挂载拷到msp430launchpadlibraries文件夹下,重启软件,即可看到ros_lib已包含。(编译程序的时候发现一直报错,关于ros.h,但是在arduino ide下没有错误,所以还是用arduino uno吧)
然而实践证明ROS_lib是非常占用arduino资源的,如果要订阅Twist,同时发布TF,Odometry消息则至少需要3k的SRAM, Arduino UNO只能作为接收Twist消息,来控制底盘,如果用rosserial_arduino做到完整的Base Controller就只能上Arduino Mega2560了,这无疑会增加不少成本,所以笔者认为又更好的选择,那就是使用ros_arduino_bridge作为Base Controller,把逻辑的运算放在上位机上运行,Arduino单纯的作为硬件的控制器,所以我也只能乖乖用ros_arduino_bridge作为base controller。(明天继续!)

你可能感兴趣的:(ROS,arduino库)