一,简介
-
这个教程展示如何安装arduino IDE和使用rosserial
-
Arduino和Arduino IDE是进行硬件开发的非常好的辅助工具
-
rosserial_arduino包可让ROS和ArduinoIDE一起工作
-
rosserial提供的ROS通讯协议工作在Arduino的UART上,它让Arduino成为标准的ROS节-点,可以发布和订阅ROS消息,发布TF转换,获取ROS系统时间
-
通过arduino ide将编写好的程序上传到arduino,ROS通过串口运行该arduino结点
二,安装
1,Ubuntu下的Arduino IDE安装
安装Arduino
$ sudo apt-get install arduino
启动arduino并进行相关设置, 完成后增加sketchbook/libraries目录等
$ arduino
2,Ubuntu下rosserial arduino软件安装
sudo apt-get install ros-indigo-rosserial-arduino
sudo apt-get install ros-indigo-rosserial
rospack profile
3,安装ros_lib到Arduino IDE开发环境
-
上面的安装会得到ros_lib,它需要复制到Arduino的开发环境,以启用Arduino与ROS通讯。
-
linux系统下,生成ros_lib到Linux下的Arduino库目录sketchbook/libraries(一般在用户的根目录下)
-
cd Arduino/libraries/
-
rm -rf ros_lib #如之前有,可以先删除
-
rosrun rosserial_arduino make_libraries.py .
4,检查ros_lib是否安装成功
重启Arduino IDE,查看Sketch->includeLibrary->ros_lib 导入ROS库
三,使用
创建一个helloword的话题
/*
* rosserial Publisher Example
* Prints "hello world!"
*/
#include <ros.h>
#include <std_msgs/String.h>
ros::NodeHandle nh;
std_msgs::String str_msg;
ros::Publisher chatter("chatter", &str_msg);
char hello[13] = "hello world!";
void setup()
{
nh.initNode();
nh.advertise(chatter);
}
void loop()
{
str_msg.data = hello;
chatter.publish( &str_msg );
nh.spinOnce();
delay(1000);
}
使用arduino ide上传到arduino
运行roscore:
roscore
五,运行结点
开新终端运行结点(这里我的arduino串口为/dev/ttyUSB0):
rosrun rosserial_python serial_node.py /dev/ttyUSB0
再开新终端,查看该话题消息:
rostopic echo /chatter
创建成功