Sunday, February 27, 2011

text for google-code project page

I was trying to think up some descriptive text for the project page on Google Code. I had to think up rules for a game that we could play with the drone that incorporates the stuff that we've been doing in class. Also I was thinking about the fact the we only have one drone to work with. This is what I came up with. Look it over and maybe make changes if you like. I haven't put it on the site yet.

'ardrone-smash' is a game for the AR Drone. In the game, a simple course is set out. The course might have an obstacle or a certain goal. Then the player programs the drone to follow a path, and then sets the drone off to follow the path autonomously, and then other people rate the flight for how well or poorly the drone handles things like the obstacles and goals set out at the beginning.

Saturday, February 26, 2011

Where I Am At:

Thus far I have been simply doing a lot of reading into what specs people have discovered about the ar drone and how to mod it.
From what I've read, I've learned that its very possible to add your own hardware and implement it's usage. This is a bit tricky however because Parrot does not appear to favor people tampering with their nifty little toy, and thus there aren't really any data sheets of the hardware to help us out. Nevertheless there are people who have done this, and the link that I previously had posted (yesterday morning) is actually super extra helpful. There is also a forum (on a website i also posted on this blog) that has a section dedicated to modding the drone.

It appears that to get this ball rolling we need to edit one little setting if we are to try flashing the rom via usb (which would be ideal because we can then see the progress from a pc; it should also be noted that we'll have to create our own usb wire, i wonder about a driver for it too?). The drone has a driver that is automatically set to only allow flashing rom from on the drone. After changing the setting, permission will be granted to do it from the usb connection (from a flash drive or straight from the pc are both possible). I'm not totally sure how we do this yet, i think we need to edit the .plf file. It might be possible to just change it from a pc but that doesn't really make sense since we won't have permission.
This brings us to our next step, editing and making our own version of a .plf file. From what i understand, the .plf file has something to do with installing the kernel on the drone. Firmware upgrades from Parrot are also in this file format, and the E/S and I blog talks about making your own kernel as a .plf file. This means that somewhere in the creation of our own (that sounds like way too big a task) or the editing of one of Parrot's firmware upgrade, is the spot we must edit to take advantage of any hardware we might add to the drone.

As for talking about adding hardware, i think the knowledge i have accumulated is still too vague to write about. As previously mentioned, this is a bit of a challenge without data sheets of the hardware. What i can say now is that the project i would like to work on is adding proximity sensors (at this stage i think ultrasound sensors are a good option but ill also need to look into that more, its not a definite decision) to the sides of the drone and edit the kernel so that if the drone gets too close to anything it will react one way or another (which is totally up to us) so that it evades any collisions. This is all up in the air though and we can work on any other projects, so if you guys prefer the gps or have any other ideas feel free to share

Finally...i can go eat =)
Enjoy your day people

serial usb connector for drone

I thought the component from the link below would help us make a serial usb cable for the drone.

http://robosavvy.com/store/product_info.php/products_id/986?osCsid=f188e6f97228c348bebf81772ef60043

I thought that the following diagram would be useful.

https://projects.ardrone.org/attachments/167/ARDrone-USB-Cable.png

I even ordered some of these molex connectors. I think I may need to buy a crimping tool or something to actually use the connectors. I'll also need to go to Radio Shack for wire and a cheap volt meter.

http://search.digikey.com/scripts/DkSearch/dksus.dll?lang=en&site=US&WT.z_homepage_link=hp_go_button&KeyWords=WM18032-ND&x=0&y=0

Look this over and maybe we can come up with a plan for doing this.

Friday, February 25, 2011

Rooting HTC Incredible to control AR Drone 2

To root the Incredible is like the easiest thing ever. All you have to do is plug it into a Linux machine and run the file you can find at this link.
http://unrevoked.com/recovery/

It wipes out the precautionary areas that they put into make it so you cant get root and then it install's all the stuff you need for root. Run the program as root, then when its done and all booted up install rom manager to change the roms, You also need to install BusyBox. It didn't work for me through the market so Install it from titanium backup for root.

From there you can do what you want. Now to actually mess with it with programs.

working urbi script with gamepad

I have a working 'testgamepad.u' script. It controls the AR Drone reasonably well. I also downloaded the Gostai Labs software trial version. It allows for display of video at the same time as using a script, so I can see the video from the camera and move the drone at the same time. I'm going to start working on a urbi script that will record the values from the drone as it's flying, and then play them back again. It should mimic your instructions on the gamepad. At the same time I want the gamepad to still work during that playback so that unseen obstacles can be avoided somehow by having the gamepad override the playback mechanism. The new script is called 'ardrone_record.u'. I may need to write another C++ module for urbi so that the script will work. I will also want to incorporate Gostai Labs, now that I have a version of it.

not compiling urbi 2.6 for arm processor

In a previous post I said I was going to try to compile urbi 2.6 for the arm processor. After several attempts I've decided not to. I've tried several cross compilers and versions of urbi from 2.4 to 2.6 (I was only interested in versions that allowed for Java urbi modules.) Throughout this I've run into a single make error in all the tests I tried. I have posted on the urbi forum, but have received no replies. I cannot think of anything else to try. If someone does reply before the class is finished I will attempt to build it again. Otherwise it's not worth it. Below is a link to my forum post.

http://forum.gostai.com/viewtopic.php?f=26&t=2886

Rooting HTC Incredible to control AR Drone

http://unrevoked.com/rootwiki/doku.php/public/unrevoked3

http://unrevoked.com/recovery/

Useful Link

This person has been working on modding the ar drone and there is a lot of useful information on it at this link:
http://embedded-software.blogspot.com/

Pitch, lean to left.

public void staticPitch() throws Exception{
//pitch 0.1
send_at_cmd("AT*ANIM=401," + (seq++) + ",1000");
updateDrone();
send_at_cmd("AT*ANIM=401," + (seq++) + ",1000");
updateDrone();
send_at_cmd("AT*ANIM=401," + (seq++) + ",1000");
updateDrone();
send_at_cmd("AT*ANIM=401," + (seq++) + ",1000");
updateDrone();
send_at_cmd("AT*ANIM=401," + (seq++) + ",1000");
updateDrone();
send_at_cmd("AT*ANIM=401," + (seq++) + ",1000");
updateDrone();
send_at_cmd("AT*ANIM=401," + (seq++) + ",1000");
updateDrone();
send_at_cmd("AT*ANIM=401," + (seq++) + ",1000");
waiting(4);
}

Tuesday, February 22, 2011

compiling urbi for an arm processor

I think it might be good to have a urbi sdk version like version 2.6 which can handle java urbi objects (I think.) So I'm looking into compiling the urbi 2.6 sdk for an arm processor. I'm not sure how it will even work, but I think it's worth the time.

Friday, February 18, 2011

One of the many useful third party sites.

well i found this forum today, seems to have its own section dedicated to moding the drone and you can see other peoples ideas and projects (i think the coolest is adding fireworks to it, although i don't know if the drone itself lights it up) but yes, it appears quite a few people have attached a gps to it, one person even went as far as also adding a compass.
On a side note though, i saw someone talking about adding hardware so the drone can detect its surroundings and not crash into anything, so i was just thinking another cool project rather than a gps would be to get it to act like a radar and perhaps send back a stream of what its picking up

and of course, the website; the forum is a part of (it has other useful stuff too of course):
http://www.ardrone-flyers.com/

linux urbi joystick module

I've been pretty avid about getting a joystick program to work with urbi. I found out though that there is already one of these programs on the urbi site. For the time being though I'm going to keep working on my version. If it's necessary I'll switch to the urbi model at another time. This is the link.

http://www.urbiforge.org/index.php/Modules/Joystick-linux

Another ARDrone java class for reference.

https://projects.ardrone.org/attachments/319/ARDrone.java

Java reset command for the ARDrone.java file

public void reset() throws Exception{
send_at_cmd("AT*REF=" + (seq++) + ",290717952");
waiting(4);

}

The java reset command might need an adjustment.

Tuesday, February 15, 2011

AR-Drone with java

https://projects.ardrone.org/boards/1/topics/show/1819

A good site for hacking the AR-Drone

http://dronehacks.com/page/2/

AR-Drone initial thoughts

So I am writing this to say what we have done. We have gotten the drone to work with an android phone, and got it connected to a laptop. We were able to get the bot to run the script that makes it track a red ball and it works flawlessly. I would say for a start that it has been a total success. We have used the URBI SDK to get the bot to run a script to take off turn and land.

We are now trying to get the scripts running all the time. Then we will start to program the bot to do what we want.

Initially we want to program the bot to follow some sort of path and then we may use a phone to connect to the bot and move it with GPS. This is more of a thought at this point and we hope to do it but we have to see how everything else goes.

Here is a link to the code project. There isn't much to speak of on there yest, just what we need to use, like he libraries.

http://code.google.com/p/ardrone-smash/