All Posts (14048)

Sort by

Wii Motion Plus Decoded

Hi everyone, Ive been a member here for a while and though Ive gotten a lot out of following along with all the great projects here, I havent really had much to contribute back (aside from referring friends). Well now I do! I posted this over at the arduino forums but I figured it would have a lot of impact here too: I have successfully read the gyro data from the Wii Motion Plus peripheral. I posted code and some additional info on my shiny new blog: here and if someone can tell me how to post code on diydrones, I'll gladly post code here too.

wii-motionplus-2.jpg

wiimotionplus_tester6.pde
Read more…
I received my u-blox GPS receiver and connector from Sparkfun recently, and needed a PCB to hook it all together. I've put together a simple layout including a lithium backup battery and a 4-pin 0.1" header to connect it to my ArduPilot.I've attached the Eagle file for the layout. I case you don't have Eagle, you can get it free at www.cadsoft.de. I've also attached two PDFs, one with labels, the second with only the traces and pads, mirrored to use for toner transfer. This is such a tiny board that I didn't want to send it off to be made, so I used to toner transfer method to make a quick prototype. I didn't have the proper transfer film, and used inkjet photo paper, which didn't work great, but was good enough for a first prototype.The GPS connector is a bit tricky to solder on, but if you have some experience with surface mount soldering, it is not much different than a fine-pitch IC. You might want to order a couple of extra connectors in case they get damaged, they seem pretty delicate. I chose to not use to backup battery at this time, and connected a jumper wire from the positive pad for the battery to the 3.3V supply. The correct battery for the PCB is part P244-ND from Digikey. It was tabs attached to the battery to allow it to be soldered to the PCB.The GPS connector does not provide a good mechanical connection, so the breakout board must somehow be attached to the GPS receiver. I used double-sided tape for this.After connecting power to the board and hooking it up to the PC with a 3.3V FTDI adapter, I successfully connected to the receiver with the u-blox software, and got a GPS lock. Now on to getting it working with ArduPilot!Note: This is a single sided board - the GPS connector mounts on the top (copper) side, while the 0.1" connector and battery mount on the bottom. You must take care to ensure that the battery lead does not extend far enough to touch the receiver PCB (and possibly short something).UPDATE: I've temporarily removed the PCB files. The way I had the TX/RX pins on the board was swapped with respect to the ArduPilot, so I am fixing that, and will post new layout files soon.
Read more…
3D Robotics
If you're confused about why your ArduPilot 2.2 isn't putting your EM406 into binary mode when you've got the setup jumper/bind plug on (symptom: the yellow LED doesn't blink a few times on start, the GPS LED stays on and the blue ArduPilot LED won't stop blinking), it's probably because you didn't tell the software that you're using the EM406. In the original EasyStar.h file, this line was set to default to the uBlox module (2): //1-7 #define GPS_PROTOCOL 2 //0 = NMEA, 1=SIRF, 2=uBlox, Choose protocol, uBlox only for PRO's please. The manual says to change it for your GPS, but it's easy to miss. Given that the EM406 is the recommended GPS and we say uBlox is only for pros, this wasn't a good default. So I've changed it to default to EM406 (1), so the code on the Google Code repository now has the following line: //1-7 #define GPS_PROTOCOL 1 //0 = NMEA, 1=SIRF, 2=uBlox, Choose protocol, uBlox only for PRO's please. Hopefully, this will solve the problem for those of you who were confused, and avoid more confused people in the future.
Read more…

The emulator running some demo data, and showing the result.

The Bluetooth/GPRS application I've been working on is now functional enough that it might be of use to someone. Feedback and suggestions are appreciated. Currently, the application has been left as a dumb bent pipe, so the mcu has complete control over the data stream (though it must conform to the var1=xxx&var2=yyy......\n format for parsing to work, see code and documentation).Code here bb.zipDescription:BlueBot is a bridge between Bluetooth and HTTP. Bluetooth's Serial Port Profile (AKA RFCOMM) is a streaming protocol that acts like a serial port. Due to carrier gateway restrictions, streaming network sockets are often impossible, so HTTP is used. HTTP is not streaming, so BlueBot listens for \n's in the SPP data stream to separate packets. Each packet is then forwarded to a remote server, returning a response that is streamed back over Bluetooth.Use:The UI is rough, and the program surely has bugs. I'll be tidying it up - adding a live display of data, etc... The application was built for the lowest common denominator of phones, so it should work on almost any phone that has JSR-82 and some sort of data capabilites. Be sure to install the PHP script on an accessible IP or else handshaking won't work.The general use is:-Start application-Set up network--Handshake with the remote server-Set up Bluetooth--Search for devices--Connect to a device-Run (Both Bluetooth and Network have to be setup before this)-DisconnectInstallation:I can't really offer any advice on the installation onto the phone - I am very new at this. It has been tested on 2 Blackberry phones and on the Sun ME emulator. It is an unsigned application, so it has to at least ask for permission to use Bluetooth and the network, or it might not even be allowed to install on some phones.Contents:BlueBot.java - Handles program flow and UI elements.BluetoothConnection.java - Bluetooth utilitiesNetworkConnection.java - HTTP Utilities and the network send threadReceiveThread.java - Reads the Bluetooth input and condenses them into packets for SendThread.SendThread.java - Sends packets over HTTP and sends the responses back over Bluetooth.SPP.java - A MIDlet that simulates a Bluetooth device to communicate with. Just prints some test data at 1Hz right now.kmlupdate.php - A slightly updated PHP script that parses incoming data. It doesn't return anything yet except for the handshaking phase.
Read more…

SIG Kadet Senior BIY as ArduPilot airframe

I shall use this post to add some descriptions about my ArduPilot airframe, the SIG Kadet Senior BIY kit converted electric. I'll add tids and bits of this work in progress started last autumn once in a while, when timetable permits.

As a starter, I think it's interesting to say that this airframe now flies! I maidened it this last sunday and I must say, after three flights and excepting a little mishap on the third landing approach, I am more than happy with the result and glad to go on with developing to a full ArduPilot platform.But for now and before I expand this post, here a short video of the first maiden takeoff.

3689320797?profile=original

3689320817?profile=originalNext is a short footage of the second maiden takeoff illustrating that e-power is fine and plenty. I run a 560 RPV brushless outrunner, a 100A ESC, a 6 cell lipo battery with 9000 mAh capacity, all of Chinese manufacture (the lipo is a custom order, though). The propeller size a 11x7''.3689320692?profile=originalNext video is showing some aerial action. I am not a good pilot, so do not expect perfection here...By the way, I wish to thank my colleague and friend Claude for having handled the camera that maiden day.More is to come, so stay tuned!---------------I worked on preparing ArduPilot and other components like my pan & tilt video camera, my "Nunchuck Headtracker", and my OSD. As I have written in another post, I intended to have a spare ArduPilot board (old version) used only for Xbee reception from headtracker/photo shutter and, additionally for parsing data needed by he OSD. I struggled a lot with multiple instances of NewSoftSerial to handle the data flux. After some rethinking, I decided to simplify the setup and processing by this spare ArduPilot board. So I included an Arduino Pro Mini (3 computers in the plane because I am a too bad coder!!!!). The spare ArduPilot will act as Xbee reader, pan&tilter for the cam, and photo shutter for the 10Mpixel digicamera. the additional Arduino Pro Mini will just receive data from the autopilot (ArduPilot 328) and parse what is needed to the Inspire video OSD. So I need no soft serial in the chain of operation. Since I made the step adding the Arduino Mini, everything runs as expected.The photos will be taken down vertical from a bay inside the fuselage. The Kodak digicamera stays in place with small strong magnets (easy to take out and very precise lock in place) and is activated mechanically by a 5g servo (I did not hack this camera for electric shutter yet as I've done with a preceding 5Mpixel before). The shutter servo is linked to the OSD which has a shutter connector and can be programmed to do time lapsed shot. the cam is slow to store high res pictures (about 4-5 seconds each), so I programmed the OSD to take a shot every 10 second. The OSD will write the GS location and a autonumber to its memory with every shot, which is nice. It also has a shutter input connector for RC triggering. So I will connect this input to the spare ArduPilot (pan&tilt&photo) on its 3rd servo channel, so I'll be able to trigger pics with the Nunchuck handle in between time lapsed photo shots. I'll modify my code for this additional function tomorrow evening, because it came to my mind today that I can actually combine time lapsed and manual trig. Before I thought I had to chose between both solutions.So all this is not much about the Kadet Senior. On the airframe itself, I've mounted my video transmitter with antenna. It is in the middle of the fuselage, just behind the wing trailing edge bolts. Tonight I've also mounted the small microphone (with basic amplifier) I got from Hong Kong through Ebay for a pair of bucks or so. To isolate it a bit from the noise and air flux inside of the fuselage (needed in an E-converted plane to keep things cool), I decided to follow a suggestion from a colleague and mounted the microphone inside a ping-pong ball! I cut open a triangular hole in such a ball with my acto knife, kept the triangle, stuffed some make-up cotton (thanks to my wife) inside the ball (not too much, not too tight, though), inserted the microphone tip to the ball center and glued on the cut to shape triangle door with some plastic modeling glue (the one that smells like my childhood!). On two opposite sides of the ball I glued some folded piece cut out from another ball and could finally mount the microphone ball in the tail part of the fuselage behind the control servos, far from the motor and prop noise. I used to elastic bands attached to the folded slots to finally have the ball with no direct contact to hard and vibrating fuselage parts. Maybe I will hear the sky instead of just the engine!!! Or maybe not... we'll see.Promised, tomorrow I'll do some pics to illustrate all that for those who don't like or have time reading long posts.And i the future, when time permits, I'll try to give some more details about solutions adopted for the airframe (tray for the 1.3kg lipo battery, cooling hatch for the ESC, double switch to avoid sparks when powering up, video battery in the wing to counterbalance pan&tilt camera, electric wing connections through RS-232 connectors, etc.---------------For those interested in Xbee RSSI signal monitoring in Arduino/ArduPilot, I've described what I've just implemented in my setup in a separate post.---------------
Read more…
3D Robotics

Latest video of the V-BAT VTOL UAV

http://media.libsyn.com/media/sciencefriday/vbat-061809.flv&height=255&width=320&frontcolor=0xffffff&backcolor=0xeeeecc&lightcolor=0xFFFFFF&showdigits=false&autostart=false&showicons=false&usefullscreen=true&wmode=opaque&image=http://www.sciencefriday.com/video/videoicon/vbat.jpg&callback=http://www.sciencefriday.com/test/vidstats.php&id=10224" allowscriptaccess="never"> NPR's Science Friday on Steven Morris' lovely V-BAT VTOL UAV.
Read more…
Centripetal force compensation is a algorithm than compensate centripetal forces effect over accelerometers so AHRS could get a correct attitude measurement during large turns.we are using a simple record player to test centripetal compensation.Effect of centripetal force could be a problem if the plane stay in a turn for a large time, for example doing circles.jlcortexnmine.com
Read more…
3D Robotics

New 9DOF IMU--$400-$500. Looks good

The Vectornav VN-100 IMU (they call it an Attitude Heading Reference System, for some reason) is out and it looks like the best device on the market in this price range. Here's the description from the site. The VN-100 combines a 3-axis accelerometer, 3-axis gyro, 3-axis magnetometer, and a high performance processor onto a single surface mountable chip-sized module to create a high performance orientation sensor. Fully calibrated for bias, gain, and misalignment, the VN-100 accurately calculates orientation over the entire 360° range at 200 Hz. Filtered orientation data and inertial measurements are assessible via either a SPI or RS-232 serial interface. With its small size, high performance, and low cost, the VN-100 has numerous potential applications. A development kit is available for the VN-100 which comes with a sensor pre-installed and gives easy access to all of the sensor's features. Features and Benefits: Complete Sensor Package 3-axis accelerometer 3-axis gyro 3-axis magnetometer Multiple Output Types Heading , Pitch, Roll Quaternion / DCM Acceleration, Angular Rates, Magnetic High Precision Heading accuracy < 1.0 (static) Pitch/Roll accuracy < 0.5 (static) < 3 deg dynamic Fast Onboard Processor Extended Kalman Filter 200 Hz update rate Surface Mount Package Hand solderable 30 pads Ultra-Compact Size 22 x 24 x 3 mm 3 grams Fully Calibrated Scale Factor and Gain Axis misalignment < 0.05 deg Hard / Soft Iron Compensation Digital Interface Serial UART up to 921600 bps SPI Interface up to 18 MHz Low Cost $400 - 500 *Price depends on quantity
Read more…
3D Robotics

ArduPilot homepage housekeeping notice

Given that ArduPilot is now in a relatively mature commerical release, it's time to reset the comments on the home page. Rather than delete the 400+ comments (dating back more than nine months) on the old home page, I've just created a new home page with the same info, so we can start the comment thread anew. The old one is still here and all comments will show up in any searches on the site, but newcomer will not be confused by old conversations about bugs long gone.
Read more…

computer vision application for mobile platforms

I didn't expect that fast response on uploading a picture otherwise i would have included a little more information. As i didn't know if anyone read it if i commented on my own picture, i figured i should make it a blog post.The picture was ment to be a reference of a prior project. I am currently looking for videos or fast image sequences taken onboard a UAV. The goal of that is to evaluate the feasibility of some computer vision algorithms for use onboard a UAV. I wrote a post in the forum about it and would be super glad for any data provided by this community. In return i'll keep you posted about any progress. (in case there is none and it would be too embarrassing i might not ever mention it again though)

The board is a stereo vision system for mobile robots i designed two years ago. Due to the four layer board, rather good lenses, and custom made lens mounts it's worth around 500 Euros paid for by the Hamburg University of Technology (It was before i spent my year abroad in Berkeley. Unfortunately i'm back home again.) The distance choice was rather random, designed to fit on a euro board (100 x 160 mm) and for rather short distances as the mobile robot was intended for indoor use.Some specs:-It uses two identical VGA Kodak CMOS image sensors-A Spartan3 FPGA with 32 MB of SDRAM and 4 MB of SPI Flash drives the image sensor and is intended for some low level image processing (like undistortion etc)-A Blackfin BF532 (you were right) running at 400 MHz with 32 MB SDRAM and 4 MB SPI Flash then does the stereo processing of the image data-Computed data is transmitted over ethernet using some Microchip SPI LAN controller-board is four-layer as mentioned, lens mounts are custom made CS mounts, the lenses have a fixed 4 mm focal length-The power consumption is moderate. The FPGA and the LAN controller burn relatively much power but it's still a dimension you might provide with batteries.Here some results. I know they are not brilliant but it's just the first attempt with a rather simple algorithm. (I added them anyways as it wouldn't be complete without it) Brighter gray corresponds to closer Objects.

A note about that kind of stereo vision for use in UAVs: I might be wrong, but to me it seemed like a not so feasible approach due to the relatively high distance to objects on the ground. The base length needed to get reasonable spatial resolution even with high resolution sensors would probably be too large (even if the two cameras were mounted on the tip of each wing). I'm trying to dive deeper into structure from motion techniques with one camera hoping to get some results while keeping the overall system complexity about the level of an ambitious hobbyist project.Bye, Jørn
Read more…

GPS Setting to /binary

I have loaded 2.2 onto the Ardupilot and put the jumper on to set the gps to binary and home position.The blue led blinks fast but never gets a lock, it used to work before I/ tried to set it to binaryPaul
Read more…

Ground station and config utility

When I try to run the config utility it comes up with "the application failed to inialize properly(0xc0000135)"Also the ground station wont run as this comes up withThe VI is not executable. the full development version of LabView is required to fix errorsI have downloaded and installed the two items Chris mentioned in the manualAny ideas?Paul
Read more…
T3

PicPilot/Y UFO musings

Well I completely removed the stock Y-UFO electronics (except for speed controllers of course) and am now doing all the mixing and stabilization with the PicPilot. Here is a pic of the install.

It's been too windy to fly outdoors so I've been doing what testing I can inside. I have a little instability at the moment. The Y-UFO will begin to oscillate in sort of a circular motion reminiscent of a coin being dropped on a table. I'll try to put up a video soon. Part of the problem might be ground effect as I'm only about 6 inches off the ground, but I'm looking closely at all the sensor data to see if everything looks as it should. I thought I'd share one of the plots that demonstrate the filtering effect of the DCM. This plot compares the unfiltered Y acceleration data with the seventh element in the DCM Matrix. Both terms essentially represent the sin of the roll angle.

The plot represent me holding the Y-UFO lightly and rolling it approx. 20 degrees one way then 20 degrees the other. This plot shows one of the advantages of using gyros. If you attempted to filter the Accelerometer data to be as clean as the DCM data you would introduce considerable delay or lag to the signal. This lag would then limit how fast of a perturbation the stabilization loop would be able to remove. Since the DCM is integrating the rates instead of position (essentially what the accelerometers are giving you by virtue of the gravity vector) the noise is reduced by the magnitude of the sample freq. Before the rate has time to integrate to a significant position, it reverses polarity and begins to cancel itself out. Of course huge amounts of rate noise or extremely slow sample times would start to be an issue. For slow lumbering airframes the accelerometers by themselves would probably be fine, for faster airframes not so much so.During this test I start out with the three motors turned off. When I began to throttle up that's when most of the noise showed up in the accelerometers (and the gyros, but because of the above mentioned filtering effect the noise is not apparent in the DCM data.). All indications are the noise is simply vibration from the three motors, but I'm looking closely at the data to make sure it's not EMI/ power supply noise.One thing worth noting is this level of noise/vibration is not having an adverse effect on the ST LISY300AL gyro I'm using for the Z axis rate sensor ( the other two axis are covered by an IDG 500 which was not expected to have vibration issues). I do have the PicPilot isolated through three layers of foam tape. Maybe that's enough to mechanically filter out the higher frequencies that will give the LISY300AL problems.Let me know if your interested in seeing more plots such as this from time to time or if I'm just filling up the server with useless data. It takes a few minutes for me to format things for posting, but I don't mind if others find it useful, and there's always a chance that someone will have an observation that helps me get over the next hurdle or problem I'm struggling with as well.Brian
Read more…
I am download NE test code in micro controller of ardupilot & then calibrate the FMA copilot in setup mode.But when i am exit from set up mode & then again power on , rudder servo work fine but elevator servo not woking.I use only elevator & rudder servo.Button setting of FMA copilot(CPD4):Button 1: ONButton 2: OFFButton 3: ONButton 4: ON
Read more…
3D Robotics

DIY Drones updates

Here are few status updates: --With the launch of the 2.2 code, the manual and the expansion board kit, we now have what we consider a pretty stable and complete commercial product. Development on ArduPilot will be more incremental from here on, with minor code changes and feature additions and no planned hardware changes. That should allow everyone to get the current version working and adapt it for different aircraft platforms, which we now support with custom settings files. --We will re-release version 1.0 (the navigation-only autopilot) as a cut-down version of 2.2, using the latest code and GPS module support but without 2.2's stabilization code. It's designed for cars, boats and for those who want to use the FMA Co-Pilot for stabilization. The new version will be called 1.1 and should be out in a few weeks. --We will discontinue support of all other code versions. If you're using 2.0 and 2.1, they will still work, but we won't be improving them and we won't be able to support you if you're having trouble. For those with the green (168) board, 2.1 is the last version of the code that works. That's totally compatible with our ground station and setup utility, so you should still be in pretty good shape. But if you want to keep evolving with the project, I suggest you upgrade to the red (328) board. --We should have the thermopile sensor situation sorted out in a few weeks. We hope to be able to sell XY and Z sensors at a very competitive price then. Stay tuned. --Our development resources will now shift to the next generation of ArduPilot, which will be based on an IMU expansion board, and ArduPilot Mega, a "pro-level" autopilot built on the Arduino Mega architecture. We are targeting the IMU expansion board at less than $100 (including code), and ArduPilot Mega will be around $50. Combined with a good GPS module, we are hoping to be able to release a very capable 6 DOF IMU-based autopilot for less than $200 around the end of the year. As with everything else we do, they will be open source, so the actual manufacturing and sales of the autopilot will be by third parties. --We're working on loads of other products for the DIY Drones store, including an OSD, more sensors and perhaps some "all in one" kits, up to and including aircraft. --We'll also sell a premium version of the Blimpduino kit that comes with LiPo, charger and 2.4 Ghz RC equipment.
Read more…

That's right, Nintendo's Motion Plus addon is out, and inside is a 3 axis, 16 bit gryo (well, a 2 axis gyro and a 1 axis gyro). Which is way better than the 2 axis, 10 bit one I was expecting. Communicates via I2C and costs less than $20. This could be pretty revolutionary for hobby IMUs. Coupled with a Nunchuck, its a 6DOF all digital sensor for $40!Details on the innards and protocol here.For the moment, it seems that you need to switch between the Motion Plus and the Nunchuck via a somewhat complicated method. Can't just read them both from different addresses. Hopefully that will be resolved when people better understand what's going on inside it.There's also some mention of it being able to run at two different sensitives toggled by some i2c command. And possible temperature compensation (they did this in software, only using the gyros?)Eventually I'll write some arduino code for the Motion Plus, but there are probably lots of you out there who could do it better/faster, so by all means give it a go!PS: Anyone know about progress on adapting the DCM method to ardupilot/arduino?
Read more…