Day 1

Today was the first day in the lab and thus I only worked for a few hours in the afternoon.

I got acquainted with the lab and the researchers here, and was given a workstation on which to work.

The first milestone for my project is to get a GraspIt! up and running on a virtual machine. The testing framework will use different virtual machines to run specific test on the code in different environments and on different platforms.

After creating my new user on the computer, I downloaded and installed VMware Workstation. I created a new virtual machine in VMware on which to work, and installed a fresh copy of Windows XP. There wasn't enough time to install Service Pack 2, so I downloaded all of the files and libraries relevant to GraspIt!

What is this blog?

This blog is where I will document my work over the next semester, as I do research in the Robotics Lab at Columbia Univeristy.

I am working under the supervision of Jon Weisz and Dr. Peter Allen.

My project for the semester is to work on building a test framework to ensure code integrity and stability for the GraspIt! project. Since GraspIt! is a cross-platform program, under constant development by multiple developers, keeping all aspects of the code working on all systems it is designed for is a high priority.

Here's a little about GraspIt! from the GraspIt! manual:
What GraspIt! is

GraspIt! was created to serve as a tool for grasping research. It is a simulator that can accommodate arbitrary hand and robot designs. It can also load objects and obstacles of arbitrary geometry to populate a complete simulation world. The GraspIt! engine includes a rapid collision detection and contact determination system that allows a user to interactively manipulate a robot or an object and create contacts between them. Once a grasp is created, one of the key features of the simulator is the set of grasp quality metrics. Each grasp is evaluated with numeric quality measures, and visualization methods allow the user to see the weak point of the grasp and create arbitrary 3D projections of the 6D grasp wrench space.

In our experience, we have found that GraspIt! usually serves one of two purposes. First, it can be used as a development tool, to execute and test various robot control algorithms. In this sense, it serves as a replacement for the real world: in simulation, an algorithm can be tested on many hand designs, many objects and obstacle configurations, at no cost and much faster than in the real world. Second, GraspIt! can be used as a computational platform that backs up a robot that does operate in the real world. For example, a real robot can acquire a model of a target object, then use GraspIt! to quickly evaluate multiple grasping or manipulation scenarios. Often, these scenarios are also combined and the same GraspIt! setup used for development of an algorithm can also be used for computations during real life execution.

GraspIt! has many features that help accomplish these roles; all of these features are documented in the second part of this manual. The most commonly used include the contact detection and grasp quality metrics mentioned above, the dynamics engine and the grasp planning capabilities. The dynamics engine within GraspIt! computes the motions of a group of connected robot elements, such as an arm and a hand, under the influence of controlled motor forces, joint constraint forces, contact forces and external forces. This allows a user to dynamically simulate an entire grasping task, as well as test custom robot control algorithms. The grasp planning algorithms rely on the simulated environment to quickly evaluate many hand postures, and find those that lead to stable grasps. There are many possible implementations of this concept; the planners that are included with GraspIt! can usually find multiple stable grasps of an object in less than 1 minute, taking into account obstacles and other constraints.

Overall, GraspIt! is an open-source virtual environment for simulating robotic grasping tasks accompanied by a number of analysis and development tools. It has been developed in C++ using many other open-source libraries, and is cross-platform, tested on both Windows and Ubuntu Linux.