设为首页收藏本站

[教程] 机器人操作系统 ROS使用Arduino

bobo 发表于 2015-4-1 11:32:15 | 显示全部楼层 [复制链接]
6 7286
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

发表于 2015-4-9 10:51:22 | 显示全部楼层
好高深 看不懂 嫩不能通俗的解释一下
回复 支持 反对

使用道具 举报

发表于 2015-12-6 23:28:01 | 显示全部楼层
这个是在什么系统下操作的?
回复 支持 反对

使用道具 举报

发表于 2015-12-15 14:41:54 | 显示全部楼层
Jackie_Hao 发表于 2015-12-6 23:28
这个是在什么系统下操作的?

Ubuntu系统
回复 支持 反对

使用道具 举报

发表于 2015-12-18 10:20:22 | 显示全部楼层
求图文教程
回复 支持 反对

使用道具 举报

发表于 2016-6-30 21:06:16 | 显示全部楼层
学习一下
回复 支持 反对

使用道具 举报

发表于 2016-7-6 10:01:00 | 显示全部楼层
请问这个ROS能不能在机器人漫步的时候能收到传感器的反馈从而微改变漫步?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册  

本版积分规则 允许回帖同步到新浪微博  

推荐阅读

精华导读




公司简介| 联系我们| 小黑屋| 加入我们| 微博| 优酷| 英文网站| DF创客社区 ( 沪ICP备09038501号-4  
友情链接| 硬创邦| 花生壳社区| 模友之吧| 电子发烧友社区| 创客星球| 云汉电子社区| 电子工程网| 与非网| Arduino中文社区| 南极熊3D打印网| OneNET|

上海智位机器人有限公司  沪ICP备09038501号-4   

Powered by Discuz! X3.1

Licensed Comsenz Inc.

返回顶部 返回列表