User:Esmetaman

From jderobot
Jump to: navigation, search

Contents

Training Phase

In this period of time I am learning the following technologies:

  • Operating Systems
    • Linux (Ubuntu Distro)
  • Simulators
    • Player/Stage/Gazebo
  • Programming Languages
    • C
    • C++
    • Java
  • Compilers
    • gcc
    • g++
  • IDEs
    • Eclipse
    • Glade Designer
  • Frameworks
    • /
    • Jderobot
    • Opencv
    • GTK
    • Glade

Testing Gazebo with Jderobot and Teleoperator schema [20/12/2009]

alt text

Testing Cheste world with javaclient and player/stage[20/12/2009]

alt text

WxGazebo: Using wxgazebo to "see" a world [20/12/2009]

Finally I could configurate wxgazebo.

export PYTHONPATH=/usr/local/lib/python2.6/site-packages/
wxgazebo pioneer2dx-rendering.world 

alt text

Javaclient2 with Player/Stage/Gazebo [20/12/2009]

I was testing a project using javaclient2 with Player/Stage. Besides I tested all examples from javaclient2 project and the results are nice. It is very easy to use Player/Stage from Java and Eclipse. I discovered a proyect from David Wooden who use javaclient2 to manage robots with Gazebo a 3D simulator.

alt text

Besides I tested others examples:

alt text

alt text

alt text

Gazebo

Executing Gazebo:

esmetaman@esmetaman-asus:~$ gazebo /usr/local/share/gazebo/worlds/pioneer2at.world
** Gazebo 0.6.1 **
* Part of the Player/Stage Project [http://playerstage.sourceforge.net].
* Copyright 2000-2005 Brian Gerkey, Richard Vaughan, Andrew Howard,
* Nate Koenig and contributors.
* Released under the GNU General Public License.
using display [:0.0]
rendering: [GLXP pbuffer] direct [yes] RGBA [8 8 8 8] depth [24]
rendering: [GLXP pbuffer] direct [yes] RGBA [8 8 8 8] depth [24]
server id [0]
jderobot $> load_schema teleoperator
teleoperator schema loaded (id 4)
teleoperator schema started up
jderobot $> run teleoperator
jderobot $> show teleoperator
jderobot $> teleoperator: truecolor 24 bpp

Ice tests 3 [2/10/2009]

I Retrive images from a webcam using JavaCV
http://www.ok.ctrl.titech.ac.jp/~saudet/research/procamcalib/
https://jna.dev.java.net/
http://www.cs.iit.edu/~agam/cs512/lect-notes/opencv-intro/opencv-intro.html

import name.audet.samuel.javacv.*;
import name.audet.samuel.javacv.jna.highgui.*;
import name.audet.samuel.javacv.jna.cxcore.IplImage;

public class demo {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		try{
			// TODO Auto-generated method stub
			CanvasFrame frame = new CanvasFrame(false, "Image Frame");

			/*
			String devices[] = OpenCVFrameGrabber.getDeviceDescriptions();
			
			for(int i = 0; i<= devices.length; i++){
				System.out.println(devices[i].toString());
			}
			*/
			OpenCVFrameGrabber grabber = new OpenCVFrameGrabber(0);
			
			grabber.start();
			while (true) {
			    IplImage image = grabber.grab();
			    name.audet.samuel.javacv.jna.highgui.cvSaveImage("/home/esmetaman/projects/phd/java/examples/javacv/1/demo.jpg",image);
	
			    // do some processing...
	
			    frame.showImage(image);
			}
		}catch(Exception e){
			System.out.println(e.getMessage());
		}
	}
}

Ice tests 2 [2/10/2009]

I developed a Client & Server in Java to deliver Images using ICE technology

Ice test 1 [15/09/2009]

I was developing some examples in ICE with C++ & Java

OpenCV Installing [10/08/2009]

Last Month, I was a problem with my laptop and I had to move my software to another machine. Now I am learning how to install the software myself.

http://www.comp.leeds.ac.uk/vision/opencv/install-lin.html
http://opencv.willowgarage.com/wiki/InstallGuide_Linux
http://www.marioibanez.com/2009/07/18/jugando-con-opencv/

[21/09/2009] I tried to install, but I have problems. This is my first day in the Master.

Finally Carlos and Paco helped me and we installed OpenCV on my laptop using debian packages:

sudo apt-get install libavformat-dev
sudo aptitude install libcv-dev 

Stage Part 1: My first steps [07/07/2009]

 
sudo apt-get install libcv-dev libcv1  libcvaux-dev libcvaux1 libhighgui-dev libhighgui1

I am learning how to use Stage to develop my first schema for Stage. For the moment I can launch a simple world and use the examples Teleoperator and Introrob. Now I am trying to develop my own Introrob.

http://playerstage.sourceforge.net/index.php?src=doc
http://www.robotica-urjc.es/index.php/Laboratorio
http://jde.gsyc.es/index.php/Manual
http://gsyc.escet.urjc.es/moodle/mod/forum/view.php?id=244
http://library.gnome.org/devel/libgnomecanvas/stable/
http://cgi.cse.unsw.edu.au/~cs4411/wiki/index.php?title=OpenCV_Guide

How to run Player server?

 
esmetaman@esmetaman-laptop:~/projects/phd/stage1/stage-simple$ player simple1.cfg 
esmetaman@esmetaman-laptop:/usr/share/player/config$ player pioneer.cfg
Player v.2.0.5

* Part of the Player/Stage/Gazebo Project [http://playerstage.sourceforge.net].
* Copyright (C) 2000 - 2006 Brian Gerkey, Richard Vaughan, Andrew Howard,
* Nate Koenig, and contributors. Released under the GNU General Public License.
* Player comes with ABSOLUTELY NO WARRANTY.  This is free software, and you
* are welcome to redistribute it under certain conditions; see COPYING
* for details.

Listening on ports: 6665 

Image filters Part 2: My first RGB filter with UI [25/06/2009]

I have developed a simple UI which can be used to filter RGB from every frame from a webcam using OpenCV and JDERobot.

Image filters Part 1: My first steps [17/06/2009]

I am learning image filters with JdeRobot.

/*Check HSV values*/
int valuesOK(double H, double S, double V) {

	if(!((S <= smax) && (S >= smin) && (V <= vmax) && (V >= vmin)))
		return 0;

	H = H*PI/180.0;

	if(hmin < hmax) {
		if((H <= hmax) && (H >= hmin))
			return 1;
	} else {
		if(((H >= 0.0) && (H <= hmax)) || ((H <= 2*PI) && (H >= hmin))) 
			return 1;
	}

	return 0;
}

void colorFilter() {

	struct HSV* myHSV;
	double r,g,b;
	int i;

	for (i=0;i<(*myAA).width*(*myAA).height; i++){
			r = (float)(unsigned int)(unsigned char) image[i*3];
			g = (float)(unsigned int)(unsigned char) image[i*3+1];
			b = (float)(unsigned int)(unsigned char) image[i*3+2];

			myHSV = (struct HSV*) RGB2HSV_getHSV((int)r,(int)g,(int)b);	

			if(valuesOK(myHSV->H, myHSV->S, myHSV->V)) {
				image_aux[i*3] = image[i*3];
				image_aux[i*3+1] = image[i*3+1];
				image_aux[i*3+2] = image[i*3+2];
			}  else {
	    			/* Gray Scale */
				//image_aux[i*3] = (unsigned char) (myHSV->V*100/255);
				//image_aux[i*3+1] = (unsigned char) (myHSV->V*100/255);
				//image_aux[i*3+2] = (unsigned char) (myHSV->V*100/255);
			}
	}
}

void opencvdemo_iteration(){
	int i;

	speedcounter(opencvdemo2_id);
	pthread_mutex_lock(&main_mutex);

	//Mi añadido
	iterationCounter++;
	sprintf(mensaje,"%ld",iterationCounter);
	printf( "Contador: %ld \n", iterationCounter );

	if (win!=NULL){
	//if(all[opencvdemo2_id].state==winner){
		gtk_entry_set_text(glade_xml_get_widget(xml, "entry1"),mensaje);
	}

	if(image_ok && image!=NULL) {
	  for (i=0;i<((*myAA).width*(*myAA).height); i++){
		  image[i*3]=((*myAA).img)[i*3+2];
		  image[i*3+1]=((*myAA).img)[i*3+1];
		  image[i*3+2]=((*myAA).img)[i*3];
		  

		  if(radio_original) {
		    image_aux[i*3]=image[i*3];
		    image_aux[i*3+1]=image[i*3+1];
		    image_aux[i*3+2]=image[i*3+2];
		  }

		}
		if(radio_color) 
			colorFilter();
		else if(radio_gray)
			grayScale();
		else if(radio_canny)
			cannyFilter();
		else if(radio_sobel)
			sobelFilter();
		else if(radio_opflow)
			opticalFlow();
		else if(radio_pyramid)
			pyramid();
		else if(radio_convol)
			convolution();

colorFilter();
	}
	pthread_mutex_unlock(&main_mutex);
}

Learning how to create my own Jderobot schema Part 6: My Fith schema[17/06/2009]

I have created an schema which show images from a webcam. This schema uses a basic image filter. I consider that I have to improve my knowledge about jderobot technology, schemas and C,C and more C!

Learning how to create my own Jderobot schema Part 5: My third schema[04/06/2009]

I am creating a JDEROBOT schema which uses own Glade GUI to show a image from a webcam. This schema use OpenCV.

Problems/Doubts:
How to config Varcolor object in the code? Normally I see the configuration in config file.
How to execute the function loadImage in a JDEROBOT's event?

Learning how to create my own Jderobot schema Part 4: My second schema[29/05/2009]

I am developed a schema which interoperate with a simple GUI to show a counter. The counter measures the number of schema's iterations.

In this practice I have improved my knowledge about C. Besides I discover new things about the events in any JDEROBOT's schema.

Learning how to create my own Jderobot schema Part 3: My first schema[11/05/2009]

I am developing my first schema with a simple Glade GUI

Learning how to create my own Jderobot schema Part 2: Opencvdemo2 [8/05/2009]

At the end of the week, I could compile, link & execute a schema. I learnt some concepts about C/C++ development.

Learning how to create my own Jderobot schema Part 1: Makefiles [11/04/2009]

Currently I was learning makefiles files. A makefile is a critic part in any C/C++ project is a similar concept to a .classpath file in a Java project. A makefile file is a file which indicate the compiler how to compiler a sourcecode.

I made a copy about my modified schema opencvdemo and now I am learning how to run the makefile.

Resources about Makefiles:

http://arco.esi.uclm.es/~david.villa/doc/repo/make/make.html

Learning how to run the Schema OpenCVDemo and Jderobot [26/03/2009]

Once I has a standalone programs with GTK and OpenCV running in my new Linux System, I installed the project JDEROBOT into my system to test the schema OpenCVDemo. The schema concept in jderobot terms is a program which is integrated in the jderobot environment and it use features from jderobot kernel.

In this phase, I had to learn how to run jderobot and the configuration file. I had some problems to learn the strucutre, but I recognzie that the file structure is cool. With the help of my colleagues, I ran the schema opencvdemo. Besides I learnt the basic concepts about how to compile and install schemas into a jderobot installation.

Finally I was testing how to update a Glade file with Glade designer, but I had bad results.

Testing GTK and OpenCV on a Linux System [16/03/2009]

I used a Netbook (HP Mini) to learn the first concepts about Computer Vision on a Linux System (Ubuntu). I installed the operating system and some libraries as GTK and OpenCV. In linux the main problem was the compiler. At the end I achieved to execute the code from windows OS to Linux, the key was compiler directives.

Testing GTK and OpenCV on a Windows System [03/03/2009]

In my first weeks in GSYC, I was trying GTK and OpenCV on a Windows System. I installed and configurated a Windows System with these technologies and I made some tests with C and C++.

In general, Computer Vision systems are developed with C/C++ so I had to learn C/C++. Development process with C/C++ is a bit hard in compare to Java and in my first tests I had some problems with compilers for C (gcc) and C++ (g++)

Linux Recipes

Kill process in Linux

[1]

Kill processes

Top
Kill -9 PID

Networking
Reset my network interface
sudo /etc/init.d/nerworking restart

Mount USB HDDs
ls -l /dev/sd*
$ vol_id /dev/sdb1
mount -t ntfs-3g /dev/sdc1 /media/usbhdd -o force
[2]

About Esmetaman

My name is Juan Antonio Breña Moral, a young Industrial Engineer and Technical Programming Engineer. I have researched robotics/ai since 2003. Now I would like to learn advanced concepts about robotics and artificial intelligence with my new colleagues from GSYC.

Personal Webpage about my work in URJC: [3]
SVN about my work in URJC: [4]

Milestones

My milestones in robotics fields are:

  • [Dec'09] Participate in IRML Winter camp 2009
  • [Oct'09] Teach a NXT course in [5] "Programa de Enriquecimiento educativo de la Comunidad de Madrid"
  • [Oct'09] Manage my own robotics course using NXT-G & LeJOS
  • [Jul'09] Participate in IRML Summer Camp 2009
  • [Jun'09] Participate in URJC seminar about Java LeJOS
  • [Jun'09] Install leJOS in a Linux System
  • [May'09] Teach a NXT course in [6] "Programa de Enriquecimiento educativo de la Comunidad de Madrid"
  • [April'09] Design a Robotics course with NXT for a Secondary School in Madrid
  • [April'09] [7]LeJOS Ebook 0.6
  • [March'09] Begin to study JDEROBOT
  • [March'09] [8] Speech about leJOS in Dorbot #35
  • [December'06] Become a member of a leJOS developer team
Personal tools