|
From: <mor...@us...> - 2008-04-27 06:29:21
|
Revision: 206
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=206&view=rev
Author: morgan_quigley
Date: 2008-04-26 23:29:27 -0700 (Sat, 26 Apr 2008)
Log Message:
-----------
postprocess in sharks tweaking
Modified Paths:
--------------
pkg/branches/rosbus/3rdparty/sdl_image/manifest.xml
pkg/branches/rosbus/drivers/generic/serial_port/manifest.xml
pkg/branches/rosbus/drivers/robot/ipdcmot/manifest.xml
pkg/branches/rosbus/drivers/robot/ipdcmot/src/libipdcmot/ipdcmot.cpp
pkg/branches/rosbus/util/image_utils/manifest.xml
pkg/branches/rosbus/vision/sharks/include/sharks/sharks.h
pkg/branches/rosbus/vision/sharks/manifest.xml
pkg/branches/rosbus/vision/sharks/src/libsharks/sharks.cpp
pkg/branches/rosbus/vision/sharks/src/loneshark/config.txt
pkg/branches/rosbus/vision/sharks/src/postprocess/extract_laser/Makefile
pkg/branches/rosbus/vision/sharks/src/postprocess/extract_laser/extract_laser.cpp
Added Paths:
-----------
pkg/branches/rosbus/vision/sharks/src/postprocess/extract_laser/test
Modified: pkg/branches/rosbus/3rdparty/sdl_image/manifest.xml
===================================================================
--- pkg/branches/rosbus/3rdparty/sdl_image/manifest.xml 2008-04-27 05:52:57 UTC (rev 205)
+++ pkg/branches/rosbus/3rdparty/sdl_image/manifest.xml 2008-04-27 06:29:27 UTC (rev 206)
@@ -17,5 +17,8 @@
<url>http://www.libsdl.org/projects/SDL_image</url>
<depend package="sdl"/>
<depend package="ijg_libjpeg"/>
+<export>
+ <cpp cflags="-I${prefix}/SDL_image/include" lflags="-Xlinker -rpath ${prefix}/SDL_image/lib -L${prefix}/SDL_image/lib -lSDL_image"/>
+</export>
</package>
Modified: pkg/branches/rosbus/drivers/generic/serial_port/manifest.xml
===================================================================
--- pkg/branches/rosbus/drivers/generic/serial_port/manifest.xml 2008-04-27 05:52:57 UTC (rev 205)
+++ pkg/branches/rosbus/drivers/generic/serial_port/manifest.xml 2008-04-27 06:29:27 UTC (rev 206)
@@ -5,5 +5,8 @@
<author>Morgan Quigley (email: mqu...@cs...)</author>
<license>BSD</license>
<url>http://stair.stanford.edu</url>
+<export>
+ <cpp cflags="-I${prefix}/include" lflags="-L${prefix}/lib -lserial_port"/>
+</export>
</package>
Modified: pkg/branches/rosbus/drivers/robot/ipdcmot/manifest.xml
===================================================================
--- pkg/branches/rosbus/drivers/robot/ipdcmot/manifest.xml 2008-04-27 05:52:57 UTC (rev 205)
+++ pkg/branches/rosbus/drivers/robot/ipdcmot/manifest.xml 2008-04-27 06:29:27 UTC (rev 206)
@@ -5,7 +5,6 @@
<author>Morgan Quigley (email: mqu...@cs...)</author>
<license>BSD</license>
<url>http://stair.stanford.edu</url>
-<depend package="common_flows"/>
<depend package="roscpp"/>
<export>
<cpp cflags="-I${prefix}/include" lflags="-L${prefix}/lib -lipdcmot"/>
Modified: pkg/branches/rosbus/drivers/robot/ipdcmot/src/libipdcmot/ipdcmot.cpp
===================================================================
--- pkg/branches/rosbus/drivers/robot/ipdcmot/src/libipdcmot/ipdcmot.cpp 2008-04-27 05:52:57 UTC (rev 205)
+++ pkg/branches/rosbus/drivers/robot/ipdcmot/src/libipdcmot/ipdcmot.cpp 2008-04-27 06:29:27 UTC (rev 206)
@@ -47,7 +47,8 @@
IPDCMOT::IPDCMOT(string host, double mount_bias_deg, bool home_myself) :
host(host), max_ang_vel(500), ok(true), mount_bias_deg(mount_bias_deg),
homing_in_progress(false), awaiting_response(false),
- reg_mode(UNKNOWN), last_pos_deg(0), last_pos_enc(0), sock(0)
+ reg_mode(UNKNOWN), last_pos_deg(0), last_pos_enc(0), sock(0),
+ servo_mode(IDLE)
{
if (clock_gettime(CLOCK_REALTIME, &init_time) == -1)
{
Modified: pkg/branches/rosbus/util/image_utils/manifest.xml
===================================================================
--- pkg/branches/rosbus/util/image_utils/manifest.xml 2008-04-27 05:52:57 UTC (rev 205)
+++ pkg/branches/rosbus/util/image_utils/manifest.xml 2008-04-27 06:29:27 UTC (rev 206)
@@ -11,5 +11,8 @@
<url>http://stair.stanford.edu</url>
<depend package="ijg_libjpeg"/>
<depend package="std_msgs"/>
+ <export>
+ <cpp cflags="-I${prefix}/include"/>
+ </export>
</package>
Modified: pkg/branches/rosbus/vision/sharks/include/sharks/sharks.h
===================================================================
--- pkg/branches/rosbus/vision/sharks/include/sharks/sharks.h 2008-04-27 05:52:57 UTC (rev 205)
+++ pkg/branches/rosbus/vision/sharks/include/sharks/sharks.h 2008-04-27 06:29:27 UTC (rev 206)
@@ -33,6 +33,7 @@
#include "axis_cam/axis_cam.h"
#include "ipdcmot/ipdcmot.h"
#include "image_utils/jpeg_wrapper.h"
+#include "serial_port/lightweightserial.h"
#include "SDL/SDL.h"
using namespace std;
@@ -63,6 +64,7 @@
string axis_ip, ipdcmot_ip;
AxisCam *cam;
IPDCMOT *mot;
+ LightweightSerial *laser_control;
bool get_and_save_image(string filename);
SDL_Surface *screen, *blit_prep;
double left_laser_bound, right_laser_bound;
Modified: pkg/branches/rosbus/vision/sharks/manifest.xml
===================================================================
--- pkg/branches/rosbus/vision/sharks/manifest.xml 2008-04-27 05:52:57 UTC (rev 205)
+++ pkg/branches/rosbus/vision/sharks/manifest.xml 2008-04-27 06:29:27 UTC (rev 206)
@@ -18,6 +18,7 @@
<depend package="roscpp"/>
<depend package="axis_cam"/>
<depend package="sdl"/>
+<depend package="sdl_image"/>
<depend package="serial_port"/>
<sys_depend lib="ncurses"/>
<export>
Modified: pkg/branches/rosbus/vision/sharks/src/libsharks/sharks.cpp
===================================================================
--- pkg/branches/rosbus/vision/sharks/src/libsharks/sharks.cpp 2008-04-27 05:52:57 UTC (rev 205)
+++ pkg/branches/rosbus/vision/sharks/src/libsharks/sharks.cpp 2008-04-27 06:29:27 UTC (rev 206)
@@ -58,6 +58,11 @@
mot = new IPDCMOT(ipdcmot_ip, 0, false);
printf("done with ipdcmot construct\n");
jpeg_wrapper = new JpegWrapper();
+ laser_control = new LightweightSerial("/dev/ttyUSB0", 115200);
+ if (!laser_control)
+ printf("couldn't open laser control port\n");
+ else
+ printf("opened laser control port OK\n");
if (gui)
{
SDL_Init(SDL_INIT_VIDEO);
@@ -69,6 +74,11 @@
{
printf("sharks destructor\n");
mot->stop();
+ if (laser_control)
+ {
+ laser_control->write('Q'); // turn laser on
+ delete laser_control;
+ }
if (blit_prep)
SDL_FreeSurface(blit_prep);
if (gui)
@@ -360,6 +370,8 @@
}
int image_count = 1;
init_keyboard();
+ if (laser_control)
+ laser_control->write('1'); // turn laser on
mot->set_pos_deg_blocking(left_scan_extent);
mot->set_patrol(left_scan_extent, right_scan_extent, 1, 1);
printf("press any key to stop scanning\n");
@@ -387,6 +399,8 @@
break;
}
}
+ if (laser_control)
+ laser_control->write('Q'); // turn laser on
mot->set_pos_deg_blocking(left_laser_bound); // stop the patrol
char c = _getch();
printf("you pressed: [%c]\n", c);
Modified: pkg/branches/rosbus/vision/sharks/src/loneshark/config.txt
===================================================================
--- pkg/branches/rosbus/vision/sharks/src/loneshark/config.txt 2008-04-27 05:52:57 UTC (rev 205)
+++ pkg/branches/rosbus/vision/sharks/src/loneshark/config.txt 2008-04-27 06:29:27 UTC (rev 206)
@@ -1,4 +1,4 @@
-left_scan_extent 100
-right_scan_extent 125
-iris 770
+left_scan_extent 30
+right_scan_extent 75
+iris 300
focus 6930
Modified: pkg/branches/rosbus/vision/sharks/src/postprocess/extract_laser/Makefile
===================================================================
--- pkg/branches/rosbus/vision/sharks/src/postprocess/extract_laser/Makefile 2008-04-27 05:52:57 UTC (rev 205)
+++ pkg/branches/rosbus/vision/sharks/src/postprocess/extract_laser/Makefile 2008-04-27 06:29:27 UTC (rev 206)
@@ -1,4 +1,4 @@
SRC = extract_laser.cpp
OUT = extract_laser
PKG = sharks
-include $(shell $(ROS_ROOT)/rospack find roscpp)/make_include/node.mk
+include $(shell rospack find mk)/node.mk
Modified: pkg/branches/rosbus/vision/sharks/src/postprocess/extract_laser/extract_laser.cpp
===================================================================
--- pkg/branches/rosbus/vision/sharks/src/postprocess/extract_laser/extract_laser.cpp 2008-04-27 05:52:57 UTC (rev 205)
+++ pkg/branches/rosbus/vision/sharks/src/postprocess/extract_laser/extract_laser.cpp 2008-04-27 06:29:27 UTC (rev 206)
@@ -24,11 +24,12 @@
if (argc < 3)
{
printf("give at least two filenames.\n");
+ exit(1);
//bg = string("test_bg.jpg");
//fg = string("test_fg.jpg");
- bg = string("../../../stair__sharks_testdata/stapler_pen_apple/shark_00001_-024.99886_.jpg");
- fgs.push_back(string("../../../stair__sharks_testdata/stapler_pen_apple/shark_00500_-000.05039_.jpg"));
- fgs.push_back(string("../../../stair__sharks_testdata/stapler_pen_apple/shark_00501_-000.00508_.jpg"));
+ //bg = string("../../../stair__sharks_testdata/stapler_pen_apple/shark_00001_-024.99886_.jpg");
+ //fgs.push_back(string("../../../stair__sharks_testdata/stapler_pen_apple/shark_00500_-000.05039_.jpg"));
+ //fgs.push_back(string("../../../stair__sharks_testdata/stapler_pen_apple/shark_00501_-000.00508_.jpg"));
}
else
{
@@ -97,27 +98,37 @@
uint8_t *fg_p = (uint8_t *)fg_image->pixels + y*fg_image->pitch + x*3;
uint8_t bg_r = *(bg_p + bg_image->format->Rshift/8);
uint8_t fg_r = *(fg_p + fg_image->format->Rshift/8);
- *(fg_p + fg_image->format->Gshift/8) = 0;
- *(fg_p + bg_image->format->Bshift/8) = 0;
- int diff = fg_r - bg_r;
- if (diff > 30)
+ uint8_t bg_g = *(bg_p + bg_image->format->Gshift/8);
+ uint8_t fg_g = *(fg_p + fg_image->format->Gshift/8);
+ uint8_t bg_b = *(bg_p + bg_image->format->Bshift/8);
+ uint8_t fg_b = *(fg_p + fg_image->format->Bshift/8);
+ int added = abs(fg_r - bg_r) + abs(fg_g - bg_g) + abs(fg_b - bg_b);
+ if (added > 300)
{
- *(fg_p + fg_image->format->Rshift/8) = diff;
- centroid += (diff) * x;
- sum += diff;
+ *(fg_p + fg_image->format->Rshift/8) = added/3;
+ *(fg_p + fg_image->format->Gshift/8) = added/3;
+ *(fg_p + fg_image->format->Bshift/8) = added/3;
+ centroid += added * x;
+ sum += added;
}
else
+ {
*(fg_p + fg_image->format->Rshift/8) = 0;
+ *(fg_p + fg_image->format->Gshift/8) = 0;
+ *(fg_p + fg_image->format->Bshift/8) = 0;
+ }
}
centroid /= sum;
- if (sum > 200)
+ if (sum > 600)
{
//printf("centroid = %f sum = %f\n", centroid, sum);
int x = (int)floor(centroid);
if (x < 0) x = 0;
if (x >= fg_image->w) x = fg_image->w - 1;
uint8_t *fg_p = (uint8_t *)fg_image->pixels + y*fg_image->pitch + x*3;
+ *(fg_p + fg_image->format->Rshift/8) = 255;
*(fg_p + fg_image->format->Gshift/8) = 255;
+ *(fg_p + fg_image->format->Bshift/8) = 255;
fprintf(log, "%f %d %f %f\n", lang, y, centroid, sum);
}
}
Added: pkg/branches/rosbus/vision/sharks/src/postprocess/extract_laser/test
===================================================================
--- pkg/branches/rosbus/vision/sharks/src/postprocess/extract_laser/test (rev 0)
+++ pkg/branches/rosbus/vision/sharks/src/postprocess/extract_laser/test 2008-04-27 06:29:27 UTC (rev 206)
@@ -0,0 +1,6 @@
+#!/usr/bin/env ruby
+(puts "please enter a directory name"; exit) if ARGV.length != 1
+fn = Dir.glob(ARGV[0] + '/*.jpg').sort
+puts "#{fn.length} files"
+exit if fn.length == 0
+`./extract_laser #{fn[-1]} #{fn[0,fn.length-1].join(' ')}`
Property changes on: pkg/branches/rosbus/vision/sharks/src/postprocess/extract_laser/test
___________________________________________________________________
Name: svn:executable
+ *
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|