5iMX宗旨:分享遥控模型兴趣爱好

5iMX.com 我爱模型 玩家论坛 ——专业遥控模型和无人机玩家论坛(玩模型就上我爱模型,创始于2003年)
查看: 196037|回复: 544
打印 上一主题 下一主题

将AR.Drone四轴DIY进行到底!

[复制链接]
跳转到指定楼层
楼主
发表于 2010-9-24 23:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我的AR.Drone今天刚收到, DIY开玩啦!

AR.Drone四轴飞行器内置ARM9 CPU, Linux操作系统, 通过WiFi来控制.
开放的Linux内核使得在AR.Drone增加新设备成为可行. AR.Drone是一个很好的DIY平台.
这也正是我入手AR.Drone的主要原因. 要知道我既没iPhone也没Apple的其它东东(目前官方只支持iPhone系列做控制端), 买来怎玩? ---- 我的笔记本PC带WiFi, 那就拿它来控制AR.Drone.

中秋节假期正好有空, 于是我先行写了个简单的Java程序: 在Windows XP下的DOS窗口运行, 向UDP端口5556发送AT命令来控制AR.Drone.

今天收到AR.Drone后就测试了一下: 先发送了起飞AT命令, AR.Drone就立马起飞, 升至1米左右后便稳稳地悬停在那儿!
然后发送降落AT命令, AR.Drone便自动完成降落动作.
(我之前都做好了这样的思想准备: 万一降落命令不灵, 我就伸手把它拽下来!)
再试了些其它命令(pitch/roll/yaw/gaz)也都灵.

DIY目标:
1) Java版的跨平台地面控制软件(先在Windows XP下测试)
    a) 发送AT命令来控制AR.Drone
    b) 接受并显示两个摄像头的视频(可选其一或叠加)
    c) 用键盘控制
    d) 用游戏杆控制
2) 连接AR.Drone到WiFi AP, 通过Internet来遥控AR.Drone (能上网的飞行器!)
3) 在WiFi AP间漫游
4) 给AR.Drone配上气压高度计/激光高度计(对AR.Drone现有6米超声波高度计的补充)
4) 给AR.Drone配上GPS模块和磁罗盘, 沿预定路线自主飞行
5) 给AR.Drone配上USB 3G模块, 要飞多远就飞多远 ---- 只要电池够:)

2010.09.26: 增加键盘控制
(Java源程序见附件: ARDrone.java (16.52 KB, 下载次数: 1849) )

PgUp键:  起飞
PgDn键:  降落
空格键:    悬停

方向键:
             前进
                ^
                 |
左进 <---+---> 右进
                 |
                v
             后退

Shift + 方向键:
             上升
                ^
                 |
左旋 <---+---> 右旋
                 |
                v
             下降

按住数字键1~9 : 速度(舵量), 1最小, 9最大(满舵), 松开数字键则恢复缺省值(10%舵量)

2010.10.04: 在AR.Drone上用tcpdump抓包分析网络数据
有些视频命令发到AR.Drone后, PC端收不到回传的数据, 于是想看看AR.Drone端的控制命令 / 姿态数据 / 视频数据是怎么传送的.
Android也是ARM CPU, 它上面的工具程序也能在AR.Drone上用.
找了个Android上的tcpdump抓包工具: http://www.eecs.umich.edu/~timuralp/tcpdump-arm
通过FTP将其上传到AR.Drone的/data目录下.
telnet 192.168.1.1
# cd /data

# chmod 755 tcpdump-arm
# ./tcpdump-arm -i ath0 -s 0 -w ardrone.pcap
tcpdump-arm: WARNING: can't create rx ring on packet socket 8: 92-Protocol not available
tcpdump-arm: listening on ath0, link-type EN10MB (Ethernet), capture size 65535 bytes
^C435 packets captured
436 packets received by filter
0 packets dropped by kernel
用Ctrl-C结束抓包.
再通过FTP将ardrone.pcap抓包文件传到PC机上, 可用Wireshark分析.

2010.10.05: Parrot今天发布了AR.Drone的详细开发文档
下 载: https://projects.ardrone.org/attachments/download/207/ARDrone_Developer_Guide.pdf
包括 飞控AT命令, 飞控数据, 视频流等, 是DIY的福音!
2010.10.17: 增加GPS模块成功
详见第6页110楼
2011.01.01: USB Host成功, GPS可用VBUS +5V
详见第13页247/251楼
2011.01.02: AR.Drone成功地读出了U盘里的文件
详见第13页252楼
2011.01.14 零点: USB 3G 成功
详见第15页292楼
2011.02.17: USB刷机教程
http://bbs.5imx.com/bbs/viewthread.php?tid=459895
2011.03.06: AR.Drone 附加导航板DIY (气压高度计 + 电子罗盘 + GPS) --- 基于Arduino
http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=4594637&bbs_page_no=1&bbs_id=1025
2011.03.22: 在Google Code 上设立 ARDroneME 开源项目:
(Java (J2ME) WiFi手机上的AR.Drone控制软件, WM6/Symbian等系统)
http://code.google.com/p/ardroneme/
2011.03.29: ARDroneME1.2 (带触屏软游戏柄):
http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=4626493&bbs_page_no=1&bbs_id=1025
2011.05.29: AR.Drone电调通信协议:
http://bbs.5imx.com/bbs/viewthread.php?tid=424058
2011.07.02: 直接读取AR.Drone摄像头的原始图像
详见第21页415楼

[ 本帖最后由 mapgps 于 2011-7-2 22:35 编辑 ]

欢迎继续阅读楼主其他信息

沙发
 楼主| 发表于 2010-9-24 23:44 | 只看该作者
刚试通了AR.Drone连接我的WiFi  AP (带WEP加密), 这样上面的2)项成功了!
telnet 192.168.1.1
iwconfig ath0 mode managed key s:12345 essid MAPGPS; ifconfig ath0 192.168.0.100 netmask 255.255.255.0 up

通过网络访问AR.Drone IP地址: 192.168.0.100 即可.
3
发表于 2010-9-24 23:57 | 只看该作者
支持楼主,牛啊。很有入手的打算,同样是没有苹果 wifi设备。

[ 本帖最后由 昂藏 于 2010-9-25 00:04 编辑 ]
4
发表于 2010-9-25 00:45 | 只看该作者
命令和参数在哪里找到的?
5
发表于 2010-9-25 11:25 | 只看该作者
控制的API是公开的。
6
发表于 2010-9-25 17:00 | 只看该作者

支持 !

支持 !
7
 楼主| 发表于 2010-9-25 19:47 | 只看该作者
原帖由 xo 于 2010-9-25 00:45 发表
命令和参数在哪里找到的?

下 载ARDrone API的源程序:
https://projects.ardrone.org/projects/list_files/ardrone-api
AT命令在代码里找:
Examples\Android\ardrone\project\jni\at_cmds.c
AR.Drone上的Linux内核是开源的:
https://projects.ardrone.org/wiki/ardrone-api/Gpl
8
 楼主| 发表于 2010-9-25 21:26 | 只看该作者
限高2米:     java ARDrone 192.168.1.1 AT*CONFIG=1,\"control:altitude_max\",\"2000\"

起飞:        java ARDrone 192.168.1.1 AT*REF=101,290718208
降落:        java ARDrone 192.168.1.1 AT*REF=102,290717696
悬停:        java ARDrone 192.168.1.1 AT*PCMD=201,1,0,0,0,0

上升:        java ARDrone 192.168.1.1 AT*PCMD=301,1,0,0,1036831949,0
下降:        java ARDrone 192.168.1.1 AT*PCMD=302,1,0,0,-1110651699,0
前进:        java ARDrone 192.168.1.1 AT*PCMD=303,1,1036831949,0,0,0
后退:        java ARDrone 192.168.1.1 AT*PCMD=304,1,-1110651699,0,0,0
右旋:        java ARDrone 192.168.1.1 AT*PCMD=305,1,0,0,0,1036831949
左旋:        java ARDrone 192.168.1.1 AT*PCMD=306,1,0,0,0,-1110651699
右转:        java ARDrone 192.168.1.1 AT*PCMD=307,1,0,1036831949,0,0
左转:        java ARDrone 192.168.1.1 AT*PCMD=308,1,0,-1110651699,0,0

我正在写键盘控制的Java程序, 这样使用键盘来控制以上动作就方便多了.
9
 楼主| 发表于 2010-9-25 21:40 | 只看该作者
另外, 今天在办公室里成功地透过公司网络远程起飞/降落了一下放在家里的AR.Drone.
老头打电话过来说"你房间里的那个东西怎么自己飞起来了?"

视频显示的Java程序还没写好, 还看不见远程的飞行实况, 没敢做其它的飞行动作. 哈哈!
10
发表于 2010-9-25 22:06 | 只看该作者
另外, 今天在办公室里成功地透过公司网络远程起飞/降落了一下放在家里的AR.Drone.
老头打电话过来说"你房间里的那个东西怎么自己飞起来了?"


高人啊
11
发表于 2010-9-25 22:22 | 只看该作者
视频解码还要研究下
12
发表于 2010-9-25 22:35 | 只看该作者
原帖由 mapgps 于 2010-9-25 21:40 发表
另外, 今天在办公室里成功地透过公司网络远程起飞/降落了一下放在家里的AR.Drone.
老头打电话过来说"你房间里的那个东西怎么自己飞起来了?"

视频显示的Java程序还没写好, 还看不见远程的飞行实况, 没敢做其它的飞 ...



难道你上班出门前吧AR的电源一直插着?
13
 楼主| 发表于 2010-9-25 22:45 | 只看该作者
原帖由 xb1019 于 2010-9-25 22:35 发表
难道你上班出门前吧AR的电源一直插着?

为做试验, 出门前将电池线插上.
AR.Drone可以待机6小时.
14
发表于 2010-9-26 02:28 | 只看该作者
高手高手高高手
15
发表于 2010-9-26 02:29 | 只看该作者
凌晨顶贴。
16
发表于 2010-9-26 08:33 | 只看该作者
厉害呀
17
发表于 2010-9-26 09:22 | 只看该作者
牛人啊!:em26: :em26: :em26:
18
发表于 2010-9-26 09:45 | 只看该作者
牛人高人啊!:em26: :em26: :em26:
19
发表于 2010-9-26 09:55 | 只看该作者
LZ牛人~~~~~~~~~什么时候做好了~可否共享一下~~~~~~
我的AR.Drone有两节电池~
20
发表于 2010-9-26 10:26 | 只看该作者
这是 一定要顶的贴

什么时候 能在 MW的手机上控制 那就已经满足了我

继续支持  可以搞个团购 AR
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

关闭

【站内推荐】上一条 /1 下一条

快速回复 返回顶部 返回列表