User:Esmetaman
Training Phase
In this period of time I am learning the following technologies:
|
|
Testing Gazebo with Jderobot and Teleoperator schema [20/12/2009]
Testing Cheste world with javaclient and player/stage[20/12/2009]
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
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.
Besides I tested others examples:
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
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






