机器人操作系统 ROS使用Arduino

2015-04-014.3万
AI 快速预览详细 收起
本文介绍了如何在Arduino上安装和配置ROS。首先,安装Arduino IDE并配置串口权限。然后,通过下载ASCIITable测试连接。接着,安装ROS相关包,并使用./make_libraries.py脚本将rosserial_arduino库拷贝到Arduino的sketchbook/libraries/目录下。最后,运行example5_1和example5_2示例程序,验证ROS与Arduino的集成效果。
1、安装 Arduino IDE 开发环境
sudo apt-get install arduino

2、执行下面的命令让你的账户能打开串口
sudo adduser 你的登陆名 dialout

3、连接你的Arduino设备,进行测试
如果你的Sketch的Tool > Port 菜单不为灰色的话,选中他,然后你的Arduino可以正常使用了。

4、下载 ASCIITable 例子程序,打开串口终端有输出字符说明下载程序和通信都没有问题。

5、 安装ROS相关包
sudo apt-get install ros-indigo-rosserial-arduino
进入rosserial-arduino 目录
cd /opt/ros/indigo/share/rosserial_arduino
执行 一个Python脚本,将/rosserial_arduino 下面的 ros_lib 这个库拷贝到Arduino 的sketchbook/libraries/
./make_libraries.py ~/sketchbook/libraries/
sketchbook 的位置你可以查看arduino IDE 界面上的 文件  -  参数设置 -程序库位置

6、测试ros_lib  下面的任意一个例子看看是否可以下载成功。

7、第一个程序
从下列工程中找到example5_1.ino
https://github.com/AaronMR/Learn ... e5_1/example5_1.ino

编译并上传到你的Arduino

在你的终端分别运行下列命令:
roscore  

终端2 (注意ttyACM0的设备名可能根据你使用的Arduino不同而不同,可以用Sketch确认)
rosrun rosserial_python serial_node.py /dev/ttyACM0

终端3
rostopic echo /chatter  


然后你就会从终端3上得到以下Log的循环输出
    data: chapter4_tutorials  
    ---  
    data: chapter4_tutorials  
    ---  
    data: chapter4_tutorials  
    ---  
    data: chapter4_tutorials  
    ---

8、第二个程序
example5_1相当简单易懂我们就不再做说明,现在来看一下example5_2
https://github.com/AaronMR/Learn ... e5_2/example5_2.ino

终端1和终端2的命令不变

在程序里,我们可以看到只要接收到/toggle_led topic的消息,我们就会改变红色LED的明亮状态。

    void messageCb( const std_msgs::Empty& toggle_msg){  
      digitalWrite(13, HIGH-digitalRead(13));   // blink the led  
    }  
      
    ros::Subscriber<std_msgs::Empty> sub("toggle_led", &messageCb );  


所以在终端3中我们的命令是
rostopic pub toggle_led std_msgs/Empty -r 0.5
0.5Hz即每2秒发送一个空命令。随着终端3的命令,我们可以看到Arduino的LED周期性的闪烁了。

也可以发送一次 命令 让LED单独做一次反转
rostopic pub toggle_led std_msgs/Empty -1

创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(7)
陸
太深奥了,求入门教程
talos
talos
欢迎使用深圳市天乐思智能总线伺服及其学习套件, 其特点如下:1、自带ros开发包,无缝对接ROS。2、提供6自由度机械臂套件,AGV套件。3、完整兼容ROBOTIS的dynamixel protocol 2.0 协议的伺服,而且我们对该协议进行了扩充,我们的功能其实比ROBOTIS还要多。
公司网址 WWW.SZTALOS.COM
淘宝店铺:https://shop217839337.taobao.com
联系QQ:2858136840
伺服性能展示视频地址: http://v.youku.com/v_show/id_XMzM2ODcwODE3Mg==.html?spm=a2h3j.8428770.3416059.1
http://v.youku.com/v_show/id_XMzM2ODk1MDQ4NA==.html?spm=a2h3j.8428770.3416059.1
http://v.youku.com/v_show/id_XMzM2ODk2MzA3Mg==.html?spm=a2h3j.8428770.3416059.1
http://v.youku.com/v_show/id_XMzM2ODk2NTIyNA==.html?spm=a2h3j.8428770.3416059.1
alientg
alientg
请问这个ROS能不能在机器人漫步的时候能收到传感器的反馈从而微改变漫步?
凌风清羽
凌风清羽
学习一下
qq913622228180
qq913622228180
求图文教程
Jackie_Hao
Jackie_Hao
这个是在什么系统下操作的?
Arcanum
Arcanum回复Jackie_Hao
LINUX系统
BoBo
BoBo
作者
回复Jackie_Hao
Ubuntu系统
qq815076543322
qq815076543322
好高深 看不懂 嫩不能通俗的解释一下
- 没有更多了 -