toon-members
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Toon-members] tag Makefile.am Makefile.in libtool src/handeye...


From: Gerhard Reitmayr
Subject: [Toon-members] tag Makefile.am Makefile.in libtool src/handeye...
Date: Fri, 15 Aug 2008 13:24:49 +0000

CVSROOT:        /cvsroot/toon
Module name:    tag
Changes by:     Gerhard Reitmayr <gerhard>      08/08/15 13:24:49

Modified files:
        .              : Makefile.am Makefile.in libtool 
Added files:
        src            : handeye.cpp 
        tag            : handeye.h 

Log message:
        added hand eye calibration routines

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/tag/Makefile.am?cvsroot=toon&r1=1.9&r2=1.10
http://cvs.savannah.gnu.org/viewcvs/tag/Makefile.in?cvsroot=toon&r1=1.9&r2=1.10
http://cvs.savannah.gnu.org/viewcvs/tag/libtool?cvsroot=toon&r1=1.10&r2=1.11
http://cvs.savannah.gnu.org/viewcvs/tag/src/handeye.cpp?cvsroot=toon&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/tag/tag/handeye.h?cvsroot=toon&rev=1.1

Patches:
Index: Makefile.am
===================================================================
RCS file: /cvsroot/toon/tag/Makefile.am,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -r1.9 -r1.10
--- Makefile.am 31 Mar 2008 16:35:42 -0000      1.9
+++ Makefile.am 15 Aug 2008 13:24:48 -0000      1.10
@@ -1,7 +1,8 @@
 # the library we want to create and its source files
 
 lib_LTLIBRARIES     = libtoontag.la
-libtoontag_la_SOURCES   = src/quartic.cpp src/threepointpose.cpp 
src/absorient.cpp src/fourpointpose.cpp  
+libtoontag_la_SOURCES   = src/quartic.cpp src/threepointpose.cpp 
src/absorient.cpp \
+                          src/fourpointpose.cpp  src/handeye.cpp
 
 # the header files to be installed
 pkginclude_HEADERS  = \
@@ -22,7 +23,8 @@
        tag/fn.h \
        tag/intersection.h \
        tag/helpers.h \
-       tag/unscented.h
+       tag/unscented.h \
+       tag/handeye.h
 
 docs:
        doxygen Doxyfile

Index: Makefile.in
===================================================================
RCS file: /cvsroot/toon/tag/Makefile.in,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -r1.9 -r1.10
--- Makefile.in 10 Jul 2008 10:56:56 -0000      1.9
+++ Makefile.in 15 Aug 2008 13:24:48 -0000      1.10
@@ -59,7 +59,7 @@
 LTLIBRARIES = $(lib_LTLIBRARIES)
 libtoontag_la_LIBADD =
 am_libtoontag_la_OBJECTS = quartic.lo threepointpose.lo absorient.lo \
-       fourpointpose.lo
+       fourpointpose.lo handeye.lo
 libtoontag_la_OBJECTS = $(am_libtoontag_la_OBJECTS)
 DEFAULT_INCLUDES = address@hidden@
 depcomp = $(SHELL) $(top_srcdir)/depcomp
@@ -197,7 +197,9 @@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 lib_LTLIBRARIES = libtoontag.la
-libtoontag_la_SOURCES = src/quartic.cpp src/threepointpose.cpp 
src/absorient.cpp src/fourpointpose.cpp  
+libtoontag_la_SOURCES = src/quartic.cpp src/threepointpose.cpp 
src/absorient.cpp \
+                          src/fourpointpose.cpp  src/handeye.cpp
+
 
 # the header files to be installed
 pkginclude_HEADERS = \
@@ -218,7 +220,8 @@
        tag/fn.h \
        tag/intersection.h \
        tag/helpers.h \
-       tag/unscented.h
+       tag/unscented.h \
+       tag/handeye.h
 
 all: all-am
 
@@ -295,6 +298,7 @@
 
 @AMDEP_TRUE@@am__include@ @address@hidden/$(DEPDIR)/address@hidden@
 @AMDEP_TRUE@@am__include@ @address@hidden/$(DEPDIR)/address@hidden@
address@hidden@@am__include@ @address@hidden/$(DEPDIR)/address@hidden@
 @AMDEP_TRUE@@am__include@ @address@hidden/$(DEPDIR)/address@hidden@
 @AMDEP_TRUE@@am__include@ @address@hidden/$(DEPDIR)/address@hidden@
 
@@ -347,6 +351,13 @@
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) 
$(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) 
--mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) 
$(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o fourpointpose.lo `test -f 
'src/fourpointpose.cpp' || echo '$(srcdir)/'`src/fourpointpose.cpp
 
+handeye.lo: src/handeye.cpp
address@hidden@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) 
--mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) 
$(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT handeye.lo -MD -MP -MF 
$(DEPDIR)/handeye.Tpo -c -o handeye.lo `test -f 'src/handeye.cpp' || echo 
'$(srcdir)/'`src/handeye.cpp
address@hidden@ mv -f $(DEPDIR)/handeye.Tpo $(DEPDIR)/handeye.Plo
address@hidden@@am__fastdepCXX_FALSE@   source='src/handeye.cpp' 
object='handeye.lo' libtool=yes @AMDEPBACKSLASH@
address@hidden@@am__fastdepCXX_FALSE@   DEPDIR=$(DEPDIR) $(CXXDEPMODE) 
$(depcomp) @AMDEPBACKSLASH@
address@hidden@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) 
--mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) 
$(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o handeye.lo `test -f 
'src/handeye.cpp' || echo '$(srcdir)/'`src/handeye.cpp
+
 mostlyclean-libtool:
        -rm -f *.lo
 

Index: libtool
===================================================================
RCS file: /cvsroot/toon/tag/libtool,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -b -r1.10 -r1.11
--- libtool     20 May 2008 02:15:29 -0000      1.10
+++ libtool     15 Aug 2008 13:24:48 -0000      1.11
@@ -30,21 +30,21 @@
 # the same distribution terms that you use for the rest of that program.
 
 # A sed program that does not truncate output.
-SED="/bin/sed"
+SED="/usr/bin/sed"
 
 # Sed that helps us avoid accidentally triggering echo(1) options like -n.
-Xsed="/bin/sed -e 1s/^X//"
+Xsed="/usr/bin/sed -e 1s/^X//"
 
 # The HP-UX ksh and POSIX shell print the target directory to stdout
 # if CDPATH is set.
 (unset CDPATH) >/dev/null 2>&1 && unset CDPATH
 
 # The names of the tagged configurations supported by this script.
-available_tags=" CXX F77"
+available_tags=" CXX"
 
 # ### BEGIN LIBTOOL CONFIG
 
-# Libtool was configured on host bigfrog.lanl.gov:
+# Libtool was configured on host cpc2-cmbg6-0-0-cust797.cmbg.cable.ntl.com:
 
 # Shell to use when invoking shell scripts.
 SHELL="/bin/sh"
@@ -62,20 +62,20 @@
 allow_libtool_libs_with_static_runtimes=no
 
 # Whether or not to optimize for fast installation.
-fast_install=yes
+fast_install=needless
 
 # The host system.
 host_alias=
-host=x86_64-unknown-linux
-host_os=linux
+host=i686-apple-darwin9.4.0
+host_os=darwin9.4.0
 
 # The build system.
 build_alias=
-build=x86_64-unknown-linux
-build_os=linux
+build=i686-apple-darwin9.4.0
+build_os=darwin9.4.0
 
 # An echo program that does not interpret backslashes.
-echo="echo"
+echo="/bin/echo"
 
 # The archiver.
 AR="ar"
@@ -94,16 +94,16 @@
 with_gcc=yes
 
 # An ERE matcher.
-EGREP="/bin/grep -E"
+EGREP="/usr/bin/grep -E"
 
 # The linker used to build libraries.
-LD="/usr/bin/ld -m elf_x86_64"
+LD="/usr/libexec/gcc/i686-apple-darwin9/4.0.1/ld"
 
 # Whether we need hard or soft links.
 LN_S="ln -s"
 
 # A BSD-compatible nm program.
-NM="/usr/bin/nm -B"
+NM="/usr/bin/nm -p"
 
 # A symbol stripping program
 STRIP="strip"
@@ -125,7 +125,7 @@
 
 # How to create reloadable object files.
 reload_flag=" -r"
-reload_cmds="\$LD\$reload_flag -o \$output\$reload_objs"
+reload_cmds="\$LTCC \$LTCFLAGS -nostdlib \${wl}-r -o \$output\$reload_objs"
 
 # How to pass a linker flag through the compiler.
 wl="-Wl,"
@@ -137,17 +137,17 @@
 libext="a"
 
 # Shared library suffix (normally ".so").
-shrext_cmds='.so'
+shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
 
 # Executable file suffix (normally "").
 exeext=""
 
 # Additional compiler flags for building library objects.
-pic_flag=" -fPIC -DPIC"
+pic_flag=" -fno-common -DPIC"
 pic_mode=default
 
 # What is the maximum length of a command?
-max_cmd_len=98304
+max_cmd_len=196608
 
 # Does compiler simultaneously support -c and -o options?
 compiler_c_o="yes"
@@ -171,32 +171,32 @@
 dlopen_self_static=unknown
 
 # Compiler flag to prevent dynamic linking.
-link_static_flag="-static"
+link_static_flag=""
 
 # Compiler flag to turn off builtin functions.
 no_builtin_flag=" -fno-builtin"
 
 # Compiler flag to allow reflexive dlopens.
-export_dynamic_flag_spec="\${wl}--export-dynamic"
+export_dynamic_flag_spec=""
 
 # Compiler flag to generate shared objects directly from archives.
-whole_archive_flag_spec="\${wl}--whole-archive\$convenience 
\${wl}--no-whole-archive"
+whole_archive_flag_spec=""
 
 # Compiler flag to generate thread-safe objects.
 thread_safe_flag_spec=""
 
 # Library versioning type.
-version_type=linux
+version_type=darwin
 
 # Format of library name prefix.
 libname_spec="lib\$name"
 
 # List of archive names.  First name is the real one, the rest are links.
 # The last name is the one that the linker finds with -lNAME.
-library_names_spec="\${libname}\${release}\${shared_ext}\$versuffix 
\${libname}\${release}\${shared_ext}\$major \$libname\${shared_ext}"
+library_names_spec="\${libname}\${release}\${versuffix}\$shared_ext 
\${libname}\${release}\${major}\$shared_ext \${libname}\$shared_ext"
 
 # The coded name of the library, if different from the real name.
-soname_spec="\${libname}\${release}\${shared_ext}\$major"
+soname_spec="\${libname}\${release}\${major}\$shared_ext"
 
 # Commands used to build and install an old-style archive.
 RANLIB="ranlib"
@@ -211,21 +211,18 @@
 old_archive_from_expsyms_cmds=""
 
 # Commands used to build and install a shared archive.
-archive_cmds="\$CC -shared \$libobjs \$deplibs \$compiler_flags \${wl}-soname 
\$wl\$soname -o \$lib"
-archive_expsym_cmds="\$echo \\\"{ global:\\\" > \$output_objdir/\$libname.ver~
-  cat \$export_symbols | sed -e \\\"s/\\\\(.*\\\\)/\\\\1;/\\\" >> 
\$output_objdir/\$libname.ver~
-  \$echo \\\"local: *; };\\\" >> \$output_objdir/\$libname.ver~
-         \$CC -shared \$libobjs \$deplibs \$compiler_flags \${wl}-soname 
\$wl\$soname \${wl}-version-script \${wl}\$output_objdir/\$libname.ver -o \$lib"
+archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs 
\$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring"
+archive_expsym_cmds="sed -e \\\"s,#.*,,\\\" -e \\\"s,^[    ]*,,\\\" -e 
\\\"s,^\\\\(..*\\\\),_&,\\\" < \$export_symbols > 
\$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib 
\$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags 
-install_name \$rpath/\$soname \$verstring~nmedit -s 
\$output_objdir/\${libname}-symbols.expsym \${lib}"
 postinstall_cmds=""
 postuninstall_cmds=""
 
 # Commands used to build a loadable module (assumed same as above if empty)
-module_cmds=""
-module_expsym_cmds=""
+module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs 
\$deplibs\$compiler_flags"
+module_expsym_cmds="sed -e \\\"s,#.*,,\\\" -e \\\"s,^[    ]*,,\\\" -e 
\\\"s,^\\\\(..*\\\\),_&,\\\" < \$export_symbols > 
\$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag  -o 
\$lib -bundle \$libobjs \$deplibs\$compiler_flags~nmedit -s 
\$output_objdir/\${libname}-symbols.expsym \${lib}"
 
 # Commands to strip libraries.
-old_striplib="strip --strip-debug"
-striplib="strip --strip-unneeded"
+old_striplib="strip -S"
+striplib="strip -x"
 
 # Dependencies to place before the objects being linked to create a
 # shared library.
@@ -254,19 +251,19 @@
 file_magic_cmd="\$MAGIC_CMD"
 
 # Flag that allows shared libraries with undefined symbols to be built.
-allow_undefined_flag=""
+allow_undefined_flag="\${wl}-flat_namespace \${wl}-undefined \${wl}suppress"
 
 # Flag that forces no undefined symbols.
 no_undefined_flag=""
 
 # Commands used to finish a libtool library installation in a directory.
-finish_cmds="PATH=\\\"\\\$PATH:/sbin\\\" ldconfig -n \$libdir"
+finish_cmds=""
 
 # Same as above, but a single script fragment to be evaled but not shown.
 finish_eval=""
 
 # Take the output of nm and produce a listing of raw symbols and C names.
-global_symbol_pipe="sed -n -e 's/^.*[  ]\\([ABCDGIRSTW][ABCDGIRSTW]*\\)[       
][      ]*\\([_A-Za-z][_A-Za-z0-9]*\\)\$/\\1 \\2 \\2/p'"
+global_symbol_pipe="sed -n -e 's/^.*[  ]\\([BCDEGRST][BCDEGRST]*\\)[   ][      
]*_\\([_A-Za-z][_A-Za-z0-9]*\\)\$/\\1 _\\2 \\2/p'"
 
 # Transform the output of nm in a proper C declaration
 global_symbol_to_cdecl="sed -n -e 's/^. .* \\(.*\\)\$/extern int \\1;/p'"
@@ -275,23 +272,23 @@
 global_symbol_to_c_name_address="sed -n -e 's/^: \\([^ ]*\\) \$/  
{\\\"\\1\\\", (lt_ptr) 0},/p' -e 's/^[BCDEGRST] \\([^ ]*\\) \\([^ ]*\\)\$/  
{\"\\2\", (lt_ptr) \\&\\2},/p'"
 
 # This is the shared library runtime path variable.
-runpath_var=LD_RUN_PATH
+runpath_var=
 
 # This is the shared library path variable.
-shlibpath_var=LD_LIBRARY_PATH
+shlibpath_var=DYLD_LIBRARY_PATH
 
 # Is shlibpath searched before the hard-coded library search path?
-shlibpath_overrides_runpath=no
+shlibpath_overrides_runpath=yes
 
 # How to hardcode a shared library path into an executable.
 hardcode_action=immediate
 
 # Whether we should hardcode library paths into libraries.
-hardcode_into_libs=yes
+hardcode_into_libs=no
 
 # Flag to hardcode $libdir into a binary during linking.
 # This must work even if $libdir does not exist.
-hardcode_libdir_flag_spec="\${wl}--rpath \${wl}\$libdir"
+hardcode_libdir_flag_spec=""
 
 # If ld is used when linking, flag to hardcode $libdir into
 # a binary during linking. This must work even if $libdir does
@@ -315,20 +312,20 @@
 
 # Set to yes if building a shared library automatically hardcodes DIR into the 
library
 # and all subsequent libraries and executables linked against it.
-hardcode_automatic=no
+hardcode_automatic=yes
 
 # Variables whose values should be saved in libtool wrapper scripts and
 # restored at relink time.
-variables_saved_for_relink="PATH LD_LIBRARY_PATH LD_RUN_PATH GCC_EXEC_PREFIX 
COMPILER_PATH LIBRARY_PATH"
+variables_saved_for_relink="PATH DYLD_LIBRARY_PATH  GCC_EXEC_PREFIX 
COMPILER_PATH LIBRARY_PATH"
 
 # Whether libtool must link a program against all its dependency libraries.
-link_all_deplibs=unknown
+link_all_deplibs=yes
 
 # Compile-time system search path for libraries
-sys_lib_search_path_spec="/usr/lib/gcc/x86_64-redhat-linux/4.1.2 /usr/lib64 
/lib64"
+sys_lib_search_path_spec="/usr/lib/i686-apple-darwin9/4.0.1 /usr/lib 
/usr/lib/gcc/i686-apple-darwin9/4.0.1 /usr/local/lib"
 
 # Run-time system search path for libraries
-sys_lib_dlsearch_path_spec="/lib /usr/lib /usr/lib/R/lib /usr/lib64/R/lib 
/usr/lib/cernlib/2006-g77/lib /usr/lib64/cernlib/2006-g77/lib 
/usr/lib/cernlib/2006/lib /usr/lib64/cernlib/2006/lib 
/packages/lib/intel/fce/10.1.013/lib /usr/lib/mysql /usr/lib64/mysql 
/usr/lib/octave-3.0.0 /usr/lib64/octave-3.0.0 /usr/lib/qt-3.3/lib 
/usr/lib64/qt-3.3/lib /usr/lib64/qt4/lib64 /usr/lib/wine/ /usr/local/lib 
/usr/local/lib64 "
+sys_lib_dlsearch_path_spec="/usr/local/lib /lib /usr/lib"
 
 # Fix the shell variable $srcfile for the compiler.
 fix_srcfile_path=""
@@ -6812,7 +6809,7 @@
 # End:
 # ### BEGIN LIBTOOL TAG CONFIG: CXX
 
-# Libtool was configured on host bigfrog.lanl.gov:
+# Libtool was configured on host cpc2-cmbg6-0-0-cust797.cmbg.cable.ntl.com:
 
 # Shell to use when invoking shell scripts.
 SHELL="/bin/sh"
@@ -6830,20 +6827,20 @@
 allow_libtool_libs_with_static_runtimes=no
 
 # Whether or not to optimize for fast installation.
-fast_install=yes
+fast_install=needless
 
 # The host system.
 host_alias=
-host=x86_64-unknown-linux
-host_os=linux
+host=i686-apple-darwin9.4.0
+host_os=darwin9.4.0
 
 # The build system.
 build_alias=
-build=x86_64-unknown-linux
-build_os=linux
+build=i686-apple-darwin9.4.0
+build_os=darwin9.4.0
 
 # An echo program that does not interpret backslashes.
-echo="echo"
+echo="/bin/echo"
 
 # The archiver.
 AR="ar"
@@ -6856,22 +6853,22 @@
 LTCFLAGS="-g -O2"
 
 # A language-specific compiler.
-CC="g++"
+CC="g++-4.2"
 
 # Is the compiler the GNU C compiler?
 with_gcc=yes
 
 # An ERE matcher.
-EGREP="/bin/grep -E"
+EGREP="/usr/bin/grep -E"
 
 # The linker used to build libraries.
-LD="/usr/bin/ld -m elf_x86_64"
+LD="/usr/libexec/gcc/i686-apple-darwin9/4.0.1/ld"
 
 # Whether we need hard or soft links.
 LN_S="ln -s"
 
 # A BSD-compatible nm program.
-NM="/usr/bin/nm -B"
+NM="/usr/bin/nm -p"
 
 # A symbol stripping program
 STRIP="strip"
@@ -6893,7 +6890,7 @@
 
 # How to create reloadable object files.
 reload_flag=" -r"
-reload_cmds="\$LD\$reload_flag -o \$output\$reload_objs"
+reload_cmds="\$LTCC \$LTCFLAGS -nostdlib \${wl}-r -o \$output\$reload_objs"
 
 # How to pass a linker flag through the compiler.
 wl="-Wl,"
@@ -6905,17 +6902,17 @@
 libext="a"
 
 # Shared library suffix (normally ".so").
-shrext_cmds='.so'
+shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
 
 # Executable file suffix (normally "").
 exeext=""
 
 # Additional compiler flags for building library objects.
-pic_flag=" -fPIC -DPIC"
+pic_flag=" -fno-common -DPIC"
 pic_mode=default
 
 # What is the maximum length of a command?
-max_cmd_len=98304
+max_cmd_len=196608
 
 # Does compiler simultaneously support -c and -o options?
 compiler_c_o="yes"
@@ -6939,32 +6936,32 @@
 dlopen_self_static=unknown
 
 # Compiler flag to prevent dynamic linking.
-link_static_flag="-static"
+link_static_flag=""
 
 # Compiler flag to turn off builtin functions.
 no_builtin_flag=" -fno-builtin"
 
 # Compiler flag to allow reflexive dlopens.
-export_dynamic_flag_spec="\${wl}--export-dynamic"
+export_dynamic_flag_spec=""
 
 # Compiler flag to generate shared objects directly from archives.
-whole_archive_flag_spec="\${wl}--whole-archive\$convenience 
\${wl}--no-whole-archive"
+whole_archive_flag_spec=""
 
 # Compiler flag to generate thread-safe objects.
 thread_safe_flag_spec=""
 
 # Library versioning type.
-version_type=linux
+version_type=darwin
 
 # Format of library name prefix.
 libname_spec="lib\$name"
 
 # List of archive names.  First name is the real one, the rest are links.
 # The last name is the one that the linker finds with -lNAME.
-library_names_spec="\${libname}\${release}\${shared_ext}\$versuffix 
\${libname}\${release}\${shared_ext}\$major \$libname\${shared_ext}"
+library_names_spec="\${libname}\${release}\${versuffix}\$shared_ext 
\${libname}\${release}\${major}\$shared_ext \${libname}\$shared_ext"
 
 # The coded name of the library, if different from the real name.
-soname_spec="\${libname}\${release}\${shared_ext}\$major"
+soname_spec="\${libname}\${release}\${major}\$shared_ext"
 
 # Commands used to build and install an old-style archive.
 RANLIB="ranlib"
@@ -6979,326 +6976,18 @@
 old_archive_from_expsyms_cmds=""
 
 # Commands used to build and install a shared archive.
-archive_cmds="\$CC -shared -nostdlib \$predep_objects \$libobjs \$deplibs 
\$postdep_objects \$compiler_flags \${wl}-soname \$wl\$soname -o \$lib"
-archive_expsym_cmds="\$CC -shared -nostdlib \$predep_objects \$libobjs 
\$deplibs \$postdep_objects \$compiler_flags \${wl}-soname \$wl\$soname 
\${wl}-retain-symbols-file \$wl\$export_symbols -o \$lib"
+archive_cmds="\$CC -dynamiclib -single_module \$allow_undefined_flag -o \$lib 
\$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring"
+archive_expsym_cmds="sed -e \\\"s,#.*,,\\\" -e \\\"s,^[    ]*,,\\\" -e 
\\\"s,^\\\\(..*\\\\),_&,\\\" < \$export_symbols > 
\$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib -single_module 
\$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags 
-install_name \$rpath/\$soname \$verstring~nmedit -s 
\$output_objdir/\${libname}-symbols.expsym \${lib}"
 postinstall_cmds=""
 postuninstall_cmds=""
 
 # Commands used to build a loadable module (assumed same as above if empty)
-module_cmds=""
-module_expsym_cmds=""
+module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs 
\$deplibs\$compiler_flags"
+module_expsym_cmds="sed -e \\\"s,#.*,,\\\" -e \\\"s,^[    ]*,,\\\" -e 
\\\"s,^\\\\(..*\\\\),_&,\\\" < \$export_symbols > 
\$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag  -o 
\$lib -bundle \$libobjs \$deplibs\$compiler_flags~nmedit -s 
\$output_objdir/\${libname}-symbols.expsym \${lib}"
 
 # Commands to strip libraries.
-old_striplib="strip --strip-debug"
-striplib="strip --strip-unneeded"
-
-# Dependencies to place before the objects being linked to create a
-# shared library.
-predep_objects="/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/crti.o
 /usr/lib/gcc/x86_64-redhat-linux/4.1.2/crtbeginS.o"
-
-# Dependencies to place after the objects being linked to create a
-# shared library.
-postdep_objects="/usr/lib/gcc/x86_64-redhat-linux/4.1.2/crtendS.o 
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/crtn.o"
-
-# Dependencies to place before the objects being linked to create a
-# shared library.
-predeps=""
-
-# Dependencies to place after the objects being linked to create a
-# shared library.
-postdeps="-lstdc++ -lm -lgcc_s -lc -lgcc_s"
-
-# The library search path used internally by the compiler when linking
-# a shared library.
-compiler_lib_search_path="-L/usr/lib/gcc/x86_64-redhat-linux/4.1.2 
-L/usr/lib/gcc/x86_64-redhat-linux/4.1.2 
-L/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64 -L/lib/../lib64 
-L/usr/lib/../lib64"
-
-# Method to check whether dependent libraries are shared objects.
-deplibs_check_method="pass_all"
-
-# Command to use when deplibs_check_method == file_magic.
-file_magic_cmd="\$MAGIC_CMD"
-
-# Flag that allows shared libraries with undefined symbols to be built.
-allow_undefined_flag=""
-
-# Flag that forces no undefined symbols.
-no_undefined_flag=""
-
-# Commands used to finish a libtool library installation in a directory.
-finish_cmds="PATH=\\\"\\\$PATH:/sbin\\\" ldconfig -n \$libdir"
-
-# Same as above, but a single script fragment to be evaled but not shown.
-finish_eval=""
-
-# Take the output of nm and produce a listing of raw symbols and C names.
-global_symbol_pipe="sed -n -e 's/^.*[  ]\\([ABCDGIRSTW][ABCDGIRSTW]*\\)[       
][      ]*\\([_A-Za-z][_A-Za-z0-9]*\\)\$/\\1 \\2 \\2/p'"
-
-# Transform the output of nm in a proper C declaration
-global_symbol_to_cdecl="sed -n -e 's/^. .* \\(.*\\)\$/extern int \\1;/p'"
-
-# Transform the output of nm in a C name address pair
-global_symbol_to_c_name_address="sed -n -e 's/^: \\([^ ]*\\) \$/  
{\\\"\\1\\\", (lt_ptr) 0},/p' -e 's/^[BCDEGRST] \\([^ ]*\\) \\([^ ]*\\)\$/  
{\"\\2\", (lt_ptr) \\&\\2},/p'"
-
-# This is the shared library runtime path variable.
-runpath_var=LD_RUN_PATH
-
-# This is the shared library path variable.
-shlibpath_var=LD_LIBRARY_PATH
-
-# Is shlibpath searched before the hard-coded library search path?
-shlibpath_overrides_runpath=no
-
-# How to hardcode a shared library path into an executable.
-hardcode_action=immediate
-
-# Whether we should hardcode library paths into libraries.
-hardcode_into_libs=yes
-
-# Flag to hardcode $libdir into a binary during linking.
-# This must work even if $libdir does not exist.
-hardcode_libdir_flag_spec="\${wl}--rpath \${wl}\$libdir"
-
-# If ld is used when linking, flag to hardcode $libdir into
-# a binary during linking. This must work even if $libdir does
-# not exist.
-hardcode_libdir_flag_spec_ld=""
-
-# Whether we need a single -rpath flag with a separated argument.
-hardcode_libdir_separator=""
-
-# Set to yes if using DIR/libNAME during linking hardcodes DIR into the
-# resulting binary.
-hardcode_direct=no
-
-# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
-# resulting binary.
-hardcode_minus_L=no
-
-# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
-# the resulting binary.
-hardcode_shlibpath_var=unsupported
-
-# Set to yes if building a shared library automatically hardcodes DIR into the 
library
-# and all subsequent libraries and executables linked against it.
-hardcode_automatic=no
-
-# Variables whose values should be saved in libtool wrapper scripts and
-# restored at relink time.
-variables_saved_for_relink="PATH LD_LIBRARY_PATH LD_RUN_PATH GCC_EXEC_PREFIX 
COMPILER_PATH LIBRARY_PATH"
-
-# Whether libtool must link a program against all its dependency libraries.
-link_all_deplibs=unknown
-
-# Compile-time system search path for libraries
-sys_lib_search_path_spec="/usr/lib/gcc/x86_64-redhat-linux/4.1.2 /usr/lib64 
/lib64"
-
-# Run-time system search path for libraries
-sys_lib_dlsearch_path_spec="/lib /usr/lib /usr/lib/R/lib /usr/lib64/R/lib 
/usr/lib/cernlib/2006-g77/lib /usr/lib64/cernlib/2006-g77/lib 
/usr/lib/cernlib/2006/lib /usr/lib64/cernlib/2006/lib 
/packages/lib/intel/fce/10.1.013/lib /usr/lib/mysql /usr/lib64/mysql 
/usr/lib/octave-3.0.0 /usr/lib64/octave-3.0.0 /usr/lib/qt-3.3/lib 
/usr/lib64/qt-3.3/lib /usr/lib64/qt4/lib64 /usr/lib/wine/ /usr/local/lib 
/usr/local/lib64 "
-
-# Fix the shell variable $srcfile for the compiler.
-fix_srcfile_path=""
-
-# Set to yes if exported symbols are required.
-always_export_symbols=no
-
-# The commands to list exported symbols.
-export_symbols_cmds="\$NM \$libobjs \$convenience | \$global_symbol_pipe | 
\$SED 's/.* //' | sort | uniq > \$export_symbols"
-
-# The commands to extract the exported symbol list from a shared archive.
-extract_expsyms_cmds=""
-
-# Symbols that should not be listed in the preloaded symbols.
-exclude_expsyms=""
-
-# Symbols that must always be exported.
-include_expsyms=""
-
-# ### END LIBTOOL TAG CONFIG: CXX
-
-# ### BEGIN LIBTOOL TAG CONFIG: F77
-
-# Libtool was configured on host bigfrog.lanl.gov:
-
-# Shell to use when invoking shell scripts.
-SHELL="/bin/sh"
-
-# Whether or not to build shared libraries.
-build_libtool_libs=yes
-
-# Whether or not to build static libraries.
-build_old_libs=yes
-
-# Whether or not to add -lc for building shared libraries.
-build_libtool_need_lc=no
-
-# Whether or not to disallow shared libs when runtime libs are static
-allow_libtool_libs_with_static_runtimes=no
-
-# Whether or not to optimize for fast installation.
-fast_install=yes
-
-# The host system.
-host_alias=
-host=x86_64-unknown-linux
-host_os=linux
-
-# The build system.
-build_alias=
-build=x86_64-unknown-linux
-build_os=linux
-
-# An echo program that does not interpret backslashes.
-echo="echo"
-
-# The archiver.
-AR="ar"
-AR_FLAGS="cru"
-
-# A C compiler.
-LTCC="gcc"
-
-# LTCC compiler flags.
-LTCFLAGS="-g -O2"
-
-# A language-specific compiler.
-CC="g77"
-
-# Is the compiler the GNU C compiler?
-with_gcc=yes
-
-# An ERE matcher.
-EGREP="/bin/grep -E"
-
-# The linker used to build libraries.
-LD="/usr/bin/ld -m elf_x86_64"
-
-# Whether we need hard or soft links.
-LN_S="ln -s"
-
-# A BSD-compatible nm program.
-NM="/usr/bin/nm -B"
-
-# A symbol stripping program
-STRIP="strip"
-
-# Used to examine libraries when file_magic_cmd begins "file"
-MAGIC_CMD=file
-
-# Used on cygwin: DLL creation program.
-DLLTOOL="dlltool"
-
-# Used on cygwin: object dumper.
-OBJDUMP="objdump"
-
-# Used on cygwin: assembler.
-AS="as"
-
-# The name of the directory that contains temporary libtool files.
-objdir=.libs
-
-# How to create reloadable object files.
-reload_flag=" -r"
-reload_cmds="\$LD\$reload_flag -o \$output\$reload_objs"
-
-# How to pass a linker flag through the compiler.
-wl="-Wl,"
-
-# Object file suffix (normally "o").
-objext="o"
-
-# Old archive suffix (normally "a").
-libext="a"
-
-# Shared library suffix (normally ".so").
-shrext_cmds='.so'
-
-# Executable file suffix (normally "").
-exeext=""
-
-# Additional compiler flags for building library objects.
-pic_flag=" -fPIC"
-pic_mode=default
-
-# What is the maximum length of a command?
-max_cmd_len=98304
-
-# Does compiler simultaneously support -c and -o options?
-compiler_c_o="yes"
-
-# Must we lock files when doing compilation?
-need_locks="no"
-
-# Do we need the lib prefix for modules?
-need_lib_prefix=no
-
-# Do we need a version for libraries?
-need_version=no
-
-# Whether dlopen is supported.
-dlopen_support=unknown
-
-# Whether dlopen of programs is supported.
-dlopen_self=unknown
-
-# Whether dlopen of statically linked programs is supported.
-dlopen_self_static=unknown
-
-# Compiler flag to prevent dynamic linking.
-link_static_flag="-static"
-
-# Compiler flag to turn off builtin functions.
-no_builtin_flag=""
-
-# Compiler flag to allow reflexive dlopens.
-export_dynamic_flag_spec="\${wl}--export-dynamic"
-
-# Compiler flag to generate shared objects directly from archives.
-whole_archive_flag_spec="\${wl}--whole-archive\$convenience 
\${wl}--no-whole-archive"
-
-# Compiler flag to generate thread-safe objects.
-thread_safe_flag_spec=""
-
-# Library versioning type.
-version_type=linux
-
-# Format of library name prefix.
-libname_spec="lib\$name"
-
-# List of archive names.  First name is the real one, the rest are links.
-# The last name is the one that the linker finds with -lNAME.
-library_names_spec="\${libname}\${release}\${shared_ext}\$versuffix 
\${libname}\${release}\${shared_ext}\$major \$libname\${shared_ext}"
-
-# The coded name of the library, if different from the real name.
-soname_spec="\${libname}\${release}\${shared_ext}\$major"
-
-# Commands used to build and install an old-style archive.
-RANLIB="ranlib"
-old_archive_cmds="\$AR \$AR_FLAGS \$oldlib\$oldobjs~\$RANLIB \$oldlib"
-old_postinstall_cmds="chmod 644 \$oldlib~\$RANLIB \$oldlib"
-old_postuninstall_cmds=""
-
-# Create an old-style archive from a shared archive.
-old_archive_from_new_cmds=""
-
-# Create a temporary old-style archive to link instead of a shared archive.
-old_archive_from_expsyms_cmds=""
-
-# Commands used to build and install a shared archive.
-archive_cmds="\$CC -shared \$libobjs \$deplibs \$compiler_flags \${wl}-soname 
\$wl\$soname -o \$lib"
-archive_expsym_cmds="\$echo \\\"{ global:\\\" > \$output_objdir/\$libname.ver~
-  cat \$export_symbols | sed -e \\\"s/\\\\(.*\\\\)/\\\\1;/\\\" >> 
\$output_objdir/\$libname.ver~
-  \$echo \\\"local: *; };\\\" >> \$output_objdir/\$libname.ver~
-         \$CC -shared \$libobjs \$deplibs \$compiler_flags \${wl}-soname 
\$wl\$soname \${wl}-version-script \${wl}\$output_objdir/\$libname.ver -o \$lib"
-postinstall_cmds=""
-postuninstall_cmds=""
-
-# Commands used to build a loadable module (assumed same as above if empty)
-module_cmds=""
-module_expsym_cmds=""
-
-# Commands to strip libraries.
-old_striplib="strip --strip-debug"
-striplib="strip --strip-unneeded"
+old_striplib="strip -S"
+striplib="strip -x"
 
 # Dependencies to place before the objects being linked to create a
 # shared library.
@@ -7327,19 +7016,19 @@
 file_magic_cmd="\$MAGIC_CMD"
 
 # Flag that allows shared libraries with undefined symbols to be built.
-allow_undefined_flag=""
+allow_undefined_flag="\${wl}-flat_namespace \${wl}-undefined \${wl}suppress"
 
 # Flag that forces no undefined symbols.
 no_undefined_flag=""
 
 # Commands used to finish a libtool library installation in a directory.
-finish_cmds="PATH=\\\"\\\$PATH:/sbin\\\" ldconfig -n \$libdir"
+finish_cmds=""
 
 # Same as above, but a single script fragment to be evaled but not shown.
 finish_eval=""
 
 # Take the output of nm and produce a listing of raw symbols and C names.
-global_symbol_pipe="sed -n -e 's/^.*[  ]\\([ABCDGIRSTW][ABCDGIRSTW]*\\)[       
][      ]*\\([_A-Za-z][_A-Za-z0-9]*\\)\$/\\1 \\2 \\2/p'"
+global_symbol_pipe="sed -n -e 's/^.*[  ]\\([BCDEGRST][BCDEGRST]*\\)[   ][      
]*_\\([_A-Za-z][_A-Za-z0-9]*\\)\$/\\1 _\\2 \\2/p'"
 
 # Transform the output of nm in a proper C declaration
 global_symbol_to_cdecl="sed -n -e 's/^. .* \\(.*\\)\$/extern int \\1;/p'"
@@ -7348,23 +7037,23 @@
 global_symbol_to_c_name_address="sed -n -e 's/^: \\([^ ]*\\) \$/  
{\\\"\\1\\\", (lt_ptr) 0},/p' -e 's/^[BCDEGRST] \\([^ ]*\\) \\([^ ]*\\)\$/  
{\"\\2\", (lt_ptr) \\&\\2},/p'"
 
 # This is the shared library runtime path variable.
-runpath_var=LD_RUN_PATH
+runpath_var=
 
 # This is the shared library path variable.
-shlibpath_var=LD_LIBRARY_PATH
+shlibpath_var=DYLD_LIBRARY_PATH
 
 # Is shlibpath searched before the hard-coded library search path?
-shlibpath_overrides_runpath=no
+shlibpath_overrides_runpath=yes
 
 # How to hardcode a shared library path into an executable.
 hardcode_action=immediate
 
 # Whether we should hardcode library paths into libraries.
-hardcode_into_libs=yes
+hardcode_into_libs=no
 
 # Flag to hardcode $libdir into a binary during linking.
 # This must work even if $libdir does not exist.
-hardcode_libdir_flag_spec="\${wl}--rpath \${wl}\$libdir"
+hardcode_libdir_flag_spec=""
 
 # If ld is used when linking, flag to hardcode $libdir into
 # a binary during linking. This must work even if $libdir does
@@ -7388,20 +7077,20 @@
 
 # Set to yes if building a shared library automatically hardcodes DIR into the 
library
 # and all subsequent libraries and executables linked against it.
-hardcode_automatic=no
+hardcode_automatic=yes
 
 # Variables whose values should be saved in libtool wrapper scripts and
 # restored at relink time.
-variables_saved_for_relink="PATH LD_LIBRARY_PATH LD_RUN_PATH GCC_EXEC_PREFIX 
COMPILER_PATH LIBRARY_PATH"
+variables_saved_for_relink="PATH DYLD_LIBRARY_PATH  GCC_EXEC_PREFIX 
COMPILER_PATH LIBRARY_PATH"
 
 # Whether libtool must link a program against all its dependency libraries.
-link_all_deplibs=unknown
+link_all_deplibs=yes
 
 # Compile-time system search path for libraries
-sys_lib_search_path_spec="/usr/lib/gcc/x86_64-redhat-linux/4.1.2 /usr/lib64 
/lib64"
+sys_lib_search_path_spec="/usr/lib/i686-apple-darwin9/4.0.1 /usr/lib 
/usr/lib/gcc/i686-apple-darwin9/4.0.1 /usr/local/lib"
 
 # Run-time system search path for libraries
-sys_lib_dlsearch_path_spec="/lib /usr/lib /usr/lib/R/lib /usr/lib64/R/lib 
/usr/lib/cernlib/2006-g77/lib /usr/lib64/cernlib/2006-g77/lib 
/usr/lib/cernlib/2006/lib /usr/lib64/cernlib/2006/lib 
/packages/lib/intel/fce/10.1.013/lib /usr/lib/mysql /usr/lib64/mysql 
/usr/lib/octave-3.0.0 /usr/lib64/octave-3.0.0 /usr/lib/qt-3.3/lib 
/usr/lib64/qt-3.3/lib /usr/lib64/qt4/lib64 /usr/lib/wine/ /usr/local/lib 
/usr/local/lib64 "
+sys_lib_dlsearch_path_spec="/usr/local/lib /lib /usr/lib"
 
 # Fix the shell variable $srcfile for the compiler.
 fix_srcfile_path=""
@@ -7416,10 +7105,10 @@
 extract_expsyms_cmds=""
 
 # Symbols that should not be listed in the preloaded symbols.
-exclude_expsyms="_GLOBAL_OFFSET_TABLE_"
+exclude_expsyms=""
 
 # Symbols that must always be exported.
 include_expsyms=""
 
-# ### END LIBTOOL TAG CONFIG: F77
+# ### END LIBTOOL TAG CONFIG: CXX
 

Index: src/handeye.cpp
===================================================================
RCS file: src/handeye.cpp
diff -N src/handeye.cpp
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ src/handeye.cpp     15 Aug 2008 13:24:49 -0000      1.1
@@ -0,0 +1,84 @@
+#include <tag/handeye.h>
+#include <tag/absorient.h>
+
+#include <TooN/Cholesky.h>
+
+#include <cassert>
+#include <iostream>
+
+using namespace std;
+using namespace TooN;
+
+namespace tag {
+
+static inline Vector<3> getRotationVector( const SO3 & r ){
+    const Matrix<3> & my_matrix = r.get_matrix();
+    Vector<3> result;
+    result[0] = (my_matrix[2][1]-my_matrix[1][2]);
+    result[1] = (my_matrix[0][2]-my_matrix[2][0]);
+    result[2] = (my_matrix[1][0]-my_matrix[0][1]);
+    normalize(result);
+    return result;
+}
+
+static inline Vector<3> getRotationVector( const SE3 & t ){
+    return getRotationVector(t.get_rotation());
+}
+
+template<class T>
+static inline TooN::SO3 solveXABX( const std::vector<T> & A, const 
std::vector<T> & B ){
+    vector<Vector<3> > va(A.size()), vb(A.size());
+    for(unsigned int i = 0; i < A.size(); ++i){
+        va[i] = getRotationVector(A[i]);
+        vb[i] = getRotationVector(B[i]);
+    }
+    return computeOrientation(va, vb);
+}
+
+static inline Matrix<3> eyeMinus( const Matrix<3> & m ){
+    Matrix<3> result;
+    Identity(result);
+    result -= m;
+    return result;
+}
+
+SE3 computeHandEyeSingle( const vector<SE3> & AB, const vector<SE3> & CD ){
+    vector<SE3> A(AB.size()-1),B(AB.size()-1);
+    for(unsigned int i = 0; i < AB.size() - 1; ++i){
+        A[i] = CD[i] * CD[i+1].inverse();
+        B[i] = AB[i].inverse() * AB[i+1];
+    }
+    SO3 R = solveXABX(A,B);
+    Matrix<3> JTJ;
+    Vector<3> JTE;
+    Zero(JTJ);
+    Zero(JTE);
+    for(unsigned int i = 0; i < A.size(); ++i){
+        Matrix<3> m =  eyeMinus( B[i].get_rotation().get_matrix());
+        add_product(m.T(), m, JTJ);
+        add_product(m.T(), (B[i].get_translation() - R * 
A[i].get_translation()), JTE);
+    }
+    Cholesky<3> chol(JTJ);
+    return SE3(R, chol.inverse_times(JTE));
+}
+
+std::pair<TooN::SE3, TooN::SE3> computeHandEye( const std::vector<TooN::SE3> & 
AB, const std::vector<TooN::SE3> & CD ){
+    assert( AB.size() == CD.size() && AB.size() > 2 );
+    return make_pair(computeHandEyeSingle(AB, CD), computeHandEyeSingle(CD, 
AB)); 
+}
+
+SO3 computeHandEyeSingle( const vector<SO3> & AB, const vector<SO3> & CD ){
+    vector<SO3> A(AB.size()-1),B(AB.size()-1);
+    for(unsigned int i = 0; i < AB.size() - 1; ++i){
+        A[i] = CD[i] * CD[i+1].inverse();
+        B[i] = AB[i].inverse() * AB[i+1];
+    }
+    return solveXABX(A,B);
+}
+
+std::pair<TooN::SO3, TooN::SO3> computeHandEye( const std::vector<TooN::SO3> & 
AB, const std::vector<TooN::SO3> & CD ){
+    assert( AB.size() == CD.size() && AB.size() > 2 );
+    return make_pair(computeHandEyeSingle(AB, CD), computeHandEyeSingle(CD, 
AB));
+}
+
+}

Index: tag/handeye.h
===================================================================
RCS file: tag/handeye.h
diff -N tag/handeye.h
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ tag/handeye.h       15 Aug 2008 13:24:49 -0000      1.1
@@ -0,0 +1,53 @@
+#ifndef TAG_HANDEYE_H_
+#define TAG_HANDEYE_H_
+
+#include <vector>
+#include <TooN/se3.h>
+
+namespace tag {
+
+/// @defgroup handeye Hand Eye calibration
+/// contains various functions to solve simultaneously for two transformations 
+/// a ring of transformations. For example, world - world and sensor - sensor
+/// registration for two sensors. The implementation follows roughly Tsai & 
Lenz 89.
+/// It is only a linear method and does not include any nonlinear optimisation.
+
+/// computes the transformation in a circle of transformations:
+/// AB -> X -> CD -> ?, so that X is the transformation from B to C. ? is not
+/// computed. AB, CD need to contain at least 3 entries to provide 2 
independent motions
+/// @param[in] AB a vector of measurements for AB
+/// @param[in] CD a vector of measurements for CD
+/// @return the SE3 X 
+/// @ingroup handeye
+TooN::SE3 computeHandEyeSingle( const std::vector<TooN::SE3> & AB, const 
std::vector<TooN::SE3> & CD );
+
+/// computes the pair of transformations that complete the circle:
+/// AB -> X -> CD -> Y, so that X is the transformation from B to C and Y the 
+/// transformation from D to A. AB, CD need to contain at least 3 entries to 
provide 2 independent motions
+/// @param[in] AB a vector of measurements for AB
+/// @param[in] CD a vector of measurements for CD
+/// @return pair of SE3s, X and Y
+/// @ingroup handeye
+std::pair<TooN::SE3, TooN::SE3> computeHandEye( const std::vector<TooN::SE3> & 
AB, const std::vector<TooN::SE3> & CD );
+
+/// computes the rotation in a circle of transformations:
+/// AB -> X -> CD -> ?, so that X is the rotation from B to C. ? is not
+/// computed. AB, CD need to contain at least 3 entries to provide 2 
independent motions
+/// @param[in] AB a vector of measurements for AB
+/// @param[in] CD a vector of measurements for CD
+/// @return the SE3 X 
+/// @ingroup handeye
+TooN::SO3 computeHandEyeSingle( const std::vector<TooN::SO3> & AB, const 
std::vector<TooN::SO3> & CD );
+
+/// computes the pair of rotations that complete the circle:
+/// AB -> X -> CD -> Y, so that X is the transformation from B to C and Y the 
+/// transformation from D to A. AB, CD need to contain at least 3 entries to 
provide 2 independent motions
+/// @param[in] AB a vector of measurements for AB
+/// @param[in] CD a vector of measurements for CD
+/// @return pair of SO3s, X and Y
+/// @ingroup handeye
+std::pair<TooN::SO3, TooN::SO3> computeHandEye( const std::vector<TooN::SO3> & 
AB, const std::vector<TooN::SO3> & CD );
+
+}
+
+#endif //  TAG_HANDEYE_H_




reply via email to

[Prev in Thread] Current Thread [Next in Thread]