Jordi and I are preparing the final production version of the ArduPilot board, which involves the usual debugging and last-minute feature adding. The problems we've found are largely in power and noise management--we've needed to isolate the servos from the processor parts, so high current draws don't introduce voltage dips. You'll notice a couple extra diodes and capacitors on the board to handle that.
As for features, here's what's new:
All four RC-in channels (plus the autopilot on/off channel) can now be read by the CPU. This allows the autopilot to read the initial throttle and rudder position when you switch to autonomous mode, so it can maintain speed and heading. The other two channels can be used for whatever you want, such as triggering a camera sequence or dropping an object. (Remember that the aileron and elevator channels are seperately controlled by the FMA Co-Pilot)
There are now status LEDs for the failsafe (on/off) and the GPS (satellite lock).
There is now a trim pot on the board so you can adjust the autopilot on/off position to suit your particular RC system.
Here's the schematic, in Eagle 5 format.
I'm not including the PCB file yet because we're working with our commercial manufacturing/retail partner on that, and I don't want to reveal those details until we're ready to release. But rest assured that we'll make both the schematic and PCB files available here when the final product is available.
For those who don't have Eagle, here are the schematics in png form (they're shown as two pages, but it's pretty easy to see which wires connect across the pages):
Jordi and I are planning to use LabView to create the open source ground station software for ArduPilot (National Instruments has kindly donated a professional edition licence to DIY Drones). We saw a lot of UAV teams, especially academic and research groups, using LabView at the AUVSI annual meeting in San Diego, and we're starting to see more interest in the open source side of it, including the OpenG community.
For those in the San Diego area who are interested in learning more about LabView for UAVs, you may be interested in this upcoming AUVSI local chapter meeting:
San Diego Chapter Meeting
May 21, 2008
11:30 am -1:00 pm
Southwestern Yacht Club, Point Loma, California
Program: National Instruments software and I/O tools for autonomous platforms and payloads. Brief overview of
National Instruments Case studies: Virginia Tech/TORC
2007 DARPA Urban Challenge Vehicle, Nexans Spider underwater dredging vehicle, Software and I/O tools overview, and Additional Application Examples
Presented by: Charlie Knapp, US Unmanned Systems BDM, National Instruments
Please visit our website for pre-registration.
Read more…3D Robotics
As Jordi continues testing and improving the ArduPilot boards, I've been integrating his cool binary-mode GPS parser and otherwise improving our pre-alpha code. So I think we're now a proper alpha, which is to say that although this hasn't been tested in the air yet, it does have most of the ingredients of a basic autopilot. The Arduino code is here.
Improvements include:
--Binary mode GPS parser with checksum error checking and high-speed (56k) throughput
--Hardware-driven servo control (using the Arduino Servo Timer library), which means less processor overhead, tighter response and no jitters.
--Now samples the rudder at autopilot initiation, so if the rudder is trimmed a bit one way or another that will be retained
--Autopilot board LEDs now show GPS status
We're going to do a few more alphas as we test the code on the latest versions of the hardware and against the simulator. Then, once we've tested it in the air, we'll move to beta. So consider this version just instructive and don't fly anything with it!
Read more…
Spring mounted mass accelerometers truly do suck. Thermal accelerometers were once the standard & they're coming back now that everyone knows what high frequency vibration does to spring mounted masses.It's China to the rescue again, as the thermal accelerometers from Memsic are being used in thousands of persistence of vision wands at the olympics. The wands can display any communist party approved message when waved by manual labor. There are no pictures of the wands except for the thousands of blue dots in stadium wide shots. It must be an election year.Read more…
I’m not going to be able to work on this project for awhile, so I thought I would post about it, partially so that I don’t forget the details myself : )For those of you who don’t know, I’m currently working on a UAV based on a Multiplex EasyStar and an Arduino Diecimila. My main goal currently is to simply get it to fly from waypoint to waypoint, but in the distant future my goal is to extent flight time as long as possible. I’ve been working on the project for the past couple months, and it’s my first foray into both RC and serious microprocessor programming. Currently, the navigation algorithm is extremely simple, and relies entirely on GPS – if it’s too low, go up, if it’s not on the right heading turn the rudder until it is. No accelerometers, no gyros. I know I’ll eventually have to add some sort of method for the plane to know its own orientation when I start doing serious flying, but for now I’m just trying to get all of the hardware collected and the basic software written.The navigation and GPS processing algorithms I wrote from scratch, using trigonometry and such. I believe that they’ll only work in the Western hemisphere, but I’m really not sure. I find the absolute heading to one point from another by calculating latitude and longitude components of the distance (over the curve of the Earth) from the one point to the other, then treating those distances as legs of a flat 2-d triangle. I can then find the angle from absolute North to the destination point. It’s probably almost too precise, but it’s the way that makes the most sense to me, and the processor seems to be able to handle it well. I’ve pretty happy with the results of car-based tests of the autopilot…the update rate of the entire system is about 3 Hz, which I think is fine for a slow, stable glider.The aircraft has never actually flown under autopilot control, but everything has been tested on the ground and seems to work. So, when I next get a chance to work on it, my first priority will be to clean up the rat’s nest of wires on the protoshield...then install something to keep it stable in the air and start testing. It’s probably going to be on hold until December, when the semester is finished, but I think I will have enough time then to get it working in the air.Pictures and code for those who are interested follow...cheers!
Haha it looks terrible...but prototypes never look clean. You can just barely see an Arduino Protoshield underneath...NavigationMain.zipRead more…3D Robotics
Our alpha ArduPilot code has an okay GPS parser, but like all of them based on ASCII NMEA sentences, it's slow and doesn't handle errors (corrupted data) very well. We've now done a lot better. Here's Jordi's new Arduino GPS parser, which will be in the next version of the ArduPilot code and has the following features:
--Reads the data in Sirf 3 binary mode, not ASCII NMEA sentences.
--Autoconfigures your GPS module to go into binary mode.
--Parses the GPS data and stores it in variables, including conversion to decimal degrees for gps data, and other stuff such as GPS status, lat, lon, MSL altitude, heading, speed over ground, and climb rate...
--Super fast decoding and transmission at 57600 bps...
--100% Checksum verification..
--Status LED, connected directly to the GPS fix status..
--More or less commented ;-)
You can download the code and run and test it now, or integrate it into your own projects.
Lots more cool improvements coming to the ArduPilot code, including better navigation routines and interrupt-driven RC channel reading. We've still got some work to do on the boards (the current one has got a problem with noise and current fluctuations when we're moving the servos, so we've got to add some diodes and capacitors), but we're getting there. Still on track for a September release, one way or another.
Read more…3D Robotics
My other blog, GeekDad, has a review of the new WowWee BladeStar, which is like a body-less helicopter. It's got a semi-autonomous mode, using IR sensors, that lets it avoid any obstacles, from walls, ceilings and furniture or anything you wave in front of it:
"If you desire, you can activate the autonomous flight function and literally navigate via waving your hands or a sheet of paper and triggering the BladeStar's IR sensors, causing it to move away. (I breathlessly referred to this phenomenon as 'gestural navigation' in my preview earlier this year.) It also packs a very impressive fly time, claimed at up to 15 minutes."
More here.
Read more…3D Robotics
From our Wired Science blog:
"Beginning tomorrow, a UC-San Diego professor will be sending unmanned aerial vehicles into the pollution clouds emanating from the city to measure the impacts of the government's industrial shutdowns and traffic bans on the region surrounding Beijing.
"We have a huge and unprecedented opportunity to observe a large reduction in everyday emissions from a region that's very industrially active," said atmospheric scientist V. Ram Ramanathan, who also works with the Scripps Oceanographic Institution.
While it does not appear that Beijing's plan has reduced particulate matter levels to World Health Organization recommended levels, the attempts still represent a large and unique science experiment. Chinese officials say they've reduced industrial activity by as much as 30 percent, although questions persist about the effectiveness of the shutdowns. Independent and government monitoring station data have been mixed since the program was instituted.
But for Ramanthan, the Olympic shutdowns still provide a "once-in-a-lifetime" look at how a large atmospheric region responds to a rapid drop in particulate matter emissions.
Ramanathan has been a leader in the use of UAVs and environmental sensors to measure black carbon, aka soot, levels. His previous work, presented at this year's AAAS conference, has attempted to provide evidence that black carbon is a major contributor to global warming.
"By determining the effects of soot reductions during the Olympics on atmospheric heating, we can gain much needed insights into the magnitude of future global warming," Ramanathan said.
His project, termed CAPMEX, is being conducted in cojunction with Seoul National University and is backed by the National Science Foundation. The UAVs will fly out of the South Korean island of Cheju. Located about 725 miles southeast of Beijing, Cheju lies in the projected path of pollution plumes called atmospheric brown clouds.
The UAVs come loaded with a package of new micro- and nano-sensors that will gather important data about the interactions between various pollutants, the sun's energy, and natural meteorological conditions, said Jay Fein, the NSF program director for climate dynamics."
Read more…3D Robotics
The results are up for the AUVSI Aerial Robotics Competition, held a few weeks ago at Ft Benning, GA. Once again no team finished all the challenges, so the judges divided the prize money based on incremental accomplishments. I've heard that there's is pretty broad consensus that this contest is too hard, so I'm hoping they'll modify it next year.
Read more…3D Robotics
Interesting post from Noah Shachtman over at our Danger Room blog. Excerpt:
"Flying drones from halfway-across the world used to be considered a cushy, if somewhat sterile, military job. But the wars in Iraq and Afghanistan have gone on for so long -- and become so dependent on the satellite-piloted planes -- that Air Force commanders have had to call in chaplains, psychologists, and psychiatrists "to help ease the mental strain on these remote-control warriors," the Associated Press reports.
Just a few years ago, pilots of unmanned aerial vehicles (UAVs) crowed that "most of the time, I get to fight the war, and go home and see the wife and kids at night." Since then, the demands for remotely-flown spy planes have grown exponentially. Pilots' hours grew longer and longer. And they started to compare themselves to "prisoner[s] with [l]ife sentence[s]."
...
In a fighter jet, "when you come in at 500-600 miles per hour, drop a 500-pound bomb and then fly away, you don't see what happens," said Colonel Albert K. Aimar, who is commander of the 163d Reconnaissance Wing here and has a bachelor's degree in psychology. But when a Predator fires a missile, "you watch it all the way to impact, and I mean it's very vivid, it's right there and personal. So it does stay in people's minds for a long time."
Read more…3D Robotics
The first flights have been conducted of an autonomous unmanned aerial vehicle (UAV) to monitor UK farmland.
Read more here.
Original post by Richard Harvey, reposted to fix format.
Read more…3D Robotics
You know those excellent video downlink transmitters from Range Video that we recommend? Turns out that some of them are a little too excellent, which is to say that they're illegal (more power and different frequenceis than those allowed by FCC regs without a licence). The owner has been cited. Articles here and here.
It appears the main problem is that the devices can operated on bands other than those authorized. From the first article:
"The Commission sent Reznik a Letter of Inquiry (LOI) regarding this and noting the following specific items he had for sale on the RangeVideo Web site: 900 MHz 100 mW audio/video transmitters; 900 MHz 500 mW audio/video transmitters; 1.3 GHz 300 mW audio/video transmitters; 2.4 GHz 200 mW audio/video transmitters; 2.4 GHz 500 mW audio/video transmitters; 2.4 GHz 1000 mW audio/video transmitters, and 2.4 GHz 1000 mW cased audio/video transmitters.
According to the FCC, the 900 MHz devices are capable of operation on 980 MHz, 1010 MHz and 1040 MHz; the 1.3 GHz device is capable of operating on 1240 MHz, 1320 MHz and 1360 MHz, and the 2.4 GHz devices are capable of operating on 2490 MHz. "Thus, these transmitter devices cannot comply with the FCC's technical standards and therefore cannot be certified or marketed," the Citation reads.
Reznik responded to the LOI, admitting that he first imported the devices in 2006 and that he continues to import the devices. The FCC noted that he admitted to selling more than 2600 of the transmitters since 2006. Reznik also admitted to not filing the proper forms with the US Customs Office or the Border Patrol.
The FCC also noted that Reznik stated that before he ships a transmitter device, he "switches" it to operate only in the Amateur Radio Service ('ARS') bands. While radio transmitting equipment that transmits solely on ARS frequencies is not subject to the equipment authorization requirement prior to manufacture or marketing, it appears that the seven transmitter devices marketed on your website are equipped with external toggle switches on the unit, which if engaged would allow operation of the device on the restricted frequencies."
[Cool picture of AP plane taken from RangeVideo website]Read more…3D Robotics
Mattay does it again: here's an alpha of his new desktop autopilot simulator. The software simulates an autopilot, and you connect it to FlightGear, which simulates the sensors. This allows you to try different autopilot algorithms and tweak settings on the ground (this is different from a "hardware in the loop" simulation, which uses real autopilot hardware). Requires Windows and the .Net framework. Mattay says that he'll be releasing the source code soon. Very impressive!
Read more…3D Robotics
Here's a few quick notes that will help you program your own Arduino-compatible boards for first-time use. This is just for people building their own boards. If you bought ArduPilot or BlimpDuino pre-made, all this has already been done for you, so ignore this.
Here are the necessary steps to load firmware onto the Atmega chip:
1) You'll need an ICSP AVR programmer and a FTDI cable. We recommend AVRSIP2 [shown] or USBTinyISP for the former and the Adafruit cable for the latter. Connect the cable to the ICSP port on your board [on ArduPilot it's the one marked "AT168"]. The red stripe on the cable should be on the same side of the connector as the square solder pad on the back of the board. (On our boards that means that the red strip is on the side closest to the processor)
2) Now you'll need to change (turn off) one of the default "fuse" settings in the Atmega, which divides the internal clock by 8 so it only runs at 1 Mhz. (Explanation of all that and more about fuses are in the excellent Sparkfun tutorial here). For that you'll need to download some special software. If you have the AVRSIP2 programmer, it came with AVR Studio, which is excellent. If you got the USBTinyISP, I recommend AVRdude, and instructions on how to get and install it are here.
3) To change the fuse with AVR Studio, connect the programmer and go to Tools/Program AVR/Connect. Choose AVRISP mkII. You may get an error (choose cancel). On the "Main" tab of the dialog, click the "Settings" button and pick 125khz, then click "Write". Then make sure "Device" is ATMega168 and "Read signature". At the bottom it should say that all's okay. If so, switch to "Fuses" tab and uncheck CKDIV8. Press "Program", then "Verify" to make sure it's working. Now you can go back to the "Main" tab and change the Settings to 2Mhz. You processor is working fine and ready to program.
To change that fuse with AVRDude call up the Windows command line CMD and enter the following command (this assumes you're using the USBTinyISP programmer; if you're using the AVRISP2, substitute "avrispv2" for "usbtiny"): avrdude -p m168 -c usbtiny -U lfuse:w:0xE2:m
4) Now you'll need to burn the bootloader. It's easiest to do this within AVR Studio. Still in the AVR Studio dialog box you used above, go to the Program tab. Where it says "Flash", input the correct bootloader file. For ArduPilot, that's the "ATmegaBOOT_168_diecimila.hex" file in your Arduino hardware\bootloaders\atmega168 folder. For BlimpDuino it's the "ATmegaBOOT_168_pro_8MHz.hex" in the same folder. Click "Program". All should go well and you'll see the OKs below.
If you don't have AVR Studio, you can do this within the Arduino IDE. We've found that it doesn't currently support the AVRISP2 programmer, but it does support the Adafruit one linked above. If you're using a crystal or resonator on your board (to run the processor at 16MhZ), select the Decimila board in the Arduino IDE [Note: this is the mode you should use for ArduPilot]. If you're not using any external frequency generator and are thus running on the Atmega's internal 8 Mhz clock, select "Arduino Pro or Arduino Mini (8mhz)" [Note: this is the mode you should use for BlimpDuino]. Connect the AVR programmer to the ICSP pins on the board and select "Burn Bootloader" with whichever AVR programmer you have. The IDE should freeze for about 15 seconds and then report that it's done that successfully. If it doesn't work despite a few attempts, you may have a wiring problem on the board. Each one of those ICSP pins connects straight to an ATmega pin as shown in the schematics, so it should be pretty easy to diagnose.
5) Now you should be able to upload Arduino sketches (ie, your program) from the IDE. Just remember to make sure you've selected the right board--Decimila if you're using an external frequency generator [ArduPilot] and Arduino Pro if you're not [BlimpDuino]. Both boards now support autoreset when programming, so all you should need to do is to press the "upload to I/O board" button in the Arduino IDE and wait a minute. [If for any reason autoreset isn't working you can manually push the reset button on the board every time you uploading code so the bootloader can "look" for the IDE.].
If this all seems a bit complicated, rest assured it's a lot easier to read and follow these instructions than it is to figure it out yourself over months, like Jordi and I did ;-) And remember, you only have to go through this once. After the Atmega is configured for Arduino, you can let the IDE take over all the hard work.
Read more…3D Robotics
Illustration from another great turorial from Mattay. Read the whole thing here. f you want more, the whole thread is chock full of great stuff on autopilot math and code basics.
Read more…3D Robotics
After two earlier failures, SpaceX is going for their third oribital attempt o the Falcon 1 today, with expect launch time at 5:55sometime after 7:00 PDT Aborted. Stay tuned. May retry around 8:20. Watch the countdown live here.
UPDATE: a minute and a half into the flight, the camera cut off and they reported an "anomoly". Doesn't look good. Tragic.
UPDATE2: A SpaceX spokesperson speaks: ""It was obviously a big disappointment not to reach orbit on this Flight 003 of the Falcon 1. On the plus side, the flight of our first stage with the new Merlin 1C regenerative engine that will be used in Falcon 9 was picture-perfect. Unfortunately, a problem occurred at stage separation causing the stages to be held together. This is under investigation."
Read more…