Author Archives: Matthewfl

First day of FRC robotics

Today is out first day of the robotics competition.  There is still a lot of work that needs to be done.For starters, the robots drive system needs to be rebuilt.  What happened when we shipped the robot was they were unable to find the right size gears.  Second the intake system needs to be taken apart and have is belts put on.  Finally the bbad needs to be installed (we just finished machining 2 days ago).
Once the mechanical team finished the electrical and programming team get to go to work.  The robot has not even begin to be weired.  Additionally programming team has written a bunch of code hopping that robot will work, but because the robot was “finished” only minutes before we bagged it there was no chance to test.
All in all, if the robot I’d working by the end of Thursday, it is going to require a miracle.

…Government

Before I start, this post is about the Obama administrations’ new online voting system: https://wwws.whitehouse.gov/petitions

The Obama administration has set “We the people” as a new service that allows for citizens to get involved in government.  All one needs to do to participate is click create an account at the lower right hand corner of the page.  Once one has created an account one can show support of a petition simply by clicking vote on this petition.

Here are a few petitions that I believe are worth note and votes:

Abolish software patents
Today there are thousands of bogus patents in the system for different software ideas. One time I was looking through Google patents to see how bad software patents really were, and I found a patent for a watch dog timer that was from 2009. I then went to look up a watch dog timer and found (as I suspected) that watch dog timers have been around since before the 90s. Continuing this search, I found two patents in the same generic Google patent search that were infringing on each other.

Freedom of the Internet
This petition is against the E-parasite act that congress is currently attempting to get passed. What this act is basically set up to do is allow for BIG companies to take over the internet. For example, if a large corporation determines that you are doing something “illegal” then they can get you thrown off the internet. This bill will also allow for websites to be thrown off the Internet in much the same manner. A number of security experts have said that this bill will enable a major vulnerability in the Internet as it will enable a “group” to decided what should not be allowed and modify the DNS records (if abused you would not be able to ensure that you are on the site you think you are on, for example you bank website could be replace when this technology is abused).

Funding NASA
Science and technology is constantly getting its funding cut when times are bad. NASA is a prime example of a successful origination getting its funding cut. This should not be allowed and NASA should be funded.

Eliminating vibration on the Perfect Horizon

For this summer I have been interning with Motion Picture Marine which designs and builds the Perfect Horizon.  The prime use of the Perfect Horizon is to keep a camera level with the Horizon.  This is especially important when working on boats and shooting off into the distance.  In the near future it is also expected that keeping a camera shot level with the horizon will become even more important because 3D moves on average have shots that are twice as long, and any movement in the image is many times more likely to cause motion sickness of the audience.

ph-dsc5776-2-1024x661

The way that the Perfect Horizon works is by compensating by movements of the boat or moving vehicle using two motors, to move the platform in the opposite direction.  The problem comes from when the Perfect Horizon is not mounted on a stable platform.  This is because when a 100 pound camera is mounted on top, there is a large deal of inertia, and thus the platform underneath ends up getting pushed.  If the platform can be moved even a little bit, then the Perfect Horizon will detect this and attempt to compensate as it was designed to do.  In turn this causes the system to begin to vibrate.  (This problem can easily be seen on a crane arm, or any poorly designed mount)

This problem can basically be broken down into two major components.  The first being the detection of the vibration, without miss detecting normal operation.  And the second is modifying the internal parameters of the system to prevent it from vibrating.

For my first attempt at detecting the vibration I just attempted to use simple signal processing filters.  This ended up working on my test rig as it was a stationary platform.  In moving to a moving platform I began to notice some problems with the solution.  The first being that it would miss detect jolts or changes in motion as vibration.  This was simply unacceptable as this would degrade the quality of the system and prevent it from doing the job that it was designed for.  With some internet research, I found out that jolts are visible on all frequencies while vibrations are only on a select few.  (link)  This lead to using fourier transform for processing the signal.  What a fourier transform basically does is it converts signals in the time domain into signals in the frequency domain.  This basically means that when looking for a vibration, we need only check for outliers in the set of data.  This has turned out to be a better solution, and combining it with simple check to ensure that there are enough samples that indicate vibration there has not been any false positives as of thus far.

The second problem came in with modifying the gain of the system to prevent it from vibrating.  I believe that part of the problem with the vibration comes from the fact that the system produces thousands of tiny jolts while moving, this is because the system will determine where it wants to move to, and then it will move to that point up to a maximum speed.   Once it has reached that point, it will stop and wait until the next sample is ready.  The solution here is to slow down the motors so that they do not reach the end before the next sensor reading.  The obvious answer of just always slowing down the motors will not work, as then the system would not be able to deal with the larger movements because the motors would be moving too slow.  In implementing the solution the motors are only slowed down when the system determines that it is vibrating.  This essentially gives the system some form of adaptive control over the internal parameter used in the system.

Recent downtime

In the last 24 hours, JSApp.US was down for the majority of the time.  The problem started with a power outage at the Linode hosting facility.  This brought the server down at first.  The system then had a problem getting back up as there was a super block failure on the root file system (not the database).  Linode continued to do maintenance on the system, and it is currently my belief that there was underlying problems causing the issue.  Earlier today I was able to get back into the system, but it was having problem still booting up into the normal system.  After some more work with the lish interface and loads of reboot attempts the system is now running again.  I have tested the system to ensure that it will reboot into the correct configuration, and it seems to be ok at the moment.

Reflections on FRC world

So this was my first time at FRC world.  It ended up being a lot of fun, and was very enjoyable to be able to interact with other FRC teams, and see a lot of the booths that were from the various suppliers of FRC materials.

First off, congrats to our admin team for winning the entrepreneurship award.  This just shows how much time has gone into this.  Something that winning this award made me realize was that there are hundreds of teams that were at world, and that they were representing thousands of teams.  Just being one of the few special teams that have won an award on the world stage, is a great accomplishment.
Something that did happen at world, was there was a lot of talk with regards to what will happen next year with our team.  We are planning to do a lot of major overhauls to the build side of our team, so that we can produce a quality robot.  There are a few plans floating around right now with regards to the issue, and I think that if we are able to implement some of them that we should be in good shape.

Some of the plans that we came up with that are somewhat interesting.

  1. Build a second robot and practice driving
  2. Start a lot of researched based projects
    1. The first idea is a variable controlled pneumatic system
    2. Kinect integrated into the control system
    3. full on autonomous robot (more just the idea of having the sensor feed back developed)
  3. Build a number of robots during the off-season
  4. Train more members to be able to machine the parts

FRC world 2011

This coming weekend is the FRC 2011 world robotics competition.  After this, the 2011 FRC season will be over.  We are hoping to do decently well, as we feel that our robot can perform, but the question is going to be how it holds up against the other world-class robots.

While this will make the sad end of 2011 FRC, it will also mark the beginning of next cycle for our team when it comes to FRC robotics.  Next year we are already planning to get a lot more training in for everyone on the team.  It should be interesting to see everyone getting trained at all the various parts of the build season.  This should differ greatly from what we had this year with a few main people doing large chucks of the work.

I am hoping that next year will be able to be a lot of fun, as there are some thing that should be different from this year.  The first is being that we (as a team) are wishing to build more practice bots during the off-season.  Our goal is three different drive systems and then articulations to go along with said drive systems.  As the current programming leader, I would also like to see more people getting on the programming side of the robot.  I have big dreams with wanting to see a robot that could drive itself completely autonomously.  I am currently thinking that a xbox kinect could be used as the primary sensor for the system.  When in an indoor condition, the kinect is able to give distance data up to 27 meters away, which would be more than enough for decent robot control.  The kinect also packs a decent resolution camera into it.  The main problem with the kinect is that it is USB, and the cRIO has no interfaces for USB.  So my current plan is to use a pc104 like board with USB and ethernet to interface between the two devices.  This second processing unit could also serve as a video co processor on the robot possibly providing a lot more computational power.

First frc robotics competition of the year

This masks the end of the first frc robotics regional.  There are two sides to this update.  The first being that the robot is working a million times better than when we shipped it, but we still have a long way to go.
We only scored one of the rings on the pegs, this was for a few reasons, the first being that we did not have the arm working till later on Friday, the second was that many of our alliances wanted up to just play defense.
We also received a  big hit in the face when it came to the mini-bot.  We found that the bot was not as fast as we thought it was when compared to other mini bots, but we have a good idea of how to fix it, so it will become a competitive mini-bot by the next regional.

The flood of twitter

I originally added the plugin to add my tweets to this blog.  At first it seemed to work really well, but now looking at the content on this blog, there is only tweets, and there is a very limited number of post in comparison to tweets.  So now I am turing the updates of tweets off, and assume that anyone that wants to know every tweet is fully capable of following me on twitter (@matthewfl).

I hope to add some blog post that will make this site somewhat informative about various things.

2011 FRC game

So this is the start of the 2011 FRC game.  We are about 4 days into the season right now, and if our team stays on schedule, which it seems that it will, then we should start CADing the robot today.

Being the programming leader of the team, my main responsibilities at this point is to start getting the systems ready, so that when the robot is built it can be quickly programmed, and to also start programming when we start to know the design of the robot.

Seeing that the first task of prepping the system should not end up taking that long, this should give me the chance to help with the mini bot.  Having been concerned for the building of the minibot, and the only leader figure without major responsibility at the present moment/Experience with FTC.  I should be able to start CADing the minibot soon with the rest of the team.  I think that the minibot is going to become less about making one design and being able to stick with it, but after initial CADs, being able to quickly go through design changes, to try and knock a few seconds off the climb and deploy time of the minibot.

In all I think that this is going to be a good season of FRC, the major problem is going to come down to if we are able to get the robot done with enough time so that we can practice driving it.  This is going to end up being a critical portion of our success, along with the time to test and “debug” the system.

npm/coffee update

It seems to be that I have not updated this jsapp blog in a while.  If you care about getting updates you should definitely join the jsapp mailing list where I tend to be announcing new features.  https://groups.google.com/group/jsapp-us

There seems to be a few features that have happened since the last update of this blog, so I am going to try and cover them all in a list now:

  1. There is not support for using a custom subdomain, check out the deploy command
  2. There is a profile view for all users, the profile can be edited using the profile command
  3. Files can be made public for other users to include into their own projects, to do so use the files command and click public
  4. There is a new jsapp command that can be installed using npm (npm install jsapp) this is useful for anyone that wants to work with jsapp through their own filesystem on their computer, or  use version control on their own system
  5. jsapp now has support for coffee script (demo) all one has to do to take advantage of this is to add the suffix .coffee to any file and it will be compiler with the coffee compiler prior to running

Again if you what to be kept up-to-date on the new features of jsapp, check out the mailing list: https://groups.google.com/group/jsapp-us

The Surge

Seeing as today seems to be the one month adversity of jsapp.us, it seems only fitting to have a small reflection on what has changed and happened over the last month or so.  When I first started announcing Jsapp.us, I was doing it through the node.js irc room.  In fact it was from a conversation that I had in irc, where I got the idea to add the sidebar.  I think that this sidebar greatly helped people understand some of the capabilities of the system rather then just seeing a coding editor.

Within the first week of jsapp, it was on the reddit/programming page and hacker news.  This is a graph of the bandwidth that the site was using during this time.  The smaller section is about 24 hours after it started on reddit.  And the larger spike is getting onto the hacker news page for about 3 hours.

During this time of rapid growth, most of the actions only dealt with running the test of node.  From the comments that I was reading, a large number of people had been wanting to try node out but found it to be somewhat difficult to get up and running on a windows box.

Now that the number of people coming to the site has died down, the deployment system is getting used more as more and ore people are getting use to the idea having a web editor and being able to deploy their apps.

There have also been some features added to the system after its initial upstarting.  First there is now support for an http client. before this was just left blank and was not working.  There is also a profile view, in which all user have a profile that they can write content in, and view their applications and shared files.  Along with the profile view there is now support for importing files from other users when they have made said file public.  This can make it convent by not having to load in ones own version of the library to their own file system to use it.

Some stats: In the first month there were 500 accounts created, 100 applications deployed, and 20,000 visits

Large update JsApp.US

Today I pushed out a large number of updates for JsApp.us.

First there are a few new features that everyone should know about: (these first two should sound like what appjet was before it closed)

  • People can make libraries public to be imported by other people using the service.  To make a file public see the files command and click the public link.
  • There is a new profile view that is convenient place with links to all of the users applications deployed as wells as all public files so that others can shop around for the modules they are looking for. (Self promotion: http://jsapp.us/p/matthewfl)
  • There is also a share command that few people have discovered, it allows one to share a current version of a files, this is greatly useful for things such as writing blog entries about node.js or getting help with something that is not working.
  • And finally JsApp.us is now open source at github, so if you find a bug that you want fixed, or want to build the next cool feature fork it

JSApp.US

It seems a little strange that I have not yet written a blog entry on my own project JSApp.US

For those that do not know what it is, it is a platform to write applications quickly in Javascript using the node.js platform and then quickly deploy these applications to the web.  To some extent this is my attempt to relive the days of appjet, but with a new and more powerful platform.

At it stands now, it is my most popular site ever, it laded its self to the reddit/programming page, and was on the top of hackernews for about 3 hours.  It seems to be very successful for now and even I have a few applications that are using it, such as count.jsapp.us, it is powering the little visitor count that I have placed on the side bar.

There are a few new features that I am still planing to implement.  The first feature is going be a sorta profile that will allow for people to “show off” their applications that they have on JSApp.US.  I also have plans to make it so that one can require in files from other users.  This should end up like how github handles it with users, the basis will look like: require(‘other_user/file.name’).

I married a widow (let’s call her wilma)…

I married a widow (let’s call her wilma) who has a grown-up daughter (call her dolly). My father (frank), who visited us often, fell in love with my stepdaughter and married her. Hence my father became my son-in-law and my step-daughter became my mother. Some months later my wife gave birth to a son (sammy) who became the brother-in-law of my father. as well as my uncle. The wife of my father, that is, my step-daughter, also had a son (steven)