Revision: 6919
http://playerstage.svn.sourceforge.net/playerstage/?rev=6919&view=rev
Author: jeremy_asher
Date: 2008-07-24 00:03:46 +0000 (Thu, 24 Jul 2008)
Log Message:
-----------
libstageplugin: added fiducial test, updated other tests, fixed initialization
of sonar data in p_sonar
Modified Paths:
--------------
code/stage/trunk/libstageplugin/p_sonar.cc
code/stage/trunk/libstageplugin/test/CMakeLists.txt
code/stage/trunk/libstageplugin/test/lsp_test_laser.cc
code/stage/trunk/libstageplugin/test/lsp_test_position2d.cc
code/stage/trunk/libstageplugin/test/lsp_test_position2d.hh
code/stage/trunk/worlds/lsp_test.cfg
code/stage/trunk/worlds/lsp_test.world
Added Paths:
-----------
code/stage/trunk/libstageplugin/test/lsp_test_fiducial.cc
code/stage/trunk/libstageplugin/test/lsp_test_fiducial.hh
Modified: code/stage/trunk/libstageplugin/p_sonar.cc
===================================================================
--- code/stage/trunk/libstageplugin/p_sonar.cc 2008-07-24 00:00:30 UTC (rev
6918)
+++ code/stage/trunk/libstageplugin/p_sonar.cc 2008-07-24 00:03:46 UTC (rev
6919)
@@ -119,6 +119,9 @@
// fill in the geometry data formatted player-like
pgeom.poses[i].px = mod->sensors[i].pose.x;
pgeom.poses[i].py = mod->sensors[i].pose.y;
+ pgeom.poses[i].pz = 0;
+ pgeom.poses[i].ppitch = 0;
+ pgeom.poses[i].proll = 0;
pgeom.poses[i].pyaw = mod->sensors[i].pose.a;
}
Modified: code/stage/trunk/libstageplugin/test/CMakeLists.txt
===================================================================
--- code/stage/trunk/libstageplugin/test/CMakeLists.txt 2008-07-24 00:00:30 UTC
(rev 6918)
+++ code/stage/trunk/libstageplugin/test/CMakeLists.txt 2008-07-24 00:03:46 UTC
(rev 6919)
@@ -21,6 +21,8 @@
lsp_test_speech.hh
lsp_test_sonar.cc
lsp_test_sonar.hh
+ lsp_test_fiducial.cc
+ lsp_test_fiducial.hh
lsp_test_position2d.cc
lsp_test_position2d.hh
)
Added: code/stage/trunk/libstageplugin/test/lsp_test_fiducial.cc
===================================================================
--- code/stage/trunk/libstageplugin/test/lsp_test_fiducial.cc
(rev 0)
+++ code/stage/trunk/libstageplugin/test/lsp_test_fiducial.cc 2008-07-24
00:03:46 UTC (rev 6919)
@@ -0,0 +1,52 @@
+#include "lsp_test_fiducial.hh"
+
+using namespace lspTest;
+
+const int Fiducial::Samples = 361;
+
+void Fiducial::setUp() {
+ connect();
+ fiducialProxy = playerc_fiducial_create( client, 0 );
+ CPPUNIT_ASSERT( playerc_fiducial_subscribe( fiducialProxy,
PLAYER_OPEN_MODE ) == 0 );
+}
+
+
+void Fiducial::tearDown() {
+ CPPUNIT_ASSERT( playerc_fiducial_unsubscribe( fiducialProxy ) == 0 );
+ playerc_fiducial_destroy( fiducialProxy );
+ disconnect();
+}
+
+void Fiducial::testGeom() {
+ CPPUNIT_ASSERT( playerc_fiducial_get_geom( fiducialProxy ) == 0 );
+
+ // values from lsp_test.world
+ CPPUNIT_ASSERT_DOUBLES_EQUAL_MESSAGE( "pose (x)", -0.15,
fiducialProxy->fiducial_geom.pose.px, Delta );
+ CPPUNIT_ASSERT_DOUBLES_EQUAL_MESSAGE( "pose (y)", 0,
fiducialProxy->fiducial_geom.pose.py, Delta );
+ CPPUNIT_ASSERT_DOUBLES_EQUAL_MESSAGE( "pose (z)", 0,
fiducialProxy->fiducial_geom.pose.pz, Delta );
+ CPPUNIT_ASSERT_DOUBLES_EQUAL_MESSAGE( "pose (pitch)", 0,
fiducialProxy->fiducial_geom.pose.ppitch, Delta );
+ CPPUNIT_ASSERT_DOUBLES_EQUAL_MESSAGE( "pose (roll)", 0,
fiducialProxy->fiducial_geom.pose.proll, Delta );
+ CPPUNIT_ASSERT_DOUBLES_EQUAL_MESSAGE( "pose (yaw)", 0,
fiducialProxy->fiducial_geom.pose.pyaw, Delta );
+}
+
+void Fiducial::testData() {
+ playerc_client_read( client );
+
+ // verify that we're getting new data
+ fiducialProxy->info.fresh = 0;
+ playerc_client_read( client );
+ CPPUNIT_ASSERT_MESSAGE( "fiducial updating", fiducialProxy->info.fresh
== 1 );
+
+ CPPUNIT_ASSERT( fiducialProxy->info.datatime > 0 );
+// CPPUNIT_ASSERT_EQUAL_MESSAGE( "fiducials_count", 1,
fiducialProxy->fiducials_count ); // lsp_test.world
+
+ printf("\nfiducials_count: %d\n", fiducialProxy->fiducials_count );
+ for ( int i = 0; i < fiducialProxy->fiducials_count; i++ ) {
+// CPPUNIT_ASSERT( fiducialProxy->fiducials[i].id == 2 );
+ printf( "fiducial return: %d @ [ %6.4f %6.4f %6.4f ]\n",
+ fiducialProxy->fiducials[i].id,
+ fiducialProxy->fiducials[i].pose.px,
+ fiducialProxy->fiducials[i].pose.py,
+ fiducialProxy->fiducials[i].pose.pyaw );
+ }
+}
\ No newline at end of file
Added: code/stage/trunk/libstageplugin/test/lsp_test_fiducial.hh
===================================================================
--- code/stage/trunk/libstageplugin/test/lsp_test_fiducial.hh
(rev 0)
+++ code/stage/trunk/libstageplugin/test/lsp_test_fiducial.hh 2008-07-24
00:03:46 UTC (rev 6919)
@@ -0,0 +1,33 @@
+#ifndef _LSP_FIDUCIAL_TEST_H_
+#define _LSP_FIDUCIAL_TEST_H_
+
+#include <cppunit/extensions/HelperMacros.h>
+#include <libplayerc/playerc.h>
+
+#include "lsp_test_proxy.hh"
+
+namespace lspTest {
+ class Fiducial : public Proxy
+ {
+ CPPUNIT_TEST_SUITE( Fiducial );
+ CPPUNIT_TEST( testGeom );
+ CPPUNIT_TEST( testData );
+ CPPUNIT_TEST_SUITE_END();
+
+ protected:
+ playerc_fiducial_t* fiducialProxy;
+
+ void testConfig();
+ void testGeom();
+ void testData();
+
+ static const int Samples;
+ public:
+ void setUp();
+ void tearDown();
+ };
+};
+
+CPPUNIT_TEST_SUITE_REGISTRATION( lspTest::Fiducial );
+
+#endif
\ No newline at end of file
Modified: code/stage/trunk/libstageplugin/test/lsp_test_laser.cc
===================================================================
--- code/stage/trunk/libstageplugin/test/lsp_test_laser.cc 2008-07-24
00:00:30 UTC (rev 6918)
+++ code/stage/trunk/libstageplugin/test/lsp_test_laser.cc 2008-07-24
00:03:46 UTC (rev 6919)
@@ -42,8 +42,8 @@
void Laser::testGeom() {
CPPUNIT_ASSERT( playerc_laser_get_geom( laserProxy ) == 0 );
- // values from lsp_test.cfg/world and sick.inc
- CPPUNIT_ASSERT_DOUBLES_EQUAL_MESSAGE( "pose (x)", 0,
laserProxy->pose[0], Delta );
+ // values from lsp_test.world and sick.inc
+ CPPUNIT_ASSERT_DOUBLES_EQUAL_MESSAGE( "pose (x)", 0.03,
laserProxy->pose[0], Delta );
CPPUNIT_ASSERT_DOUBLES_EQUAL_MESSAGE( "pose (y)", 0,
laserProxy->pose[1], Delta );
CPPUNIT_ASSERT_DOUBLES_EQUAL_MESSAGE( "pose (angle)", 0,
laserProxy->pose[2], Delta );
CPPUNIT_ASSERT_DOUBLES_EQUAL_MESSAGE( "size (x)", 0.156,
laserProxy->size[0], Delta );
Modified: code/stage/trunk/libstageplugin/test/lsp_test_position2d.cc
===================================================================
--- code/stage/trunk/libstageplugin/test/lsp_test_position2d.cc 2008-07-24
00:00:30 UTC (rev 6918)
+++ code/stage/trunk/libstageplugin/test/lsp_test_position2d.cc 2008-07-24
00:03:46 UTC (rev 6919)
@@ -22,7 +22,7 @@
void Position2D::testGeom() {
CPPUNIT_ASSERT( playerc_position2d_get_geom( posProxy ) == 0 );
- // values from lsp_test.cfg/world (pioneer2dx)
+ // values from pioneer.inc
CPPUNIT_ASSERT_DOUBLES_EQUAL_MESSAGE( "geom pose (x)", -0.04,
posProxy->pose[0], Delta );
CPPUNIT_ASSERT_DOUBLES_EQUAL_MESSAGE( "geom pose (y)", 0,
posProxy->pose[1], Delta );
CPPUNIT_ASSERT_DOUBLES_EQUAL_MESSAGE( "geom pose (angle)", 0,
posProxy->pose[2], Delta );
Modified: code/stage/trunk/libstageplugin/test/lsp_test_position2d.hh
===================================================================
--- code/stage/trunk/libstageplugin/test/lsp_test_position2d.hh 2008-07-24
00:00:30 UTC (rev 6918)
+++ code/stage/trunk/libstageplugin/test/lsp_test_position2d.hh 2008-07-24
00:03:46 UTC (rev 6919)
@@ -12,7 +12,7 @@
CPPUNIT_TEST_SUB_SUITE( Position2D, Proxy );
CPPUNIT_TEST( testGeom );
CPPUNIT_TEST( testData );
- CPPUNIT_TEST( testMove );
+// CPPUNIT_TEST( testMove );
CPPUNIT_TEST_SUITE_END();
protected:
Modified: code/stage/trunk/worlds/lsp_test.cfg
===================================================================
--- code/stage/trunk/worlds/lsp_test.cfg 2008-07-24 00:00:30 UTC (rev
6918)
+++ code/stage/trunk/worlds/lsp_test.cfg 2008-07-24 00:03:46 UTC (rev
6919)
@@ -16,7 +16,7 @@
driver
(
name "stage"
- provides [ "position2d:0" "speech:0" "laser:0" "sonar:0" ]
+ provides [ "position2d:0" "speech:0" "laser:0" "sonar:0" "fiducial:0" ]
model "r0"
)
Modified: code/stage/trunk/worlds/lsp_test.world
===================================================================
--- code/stage/trunk/worlds/lsp_test.world 2008-07-24 00:00:30 UTC (rev
6918)
+++ code/stage/trunk/worlds/lsp_test.world 2008-07-24 00:03:46 UTC (rev
6919)
@@ -26,13 +26,43 @@
bitmap "bitmaps/cave.png"
)
-pioneer2dx
+# extend the pioneer2dx definition from pioneer.inc
+#
+define trickedoutpioneer pioneer2dx
+(
+ ranger()
+
+ sicklaser( pose [ 0.03 0 0 0 ] )
+
+ fiducial
+ (
+ pose [ -0.15 0 0 0 ]
+ range_max 8
+ range_max_id 5
+ )
+
+ blobfinder
+ (
+ channel_count 6
+ channels [ "red" "blue" "green" "cyan" "yellow" "magenta" ]
+ )
+
+ localization "odom"
+ localization_origin [ 0 0 0 ]
+)
+
+trickedoutpioneer
(
- # can refer to the robot by this name
name "r0"
- localization "odom"
+ fiducial_return 1
pose [ -7.490 -7.490 0 45.000 ]
- sicklaser()
)
+trickedoutpioneer
+(
+ name "r1"
+
+ fiducial_return 2
+ pose [ -5.085 -7.193 0 144.304 ]
+)
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Playerstage-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/playerstage-commit