diff --git a/examples/SimpleSineMovement.cpp b/examples/SimpleSineMovement.cpp index 20d0c19..155c391 100644 --- a/examples/SimpleSineMovement.cpp +++ b/examples/SimpleSineMovement.cpp @@ -1,72 +1,72 @@ #include #include #include #include #include #include -#include "Oncilla.h" -#include "OncillaL1L2.h" -#include "OncillaSynchronizer.h" +#include "liboncilla/Oncilla.h" +#include "liboncilla/OncillaL1L2.h" +#include "liboncilla/OncillaSynchronizer.h" using namespace std; using namespace boost; using namespace rci; using namespace rci::oncilla; int main() { double amplitude_rad = 1.0; double frequency_Hz = 1.0; // Instantiate the actual robot object Oncilla oncilla; // Get the synchronizer, so that we can control the actual simulation // stepping from within our code OncillaSynchronizerPtr synchronizer = oncilla.getSynchronizer(); // Get all the joints we are interested in - L1 and L2 OncillaL1Ptr left_fore_hip = oncilla.getL1(Oncilla::LEFT_FORE); OncillaL2Ptr left_fore_knee = oncilla.getL2(Oncilla::LEFT_FORE); OncillaL1Ptr right_fore_hip = oncilla.getL1(Oncilla::RIGHT_FORE); OncillaL2Ptr right_fore_knee = oncilla.getL2(Oncilla::RIGHT_FORE); OncillaL1Ptr left_hind_hip = oncilla.getL1(Oncilla::LEFT_HIND); OncillaL2Ptr left_hind_knee = oncilla.getL2(Oncilla::LEFT_HIND); OncillaL1Ptr right_hind_hip = oncilla.getL1(Oncilla::RIGHT_HIND); OncillaL2Ptr right_hind_knee = oncilla.getL2(Oncilla::RIGHT_HIND); // Now move the joints double time_s, phase1, phase2; JointAnglesPtr hip1, hip2, knee1, knee2; while (true) { // The time is our phase - TODO: Use virtual / simulated time time_s = rsc::misc::currentTimeMicros() / 1000; phase1 = time_s * frequency_Hz; phase2 = (time_s + 0.5) * frequency_Hz; hip1 = JointAngles::fromRad(amplitude_rad * sin(phase1)); left_fore_hip->setJointPosition(hip1); right_hind_hip->setJointPosition(hip1); hip2 = JointAngles::fromRad(amplitude_rad * sin(phase2)); left_hind_hip->setJointPosition(hip2); right_fore_hip->setJointPosition(hip2); knee1 = JointAngles::fromRad(amplitude_rad * sin(phase1)); left_fore_knee->setJointPosition(knee1); right_hind_knee->setJointPosition(knee1); knee2 = JointAngles::fromRad(amplitude_rad * sin(phase2)); left_hind_knee->setJointPosition(knee2); right_fore_knee->setJointPosition(knee2); // Now that we set the new angles, we do one processing step synchronizer->process(); } return EXIT_SUCCESS; } diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 075ed52..02b9ca5 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,37 +1,34 @@ -# Configure config header -CONFIGURE_FILE("config.h.in" "${PROJECT_NAME}Config.h") - SET(ONCILLAHEADERS - OncillaTrunk.h - OncillaL0.h - OncillaL1L2.h - OncillaL3.h - OncillaL4.h - Oncilla.h - OncillaSynchronizer.h - BackendFactory.h) + liboncilla/OncillaTrunk.h + liboncilla/OncillaL0.h + liboncilla/OncillaL1L2.h + liboncilla/OncillaL3.h + liboncilla/OncillaL4.h + liboncilla/Oncilla.h + liboncilla/OncillaSynchronizer.h + liboncilla/BackendFactory.h) SET(ONCILLASOURCES - OncillaTrunk.cpp - OncillaL0.cpp - OncillaL1L2.cpp - OncillaL3.cpp - OncillaL4.cpp - Oncilla.cpp - OncillaSynchronizer.cpp - BackendFactory.cpp) + liboncilla/OncillaTrunk.cpp + liboncilla/OncillaL0.cpp + liboncilla/OncillaL1L2.cpp + liboncilla/OncillaL3.cpp + liboncilla/OncillaL4.cpp + liboncilla/Oncilla.cpp + liboncilla/OncillaSynchronizer.cpp + liboncilla/BackendFactory.cpp) ADD_LIBRARY(${LIBONCILLA_NAME} SHARED ${ONCILLASOURCES}) TARGET_LINK_LIBRARIES(${LIBONCILLA_NAME} ${RSC_LIBRARIES} ${RCI_LIBRARIES} ${LIBRARIES_LIBRARIES} -ldl) SET_TARGET_PROPERTIES(${LIBONCILLA_NAME} PROPERTIES VERSION ${LIBONCILLA_VERSION_STRING}) INSTALL(TARGETS ${LIBONCILLA_NAME} RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib) -INSTALL_FILES_RECURSIVE(include/lib${LIBNAME} ONCILLAHEADERS) +INSTALL_FILES_RECURSIVE(include ONCILLAHEADERS) diff --git a/src/config.h.in b/src/config.h.in deleted file mode 100644 index 8582120..0000000 --- a/src/config.h.in +++ /dev/null @@ -1,3 +0,0 @@ -#pragma once - -#define DF_DEBUG 0 diff --git a/src/BackendFactory.cpp b/src/liboncilla/BackendFactory.cpp similarity index 100% rename from src/BackendFactory.cpp rename to src/liboncilla/BackendFactory.cpp diff --git a/src/BackendFactory.h b/src/liboncilla/BackendFactory.h similarity index 100% rename from src/BackendFactory.h rename to src/liboncilla/BackendFactory.h diff --git a/src/Oncilla.cpp b/src/liboncilla/Oncilla.cpp similarity index 100% rename from src/Oncilla.cpp rename to src/liboncilla/Oncilla.cpp diff --git a/src/Oncilla.h b/src/liboncilla/Oncilla.h similarity index 100% rename from src/Oncilla.h rename to src/liboncilla/Oncilla.h diff --git a/src/OncillaL0.cpp b/src/liboncilla/OncillaL0.cpp similarity index 100% rename from src/OncillaL0.cpp rename to src/liboncilla/OncillaL0.cpp diff --git a/src/OncillaL0.h b/src/liboncilla/OncillaL0.h similarity index 100% rename from src/OncillaL0.h rename to src/liboncilla/OncillaL0.h diff --git a/src/OncillaL1L2.cpp b/src/liboncilla/OncillaL1L2.cpp similarity index 100% rename from src/OncillaL1L2.cpp rename to src/liboncilla/OncillaL1L2.cpp diff --git a/src/OncillaL1L2.h b/src/liboncilla/OncillaL1L2.h similarity index 100% rename from src/OncillaL1L2.h rename to src/liboncilla/OncillaL1L2.h diff --git a/src/OncillaL3.cpp b/src/liboncilla/OncillaL3.cpp similarity index 100% rename from src/OncillaL3.cpp rename to src/liboncilla/OncillaL3.cpp diff --git a/src/OncillaL3.h b/src/liboncilla/OncillaL3.h similarity index 100% rename from src/OncillaL3.h rename to src/liboncilla/OncillaL3.h diff --git a/src/OncillaL4.cpp b/src/liboncilla/OncillaL4.cpp similarity index 100% rename from src/OncillaL4.cpp rename to src/liboncilla/OncillaL4.cpp diff --git a/src/OncillaL4.h b/src/liboncilla/OncillaL4.h similarity index 100% rename from src/OncillaL4.h rename to src/liboncilla/OncillaL4.h diff --git a/src/OncillaSynchronizer.cpp b/src/liboncilla/OncillaSynchronizer.cpp similarity index 100% rename from src/OncillaSynchronizer.cpp rename to src/liboncilla/OncillaSynchronizer.cpp diff --git a/src/OncillaSynchronizer.h b/src/liboncilla/OncillaSynchronizer.h similarity index 100% rename from src/OncillaSynchronizer.h rename to src/liboncilla/OncillaSynchronizer.h diff --git a/src/OncillaTrunk.cpp b/src/liboncilla/OncillaTrunk.cpp similarity index 100% rename from src/OncillaTrunk.cpp rename to src/liboncilla/OncillaTrunk.cpp diff --git a/src/OncillaTrunk.h b/src/liboncilla/OncillaTrunk.h similarity index 100% rename from src/OncillaTrunk.h rename to src/liboncilla/OncillaTrunk.h diff --git a/test/nodes/OncillaL0Test.cpp b/test/nodes/OncillaL0Test.cpp index 349f803..1f3e691 100644 --- a/test/nodes/OncillaL0Test.cpp +++ b/test/nodes/OncillaL0Test.cpp @@ -1,49 +1,49 @@ #include -#include "OncillaL0.h" +#include "liboncilla/OncillaL0.h" using namespace nemo; using namespace rci; using namespace rci::oncilla; class OncillaL0Test: public ::testing::Test { protected: OncillaL0Test() : joint(), ja_values(), ji_values(), ja(), ji() { joint = OncillaL0Ptr(new OncillaL0("FooBar")); ja_values = RealVector(dim(1), 1.234); ji_values = RealVector(dim(2), 1.234); ji_values[1] = 2.345; ja = JointAngles::fromRad(ja_values); ji = JointImpedancePtr(new JointImpedance(ji_values)); } virtual ~OncillaL0Test() { } OncillaL0Ptr joint; RealVector ja_values, ji_values; JointAnglesPtr ja; JointImpedancePtr ji; }; TEST_F(OncillaL0Test, testInitialialState) { EXPECT_NO_THROW(joint->getLastPositionCommand()); EXPECT_EQ(0.0,joint->getLastPositionCommand()->rad()); } TEST_F(OncillaL0Test, testPositionCommand) { EXPECT_NO_THROW(joint->getLastPositionCommand()); EXPECT_EQ(0.0,joint->getLastPositionCommand()->rad()); joint->setJointPosition(ja); EXPECT_EQ(1.234, joint->getLastPositionCommand()->rad()); } diff --git a/test/nodes/OncillaL1L2Test.cpp b/test/nodes/OncillaL1L2Test.cpp index 1a67133..e865400 100644 --- a/test/nodes/OncillaL1L2Test.cpp +++ b/test/nodes/OncillaL1L2Test.cpp @@ -1,85 +1,85 @@ #include -#include "OncillaL1L2.h" -#include "OncillaSynchronizer.h" +#include "liboncilla/OncillaL1L2.h" +#include "liboncilla/OncillaSynchronizer.h" using namespace nemo; using namespace rci; using namespace rci::oncilla; class MockSynchronizer: public OncillaSynchronizer { public: MockSynchronizer() : OncillaSynchronizer("Sync") { } virtual void processAsync() { } virtual void waitForProcessAsync() { } virtual void registerTrunkNode(rci::oncilla::OncillaTrunkPtr) { } virtual void registerL0Node(rci::oncilla::Oncilla::Leg, rci::oncilla::OncillaL0Ptr) { } virtual void registerL1Node(rci::oncilla::Oncilla::Leg, rci::oncilla::OncillaL1Ptr) { } virtual void registerL2Node(rci::oncilla::Oncilla::Leg, rci::oncilla::OncillaL2Ptr) { } virtual void registerL3Node(rci::oncilla::Oncilla::Leg, rci::oncilla::OncillaL3Ptr) { } virtual void registerL4Node(rci::oncilla::Oncilla::Leg, rci::oncilla::OncillaL4Ptr) { } virtual double latestProcessLoopDurationPrimpl() const { return 0.005; } virtual void switchToSynchronizationModeHook(){ } }; class OncillaL1L2Test: public ::testing::Test { protected: OncillaL1L2Test() : joint(), ja_values(), ji_values(), ja(), ji(), synchr() { joint = OncillaL1Ptr(new OncillaL1L2(synchr, "FooBar")); ja_values = RealVector(dim(1), 1.234); ji_values = RealVector(dim(2), 1.234); ji_values[1] = 2.345; ja = JointAngles::fromRad(ja_values); ji = JointImpedancePtr(new JointImpedance(ji_values)); } virtual ~OncillaL1L2Test() { } OncillaL1Ptr joint; RealVector ja_values, ji_values; JointAnglesPtr ja; JointImpedancePtr ji; MockSynchronizer synchr; }; TEST_F(OncillaL1L2Test, testInitialialState) { EXPECT_NO_THROW(joint->getLastPositionCommand()); EXPECT_EQ(0.0,joint->getLastPositionCommand()->rad()); } TEST_F(OncillaL1L2Test, testPositionCommand) { EXPECT_NO_THROW(joint->getLastPositionCommand()); EXPECT_EQ(0.0,joint->getLastPositionCommand()->rad()); joint->setJointPosition(ja); EXPECT_EQ(1.234, joint->getLastPositionCommand()->rad()); }