All Posts (14047)

Sort by
The problemI think all engineers should play an active part in the programming of any robots they do. I suddenly realize the value of actually and actively sitting down and seeing what your robot can and can't do with the equipment you planned to put on it. A good example might a problem i had with waypoint navigation and the fact that "you have a bearing to head to and an inaccurate compass that updates about once a second" This is not good if your waypoints are close together. If they were far away, you could make it. This racked my brain for a few good hours. After trying different coding, and seeing what was acceptable, the best, cheapest answer for me right now became pretty clear. I've decided to put that IMU on the plane.The solutionThat IMU is going to be put into some pretty wide usage. I'm sure that having a compass would be easier, but an IMU...if i have a compass heading, i figure that I can calculate the angle and wait for the compass to refresh to tell me i'm on the right track. Sure there might be a greater degree of error, but the fact that i can do this with my altitude as well makes it a forgivable loss i guess. I say that now...Since this is a 5 axis IMU, i will lose Pitch. At first, i thought about losing Roll, as I didn't see myself doing much rolling when i have the rudder, and even if i did to make for a sharp turn, i have the copilot to right me. Then i realized that was pretty foolish. I have an altimeter and i can plot a rate of climb/descent using that, and therefor my pitch. This means that i will have a *FUN* time programming in the math to accurately get my bearing precise. I think if i put my X and Y axes to use, and know my Roll, Pitch and Yaw rates, i should get a vector from the two components. and that will help with the coarse tuning. when i get close enough, i will level off and fine tune the turn with pure rudder (Yaw). Does this sound feasible?Don't worry about the difficulty of the math, i just need to know that it will work lol.As far as programming goes, i will have a second snapshot up soon with a bunch of fixes for what i messed up on in the first snapshot, and a more complete Autonomous Flight Activity, sans how it gets the waypoints and the IMU service, which i now have to make lol. grreeattt...
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

New desktop autopilot simulation software

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…

Programming

Bah...annoyance. Trevor Taylor has been my rope to sanity, i swear! There's nothing like needing just an Int and having to deal with a "list of Ints". which is the right one? you just never know...Anyways, i'm going to post up what i have done so far. let you guys play with it, incorporate it, comment on it, add it. I think we're decently protected under the creative common license. There are a few things i would LOVE to just make activities, and they REFUSE to compile a such (no idea why). This .MVPL is using the April CTP, ProMRDS, the Lab, and a few other services that i scrounged up. If you don't already have these, get them. I have moved over to the July CTP, so pretty soon you guys will need to upgrade:). Its a mess of activities, and there is more on my other computer.UAV side code.rarEnjoy.***edit*** July CTP saved files won't open with oder CTPs. That is why you have to upgrade:)
Read more…
3D Robotics

Watch SpaceX countdown live NOW

After two earlier failures, SpaceX is going for their third oribital attempt o the Falcon 1 today, with expect launch time at 5:55 sometime 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…
3D Robotics

Final (?) BlimpDuino board

I think we're pretty much there on a production-quality BlimpDuino board. It's a beaut, isn't it?
  • 17 grams, with ultrasonic and IR sensors.
  • Controls two motors and one vectoring servo.
  • Built-in RC compatibility (can read two RC channels--throttle and steering)
  • Designed for a 7.4v LiPo battery; has an automatic power cut-off at low voltage to protect the battery.
  • Should cost less than $50, with all SMD parts already soldered. Total blimp kit, with envelope, motors and props, vectoring servo and all necessary gears and shafts, should be under $100. Available by the end of the year. Stay tuned.
Here's what it looks like with the ultrasonic sensor removed. You can now see the SMD ATMega168 chip.

Once we properly test the board, we'll post all the Eagle files and code so you can make it yourself if you don't want to wait for our production version.
Read more…

The CHAOS of AI

Hey, who out there is coding AI?My basic assumption is that AI programming today is, at best, a chess program. What I mean is that everything is based off of pre-existing data and a decision tree that handles each situation. In a chess program that means that there is most likely a database of some sort that chooses a move based upon its likely hood of leading to a check mate. Maybe the chess program is capable of assessing which move it should make based upon the chess rating of the player it is up against, but that still is developed by previous experience (data logging) with that user or preprogrammed difficulty levels and the result is nothing more than a secondary decision tree that helps narrow down the decision the chess program makes.The essence of AI is a decision based upon known data.Pretend that we have a project with the mission of flying from Seattle to Mount Rushmore. Even if I take my basic assumption about AI and apply it to what is taking place inside a UAV, decisions are based on the constant flow of data from the sensors and GPS. If the UAV’s AI is designed to find lift then all the AI is doing is recognizing that condition, which is preprogrammed, and executing a sub routine that takes advantage of that situation and modifying its flight plan accordingly, as long as it ends up at Mount Rushmore. From the perspective of the computer, even the sensor input is pre-existing as a kind of analog database that it compares to conditions that it can utilize. What the AI should do in a particular situation is predefined based on recognizing the conditions in the environment. If the AI encounters an unknown it will have to resort to a program that is designed to handle what it has not experienced before, which is going to require data logging and Boolean logic “learning” to still achieve the goal of getting to Mount Rushmore.Suppose the condition the AI has never encountered before is a hurricane. It may be that the AI collected more data, data that it had no idea existed before, but to do that, the AI had to be pointed in the direction of collecting the data in the first place. Whatever response the AI then makes with this new data is going to come from a program that tells it to collect a certain kind of data about itself as it strives to achieve the goal of getting to Mount Rushmore. But the essence of AI is still a decision tree; it is just that the decision tree is being filtered through the predefined expectation of what gets it to Mount Rushmore.Basically:If this is getting me to Mount Rushmore ThenKeep doing it = trueEnd IfWe still have a decision tree that works on predefined data. The only difference is that we have a program that tells the AI how to build the decision tree based on the positive choices that achieve the goal.The decision tree being built would really be based on a template and that is why AI is essentially a decision based upon known data, even data that it has not seen before, because even the unknown is going to be made to conform to something that is known.Here is a philosophy of where I would like to take AI in the future.I think the future of AI will be made using chaos theory and fractals. For instance, snowflakes are practically infinite in their appearance but they are still snowflakes. AI intelligence based on a pure decision tree may be able to handle this fact, but the process of recognizing each individual snowflake will take more time than it’s worth to figure out. Wind moves in predicable patterns and the predictability is not much different than the fact that a snowflake is still a snowflake even though each, individually, is radically different.Of course, this notion of using chaos theory is nothing new. In a world that is increasingly using biometrics, the idea of using the math that matches the fractal for something like facial recognition is becoming increasingly more common. This recognition then would allow a robot, perhaps, to go into a subroutine that governs its protocol around a human being.In the world of UAVs, and for that matter robotics in general, the ability to use fractals could create the ability to forecast conditions before they happen. For instance, instead of having a situation where the decision tree is being created on the linear input of the sensors, the AI would anticipate its own unknowns.A good example of what I mean would be eddies of the wind. In order to survive a hurricane the AI is able to anticipate where they are and plan a flight path that tries to avoid the most powerful swirls. In a one knot breeze, the AI can choose to ignore them as unimportant and stop forecasting these unknowable events. Somewhere in-between these two wind factors the AI might choose to start forecasting new data for itself.Another way this might be useful is recognizing a geographical condition, such a mountain, and projecting how the wind may act in that situation. A factor it might consider then is the abandonment of a current lift scenario in favor of taking advantage of the lift being provided near that mountain (or hill for that matter).There is no escaping a decision tree. They are a necessary function, but they can become more of the conscious part of the AI while the abstract of fractals can become more of a subconscious that is able to bring the abstract into focus.In fact, in this subconscious, the AI can run simulations of what events might take place if it chooses a certain path and have a preplanned behavior for venturing off into the unknown.
Read more…
3D Robotics

Move to start a civilian UAV association

[From the CropCam googlegroup:] From: Greg Lewis - ODIS [email redacted] Date: Thu, Jul 31, 2008 at 12:04 AM Subject: International Civilian UAV Users Group? To: Cropcam Hello All, We are just finishing up the latest CropCam training session and there has been some very good dialogue. One of the things that we have been discussing is trying to gauge interest in forming an International civilian UAV group. In talking we think this would be a great opportunity to work as a collective group to start looking at and developing a certification program for civilian UAV "pilots". Regulations will be coming, being proactive and self regulating may help pushing things in the right direction when individual countries are developing their regulations. It would also be a way to verify that UAV operators who have this certification meet at least a minimum standard of competencies and follow standard operating procedures, etc. As well, having a conference with this group would allow users with the same objective of using UAV's for civilian purposes to interact. We could share ideas, develop standard operating procedures, etc. I know there are UAV groups but I don't know of any that are civilian specific, if there are any that might already be serving this purpose could you please let me know. Would other users be interested in participating in a group like this? I truly think that organizing ourselves and being proactive in setting standards and sharing ideas, would help safely move the use of civilian UAV's forward. Thank you, -Greg- [Thanks to Jeff Johnson for the pointer]
Read more…
3D Robotics
I get this question all the time from newcomers, so I'll answer it here as we build a proper FAQ: Q: What's the difference between a RC plane and a UAV? And why doesn't the AMA allow UAVs on its fields? A: The generally-agreed distinction is that UAVs have the capacity for autonomous flight and navigation. A RC plane becomes a UAV with the addition of an autopilot. The AMA doesn't allow UAVs because its insurance doesn't cover them. I actually agree with the policy, since our UAVs are by nature experimental and sometimes out of control. We're pretty careful to test away from people.
Read more…
3D Robotics
If you want to communicate with another member but not necessarily in the forums or their public pages, you can send a private message. The feature is marked by a little envelope, but initially you will only see it next to the names of site administrators (me and a few other people). If you want to send a PM to someone else, you have to "friend them" first, which is to say you extend a friend invitation to them and they accept. You should then see an envelope icon next to their name at all times, and you can PM them at will. Ning imposed that restriction last year to cut down on PM spam. It's kind of a pain, but you can probably see why it makes sense.
Read more…
3D Robotics
Dean Goedde has added a cool feature to the forthcoming AttoPilot: relative waypoints. He explains: "I have innovated a new method for using waypoint paths: a method to signify a waypoint list as being a "template". In this method, the waypoint list becomes a list of relative coordinates, relative to the 0th WP in the list as an "anchor" that is translated to the actual coordinates of where you happen to boot up the system and get first GPS lock. This way, you have a template type WP file on the SD card of up to 100 WPs, perhaps specifying a 1x1 mile grid with 200 meters between the tracks. You also have an extensive set of triggers defined in this WP template, as to snap a photo every 200 meters along the straight tracks. You boot up in the bush somewhere, fly the path, pack up and move 2 miles away and repeat, ad infinitum. An entire day of Geo mapping with no laptop at the field, and TONS of detailed LOG data for exact location and position of the plane during each photo. The math for converting the relative coordinates takes full care of the actual latitude and how to compress/decompress the longitudes from real-->relative-->real coordinates... path is precisely the same either on the equator or at 85 degrees North." We've been thinking about a similar approach for a supercheap UAV for kids that would just fly selectable patterns around its launch position: figure 8s, squares, circles, etc. No programming required, and potentially no FAA issues since the waypoints are not programmable. Our unofficial motto: "Turning the military-industrial complex into a toy" ;-) Interestingly, Dean has also created a "synthetic" NMEA GPS sentence for telemetry data, which is just what Jordi did with his GSP parser. Jordi's was called the "$JORDI", Dean's is called "$ATTO".
Read more…
3D Robotics

Ryszard Arandzikowski, a superdedicated hobbyist in Poland, has spent the last three years creating this suite of UAV technologies. Autopilot and ground station software, two-camera pan-tilt system, a really nice looking custom aircraft, and more. Amazing accomplishment for a single person. I've pinged him to see what his plans are for distribution (sell? open source?) but in the meantime does anyone know anything about the project?
Read more…
3D Robotics

For those who love the Multiplex EasyStar but want more lifting capacity and space (or just need ailerons) good news: its big brother, the Easy Glider Pro, is now available. This upgraded plane apparently fixes some of the problems with the earlier Easy Glider's wing attachments, and is now designed for a brushless motor. Mutiplex also makes a power pack for it, with motor, ESC and prop. I have to admit that my heart is still with the EasyStar, with its above-wing pusher prop leaving unobstructed space for cameras and other equipment in the nose, but if you must have something bigger or need ailerons, the Easy Glider Pro now seems like a good choice for the glider form factor.

BTW, if you want a more traditional high-wing trainer as a UAV platform, while still made out of the virtually unbreakable Mutiplex elastopore foam, you might be interested in its new Mentor (shown below). It's got a 65" wing, and seems perfect for UAV purposes; indeed Jordi and I saw a few used for just that at the AUVSI show.

Read more…