Name: Michael Shimniok
Member since: 2007-12-23 16:33:37
Last Login: 2013-08-22 04:57:14
Author of Bot Thoughts blog, interested in robotics since '89. Since 2007, dove in full force, built Pokey the firefighter (failure = learning), and then Data Bus, 3rd place in 2012 AVC, my Rapsberry Pi tele-rover, a beam robot, and have tinkered with lots of other electronic thingies.
Recent blog entries by shimniok
Discovering Linux Mint 14 EOLLinux Mint 14 for good, leaving Windows (mostly) behind.
Despite some initial bumps (and whining for which I remain deeply embarrassed), I've been quite happy with it and it is an excellent platform for my hobby electronics and robotics as well as for general use.
In the process of reworking my backup strategy, my attempted installation of rdiff-backup with apt complained about unsigned packages. Then bombed out...
Install these packages without verification [y/N]? y
Err http://archive.ubuntu.com/ubuntu/ quantal/main libjs-underscore all 1.3.3-1ubuntu1
404 Not Found [IP: 18.104.22.168 80]
Err http://archive.ubuntu.com/ubuntu/ quantal/main libjs-sphinxdoc all 1.1.3+dfsg-4ubuntu3
404 Not Found [IP: 22.214.171.124 80]
Err http://archive.ubuntu.com/ubuntu/ quantal/main python-pylibacl amd64 0.5.1-1.1
404 Not Found [IP: 126.96.36.199 80]
Err http://archive.ubuntu.com/ubuntu/ quantal/main python-pyxattr amd64 0.5.1-1.1
404 Not Found [IP: 188.8.131.52 80]
Get:1 http://archive.ubuntu.com/ubuntu/ quantal/universe rdiff-backup amd64 1.2.8-7 [176 kB]
Fetched 176 kB in 10s (16.4 kB/s)
Failed to fetch http://archive.ubuntu.com/ubuntu/pool/main/u/underscore/libjs-underscore_1.3.3-1ubuntu1_all.deb 404 Not Found [IP: 184.108.40.206 80]
Failed to fetch http://archive.ubuntu.com/ubuntu/pool/main/s/sphinx/libjs-sphinxdoc_1.1.3+dfsg-4ubuntu3_all.deb 404 Not Found [IP: 220.127.116.11 80]
Failed to fetch http://archive.ubuntu.com/ubuntu/pool/main/p/python-pylibacl/python-pylibacl_0.5.1-1.1_amd64.deb 404 Not Found [IP: 18.104.22.168 80]
Failed to fetch http://archive.ubuntu.com/ubuntu/pool/main/p/python-pyxattr/python-pyxattr_0.5.1-1.1_amd64.deb 404 Not Found [IP: 22.214.171.124 80]
E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?
Turns out that Mint 14's underlying base, Ubuntu 12.10 aka Quantal Quetzal, is at EOL as of May 2014. So I have to upgrade.
Because fresh installation is the only supported option, I'd rather not have to upgrade too often. But there is good news.
First, unlike Mint 15 and 16, Mint 17 is based on Trusty Tahr, 14.10, which is a Long Term Support release which gives me until 2019.
Second, Linux Mint offers a backup utility that lets you back up a list of your installed packages, my biggest concern about doing a fresh install.
I've already stuck /home onto a separate partition so it'll survive a fresh install. It's all backed up nightly to a local drive with Backintime.
Next, I need to back up some software that I manually installed into /opt and /usr/local. In the future I'll put that stuff on /opt and move it to a separate partition, also.
Welcome, Hero Jr
After the AVC, my focus has shifted to four-wheeling my Jeep on Colorado mountain trails, making repairs, getting the fuel injection system tuned, and getting through emissions tests. I'm working on an automotive-ready 5V power supply that I'll be using with some upcoming projects including a Vehicle Speed Sensor Buffer.
I haven't forgotten about robotics, don't worry. In fact, a new robot has come to live at Bot Thoughts laboratories: this slightly dusty, cute, diminutive blue Hero Jr. very generously donated by a local robotics hobbyist, Michael Schievelbein. Thanks, Michael!
|They were computer beige and red from the factory.|
|That's a Motorola 6808 CPU below. Power board above.|
|Remote control receiver board.|
The head doesn't turn. But, it could. It wouldn't be hard if the massive, antiquated power and CPU boards were replaced and relocated.
|Hero Jr has a front steer/drive wheel. This is it.|
What do you think? Mod or restore?
Stop that Robot Jeep
|Photo by Alicia Gibb, CC-BY-SA|
The microcontroller deactivates it during a run but if hitting the e-stop, or shutting off the ignition, or arriving at the last waypoint re-activates the actuator and stops the Jeep. During the run I could still press the brake manually. Here's how we built it.
Pneumatic SystemThe actuator uses a large pneumatic cylinder. Convenient, because the Jeep already had an on board air compressor with regulator and all the trimmings to run the ARB front locker and air up tires.
After the A/C went out, I converted the compressor for off-road duty, mounting it vertically, and installing a crude manifold. The manifold contains a pressure switch with relief valve, a gauge, regulator, and oil separator. The system also has a reserve tank. The pressure switch turns the compressor on and off to maintain air pressure in the tank and the relief valve bleeds the air pressure off the compressor after it turns off.
|The Jeep's On-board Air system|
|Pressure gauge and, lower left, compressor switch.|
The valve, with no power applied, diverts air pressure to the piston, depressing the brake pedal. The MCU controls the solenoid valve through a Pololu relay board to divert air from the piston.
A spring pulls the piston and actuator arm away from the brake pedal.
We also installed an air flow control in the system so that the vehicle didn't slam on the brake too fast. It stops quickly but without giving us (much) whiplash.
How Do We Move The Truck?So you might wonder: if the brake actuator is engaged by default, how do I move the vehicle around? Inside the cabin there are two manual valves that let me isolate and bleed pressure off of the actuator, respectively. By using a spring to pull the arm back, the system doesn't interfere with manual brake application when there's no air pressure applied.
Our pre-flight checklist ensures that we have the compressor on, pressure in the system, and pressure applied to the actuator before we arm the vehicle for an autonomous run. The post-flight checklist includes steps to bleed pressure from the actuator piston so we can drive back to the pits.
Actuator MechanismThe Actuator frame is made from aluminum channel used and discarded by FIRST teams years ago, just like other parts in the pneumatic system. The frame bolts to the Jeep seat bracket and can be installed or removed in about five minutes.
We cut a slot in the forward frame cross-member as a guide for the pedal arm. After much tuning and tweaking we installed zip ties as bushings to improve operation.
Originally we designed a bracket that would clamp to the brake pedal. The design interfered with manual operation as well as suffering from some geometry challenges.
Our final design essentially implements a mechanical foot, a large flat surface that presses on the bottom part of the brake pedal and very effectively translates horizontal force to the brake pedal.
|Bottom view of the "foot" and slide mechanism|
ConclusionOverall, it worked beautifully. The actuator applies an enormous amount of pressure on the brake pedal even with system pressure set to only 60psi.
When we had issues during testing early on Friday, the e-stop button deployed the brake quickly and effectively. The brake actuator held the vehicle in Drive, and released for the start of the run, no problem. It stopped the vehicle at the end of every run like clockwork.
AVC: What About Data Bus?
Though Data Bus made it to the 2014 Sparkfun AVC, it had to sit out again this year. Time ran out to fix the Bus so I focused on the Jeep.
|Data Bus makes a cameo (arrow)|
Fortunately, Data Bus and Troubled Child use most of the same hardware and software so I know from running TC that my pure pursuit implementation works.
Anyway, here is Sparkfun's 2014 AVC recap video and an interview with me about the SHARC FSV at 8:03 followed by video of our third run and a special song about the Jeep at the end.
AVC: SHARC FSV, "Troubled Child"
|Troubled Child, 1st Place in Doping and Crowd Favorite|
Update: The SHARC FSV team Jeep, "Troubled Child," won Doping Class! And we were given the Crowd Favorite award! Wow! Yeehaw! Everyone on the team is super happy! Read on for details and video.
Congrats to all the other teams. I mean all of them. It's no small feat just to have something you can show up with. Anything beyond that is icing.
Major thanks to Sparkfun for putting on an amazing event, better than ever. Thanks to the guys who serenaded us with a hilarious song about the robot Jeep. And thanks for all the help from everyone and special thanks to Atmel for letting us troubleshoot inside the trailer once we overheated ourselves sitting in the Jeep. So, let's talk about that Jeep, safety first.
|Third turn, Photo by Alicia Gibb, CC-BY-SA|
SafetyThe SHARC Full Size Vehicle team knew from the beginning safety had to be the highest priority. The SHARC FSV has a number of safety features.
- A human driver is always in control of throttle, ignition, gear shift, and brake and watches for any issues.
- The vehicle runs the course at very slow speeds
- A Failsafe brake actuator is engaged before and after run or if the emergency stop button is pressed.
- Only steering is autonomously controlled during the run. When the steering servo is disabled, the driver has full steering control.
- A human team member monitors system status, position and heading estimates, and more, watching for any problems.
- External human spotter with voice radio link to the Jeep.
- An Emergency stop button is in easy reach of driver and passenger. It disables the steering servo and restores steering control to the driver and applies the brake.
- The vehicle employs visual and auditory warning signals when operating.
- The main controller hardware and software is AVC-proven in Data Bus in 2012 when it precisely navigated the course for a 3rd place finish.
- We use a high precision, industrial-grade GPS with 60cm accuracy.
- Our team is comprised of experienced roboticists / technologists / successful AVC veterans.
- We use pre-flight and post-flight checklists
- Testing showed very consistent results.
Video ProofHere's footage of the 3rd and final run from inside the cockpit synchronized with a GoPro on the bumper. I'm in the driver's seat and George is in the passenger seat. Scott is taking the footage from the back seat. We all have our seat belts on.
You'll notice at the start we go through a pre-flight checklist to ensure that we are consistent and safe, that all the safety features are enabled, and that the robot will actually go when we press the go button. :)
Here's some footage Ted took of our first run.
|"Troubled Child" in Ouray, 2002.|
The Jeep features a 360 cid V8, 4" lift, 33" tires, locking differentials, and a number of other modifications tailored for exploring the backcountry. (More about Troubled Child)
The truck is also easy to work on (and under) and a simple, old-school design that lent itself well to temporary robotic conversion. All the modifications are easily reversible.
|MCU, Power, Toggle, etc.|
The code base is the same as well, with just a few customization specific to the Jeep. Everything else was user-configurable. For example, steering and path following worked as soon as I entered in track width, wheel base, and a few other parameters.
You can find the code used in the Jeep right here on github.
GPSWe're using a Hemisphere Crescent A100 high precision, industrial grade GPS with 60cm accuracy thanks to WAAS correction. This is the sort of GPS used in agriculture, shipping, and more. The GPS runs at 10Hz and is powered by a dedicated NiMH battery.
|Steering and brake|
Position feedback from a potentiometer is taken directly from the Jeep's steering box shaft to maximize accuracy. An Arduino Pro Mini reads a servo signal to determine the target position, reads the steering potentiometer, and then drives the steering motor until it reaches the target point. We've set up a configurable control loop to ensure stability and position hold. Motor speed slows as the wheel gets closer to its target. Here's the code on github.
BrakeWe use a fail-safe brake actuator that can also be controlled by the MCU when the robot is armed to begin its run, or after the run completes. When power to the robotic systems by the emergency switch or main switch, the brake actuator will depress the brake.
|Onboard Air Compressor|
Auditory and Visual WarningsWe use an amber flasher and back up beeper to indicate the robot computer is powered and ready to arm. A loud horn, controlled by the microcontroller, announces when the brake system is about to be deactivated.
TeamThe SHARC Full Size Vehicle Team team consists of experienced technologists and robotics hobbyists including three successful, veteran AVC competitors.
Richard Howlett is the VP of Engineering for the Nilar battery company and a leading expert in Bi-Polar NiMH technology and hold patents within his respective fields. With over 14 year of experience in the advanced vehicle engineering industry including alternative fuels, electric, hybrid electric, and fuel cell vehicle research, Richard chairs the Battery Testing Standards Committee under the Vehicle Battery Steering Committee for SAE International. He also spent 7 years with Hewlett Packard designing state of the art HP and Intel Micro Processors and support chip sets, that variants can be found in today's high performance computers. Richard received his BSEE and MSEE from Texas Tech University with a focus on controls and system modeling. He enjoys electronics and robotics hobbies, as you may have guessed.
Ted Meyers, one of our AVC veterans, studied computer science at Washington State University and worked as an engineer for Northrop Grumman since graduation. The past three years he has entered his own autonomous vehicle, Daisy Rover, in the Sparkfun AVC. Daisy Rover can brag that it has successfully completed the AVC course!
Mike Peel is a robotics hobbyist who has worked in the computer, electronics, and avionics industries for 38 years and is a veteran of the USAF. Projects supported include USAF B52 Offensive Avionics suite, NASA Space Shuttle Flight Computer, NASA Shuttle Training Aircraft simulation avionics suite. Mike is currently working for Lockheed Martin as a Staff Electrical Engineer developing and operating the NASA Orion Multi-Purpose Crew Vehicle avionics test laboratory. His other hobbies include fishing and hiking.
Michael Shimniok is the owner of "Troubled Child" and has turned almost every bolt on the vehicle while refitting it for four-wheeling. His Sparkfun AVC robot, Data Bus, placed 3rd in 2012 thanks in no small part to participation in Udacity CS373: Programming a Robotic Car. A former FIRST mentor, Michael is also author and creator of the Bot Thoughts blog. He enjoys mechanical, electronic and software disciplines and is a bit of a jack of all trades with too many hobbies. He has been a professional IT geek since 1993 and is currently employed by Lockheed Martin. He earned a B.S. in Computer Engineering from the University of Arizona and an M.S. in Systems Engineering from The George Washington University.
Others have certified shimniok as follows:
[ Certification disabled because you're not logged in. ]