Thursday, April 18, 2019

Rush Hour: Beat the House with Car Counting?

Background

I work downtown and hate driving in rush hour traffic. Normally I take the train so I can read or watch movies. But sometimes I just have to drive. Back roads are not an option, and no matter which direction I go there will be gridlock during some part of the commute. It the behavior of other drivers that really drives me crazy. And it's the impatient drivers that often cause the phantom slowdowns (no reference, go do your own googling to verify).

My analytical brain watches traffic on the freeway as one lane speeds up and another slows down, and people drift back and forth trying to game the system and get ahead. My gameplan is to just stay patient and ride it out in the same lane unless there is someone obviously going slower than everyone else. To pass the time I mentally tag various cars to gauge the progress of different lanes and different driving behaviors. My intuition tells me that there is usually little difference between lanes. Traffic incidents are hard to predict and gauge, and there are some areas where changing lanes can result in minor improvements. The left-most lanes tend to run a little faster, but not much, and not always.

During these times I wish my brainpower and visibility could extend beyond mild intuition. What if I had the power to track every car in traffic with near 100% fidelity. And then, what if my brain could run an analysis on the cars and identify shifting traffic patterns. Maybe then I could make informed decisions about when to switch lanes and when to ride it out.

Maybe my brain can't do it, but I bet I could teach a computer to do exactly that.

The Idea

Setup a computing system in my car that can monitor all the other cars in traffic. It would track their speed and location. During rush hour, the system would run an algorithm to identify traffic flow patterns and advise lane changes and speed corrections to improve my rate of travel through the madness.

The most conceptually simple way to tackle this is would be to mount a video camera on the car and send the video feed to the computer. The computer would then analyze the images to identify specific cars and track their positions. For a simplistic example check out this video from the VR Lab at Kyungpook National University in Korea. One drawback from this method is that visibility is limited. You'd need to mount the camera up high to increased it's field of view.

Progress

Just a fun idea for now. And by the time I ever get around to working on it, self-driving cars will be the standard and it won't matter anymore!

Sunday, April 14, 2019

Job Shadow Time Lapse

Background

On my hour commute to work I have lots of time to think about stuff. My frequent topics revolve around work and career since I still don't feel like I've found my vocational calling in life. One recurring theme in my career search is the mismatch between our dreams and reality.

For example, my first post-college job was essentially my dream job. I got hired at a prestigious company, working on cutting-edge technology with excellent compensation. But the reality of any job is that things are messy, at best. People can be the most challenging aspect of a job, and the work that you do is far from the academic rigor of the daily homework presented in engineering classes.

Company brochures, recruiting videos and people typically present only their best front about their jobs (which is exactly what I experienced when I tried to interview people on the inside). Work with robots that automatically build computer chips? Sounds awesome! But sometimes that daily work lacks luster. Long shifts, starting at a screen under artificial lighting. These are things that somehow get omitted from the company propaganda.

Even career services presents a biased picture of various jobs. But who can blame them? Their bottom-line mission is to get people into the work place to support themselves. Most people I know would rather do something other than their work, but we all recognize work as a necessary part of life. So everyone puts on a bit of a front.

But I think that makes it more challenging to find a fitting job. It's like you only look at half the job. And I love so many things, they all sound appealing. For me it's the negative aspects of a job that have made a bigger difference in my personal satisfaction.

I wish that you could get a fuller, unbiased idea of a job. I think job shadows are a great way to accomplish this. The difficulty of a job shadow is finding them. Linked-In can help, but in my personal experience people have been hesitant even when getting introduced by a mutual connection. There's got to be a better way?

The Idea

Create time-lapse, job-shadow videos. The videos would give a representative look at the daily activities for various jobs. This way you can see the statistician sitting for hours in front of his computer, or the manager sitting through hours upon hours of meetings. Important aspects of a job could be emphasized by slowing down the video. But not too much editing. If a job contains lots of walking then you want to capture that aspect.

Progress

I have no idea how to market something like this, but it would be a great addition to someone who is already in this space. Or maybe you could start the website and pay freelancers to take the video. With that approach, I wonder if this could fall under my "Teen Business" ideas.

This is another one of those services I wish existed. I would pay for this, but I don't want to start this business.

Sunday, April 7, 2019

Robotics Dev Kit for Kids


Background

If you read my other posts you'll know that I enjoy doing engineering projects with my kids. At home and at school they have played with some basic coding programs. My oldest son and daughter both expressed interest in programming as a hobby; my daughter is interested in astronomy, and my son is interested in robotics. They've played with scratch at school and dabbled in code academy. They have both lamented that the step between the kid programming games and real programming is too big and wish they had better stepping stones.

In a totally separate channel, I was riding on the train and thinking about introducing children to technology in ways that will KEEP them interested and engaged as they continue to grow.

From these two thoughts I wished that there was a robotics kit geared for kids that would provide a fun way to learn the basics of programming, but also incrementally unwrap the graphical programming methods to help them learn the underlying code structures.

The Idea

A robotics kit for kids with modular, easily connectable components and a coding interface that provides varying levels of difficulty.

Regarding the connectable components, I think Lego Power Functions is a perfect example of electronics that have pre-defined functions and can be built however you want right out of the box. They just work and don't take tons of soldering or programming to make something work. But Power Functions fall short when it comes to altering the behavior of the modular components. I think this is an essential part of programming robotics.

You might think that Lego Mindstorms is the answer. When I first had this idea, the answer was a definite NO. In my opinion the programming interface had a high learning-curve for younger kids. I think it is much better now, but the next strike against Mindstorms is the price point. I just think the $200-$400 price point for a single kit is too high of an entry point for most families who want to pursue this as a hobby, and whose kids may end up being not so interested.

As far as the programming interface, I really like the approach taken by the Scratch team. My kids have used it for silly projects and found it enjoyable. But they never learned how to dig into the code that underlies the little building blocks. So this robotics dev kit would provide that functionality to let them learn progressively more involved coding while learning how to control different properties of motors and sensors.

Progress

Has it Been Done Before?

Let me just say that we live in an amazing time in history. I love that people like me can have ideas,  share them publicly, and get the support from their peers to release a product to market, nearly risk free. And there are so many smart people who recognize a need and are willing to take various approaches to provide a solution.

There are some great options out there now that I would consider buying. If you combined the best features of the three below kits then you would obtain my ideal product!

1) Root Robotics

What is it?

  • A pre-built robot with controllable behaviors and a programming interface with increment difficulty.

Pros

  • Easy to use
  • Fun
  • Three levels of programming difficulty
  • Teaches real programming
  • Multiple programming languages
  • Good for educators
Cons
  • Limited ability to customize hardware
  • Best used on a large whiteboard


2) Mabot

What is it?

  • A plug-and-play, programmable robot.

Pros

  • Modular components can be hot-swapped
  • Plug and play
  • Simple programming interface
  • Compatible with Legos
  • Expandable
  • Good for young kids
Cons
  • Full functionality requires a tablet
  • Proprietary, limited programming interface


3) ROKit Smart

What is it?
  • A robotics kit based on the Arduino development board.
Pros
  • Standard electronics platform means nearly limitless expansion potential
  • Teaches full-fledged robotics programming on Arduino
  • Online lessons provide varying difficulty and project examples
  • Good for older youth
Cons
  • Programming interface requires installation and configuration
  • No graphical programming for younger audience
  • Not plug-and-play. Requires advanced ability to read and follow directions or an experienced teacher.

Simple Media Center


Background

We've accumulated a collection of movie DVDs over the years. Some titles get watched so much that the DVDs have become scratched and nearly unplayable. For these favorite titles I've ripped them onto the computer to allow us to continue watching these favorites without the hassle of loading them up and dealing with the skipping issues. Also, it's just nice to have all the movies, music and other digital media located in a single spot.

Once you have this digital library the next challenge is how to access the content. This is a rabbit hole that can quickly swallow and overwhelm even the savviest of techies. And as usual I always make projects more complex by trying to do them as cheaply as possible.

After going through at least ten different designs for a home theater PC I threw my hands up and just wished for something super-simple that almost anyone could use. But I could not find anything. So I just made my own solution.

The Idea

A method for hosting and presenting digital movies (e.g. movies) that is free, easy to use and easy to maintain.

Progress

Method 1: Chrome + Visual Basic Script (VBS)

This is the method I have been using successfully for years. It requires minimal setup and maintenance and is completely free. It takes about 5 minutes to add new movies.
  1. Obtain your media in MP4, M4V,  MPG and/or MPEG format. (I use Handbrake)
  2. Copy all your media to a single folder.
  3. Create a sub-folder called "thumbnails" and add PNG images files for each movie using the same exact name as the movie file.
  4. Run a vbs script, "Create_Movie_Page.vbs" that will create an HTML page in the folder.
  5. Open the HTML page in Chrome to see all your movies.
  6. Click on any movie to watch!
The code and instructions are hosted on my Github page: Simple-Movie-Server-1

Method 2: Raspberry Pi

Okay, this is free and AWESOME, but not easy.

On road trips we used to take DVD players and mount them on the backs of the seats. This was a decent solution, but had issues managing cords, scratched discs, and the video skipping due to the car bouncing.

I discovered the Raspberry Pi a couple years ago and built a "portable media drive". Now my kids use an old phone or tablet to pull up a list of movies to watch. They can each watch their own movies independently, and now we just have to manage battery life.

To give full credit, I discovered this project from gavsworld. But I had to make some changes since I was using a Pi 3, and I relied on other sources for info. I also recommend this post on the Raspberry Pi site.


If you want the awesomeness without the fun of a project, you could just buy one. They are not well known because the industry hasn't agreed on a standard marketing term. Or maybe it's because the terms they use are so generic that they result in lots of cross-over devices. You could look for "wireless hard drive" or "portable media player".