Revision: 8713
http://playerstage.svn.sourceforge.net/playerstage/?rev=8713&view=rev
Author: natepak
Date: 2010-05-25 22:16:16 +0000 (Tue, 25 May 2010)
Log Message:
-----------
Fixed double precision in ode
Modified Paths:
--------------
code/gazebo/branches/simpar/benchmarks/CMakeLists.txt
code/gazebo/branches/simpar/cmake/FindOde.cmake
code/gazebo/branches/simpar/server/physics/ode/CMakeLists.txt
code/gazebo/branches/simpar/server/physics/ode/ODEBody.cc
code/gazebo/branches/simpar/server/physics/ode/ODEPhysics.hh
Added Paths:
-----------
code/gazebo/branches/simpar/benchmarks/box_drop_benchmark.cc
Modified: code/gazebo/branches/simpar/benchmarks/CMakeLists.txt
===================================================================
--- code/gazebo/branches/simpar/benchmarks/CMakeLists.txt 2010-05-25
17:31:59 UTC (rev 8712)
+++ code/gazebo/branches/simpar/benchmarks/CMakeLists.txt 2010-05-25
22:16:16 UTC (rev 8713)
@@ -28,6 +28,7 @@
camera_benchmark.cc
spinningbox_benchmark.cc
pendulum_benchmark.cc
+ box_drop_benchmark.cc
)
set_source_files_properties(${sources} PROPERTIES COMPILE_FLAGS "-ggdb -g2
-Wall")
@@ -39,6 +40,7 @@
add_executable(camera_benchmark camera_benchmark.cc)
add_executable(spinningbox_benchmark spinningbox_benchmark.cc)
add_executable(pendulum_benchmark pendulum_benchmark.cc)
+add_executable(box_drop_benchmark box_drop_benchmark.cc)
target_link_libraries(laser_benchmark gazebo ${LINK_LIBS} )
target_link_libraries(box_grid_benchmark gazebo ${LINK_LIBS} )
@@ -47,6 +49,7 @@
target_link_libraries(camera_benchmark gazebo ${LINK_LIBS} )
target_link_libraries(spinningbox_benchmark gazebo ${LINK_LIBS} )
target_link_libraries(pendulum_benchmark gazebo ${LINK_LIBS} )
+target_link_libraries(box_drop_benchmark gazebo ${LINK_LIBS} )
set_target_properties(laser_benchmark PROPERTIES SKIP_BUILD_RPATH TRUE)
set_target_properties(box_grid_benchmark PROPERTIES SKIP_BUILD_RPATH TRUE)
@@ -55,6 +58,7 @@
set_target_properties(camera_benchmark PROPERTIES SKIP_BUILD_RPATH TRUE)
set_target_properties(spinningbox_benchmark PROPERTIES SKIP_BUILD_RPATH TRUE)
set_target_properties(pendulum_benchmark PROPERTIES SKIP_BUILD_RPATH TRUE)
+set_target_properties(box_drop_benchmark PROPERTIES SKIP_BUILD_RPATH TRUE)
set_target_properties(laser_benchmark PROPERTIES LINK_FLAGS
"${LINK_FLAGS} ${gazebo_lflags}")
set_target_properties(box_grid_benchmark PROPERTIES LINK_FLAGS
"${LINK_FLAGS} ${gazebo_lflags}")
@@ -63,5 +67,6 @@
set_target_properties(camera_benchmark PROPERTIES LINK_FLAGS
"${LINK_FLAGS} ${gazebo_lflags}")
set_target_properties(spinningbox_benchmark PROPERTIES LINK_FLAGS
"${LINK_FLAGS} ${gazebo_lflags}")
set_target_properties(pendulum_benchmark PROPERTIES LINK_FLAGS
"${LINK_FLAGS} ${gazebo_lflags}")
+set_target_properties(box_drop_benchmark PROPERTIES LINK_FLAGS
"${LINK_FLAGS} ${gazebo_lflags}")
-install (TARGETS laser_benchmark box_grid_benchmark box_pile_benchmark
joint_chain_benchmark camera_benchmark spinningbox_benchmark pendulum_benchmark
DESTINATION ${CMAKE_INSTALL_PREFIX}/bin)
+install (TARGETS laser_benchmark box_grid_benchmark box_pile_benchmark
joint_chain_benchmark camera_benchmark spinningbox_benchmark pendulum_benchmark
box_drop_benchmark DESTINATION ${CMAKE_INSTALL_PREFIX}/bin)
Added: code/gazebo/branches/simpar/benchmarks/box_drop_benchmark.cc
===================================================================
--- code/gazebo/branches/simpar/benchmarks/box_drop_benchmark.cc
(rev 0)
+++ code/gazebo/branches/simpar/benchmarks/box_drop_benchmark.cc
2010-05-25 22:16:16 UTC (rev 8713)
@@ -0,0 +1,119 @@
+#include <iostream>
+#include <stdio.h>
+#include <stdlib.h>
+#include <vector>
+#include <libgazebo/gz.h>
+
+gazebo::Client *client = NULL;
+gazebo::SimulationIface *simIface = NULL;
+gazebo::FactoryIface *factoryIface = NULL;
+int laser_count = 0;
+
+std::string test_name="Box Pile Benchmark";
+std::string xlabel = "Box Count";
+std::string ylabel = "Simtime / Realtime";
+std::string data_filename = "/tmp/" + test_name + ".data";
+
+void make_plot()
+{
+ std::ostringstream cmd;
+
+ cmd << "echo \"";
+ cmd << "set xlabel '" << xlabel << "'\n";
+ cmd << "set ylabel '" << ylabel << "'\n";
+ cmd << "set title '" << test_name << "'\n";
+ cmd << "set terminal png\n";
+ cmd << "set output '" << test_name << ".png'\n";
+ cmd << "plot '" << data_filename << "' with lines\n";
+ cmd << "\" | gnuplot";
+
+ if (system(cmd.str().c_str() ) < 0)
+ std::cerr << "Error\n";
+}
+
+void spawn_box(double x, double y, double z=1)
+{
+ std::ostringstream model;
+
+ model << "<model:physical name='box'>";
+ model << " <xyz>" << x << " " << y << " " << z << "</xyz>";
+ model << " <rpy>0 0 0</rpy>";
+ model << " <body:box name='body'>";
+ model << " <geom:box name='geom'>";
+ model << " <size>0.5 0.5 0.5</size>";
+ model << " <mass>1</mass>";
+ model << " <visual>";
+ model << " <size>0.5 0.5 0.5</size>";
+ model << " <mesh>unit_box</mesh>";
+ model << " <material>Gazebo/Rocky</material>";
+ model << " </visual>";
+ model << " </geom:box>";
+
+ model << " </body:box>";
+ model << "</model:physical>";
+
+ factoryIface->Lock(1);
+ strcpy( (char*)factoryIface->data->newModel, model.str().c_str() );
+ factoryIface->Unlock();
+}
+
+int main()
+{
+ client = new gazebo::Client();
+ simIface = new gazebo::SimulationIface();
+ factoryIface = new gazebo::FactoryIface();
+
+ try
+ {
+ client->ConnectWait(0, GZ_CLIENT_ID_USER_FIRST);
+ }
+ catch(std::string e)
+ {
+ std::cerr << "Gazebo Error: Unable to connect: " << e << "\n";
+ return -1;
+ }
+
+ /// Open the sim iface
+ try
+ {
+ simIface->Open(client, "default");
+ }
+ catch (std::string e)
+ {
+ std::cerr << "Gazebo error: Unable to connect to sim iface:" << e << "\n";
+ return -1;
+ }
+
+ // Open the factory iface
+ try
+ {
+ factoryIface->Open(client, "default");
+ }
+ catch( std::string e)
+ {
+ std::cerr << "Gazebo error: Unable to connect to the factory Iface:"
+ << e << "\n";
+ return -1;
+ }
+
+ FILE *out = fopen(data_filename.c_str(), "w");
+
+ spawn_box(0, 0);
+
+ gazebo::Vec3 linearVel, angularVel, linearAccel, angularAccel;
+ gazebo::Pose modelPose;
+
+ for (unsigned int j=0; j < 400; j++)
+ {
+ simIface->GetState("box", modelPose, linearVel, angularVel, linearAccel,
angularAccel);
+ printf("Pos[%4.2f %4.2f %4.2f] RPY[%4.2f %4.2f %4.2f] ", modelPose.pos.x,
modelPose.pos.y, modelPose.pos.z, modelPose.roll, modelPose.pitch,
modelPose.yaw);
+ }
+
+ fclose(out);
+
+ //make_plot();
+
+ factoryIface->Close();
+ simIface->Close();
+ client->Disconnect();
+}
Modified: code/gazebo/branches/simpar/cmake/FindOde.cmake
===================================================================
--- code/gazebo/branches/simpar/cmake/FindOde.cmake 2010-05-25 17:31:59 UTC
(rev 8712)
+++ code/gazebo/branches/simpar/cmake/FindOde.cmake 2010-05-25 22:16:16 UTC
(rev 8713)
@@ -9,43 +9,43 @@
ENDIF (PKG_CONFIG_FOUND)
# if we didnt find it in pkg-config try ode-config
-IF (NOT ODE_FOUND)
- SET(ODE_CONFIG_PATH "ode-config")
- EXEC_PROGRAM(${ODE_CONFIG_PATH} ARGS --version RETURN_VALUE
ODE_CONFIG_RETURN OUTPUT_VARIABLE DETECTED_ODE_VERSION )
- STRING(REGEX REPLACE "[\r\n]" " " ${DETECTED_ODE_VERSION}
"${${DETECTED_ODE_VERSION}}")
+#IF (NOT ODE_FOUND)
+# SET(ODE_CONFIG_PATH "ode-config")
+# EXEC_PROGRAM(${ODE_CONFIG_PATH} ARGS --version RETURN_VALUE
ODE_CONFIG_RETURN OUTPUT_VARIABLE DETECTED_ODE_VERSION )
+# STRING(REGEX REPLACE "[\r\n]" " " ${DETECTED_ODE_VERSION}
"${${DETECTED_ODE_VERSION}}")
+#
+# # ode-config exists then get the details
+# IF(NOT ODE_CONFIG_RETURN)
+# IF(NOT ${REQUIRED_ODE_VERSION} VERSION_LESS ${DETECTED_ODE_VERSION} )
+# MESSAGE(STATUS " ode-config reports version ${DETECTED_ODE_VERSION}")
+# EXEC_PROGRAM(${ODE_CONFIG_PATH} ARGS --cflags RETURN_VALUE
ODE_CONFIG_RETURN OUTPUT_VARIABLE ODE_INCLUDE_DIRS )
+# STRING(REGEX REPLACE "[\r\n]" " " ${ODE_INCLUDE_DIRS}
"${${ODE_INCLUDE_DIRS}}")
+#
+# # we want to extract -DdSINGLE or -DdDOUBLE to compile with the correct
flag
+# STRING(REGEX REPLACE ".*-Dd([^ ]+).*" "-Dd\\1" ODE_CFLAGS_OTHER
"${ODE_INCLUDE_DIRS}")
+# MESSAGE(STATUS "${ODE_CFLAGS_OTHER} used to compile against the ODE
library")
+#
+# EXEC_PROGRAM(${ODE_CONFIG_PATH} ARGS --libs RETURN_VALUE
ODE_CONFIG_RETURN OUTPUT_VARIABLE ODE_LDFLAGS )
+# STRING(REGEX REPLACE "[\r\n]" " " ${ODE_LDFLAGS} "${${ODE_LDFLAGS}}")
+#
+# SET(ODE_FOUND ${DETECTED_ODE_VERSION})
+# ELSE(NOT ${REQUIRED_ODE_VERSION} VERSION_LESS ${DETECTED_ODE_VERSION} )
+# MESSAGE(STATUS "ode-config reports wrong version
(${DETECTED_ODE_VERSION} < ${REQUIRED_ODE_VERSION})")
+# ENDIF(NOT ${REQUIRED_ODE_VERSION} VERSION_LESS ${DETECTED_ODE_VERSION} )
+# ELSE(NOT ODE_CONFIG_RETURN)
+# MESSAGE(STATUS "no ode-config found")
+# ENDIF(NOT ODE_CONFIG_RETURN)
+#ENDIF (NOT ODE_FOUND)
- # ode-config exists then get the details
- IF(NOT ODE_CONFIG_RETURN)
- IF(NOT ${REQUIRED_ODE_VERSION} VERSION_LESS ${DETECTED_ODE_VERSION} )
- MESSAGE(STATUS " ode-config reports version ${DETECTED_ODE_VERSION}")
- EXEC_PROGRAM(${ODE_CONFIG_PATH} ARGS --cflags RETURN_VALUE
ODE_CONFIG_RETURN OUTPUT_VARIABLE ODE_INCLUDE_DIRS )
- STRING(REGEX REPLACE "[\r\n]" " " ${ODE_INCLUDE_DIRS}
"${${ODE_INCLUDE_DIRS}}")
-
- # we want to extract -DdSINGLE or -DdDOUBLE to compile with the correct
flag
- STRING(REGEX REPLACE ".*-Dd([^ ]+).*" "-Dd\\1" ODE_CFLAGS_OTHER
"${ODE_INCLUDE_DIRS}")
- MESSAGE(STATUS "${ODE_CFLAGS_OTHER} used to compile against the ODE
library")
-
- EXEC_PROGRAM(${ODE_CONFIG_PATH} ARGS --libs RETURN_VALUE
ODE_CONFIG_RETURN OUTPUT_VARIABLE ODE_LDFLAGS )
- STRING(REGEX REPLACE "[\r\n]" " " ${ODE_LDFLAGS} "${${ODE_LDFLAGS}}")
-
- SET(ODE_FOUND ${DETECTED_ODE_VERSION})
- ELSE(NOT ${REQUIRED_ODE_VERSION} VERSION_LESS ${DETECTED_ODE_VERSION} )
- MESSAGE(STATUS "ode-config reports wrong version
(${DETECTED_ODE_VERSION} < ${REQUIRED_ODE_VERSION})")
- ENDIF(NOT ${REQUIRED_ODE_VERSION} VERSION_LESS ${DETECTED_ODE_VERSION} )
- ELSE(NOT ODE_CONFIG_RETURN)
- MESSAGE(STATUS "no ode-config found")
- ENDIF(NOT ODE_CONFIG_RETURN)
-ENDIF (NOT ODE_FOUND)
-
IF (NOT ODE_FOUND)
BUILD_ERROR ("ODE and development files not found. See the following
website: http://www.ode.org")
SET (INCLUDE_ODE FALSE CACHE BOOL "Include support for ODE")
ELSE (NOT ODE_FOUND)
SET (INCLUDE_ODE TRUE CACHE BOOL "Include support for ODE")
- APPEND_TO_CACHED_LIST(gazeboserver_cflags
- ${gazeboserver_cflags_desc}
- ${ODE_CFLAGS_OTHER})
+ #APPEND_TO_CACHED_LIST(gazeboserver_cflags
+ # ${gazeboserver_cflags_desc}
+ # ${ODE_CFLAGS_OTHER})
APPEND_TO_CACHED_LIST(gazeboserver_include_dirs
${gazeboserver_include_dirs_desc}
Modified: code/gazebo/branches/simpar/server/physics/ode/CMakeLists.txt
===================================================================
--- code/gazebo/branches/simpar/server/physics/ode/CMakeLists.txt
2010-05-25 17:31:59 UTC (rev 8712)
+++ code/gazebo/branches/simpar/server/physics/ode/CMakeLists.txt
2010-05-25 22:16:16 UTC (rev 8713)
@@ -39,6 +39,9 @@
${CMAKE_LINK_FLAGS_${CMAKE_BUILD_TYPE}})
endif (CMAKE_LINK_FLAGS_${CMAKE_BUILD_TYPE})
-set_target_properties(gazebo_physics_ode PROPERTIES COMPILE_FLAGS "-fPIC")
+LIST_TO_STRING(MY_ODE_CFLAGS "${ODE_CFLAGS}")
+message (STATUS "ODE CFLAGS ${MY_ODE_CFLAGS}")
+
+set_target_properties(gazebo_physics_ode PROPERTIES COMPILE_FLAGS "-fPIC
${MY_ODE_CFLAGS}")
target_link_libraries( gazebo_physics_ode ${ODE_LIBRARIES})
install ( TARGETS gazebo_physics_ode DESTINATION ${CMAKE_INSTALL_PREFIX}/lib )
Modified: code/gazebo/branches/simpar/server/physics/ode/ODEBody.cc
===================================================================
--- code/gazebo/branches/simpar/server/physics/ode/ODEBody.cc 2010-05-25
17:31:59 UTC (rev 8712)
+++ code/gazebo/branches/simpar/server/physics/ode/ODEBody.cc 2010-05-25
22:16:16 UTC (rev 8713)
@@ -196,6 +196,7 @@
// Set the rotation of the ODE body
dBodySetQuaternion(this->bodyId, q);
+
this->physicsEngine->UnlockMutex();
}
Modified: code/gazebo/branches/simpar/server/physics/ode/ODEPhysics.hh
===================================================================
--- code/gazebo/branches/simpar/server/physics/ode/ODEPhysics.hh
2010-05-25 17:31:59 UTC (rev 8712)
+++ code/gazebo/branches/simpar/server/physics/ode/ODEPhysics.hh
2010-05-25 22:16:16 UTC (rev 8713)
@@ -27,9 +27,6 @@
#ifndef ODEPHYSICS_HH
#define ODEPHYSICS_HH
-// Use single precision in ODE
-#define dSINGLE 1
-
#include <ode/ode.h>
#include "Param.hh"
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
_______________________________________________
Playerstage-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/playerstage-commit