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!
Viewing entries in
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.
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.
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.