A few months back, I re-purposed some old computer parts to make myself a simple file server. I originally set everything up with Amahi because it promised to be simple and powerful. While it was a good stepping stone for me into the world of home servers, I quickly outgrew it's capabilities and wanted my own system that I had more control over. So, I set out to make my own with Ubuntu as the base OS and decided to try out Docker along the way
I have been working on mobile robot navigation for an autonomous service robot project. During the Fall semester, the navigation team was able to successfully enable the robot to navigate the hallways, albeit with quite a bit of last minute hacking. This past semester, I have been continuing work on the navigation system as an independent study research project and I was able to actually achieve robust navigation!
This project was all about designing a robotic system from the ground up that could do various tasks. We were given a standard hardware platform and had to create all of the core functionalities and integrate them together. I was part of the navigation group and helped give our robots the ability to navigate in the real world. I also worked on designing a framework for specifying complex tasks in a way that the robot could understand and execute.
Robots are complicated and don’t always work correctly. That is why it is often far easier to do robotic design work in a simulation – they work perfectly every time there. Previously, our RoboCup team did not have any easy simulation tools, especially for testing behavior algorithms or strategies, which often require all the robots to be running for useful analysis. So, I took it upon myself to try and build such a simulation.
I got an Echo Dot and wanted it to work with Google Play Music. Thankfully, I found some software to fix it!
A few weeks ago I had the chance to attend RoboCup 2016 in Leipzig, Germany. RoboCup is sort of like the World Cup, but for robots. Various teams from around the world bring their robots together to compete in robotic soccer as well as all sorts of other events like search and rescue, the Amazon Picking Challenge, industrial logistics, and home service.
There are many different soccer leagues but the one that I was a part of was the Standard Platform League (SPL). This league requires all teams to use only Aldebaran Nao robots and the competition involves programming them to play soccer autonomously.
If you have read my previous post you will know that I recently built an automated ball catcher and programmed it to track and catch a ball. In this post I will talk about the software behind making the catcher work. The structure of the software can be broken down as follows: initialization, image analysis, flight path analysis, and cart control.
Launch a ball. Track the ball. Catch the ball. It is a simple concept - one that we humans learn at a very young age while playing ‘catch.’ But to get a robotic system to perform similar actions is a very different game. In this project I will talk about how I built and programmed my own autonomous system to track a ball in flight and catch it in an autonomous cart.
Have you ever thought about how hard it is to walk? It's not something we often think about but, in reality, walking is incredibly difficult! Each step takes coordination between your brain and all the muscles in your legs. Each muscle has to move and contract in the proper sequence to move your leg out, place it on the ground, move forward, and repeat....
For one of my classes at Penn, I got a chance to learn all about how to make quad copters autonomous. All the 'drones' that have been becoming popular recently are almost all radio controlled, with some of the more expensive ones having a few layers of autonomy between it and the user. But for this class, we wanted to figure out how to make the quad completely autonomous - we wanted to get to a specified point without hitting obstacles with no other human input. We can do this by breaking this problem into three smaller parts: control, obstacle avoidance, and motion planning.
As part of my Machine Learning class at Penn, I got a chance to work on a gender identification project based on Twitter data. The goal of the project was to try to identify the gender of 5000 people on Twitter based on their profile pictures and a summary of all the tweets they had written. In order to stimulate creativity, the professor made the project a sort of competition between all the teams in our class with prizes (and more importantly, grade bumps) going to the best teams. While my team had no intentions of trying to win the competition from the outset, we actually ended up doing just that! Read on to find out how.
While I was studying at Cal Poly San Luis Obispo, I got the chance to participate in a competition called RoboRodentia during my freshman year. Our robot performed rather poorly since all our sensor decided to stop working the day of the competition and ever since then I vowed I would re-enter the competition and do better. Due to circumstances that wasn't until my senior year when I decided to try flying solo and entering my own robot.
I have always been interested in computers, but in the summer of 2014, I finally got to build one myself.
I have always been pretty comfortable using a computer, but I had never given the internals of one too much thought. So, I began reading articles about how to build a computer and how one works in the fall of 2013
Assembly language is a programming language for microchips that is basically one step away from writing binary code. It is fairly tedious to write, which is why very few people code directly in assembly language anymore. So how many lines of assembly language does it take to create a simple PI motor controller on a Motorola 68HC12? About 1500, it turns out...
The unassuming green square of plastic in my hand was quite revolutionary at the time this picture was taken. This was the first ever print from a 3d printer that my friends and I had built in our college dorm room. Clearly there was some work to do still, but the fact that it was even possible to shove plastic through a hot nozzle and squirt it out into a 3 dimensional shape was incredible!
I decided to try my hand at programming a basic AI from scratch using neural networks and genetic algorithms.