Thursday, April 29, 2010

Robot Operating System from Willow Garage

A project I'm working on (more details later) will likely be using Robot Operating System (ROS) by Willow Garage. This is essentially a (primarily) Unix-based operating system that has been created to provide a common, open source environment for the development of robotic applications. Willow Garage is closely tied to OpenCV development, and ROS should make it simple for integrating the most bleeding edge OpenCV functions along with digital camera drivers necessary for my project. I have set up an Ubuntu virtual machine using Sun's VirtualBox to familiarize myself with ROS. The documentation available at these websites is superb, so I will not go into more detail about setting this up. In the near future I will set up a dedicated PC. For now, I am going through the many tutorials available on the ROS website.

[UPDATE]
I have a dedicated PC set up running Ubuntu. To install OpenCV (after downloading appropriate tarballs file):

   1. tar -xjf OpenCV-2.1.0.tar.bz2
   2. mkdir opencv.build
   3. cd opencv.build
   4. cmake [] ../OpenCV-2.1.0 # CMake-way
   5. make -j 2
   6. sudo make install
   7. sudo ldconfig # linux only


Short-term goal is to create a basic image publisher/subscriber in ROS using OpenCV IplImages.

Tuesday, April 6, 2010

OpenCV and Microsoft Visual Studio 2008

I'll be playing with some image processing. OpenCV is a great option and is open source. For starters I'll be playing with OpenCV in a Visual Studio environment. Instructions for getting everything set up can be found here.


In addition to the initial setup, new Win32 Console projects should have the following additional dependencies added to the Linker > Input configuration properties:


  • cv210.lib
  • cxcore210.lib
  • highgui210.lib
Other tips for running the OpenCV samples that come with the installation as Win32 Console projects:
  • #include "stdafx.h" must be included 
  • Files referenced in the code must be in the Projects/ProjectName/ProjectName directory (and hardcoded file paths will likely need to be modified to reflect their new location)