February 26th, 2005

Evergreen Films filmed me and the robot today for a show that will be on the Discovery Channel in May called "Science and Star Wars". The Expeditor's autonomous navigation definitely had some bugs to work out.

At one point the computer wouldn't turn on when it was supposed to. I assumed that the DC/DC power supply had unexplainably broken, but after a trip to the local computer store for a new power supply I discovered that the non-functioning part was much simpler -- the power button had stopped working.

February 24th, 2005

This morning I unbolted the steering motor from the robot, unbolted it, opened it up, rewired the brushes, bolted it back up, and bolted it back onto the robot. I didn't have wire that was thick enough so I replaced each of the motor's leads with three smaller wires in parallel. The motor now makes a different sound when it's running, but it also seems much stronger, I guess because three of my wires are actually a bit thicker than one of the old ones.

I also fixed the problem that was causing the robot to swerve back and forth down the street. It still swerves back and forth down the street, but for a different reason. Now it knows exactly where it is at all times but it's overcorrecting - a much easier problem to solve. I just have to have it steer down it's planned route a little farther.

While testing by pushing it in the street and having it steer, however, the steering motor got extremely hot and seemed to drain the battery a lot more quickly than usual. I don't know if this is the effect of my rewiring, or maybe this was the problem that caused the wires to melt together and break the motor in the first place. In any case, it isn't good. I bid on a new one on eBay from the same guy.

I realized that the GPS was only sending latitude and longitude with about 50ft precision. I fixed this by changing an NMEA setting on the GPS and changing the part of the software that reads the GPS info.

February 23rd, 2005

I took the robot to the field again. RC control worked just fine, but autonomous driving didn't. It still drove in circles and wandered back and forth as if the dead reckoning wasn't working at all.

Later, back at home, I took the robot out onto the street to do some tests. I added some new debugging features such as showing the path that the robot had driven on and it's GPS fixes. One strange thing I noticed was that all the GPS fixes were on a grid with the grid squares being about 50ft square, like some number in the program was limiting it to this low precision.

Then, smoke started billowing from the robot, and there was a screeching noise from the Roboteq controller and steering motor. After unplugging it, inspection showed that the wires of the steering motor had melted together, shorting out the motor. I have no clue what could have caused this.

February 22nd, 2005

Fixed a bug in the route planning software, and... fixed the GPS and steering problem!!! I don't think I mentioned the steering problem. The problem was that the debug screen on the computer would indicate that it was trying to turn, but the wheels would be pointed straight. The reason for this, it turns out, was that the Roboteq motor controller has a built in watchdog timer -- while in RS-232 mode, it must receive a signal from the computer at least once a second, or it will position the motor at zero (Steering straight). The debugging processes I had running used so much CPU time that the programdidn't send the Roboteq signals, and for the same reason it didn't receive the GPS signal. I sped up the debugging processes by about 50x.

After fixing this I loaded a course of the street I live on, took the robot out, turned everything on, and started pushing it down the street. The robot was able to turn to follow the road using just GPS information. That was tiring. Tomorrow I hope to bring it out to the farm and have it drive completely autonomously. Hmm... I wonder if today's test counts as autonomous. It was doing all decision making by itself... only I was pushing it.

One problem with the test was that as I pushed X it wove back and forth from one side of the street to the other. The reason for this was that although the GPS was transmitting latitude and longitude several times a second, it didn't get a new position fix so often. It would get a fix on the right side of the road, decide it had to turn left to get to the center, and continue turning left even after it had gone past the center of the road, because according to the GPS it was still on the right side of the road. It would then get a new GPS fix on the left side of the road and do the same thing.

My solution was to add in dead reckoning. Using the GPS's speed information and the steering information it now estimates it's position and heading from the last GPS fix.

February 21st, 2005

Mission failed. The Expeditor did not successfully navigate autonomously today. I'll just tell what happened chronologically.

I loaded the robot and all my supplies into our Mazda MPV at about 10:00AM. Soon afterwards my dad and I left for Robert's grandma's farm, where it turns out she had not been informed by Robert's family of myintended field testing. Hah, it's literally field testing. Anyway, she agreed to let me use a 40-acre field for the week.

The first test I decided to do was a simple remote control test. I plugged everything in, turned it on, and started the engine. I drove it around a little, while filming it, and then flipped the E-Stop switch on the remote control. It didn't turn off. I ran over to it and after about a minute the engine died for no apparent reason. I was very confused and had no clue what could have gone wrong, so after scratching my head for a while I decided to try again and see if it behaved in the same way. It didn't. This time the engine wouldn't turn off at all, and the robot wouldn't even stop moving. I finally got it to stop moving by turning the trim down on the throttle, and got the engine to turn off after catching up with the robot by putting the choke on.

After a while more I thought of what the problem was - when I had rewired the wiring harness I had gotten two of the three connectors that connect to the engine switched. At the time X had been in Tacoma, so I didn't know for sure which way to connect it. This meant that when the E-Stop was on (Off? It was sending the GO signal.) everything was connected like it should have been, with the spark plug connected to +, but when I sent the E-Stop signal it connected the engine's ground to the engine's positive power. This explains why it shut down the first time - it must have created a somewhat large current, not leaving enough to power the spark plug.

I had brought the tools to switch the connectors, so I did. I was about to do another test, when I noticed the gas tank had started leaking again. I loaded up the Expeditor into the car and we drove home. Once home my mom took me to find a replacement nozzel for the gas tank, and after a while of searching we finally found it for sale for $10. Back at home, I went to geodata.org and created a route for the field using an aerial photo. After getting some other supplies I thought I might need and charging up the battery (nope, there's still no alternator), we headed back to the field.

The first test I did was to test the new E-Stop wiring. It worked. Next I drove X around by remote control a bit and then turned it off using the E-Stop. My next test was to give the computer control of the steering, and keep control of throttle and E-Stop. The first problem I encountered was that my program didn't find the Roboteq Controller. It took me a long time to figure out that this was because the RoboRun software remained running after it was closed, and I had to go to the task manager and close it from there. Now finally it controlled the steering motor, but for some reason the GPS wasn't sending info to the computer except like once a minute. I still haven't fixed that problem. This is strange - I've never had GPS trouble before.

UPDATE: I tested the GPS on this computer and it worked fine. I tested it again on the robot and it still didn't work. The only difference is that when I was testing it on this computer I was using two AA batteries and on the bot it was powered by the 12V, so next I tested it on the bot with AA batteries. It still didn't work. Finally, I built in a new debug feature that shows all the information received by the GPS and updated the software on the computer. Now that I've done that of course, the GPS works fine on the robot - it doesn't have any excuse not to work any more.

February 20th, 2005

For some strange reason when I wired the Roboteq controller I had its 5V power supply connected to the RC receiver. I don't know what this would do - it would probably just create a small current because of the difference between the Roboteq's 5V power supply and the RC receiver's 5V power supply. Anyway, I cut the wire so now only the signal wire is connected.

I'm gonna have to do something today about the E-Stop. Even when the throttle servo is moved it loses the signal. I think I'm gonna have to give the E-Stop its own 5V power supply, separate from the RC receiver and all servos.

UPDATE: I hate wiring! I rewired the "receiver box" and the wiring harness. Now the E-Stop part of the receiver box is powered by a different 5V regulator than the RC receiver part of the receiver box, and it doesn't lose the signal at about 10ft like it was. I changed several other things too.

I fixed several bugs in the route-planning software, most of them having to do with what the robot does when it finds itself outside the route cooridore. I also discovered the cause of the random cursor movement and "port already open" error: when the computer is started up with the GPS turned on and transmitting data both of these problems occur. Strange.

Tomorrow will be the day of the first autonomous test. I'll probably just start with way-point following and then try some obstacle avoidance. I wonder what I can use for obstacles. Empty garbage cans maybe? I'll try to get some videos or pictures to post here.

February 19th, 2005

I started doing some tests for the first time with the computer on the robot. I didn't have it driving under its own power though; I was pushing it. I did a video test while pushing it down the street. The video it recorded from the webcam mounted on the front of the vehicle looks very nice. I also did some GPS data recording.

After 30-45 minutes the touch-screen monitor started randomly moving the cursor - the same behavior I had before the power supply and computer broke. This seems to show that the problem could have been trying to run the computer on a low battery - not voltage spikes from the Roboteq controller. I have the noise-filter installed on the computer anyway, and I think I'll leave it there -- can't be too cautious. Anyway, I shut down the computer and started recharging the battery. We need to get that alternator installed.

Other things I've done today are put heat-sinks on a couple five-volt regulators that have been needing them, and made a charger for the radio controller using a 9V adapter.

I've been desperately looking for some land to test the Expeditor on, and have finally found two possibilities. My dad's friend has a ranch about 30 miles away that I can use, and my friend Robert's grandma has a farm about five miles away that I can use. I'm planning on getting several autonomous hours in this week. If you happen to own a field in Olympia that I could use send an email :-)

UPDATE: I fixed several bugs in the software related to GPS positioning, and improved the debugging interface. Now when the robot is in drive mode with debugging enabled it shows a map of the course with a yellow arrow indicating the position of the robot and the direction it's moving.

February 18th, 2005

I went to RadioShack and got three heatsinks as well as some heat sink compound and the automotive electrical noise filter. I did a test to see how much the battery's voltage drops from the steering motor, and it only drops to about 11.5V while steering back and forth while X is stationary on a cement floor. However, this was enough to make the E-Stop lose the signal from about ten feet. I may need a separate small 12V battery to power the E-Stop. Or maybe... the E-Stop loses the signal because of radio interference generated by the steering motor... I don't know what I would do to fix that problem.

February 17th, 2005

Since I'm only actually using one of the two computers so far I took the good power supply and switched it in. The computer still would not start, so I re-installed the operating system, re-registered it, re-installed all the software and hardware drivers, and now everything works again, except the original power supply. I think the damage may have been caused by a voltage spike from the Roboteq controller somehow, since I have them connected to the same battery with nothing in between. I once saw at RadioShack a "battery filter" designed for car batteries to provide a very clean, regulated 12V, I guess for applications such as this for about $20. I think I'll buy one of those and connect the computer to its output before testing again.

February 16th, 2005

Very frustrating. Everything seems to have stopped working. Now the computer won't even turn on. I think this might be because of a defective power supply -- I tested the voltage and what should have been 12V was at 1.5V and the 5V was at 0.4V. Strange. One thing I did learn today was to always solder crimp-style connectors.

February 15th, 2005

I took the Expeditor outside with the intent of driving it around a little by remote control and recording some data from the robot's sensors. However, things did not go as planned. I put the computers, interface box, E-Stop, and Roboteq controller in the robot, mostly just sitting on each other with some padding in between. I also lengthened the pull-start rope on the engine to make it accessible.

The first thing I noticed when I was pushing it out of my garage while controlling the steering by remote control was that the Roboteq controller seemed to be in the wrong mode -- instead of in a "position" mode where the wheels are positioned according to the radio signal, it seemed to be in a "speed" mode, where it's turning speed is proportional to the signal being received by radio.

After this I noticed that the E-Stop would lose the signal about ten feet away. This was strange, since on previous tests the range was about 400ft. This could be due to the remote control's battery incident; I'll have to check out the battery and make sure it's okay.

Another strange problem was that when I turned the computer on, the touch screen was having very strange behaviour, such as moving the mouse to random places and right clicking when it should have been left clicking, or just not working at all. I don't know why this is. It also said when I tried to run the software that the serial port being used to communicate with the GPS was already open.

There are many such small problems that need to be worked out, such as the gas tank leaking and the new engine-mounting grommets being too small, but next week there's no school because of mid-winter break, so I'll be able to get in a lot more time on this project.

February 14th, 2005

I fixed the homemade E-Stop. The problem was that although it operated at 12V and below, X's battery was charged to about 13V, and at these voltages it didn't work. First I considered making changes to the circuit, but this being difficult to do, I came up with a new solution. I replaced one of the PNP transistors with a new transistor that has a very low HFE, thereby solving the problem.

I also installed the antenna (by use of a hot-glue gun). The robot is now ready to drive, all except brakes, which will have to be done without for now. Another problem is that I left the radio controller charging using my 12V battery charger for about an hour and a half, and it heated up so much the rubber case of the battery pack started melting. It's outside cooling right now. The battery pack being 2AH, and the charger charging it at 2A, I would have thought that this would be ok, but I guess I shouldn't be using a 12V charger on the 9.6V battery pack.

February 13th, 2005

Today I cut a key for the sprocket on the end-shaft of the gearbox as well as bolted the engine and gearbox back on the robot. I think I stripped two of the bolt-holes in the gearbox, even though I wasn't applying very much pressure. I may have just stripped the bolts, but I don't think so. Hopefully I'll be able to get the gearbox re-threaded instead of having to buy a new one for another couple hundred bucks.

Also, I noticed my homemade E-Stop doesn't work. Although it sends an E-Stop signal when it stops receiving the coded signal for about half a second, it doesn't send the E-Stop signal if it only receives the coded signal. It should keep the E-Stop signal off only if the coded signal is being pulsed. This is strange, because I know it to have been working before, and I checked all the soldering connections and they're all good.

February 12th, 2005

Picked up the Expeditor from Tacoma, and filled the gearbox with oil. I tested the new servo for shifting, but it doesn't work. I sent an email to see if I can trade it in for a new one, but they're out of stock.

February 11th, 2005

The countdown at the top of this website now shows the time left until the 2005 DARPA Grand Challenge instead of the IRRF Open Challenge, as the Open Challenge's sponsor went bankrupt and it is going to be moved to a different date, which is still unknown. Twenty pictures have been added to the weblog for the month of December, 2004.

February 6th, 2005

At Home Depot I bought 100ft of 20-gauge solid wire, some more shrink-tubing, and 24ft of 16-gauge threaded wire. I then wired a short cable from the OOPic ending in a 12-pin plug. I designed it so that the wiring harness has a 12-pin plug that plugs into the E-Stop/Radio Receiver box for radio use, and plugs into the OOPic cable for computer control. This way the e-stop/receiver can be unplugged, unbolted, and removed easily. I just remembered, however, that I want to utilize the E-Stop part of the receiver even while the robot is under computer control. This means that I'll need yet another connector that plugs into it. I should have planned out the wiring better. However, I would need another connector anyway in order to plug into the DARPA supplied E-Stop during the Grand Challenge. I guess I planned it well enough afterall.

The vehicle was not finished this weekend, or even worked on, but Chris is planning on finishing it during the week.

February 4th, 2005

I finished the second wiring harness. The two wiring harnesses have to plug into each other, but only to connect a three wire-cable, so I'm not sure if I want to combine them into one cable or not. I think I will leave them separate.

February 1st, 2005

First day of February. Our goal is to have the Expeditor completely autonomous by the end of the month. The vehicle will be completed by this weekend, and autonomous tests will begin soon afterwards.