The Ontario government recently featured Nuvation on their website as an Ontario success story. Nuvation CEO Michael Worry met some folks in Silicon Valley from the Ministry of Economic Development and Growth, and they were surprised to hear that back home in Waterloo there was a company that was doing research with the University of Waterloo in autonomous vehicle technology, and putting that technology into a Peterbilt truck! While we have all heard about the success of Tesla and Google and more recently Uber, less known is that up North the University of Waterloo has been collaborating with Nuvation on questions Canadian drivers ask far more often than our California counterparts, such as:
How does an autonomous vehicle interpret its surroundings during a blizzard?
How does an autonomous vehicle stay between the lines of the road when those lines are covered in ice and snow?
If you think about it, just how many autonomous vehicle demonstrations have you see on YouTube in harsh winter conditions? There are some, but if you look closely it becomes clear very quickly that winter driving challenges have not been conquered by autonomous driving technologies as much as other interesting challenges like unpredictable pedestrians jumping in front of your car, which have been pretty much solved for the most part. Oh, our lawyers told us to put in this Darwin Award comment to avoid litigation: “in no way does Nuvation condone or promote humans jumping in front of moving cars, autonomous or otherwise. This is always very dangerous, even when the car is smarter than you are.”
And when the government of Ontario learned that Nuvation had autonomized a Peterbilt tractor to centimeter accuracy, they told us they wanted to tell people about it! Check it out!
In 2013, Nuvation designed and built a mechatronic version of the popular mobile game Angry Birds. Keeping with our company’s Canadian heritage, we dubbed the game Angry Moose. A 3D-printed, comically large slingshot is aimed using three linear actuators which set the azimuth, angle and stretch (“anger”). These actuators are controlled by Jaguar motor controllers which take a PWM control signal generated by an FPGA. The player uses an iPad with a custom Angry Moose app to wirelessly send control data to a WiFi router, which relays the control data to the FPGA over wired Ethernet.
Arrow Electronics SoCKIT
Since then, Nuvation has been continually updating the FPGA platform with new Altera FPGA parts, adding features and tweaking the game to make it more fun. In 2014 we upgraded the FPGA from a Cyclone III, running an embedded NIOS microcontroller, to a Cyclone V running the latest NIOS II soft-core embedded processor. In October of 2015, we incorporated the Arrow Electronics SoCKIT, which upgraded the FPGA to the Cyclone V SoC and utilized the hard, dual ARM-core processor, which allowed us to do the software development in a Linux environment.
“Altera SoCs integrate an ARM-based hard processor system (HPS) consisting of processor, peripherals, and memory interfaces with the FPGA fabric using a high-bandwidth interconnect backbone.” (text copied from Altera website).
The hardware side of the project involved using the QSys system integration software to instantiate the ARM-based Hard Processor System (HPS), attach the Ethernet controller, import our existing PWM controllers and assign hardware addresses. I then used the Quartus II IDE to build the Verilog top level module and create the pin assignments. Compiling the FPGA took minutes. From there, it was a quick effort to get the development kit to boot Linux using an SD card image provided by www.RocketBoards.org. As a testament to Altera’s ever-improving tool flow, I did all of this in one afternoon with no prior SoC experience. At this point, the hardware implementation was done. The rest of the project required developing the software driver to communicate with the memory mapped PWM modules.
Not being familiar with driver design in Linux, I fumbled around, looking for similar drivers and trying, unsuccessfully, to pattern match something that would work. The online documentation at Rocket Boards consisted of a few rough tutorials and some community-generated projects with sparse documentation. I felt disappointed that documentation for SoC design was largely left up to the community and wished more had been done to provide developers with example projects. One developer was able to put together a driver that worked, but in his words, wasn’t pretty. Nevertheless, at this point our Angry Moose demo was able to receive commands over Ethernet using a simple web server and parse the commands in order to direct the PWM modules and move the actuators.
We debuted the improved Angry Moose game at Altera’s ASDF (Altera SoC Developer’s Forum), where it was a smash hit.
Angry Moose is Nuvation’s Canadian version of Angry Birds, but we chose the real world instead of a video game as the best place to play – with a real catapult, and real animals (okay, real stuffed toy animals). Instead of tossing birds into blocks, we catapult beavers (what else eh?) through beer cans to knock down the forest critters who stole our Moose’s beer (which made him angry…). We 3D-printed the catapult, created an iPad GUI, and run the catapult’s motor controls with an Altera Cyclone V SoC FPGA.
This Fall Nuvation brought Angry Moose to the Altera SoC FPGA Developer Forum (ASDF) in Santa Clara, CA. Check out this video of Nuvation CEO Michael Worry explaining Angry Moose while some people play the game.
Nuvation is building an autonomous beer serving kegerator robot, because we like having great conversations at parties without the constant interruption of going to get a refill. When this after-hours engineering design project is complete, you will be able to wave “Keggy” over and pour yourself a beer from your choice from two on-board half-kegs.
Note Nuvation BMS prominently displayed on the front, just underneath the Microsoft Xbox Kinect One and LCD screen. We’ll have two 5G tanks of beer on board. 6kWh battery. 12HP of motors. The battery is over-sized for the application – 6kwhr is a quarter of a Nissan Leaf battery and will drive a car 70 miles with the A/C on.
Have you ever needed to power cycle your hardware remotely? Have you ever wanted to read several different voltage levels remotely? Do you want the ability to remotely control AC outlets? How about toggling events using GPIO remotely? Do you want to talk to a device via I2C remotely? By now you probably guessed that the “you” I am talking to is a fellow electronic engineer; challenges like these are the sorts of things that keep us awake nights! Tired of all those sleepless nights, and unable to find a truly versatile off-the-shelf solution, I created The “Autobox” in my home lab. It currently provides all of this functionality…with more to come!
“Autobox,” which I’m pleased to say now has a home at Nuvation’s hardware testing lab, is used to aid in software development, automated testing, and hardware bring up. It is remotely configured and operated using either a Linux shell or an HTML interface and has proven itself to be a powerful development tool.
Side of box, I/O: Fused A/C Power Input. Click to Enlarge
Autobox runs Linux on a Raspberry Pi single board computer and has two “Microchip MCP3424” ADCs installed, which provide a total of 8 channels of up to 18-bit resolution. This is especially convenient when data logging, checking on power-rails, etc. It also has 8 buffered GPIO’s which aid in controlling external events, and has two independently fused AC buses . Each AC bus powers four AC outlets which are independently controlled by “OMRON G8P-1A2T-F-DC12” relays. Read More
Driver-Assist IP Demonstrated at ITS Word Congress
Over the past several years autonomous vehicle technology has been undergoing significant advancements. With commercial applications becoming increasingly more viable, most automotive manufacturers have products on the horizon that target the autonomous vehicle space. Peterbilt Motors is no exception.
In 2014, Peterbilt partnered with Nuvation to produce an autonomous vehicle demonstration for the 2014 ITS World Congress in Detroit. The demonstration involved retrofitting a Peterbilt Model 579 tractor with an auto-pilot that would control the truck’s braking, steering, and acceleration in order to drive a waypoint-based route.
Peterbilt Model 979 tractor
With only two months remaining before the show Peterbilt asked Nuvation to integrate our autonomous vehicle IP into one of their trucks to meet their deadline. Nuvation has been working on autonomous vehicle technologies for several years, using Discofish as a real-world test platform, and we were confident we could automate a Peterbilt truck in 8 weeks – and we did! Read More
It look like the tech paparazzi got a snap of Discofish, Nuvation’s ever evolving autonomous vehicle experiment, at Burning Man 2014, and an honorable mention in Techcrunch. Well, to be fair, they called her a “horror from the depths of the ocean” instead of Discofish, but hey, there’s no such thing as bad publicity, right? But seriously Techcrunch folks, if you want to actually get to know her by name, do drop by and let us take you on a tour, she lives at the Nuvation Garage in Sunnyvale California. Be sure to come visit at night though, so we can light ‘er up for ya! This year we added LED-expressive iridescent tail fins to the humble camper van that has grown into a an extra long fully autonomous vehicle with LIDAR, a sound stage, flamethrower, and (ahem, cough cough) “dancing pole” on it’s “tongue.” Here she is all lit up at Burning Man in 2013.
And (drumroll….) we also made internet TV! It was Andy Warhol who said we all get 15 minutes of fame. I counted about a 3/4 of a second for Discofish at 2:35 (the timer runs backwards, so that’s at the beginning) of Katie Kouric’s video about Burning Man. Andy, you owe us 14 minutes, 59.25 seconds.
Have you played Angry Moose yet? If not, here’s a great view of the experience using a Lytro light-field camera.
The Lytro camera records the entire light field, instead of just a 2D image, which allows you to shift perspective in a photo after it’s taken. Click the image below to refocus, click and drag to change the perspective, and double click to zoom. Pretty cool!
As we mentioned in the last post, the new DiscoFridge design includes an Arduino single-board microcontroller. The x86 controller board we’re using is designed for building small form-factor PCs, which typically don’t have a GPIO interface. Because DiscoFridge will need to control valves, interpret pulse trains generated by the flow meters, control LEDs, interface to a dollar bill reader, etc., we need a way to talk to these hardware peripherals. We decided that an Arduino microcontroller such as the Uno or the Pro Mini would be a cheap and easy way to talk to hardware peripherals, and we happen to have one sitting around. (Actually about 5; these things are awesome!)
Until now we’ve been referring to this little kegerator project as, well, “The Kegerator Project.” This week, in a stroke of genius, Senior Design Engineer Ken Wells thought of a new name. While discussing plans for the LED lighting and the music playing jukebox feature, we realized the kegerator could take on a similar feel to DiscoFish, our autonomous-driving Burning Man art-car. Our kegerator was immediately renamed “DISCOFRIDGE”.