From 1dcc0d4ebf11127d35d63dbbdfa6f0486ec651f8 Mon Sep 17 00:00:00 2001 From: Mirko Waechter <mirko.waechter@kit.edu> Date: Wed, 27 Aug 2014 12:28:56 +0200 Subject: [PATCH] Made some forward declarations for VirtualRobot in ArmarPose --- source/RobotAPI/core/RobotStatechartContext.h | 4 +- .../RobotAPI/motioncontrol/MotionControl.cpp | 2 + source/RobotAPI/robotstate/CMakeLists.txt | 2 +- .../RobotAPI/robotstate/remote/ArmarPose.cpp | 54 +++++++++++++++- source/RobotAPI/robotstate/remote/ArmarPose.h | 61 +++++-------------- .../RobotAPI/robotstate/remote/LinkedPose.cpp | 4 ++ .../RobotAPI/robotstate/remote/LinkedPose.h | 3 +- .../GraspingWithTorques.cpp | 1 + .../statecharts/OpenHand/OpenHand.cpp | 1 + .../statecharts/PlaceObject/PlaceObject.cpp | 2 + source/RobotAPI/units/HeadIKUnit.cpp | 1 + 11 files changed, 84 insertions(+), 51 deletions(-) diff --git a/source/RobotAPI/core/RobotStatechartContext.h b/source/RobotAPI/core/RobotStatechartContext.h index dfb89b417..40149fc06 100644 --- a/source/RobotAPI/core/RobotStatechartContext.h +++ b/source/RobotAPI/core/RobotStatechartContext.h @@ -28,7 +28,7 @@ #include <Core/core/Component.h> #include <Core/core/system/ImportExportComponent.h> #include <Core/statechart/StatechartContext.h> -#include <RobotAPI/robotstate/remote/RemoteRobot.h> +#include <RobotAPI/robotstate/remote/ArmarPose.h> #include <RobotAPI/interface/units/KinematicUnitInterface.h> #include <RobotAPI/interface/units/HandUnitInterface.h> @@ -36,7 +36,7 @@ #include <RobotAPI/interface/units/HeadIKUnit.h> #include <RobotAPI/units/KinematicUnitObserver.h> -//#include <VirtualRobot/VirtualRobot.h> + #include <IceUtil/Time.h> namespace armarx diff --git a/source/RobotAPI/motioncontrol/MotionControl.cpp b/source/RobotAPI/motioncontrol/MotionControl.cpp index 1b2631c9f..01e4baf7d 100644 --- a/source/RobotAPI/motioncontrol/MotionControl.cpp +++ b/source/RobotAPI/motioncontrol/MotionControl.cpp @@ -13,6 +13,8 @@ #include <VirtualRobot/Nodes/RobotNode.h> #include <VirtualRobot/MathTools.h> #include <VirtualRobot/XML/RobotIO.h> +#include <VirtualRobot/LinkedCoordinate.h> + #include <Eigen/src/Geometry/Quaternion.h> diff --git a/source/RobotAPI/robotstate/CMakeLists.txt b/source/RobotAPI/robotstate/CMakeLists.txt index fa5318d9c..1e588b1dc 100644 --- a/source/RobotAPI/robotstate/CMakeLists.txt +++ b/source/RobotAPI/robotstate/CMakeLists.txt @@ -14,7 +14,7 @@ set(LIB_VERSION 0.1.0) set(LIB_SOVERSION 0) set(LIBS ArmarXInterfaces RobotAPIRemoteRobot - ArmarXCore ${Simox_LIBRARIES}) + ArmarXCore) set(LIB_FILES RobotStateComponent.cpp diff --git a/source/RobotAPI/robotstate/remote/ArmarPose.cpp b/source/RobotAPI/robotstate/remote/ArmarPose.cpp index b348237bd..5aaa2f508 100644 --- a/source/RobotAPI/robotstate/remote/ArmarPose.cpp +++ b/source/RobotAPI/robotstate/remote/ArmarPose.cpp @@ -4,9 +4,12 @@ #include <boost/property_tree/ptree.hpp> #include <boost/property_tree/xml_parser.hpp> -#include <Eigen/Geometry> + #include <VirtualRobot/Robot.h> +#include <VirtualRobot/LinkedCoordinate.h> +#include <VirtualRobot/LinkedCoordinate.h> +#include <VirtualRobot/VirtualRobot.h> using namespace Eigen; using namespace std; @@ -42,6 +45,13 @@ namespace armarx return v; } + string Vector3::output(const Ice::Current &c) const + { + std::stringstream s; + s << toEigen(); + return s.str(); + } + int Vector3::readFromXML(const string &xmlData, const Ice::Current &c) { boost::property_tree::ptree pt = Variant::GetPropertyTree(xmlData); @@ -145,6 +155,13 @@ namespace armarx return result; } + string Quaternion::output(const Ice::Current &c) const + { + std::stringstream s; + s << toEigen(); + return s.str(); + } + int Quaternion::readFromXML(const string &xmlData, const Ice::Current &c) { boost::property_tree::ptree pt = Variant::GetPropertyTree(xmlData); @@ -247,6 +264,13 @@ namespace armarx return m; } + string Pose::output(const Ice::Current &c) const + { + std::stringstream s; + s << toEigen(); + return s.str(); + } + int Pose::readFromXML(const string &xmlData, const Ice::Current &c) { position->readFromXML(xmlData); @@ -321,6 +345,13 @@ namespace armarx return result; } + string FramedVector3::output(const Ice::Current &c) const + { + std::stringstream s; + s << toEigen() << std::endl << "frame: " << getFrame(); + return s.str(); + } + Eigen::Matrix4f FramedVector3::__GetRotationBetweenFrames(const std::string &oldFrame, const std::string &newFrame, VirtualRobot::RobotPtr robotState) { Eigen::Matrix4f toNewFrame = robotState->getRobotNode(oldFrame)->getTransformationTo(robotState->getRobotNode(newFrame)); @@ -395,6 +426,13 @@ namespace armarx return frame; } + string FramedPose::output(const Ice::Current &c) const + { + std::stringstream s; + s << toEigen() << std::endl << "frame: " << getFrame(); + return s.str(); + } + int FramedPose::readFromXML(const string &xmlData, const Ice::Current &c){ boost::property_tree::ptree pt = Variant::GetPropertyTree(xmlData); @@ -463,6 +501,13 @@ namespace armarx return this->frame; } + string FramedPosition::output(const Ice::Current &c) const + { + std::stringstream s; + s << toEigen() << std::endl << "frame: " << getFrame(); + return s.str(); + } + int FramedPosition::readFromXML(const string &xmlData, const Ice::Current &c){ using namespace boost::property_tree; ptree pt; @@ -533,6 +578,13 @@ namespace armarx return this->frame; } + string FramedOrientation::output(const Ice::Current &c) const + { + std::stringstream s; + s << toEigen() << std::endl << "frame: " << getFrame(); + return s.str(); + } + int FramedOrientation::readFromXML(const string &xmlData, const Ice::Current &c) { using namespace boost::property_tree; diff --git a/source/RobotAPI/robotstate/remote/ArmarPose.h b/source/RobotAPI/robotstate/remote/ArmarPose.h index 4b5e2378f..2bec17a53 100644 --- a/source/RobotAPI/robotstate/remote/ArmarPose.h +++ b/source/RobotAPI/robotstate/remote/ArmarPose.h @@ -27,14 +27,20 @@ #include <Eigen/Core> #include <Eigen/Geometry> + #include <RobotAPI/interface/robotstate/RobotState.h> #include <Core/observers/variant/Variant.h> #include <Core/observers/AbstractObjectSerializer.h> -#include <VirtualRobot/LinkedCoordinate.h> -#include <VirtualRobot/LinkedCoordinate.h> -#include <VirtualRobot/VirtualRobot.h> + #include <Core/core/exceptions/local/ExpressionException.h> +namespace VirtualRobot +{ + class Robot; + typedef boost::shared_ptr<Robot> RobotPtr; + class LinkedCoordinate; +} + namespace armarx { namespace VariantType @@ -74,12 +80,7 @@ namespace armarx { return new Vector3(*this); } - std::string output(const Ice::Current& c = ::Ice::Current()) const - { - std::stringstream s; - s << toEigen(); - return s.str(); - } + std::string output(const Ice::Current& c = ::Ice::Current()) const; VariantTypeId getType(const Ice::Current& c = ::Ice::Current()) const { return VariantType::Vector3; @@ -146,12 +147,7 @@ namespace armarx { return new Quaternion(*this); } - std::string output(const Ice::Current& c = ::Ice::Current()) const - { - std::stringstream s; - s << toEigen(); - return s.str(); - } + std::string output(const Ice::Current& c = ::Ice::Current()) const; VariantTypeId getType(const Ice::Current& c = ::Ice::Current()) const { return VariantType::Quaternion; @@ -229,12 +225,7 @@ namespace armarx { return new Pose(*this); } - std::string output(const Ice::Current& c = ::Ice::Current()) const - { - std::stringstream s; - s << toEigen(); - return s.str(); - } + std::string output(const Ice::Current& c = ::Ice::Current()) const; VariantTypeId getType(const Ice::Current& c = ::Ice::Current()) const { return VariantType::Pose; @@ -312,12 +303,7 @@ namespace armarx return new FramedPose(*this); } - std::string output(const Ice::Current& c = ::Ice::Current()) const - { - std::stringstream s; - s << toEigen() << std::endl << "frame: " << getFrame(); - return s.str(); - } + std::string output(const Ice::Current& c = ::Ice::Current()) const; VariantTypeId getType(const Ice::Current& c = ::Ice::Current()) const { @@ -396,12 +382,7 @@ namespace armarx { return new FramedVector3(*this); } - std::string output(const Ice::Current& c = ::Ice::Current()) const - { - std::stringstream s; - s << toEigen() << std::endl << "frame: " << getFrame(); - return s.str(); - } + std::string output(const Ice::Current& c = ::Ice::Current()) const; VariantTypeId getType(const Ice::Current& c = ::Ice::Current()) const { return VariantType::FramedVector3; @@ -468,12 +449,7 @@ namespace armarx { return new FramedPosition(*this); } - std::string output(const Ice::Current& c = ::Ice::Current()) const - { - std::stringstream s; - s << toEigen() << std::endl << "frame: " << getFrame(); - return s.str(); - } + std::string output(const Ice::Current& c = ::Ice::Current()) const; VariantTypeId getType(const Ice::Current& c = ::Ice::Current()) const { return VariantType::FramedPosition; @@ -539,12 +515,7 @@ namespace armarx { return new FramedOrientation(*this); } - std::string output(const Ice::Current& c = ::Ice::Current()) const - { - std::stringstream s; - s << toEigen() << std::endl << "frame: " << getFrame(); - return s.str(); - } + std::string output(const Ice::Current& c = ::Ice::Current()) const; VariantTypeId getType(const Ice::Current& c = ::Ice::Current()) const { return VariantType::FramedOrientation; diff --git a/source/RobotAPI/robotstate/remote/LinkedPose.cpp b/source/RobotAPI/robotstate/remote/LinkedPose.cpp index fb57250f6..408664cb0 100644 --- a/source/RobotAPI/robotstate/remote/LinkedPose.cpp +++ b/source/RobotAPI/robotstate/remote/LinkedPose.cpp @@ -9,6 +9,10 @@ #include <boost/property_tree/xml_parser.hpp> #include <Eigen/Geometry> +#include <Eigen/Core> + +#include <VirtualRobot/LinkedCoordinate.h> +#include <VirtualRobot/VirtualRobot.h> namespace armarx { diff --git a/source/RobotAPI/robotstate/remote/LinkedPose.h b/source/RobotAPI/robotstate/remote/LinkedPose.h index 107617e9e..c93139944 100644 --- a/source/RobotAPI/robotstate/remote/LinkedPose.h +++ b/source/RobotAPI/robotstate/remote/LinkedPose.h @@ -35,8 +35,7 @@ #include <Eigen/Core> #include <Eigen/Geometry> -#include <VirtualRobot/LinkedCoordinate.h> -#include <VirtualRobot/VirtualRobot.h> + #include <sstream> diff --git a/source/RobotAPI/statecharts/GraspingWithTorques/GraspingWithTorques.cpp b/source/RobotAPI/statecharts/GraspingWithTorques/GraspingWithTorques.cpp index c6c8c29bd..207ef01cf 100644 --- a/source/RobotAPI/statecharts/GraspingWithTorques/GraspingWithTorques.cpp +++ b/source/RobotAPI/statecharts/GraspingWithTorques/GraspingWithTorques.cpp @@ -30,6 +30,7 @@ #include <Core/observers/variant/SingleTypeVariantList.h> #include <RobotAPI/robotstate/remote/ArmarPose.h> #include <VirtualRobot/IK/DifferentialIK.h> +#include <VirtualRobot/Robot.h> #include <RobotAPI/interface/units/KinematicUnitInterface.h> #include <RobotAPI/interface/units/HandUnitInterface.h> diff --git a/source/RobotAPI/statecharts/OpenHand/OpenHand.cpp b/source/RobotAPI/statecharts/OpenHand/OpenHand.cpp index 0d98395ae..b448a3874 100644 --- a/source/RobotAPI/statecharts/OpenHand/OpenHand.cpp +++ b/source/RobotAPI/statecharts/OpenHand/OpenHand.cpp @@ -30,6 +30,7 @@ #include <Core/observers/variant/SingleTypeVariantList.h> #include <RobotAPI/robotstate/remote/ArmarPose.h> #include <VirtualRobot/IK/DifferentialIK.h> +#include <VirtualRobot/Robot.h> #include <RobotAPI/interface/units/KinematicUnitInterface.h> diff --git a/source/RobotAPI/statecharts/PlaceObject/PlaceObject.cpp b/source/RobotAPI/statecharts/PlaceObject/PlaceObject.cpp index 76b8018ca..1c6913acb 100644 --- a/source/RobotAPI/statecharts/PlaceObject/PlaceObject.cpp +++ b/source/RobotAPI/statecharts/PlaceObject/PlaceObject.cpp @@ -28,7 +28,9 @@ #include <Core/observers/variant/ChannelRef.h> #include <Core/observers/variant/SingleTypeVariantList.h> #include <RobotAPI/robotstate/remote/ArmarPose.h> +#include <RobotAPI/robotstate/remote/RemoteRobot.h> #include <VirtualRobot/IK/DifferentialIK.h> +#include <VirtualRobot/Robot.h> #include <RobotAPI/interface/units/KinematicUnitInterface.h> diff --git a/source/RobotAPI/units/HeadIKUnit.cpp b/source/RobotAPI/units/HeadIKUnit.cpp index 89f8975ae..7372bde96 100644 --- a/source/RobotAPI/units/HeadIKUnit.cpp +++ b/source/RobotAPI/units/HeadIKUnit.cpp @@ -5,6 +5,7 @@ #include <VirtualRobot/XML/RobotIO.h> #include <VirtualRobot/IK/GazeIK.h> +#include <VirtualRobot/LinkedCoordinate.h> namespace armarx -- GitLab