diff --git a/etc/doxygen/pages/3.howto b/etc/doxygen/pages/3.howto new file mode 100644 index 0000000000000000000000000000000000000000..95622dcd89b67c212deb3ff84dd46782aced1d87 --- /dev/null +++ b/etc/doxygen/pages/3.howto @@ -0,0 +1,22 @@ +/** +\page robotapi-howtos HowTos + +\subpage robotapi-howtos-eigen-from-pose + +\page robotapi-howtos-eigen-from-pose How to convert a Variant pose into an Eigen Matrix + +\code +#include <RobotAPI/libraries/robotstate/remote/ArmarPose.h> +#include <VirtualRobot/LinkedCoordinate.h> +#include <Eigen/Core> + +std::string refFrame = "Base"; +FramedPositionPtr position = getInput<FramedPosition>("position"); +FramedOrientationPtr orientation = getInput<FramedOrientation>("orientation"); + +VirtualRobot::LinkedCoordinate pose = ArmarPose::createLinkedCoordinate(context->remoteRobot, position, orientation); + +Eigen::Matrix4f matrix = pose.getInFrame(refFrame); + +\endcode +*/ diff --git a/source/RobotAPI/components/units/HandUnit.cpp b/source/RobotAPI/components/units/HandUnit.cpp index 853743acb1c0c773a577d58c12849a349772ad9e..d11f1fb8e9f0c324f9e7328082cd4218db81e5d2 100644 --- a/source/RobotAPI/components/units/HandUnit.cpp +++ b/source/RobotAPI/components/units/HandUnit.cpp @@ -77,7 +77,6 @@ void HandUnit::onInitComponent() for (size_t i=0;i<actors.size();i++) { EndEffectorActorPtr a = actors[i]; - ARMARX_WARNING_S << "here is a hack to make the stuff compile - but it will probably crash when run!"; std::vector<EndEffectorActor::ActorDefinition> ads;// = a->getDefinition(); for (size_t j=0;j<ads.size();j++) { @@ -91,13 +90,13 @@ void HandUnit::onInitComponent() const std::vector<std::string> endeffectorPreshapes = robot->getEndEffector(endeffectorName)->getPreshapes(); - preshapeNames = new SingleTypeVariantList(VariantType::String); + shapeNames = new SingleTypeVariantList(VariantType::String); std::vector<std::string>::const_iterator iter = endeffectorPreshapes.begin(); while(iter != endeffectorPreshapes.end()) { Variant currentPreshape; currentPreshape.setString(*iter); - preshapeNames->addVariant(currentPreshape); + shapeNames->addVariant(currentPreshape); iter++; } @@ -125,24 +124,15 @@ void HandUnit::onExitComponent() } -void HandUnit::open(const Ice::Current& c) -{ -} - - -void HandUnit::close(const Ice::Current& c) -{ -} - -void HandUnit::preshape(const std::string& preshapeName, const Ice::Current& c) +void HandUnit::shape(const std::string& shapeName, const Ice::Current& c) { } -SingleTypeVariantListBasePtr HandUnit::getPreshapeNames(const Ice::Current& c) +SingleTypeVariantListBasePtr HandUnit::getShapeNames(const Ice::Current& c) { - return preshapeNames; + return shapeNames; } @@ -153,10 +143,10 @@ PropertyDefinitionsPtr HandUnit::createPropertyDefinitions() } -NameValueMap HandUnit::getPreshapeJointValues(const std::string &preshapeName, const Ice::Current &) +NameValueMap HandUnit::getShapeJointValues(const std::string &shapeName, const Ice::Current &) { EndEffectorPtr efp = robot->getEndEffector(getProperty<std::string>("EndeffectorName").getValue()); - RobotConfigPtr rc = efp->getPreshape(preshapeName); + RobotConfigPtr rc = efp->getPreshape(shapeName); return rc->getRobotNodeJointValueMap(); } diff --git a/source/RobotAPI/components/units/HandUnit.h b/source/RobotAPI/components/units/HandUnit.h index 31c5c3729d57bc8b4107910bc599c936d132410a..8fc88cd1f94f72803d1bb50f8aac6fb000635ac5 100644 --- a/source/RobotAPI/components/units/HandUnit.h +++ b/source/RobotAPI/components/units/HandUnit.h @@ -114,24 +114,24 @@ namespace armarx /** * Send command to the hand to open all fingers. */ - virtual void open(const Ice::Current& c = ::Ice::Current()); + //virtual void open(const Ice::Current& c = ::Ice::Current()); /** * Send command to the hand to close all fingers. */ - virtual void close(const Ice::Current& c = ::Ice::Current()); + //virtual void close(const Ice::Current& c = ::Ice::Current()); /** - * Send command to the hand to form a specific preshape position. + * Send command to the hand to form a specific shape position. The shapes are defined in the robot.xml file. */ - virtual void preshape(const std::string& preshapeName, const Ice::Current& c = ::Ice::Current()); + virtual void shape(const std::string& shapeName, const Ice::Current& c = ::Ice::Current()); /** - * @return a list of strings for preshape positions which can be used together with HandUnit::preshape(). + * @return a list of strings for shape positions which can be used together with HandUnit::shape(). */ - virtual SingleTypeVariantListBasePtr getPreshapeNames(const Ice::Current& c = ::Ice::Current()); + virtual SingleTypeVariantListBasePtr getShapeNames(const Ice::Current& c = ::Ice::Current()); - NameValueMap getPreshapeJointValues(const std::string &preshapeName, const Ice::Current & c = ::Ice::Current()); + NameValueMap getShapeJointValues(const std::string &shapeName, const Ice::Current & c = ::Ice::Current()); void setObjectGrasped(const std::string &objectName, const Ice::Current &); void setObjectReleased(const std::string &objectName, const Ice::Current &); @@ -152,9 +152,9 @@ namespace armarx */ std::string listenerChannelName; /** - * List containing the names of all valid preshapes. + * List containing the names of all valid shapes. */ - SingleTypeVariantListPtr preshapeNames; + SingleTypeVariantListPtr shapeNames; VirtualRobot::RobotPtr robot; VirtualRobot::EndEffectorPtr eef; diff --git a/source/RobotAPI/components/units/HandUnitObserver.cpp b/source/RobotAPI/components/units/HandUnitObserver.cpp index cdb899d599f314c45bc75c8c8019c8339d6cf668..31c93458e48ec1e4d3c39e4e8281431bf4704cc2 100644 --- a/source/RobotAPI/components/units/HandUnitObserver.cpp +++ b/source/RobotAPI/components/units/HandUnitObserver.cpp @@ -12,7 +12,7 @@ using namespace armarx; void HandUnitObserver::onInitObserver() { - usingTopic("LeftHandState"); + /*usingTopic("LeftHandState"); usingTopic("RightHandState"); offerChannel("leftHand", "Gives information about the state of the left robot hand."); @@ -34,7 +34,7 @@ void HandUnitObserver::onInitObserver() updateChannel("rightHand"); offerConditionCheck("equals", new armarx::ConditionCheckEquals()); - offerConditionCheck("updated", new armarx::ConditionCheckUpdated()); + offerConditionCheck("updated", new armarx::ConditionCheckUpdated());*/ } @@ -52,7 +52,7 @@ void HandUnitObserver::onExitObserver() } - +/* void HandUnitObserver::reportHandClosed(bool isLeftHand, const Ice::Current&) { if (isLeftHand) @@ -86,11 +86,12 @@ void HandUnitObserver::reportHandOpened(bool isLeftHand, const Ice::Current&) updateChannel("rightHand"); } } +*/ - -void HandUnitObserver::reportHandPreshaped(bool isLeftHand, const Ice::Current&) +void HandUnitObserver::reportHandShaped(const std::string &handName, const std::string &shapeName, const Ice::Current&) { - if (isLeftHand) + // todo + /*if (isLeftHand) { setDataField("leftHand", "isOpen", false); setDataField("leftHand", "isClosed", false); @@ -101,14 +102,15 @@ void HandUnitObserver::reportHandPreshaped(bool isLeftHand, const Ice::Current&) setDataField("rightHand", "isOpen", false); setDataField("rightHand", "isClosed", false); updateChannel("rightHand"); - } + }*/ } -void HandUnitObserver::reportNewHandShapeName(bool isLeftHand, const std::string& handShapeName, const Ice::Current&) +void HandUnitObserver::reportNewHandShapeName(const std::string &handName, const std::string& handShapeName, const Ice::Current&) { - if (isLeftHand) + // todo + /*if (isLeftHand) { setDataField("leftHand", "shapeName", handShapeName); updateChannel("leftHand"); @@ -117,5 +119,5 @@ void HandUnitObserver::reportNewHandShapeName(bool isLeftHand, const std::string { setDataField("rightHand", "shapeName", handShapeName); updateChannel("rightHand"); - } + }*/ } diff --git a/source/RobotAPI/components/units/HandUnitObserver.h b/source/RobotAPI/components/units/HandUnitObserver.h index 98134d4fd2dd18b180eafe2405e353f8658aa06b..1ac69c33e61fe04b9bd8daf44dc2f6f957574cd2 100644 --- a/source/RobotAPI/components/units/HandUnitObserver.h +++ b/source/RobotAPI/components/units/HandUnitObserver.h @@ -43,6 +43,7 @@ namespace armarx }; + // TODO !!! class HandUnitObserver : virtual public Observer, virtual public HandUnitListener @@ -50,8 +51,6 @@ namespace armarx public: HandUnitObserver(){} - //void setTopicName(std::string topicName); - // framework hooks virtual std::string getDefaultName() const { return "HandUnitObserver"; } virtual void onInitObserver(); @@ -59,10 +58,9 @@ namespace armarx virtual void onExitObserver(); // observer interface - virtual void reportHandClosed(bool isLeftHand, const ::Ice::Current& = ::Ice::Current()); - virtual void reportHandOpened(bool isLeftHand, const ::Ice::Current& = ::Ice::Current()); - virtual void reportHandPreshaped(bool isLeftHand, const ::Ice::Current& = ::Ice::Current()); - virtual void reportNewHandShapeName(bool isLeftHand, const ::std::string& handShapeName, const ::Ice::Current& = ::Ice::Current()); + // implementation: todo... + virtual void reportHandShaped(const std::string &handName, const std::string &shapeName, const ::Ice::Current& = ::Ice::Current()); + virtual void reportNewHandShapeName(const std::string &handName, const ::std::string& handShapeName, const ::Ice::Current& = ::Ice::Current()); /** * @see PropertyUser::createPropertyDefinitions() diff --git a/source/RobotAPI/components/units/HandUnitSimulation.cpp b/source/RobotAPI/components/units/HandUnitSimulation.cpp index 01c2dfd4d7195f9c16344e4a2be14088e9e3179a..e46bd2ab944933dbd0c6a0eb32d8b4759bfeea4f 100644 --- a/source/RobotAPI/components/units/HandUnitSimulation.cpp +++ b/source/RobotAPI/components/units/HandUnitSimulation.cpp @@ -50,19 +50,8 @@ void HandUnitSimulation::onExitHandUnit() -void HandUnitSimulation::open(const Ice::Current& c) -{ -} - - - -void HandUnitSimulation::close(const Ice::Current& c) -{ -} - - -void HandUnitSimulation::preshape(const std::string& preshapeName, const Ice::Current& c) +void HandUnitSimulation::setShape(const std::string& shapeName, const Ice::Current& c) { } diff --git a/source/RobotAPI/components/units/HandUnitSimulation.h b/source/RobotAPI/components/units/HandUnitSimulation.h index 3ae8f22abd74b97cd6345f91981dc7dae492bd1e..233428a5b58bf148eee16489ddf4dd310fb4a1ca 100644 --- a/source/RobotAPI/components/units/HandUnitSimulation.h +++ b/source/RobotAPI/components/units/HandUnitSimulation.h @@ -52,7 +52,7 @@ namespace armarx * @brief This class defines an interface for providing high level access to robot hands * @ingroup SensorActorUnits * - * An instance of a HandUnitSimulation provides means to open, close, and preshape hands. + * An instance of a HandUnitSimulation provides means to open, close, and shape hands. * It uses the HandUnitListener Ice interface to report updates of its current state * */ @@ -79,20 +79,12 @@ namespace armarx */ virtual void onExitHandUnit(); - /** - * Send command to the hand to open all fingers. - */ - virtual void open(const Ice::Current& c = ::Ice::Current()); - /** - * Send command to the hand to close all fingers. - */ - virtual void close(const Ice::Current& c = ::Ice::Current()); /** - * Send command to the hand to form a specific preshape position. + * Send command to the hand to form a specific shape position. */ - virtual void preshape(const std::string& preshapeName, const Ice::Current& c = ::Ice::Current()); + virtual void setShape(const std::string& shapeName, const Ice::Current& c = ::Ice::Current()); protected: diff --git a/source/RobotAPI/components/units/HapticObserver.h b/source/RobotAPI/components/units/HapticObserver.h index 71c19b9e9b1172c87601ad2d64c0fc985d0ec0fc..fde75d4eaaf909528c7d081326fc7b80269583d4 100644 --- a/source/RobotAPI/components/units/HapticObserver.h +++ b/source/RobotAPI/components/units/HapticObserver.h @@ -41,7 +41,7 @@ namespace armarx HapticObserverPropertyDefinitions(std::string prefix): ComponentPropertyDefinitions(prefix) { - defineRequiredProperty<std::string>("HapticTopicName", "Name of the HapticUnit Topic"); + defineOptionalProperty<std::string>("HapticTopicName", "HapticValues", "Name of the HapticUnit Topic"); } }; diff --git a/source/RobotAPI/components/units/HapticUnit.cpp b/source/RobotAPI/components/units/HapticUnit.cpp index cea65e6336bcf02052273894137db21c4e6df7c8..aef0f4e890a05766782217b1ccdcc5b08caf6437 100644 --- a/source/RobotAPI/components/units/HapticUnit.cpp +++ b/source/RobotAPI/components/units/HapticUnit.cpp @@ -27,14 +27,13 @@ using namespace armarx; void HapticUnit::onInitComponent() { - listenerName = "HapticValues"; - offeringTopic(listenerName); + offeringTopic(getProperty<std::string>("HapticTopicName").getValue()); onInitHapticUnit(); } void HapticUnit::onConnectComponent() { - listenerPrx = getTopic<HapticUnitListenerPrx>(listenerName); + hapticTopicPrx = getTopic<HapticUnitListenerPrx>(getProperty<std::string>("HapticTopicName").getValue()); onStartHapticUnit(); } diff --git a/source/RobotAPI/components/units/HapticUnit.h b/source/RobotAPI/components/units/HapticUnit.h index 00a1ebb37786f044db87c75a69451d5fbe70ceb0..a018851c99d91cac519548f4d055f4bd39607ffd 100644 --- a/source/RobotAPI/components/units/HapticUnit.h +++ b/source/RobotAPI/components/units/HapticUnit.h @@ -41,7 +41,7 @@ namespace armarx HapticUnitPropertyDefinitions(std::string prefix) : ComponentPropertyDefinitions(prefix) { - // No required properties + defineOptionalProperty<std::string>("HapticTopicName", "HapticValues", "Name of the Haptic Topic."); } }; @@ -63,8 +63,7 @@ namespace armarx virtual PropertyDefinitionsPtr createPropertyDefinitions(); protected: - HapticUnitListenerPrx listenerPrx; - std::string listenerName; + HapticUnitListenerPrx hapticTopicPrx; }; } diff --git a/source/RobotAPI/interface/units/HandUnitInterface.ice b/source/RobotAPI/interface/units/HandUnitInterface.ice index b223021af082526cbd248a149fce0405783133c4..fe74608186e942cd18d121c96bd4e760345a0b53 100644 --- a/source/RobotAPI/interface/units/HandUnitInterface.ice +++ b/source/RobotAPI/interface/units/HandUnitInterface.ice @@ -38,11 +38,11 @@ module armarx interface HandUnitInterface extends SensorActorUnitInterface { - void open(); - void close(); - void preshape(string preshapeName); - SingleTypeVariantListBase getPreshapeNames(); - NameValueMap getPreshapeJointValues(string preshapeName); + void setShape(string shapeName); + SingleTypeVariantListBase getShapeNames(); + NameValueMap getShapeJointValues(string shapeName); + + /*! * \brief Inform the hand unit that an object has been successfully grasped. @@ -60,10 +60,8 @@ module armarx interface HandUnitListener extends armarx::ObserverInterface { - void reportHandClosed(bool isLeftHand); - void reportHandOpened(bool isLeftHand); - void reportHandPreshaped(bool isLeftHand); - void reportNewHandShapeName(bool isLeftHand, string handShapeName); + void reportHandShaped(string handName, string handShapeName); + void reportNewHandShapeName(string handName, string handShapeName); }; diff --git a/source/RobotAPI/interface/units/KinematicUnitInterface.ice b/source/RobotAPI/interface/units/KinematicUnitInterface.ice index 4c4057da4907c48ec77c86cd7352ad236cb7ce1e..1651057f7b600ec5bea6cc63bf5a6d6eb8a3c439 100644 --- a/source/RobotAPI/interface/units/KinematicUnitInterface.ice +++ b/source/RobotAPI/interface/units/KinematicUnitInterface.ice @@ -116,7 +116,7 @@ module armarx * Depending on the chosen control mode, one or more of the following functions need to be called * to set all necessary parameters. * - * The motion starts after all values have been set. + * The motion starts immediately. */ void setJointAngles(NameValueMap targetJointAngles) throws OutOfRangeException; void setJointVelocities(NameValueMap targetJointVelocities) throws OutOfRangeException; @@ -142,7 +142,7 @@ module armarx void reportJointStatuses(NameStatusMap actualJointStatuses, bool aValueChanged); }; - interface KinematicUnitHandInterface extends KinematicUnitInterface + /*interface KinematicUnitHandInterface extends KinematicUnitInterface { void open(); void close(); @@ -150,14 +150,14 @@ module armarx void getObjectPoseInHandFrame(); void getHandPoseInObjectFrame(); - }; + };*/ - interface KinematicUnitHandListener + /*interface KinematicUnitHandListener { void reportTactileSensorData(NameValueMap actualTactileSensorData); void reportTactileSensorRawData(NameValueMap actualTactileSensorRawData); void reportTactileSensorContactData(NameValueMap actualTactileSensorContactData); - }; + };*/ }; diff --git a/source/RobotAPI/interface/visualization/DebugDrawerInterface.ice b/source/RobotAPI/interface/visualization/DebugDrawerInterface.ice index 71917f98f3429a4fdbeaa05598235379f4db6bb7..97863966089d30d2e83433c59852d443cd32b1cc 100644 --- a/source/RobotAPI/interface/visualization/DebugDrawerInterface.ice +++ b/source/RobotAPI/interface/visualization/DebugDrawerInterface.ice @@ -31,6 +31,18 @@ module armarx { + /*! + * \brief The Color struct + * Values in [0,1] + */ + struct DrawColor + { + float r; + float g; + float b; + }; + + /*! * \brief A layered drawing interface. * All drawing operations are identified with a layer name in order to distinguish different drawing entitties. @@ -45,7 +57,9 @@ module armarx * \param poseName The internal name of the pose (can be used to update/disable the drawing). * \param globalPose The pose in global coordinate syetem. */ - void setPoseLayerVisu(string layerName, string poseName, PoseBase globalPose); + void setPoseVisu(string layerName, string poseName, PoseBase globalPose); + + void setLineVisu(string layerName, string lineName, Vector3Base globalPosition1, Vector3Base globalPosition2, float lineWidth, DrawColor color); /*! * \brief setPoseVisu draws on the "debug" layer @@ -53,18 +67,21 @@ module armarx * \param globalPose */ void setPoseDebugLayerVisu(string poseName, PoseBase globalPose); + void setLineDebugLayerVisu(string lineName, Vector3Base globalPosition1, Vector3Base globalPosition2, float lineWidth, DrawColor color); /*! * \brief Remove visualization of coordinate system. * \param layerName The name of the drawing layer. * \param poseName The name of the pose. */ - void removePoseLayerVisu(string layerName, string poseName); + void removePoseVisu(string layerName, string poseName); + void removeLineVisu(string layerName, string lineName); /*! * \brief Removes pose from the "debug" layer. */ void removePoseDebugLayerVisu(string poseName); + void removeLineDebugLayerVisu(string lineName); }; diff --git a/source/RobotAPI/libraries/drivers/WeissHapticSensor/WeissHapticSensorsUnit.cpp b/source/RobotAPI/libraries/drivers/WeissHapticSensor/WeissHapticSensorsUnit.cpp index ad7fc94e2f76e0d7356f8b2bb47fc25a3aaabccf..22bfeca89b8f7024b1cdefdf758cb2641059b756 100755 --- a/source/RobotAPI/libraries/drivers/WeissHapticSensor/WeissHapticSensorsUnit.cpp +++ b/source/RobotAPI/libraries/drivers/WeissHapticSensor/WeissHapticSensorsUnit.cpp @@ -122,7 +122,7 @@ void WeissHapticSensorsUnit::onStartHapticUnit() for(std::vector<boost::shared_ptr<WeissHapticSensor> >::iterator it = sensors.begin(); it != sensors.end(); ++it) { - (*it)->setListenerPrx(listenerPrx); + (*it)->setListenerPrx(hapticTopicPrx); (*it)->startSampling(); } diff --git a/source/RobotAPI/libraries/drivers/WeissHapticSensor/WeissHapticSensorsUnit.h b/source/RobotAPI/libraries/drivers/WeissHapticSensor/WeissHapticSensorsUnit.h index 6d0488a8397e1bffeb908d4180874313e781bfe1..b0525db2084c1c28bfc4de1ff370c14b7f35e6bc 100755 --- a/source/RobotAPI/libraries/drivers/WeissHapticSensor/WeissHapticSensorsUnit.h +++ b/source/RobotAPI/libraries/drivers/WeissHapticSensor/WeissHapticSensorsUnit.h @@ -15,7 +15,7 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. * * @package Armar4::units - * @author Peter Kaiser <peter dot kaiser at kit dot edu> + * @author Simon Ottenhaus <simon dot ottenhaus at kit dot edu> * @date 2014 * @copyright http://www.gnu.org/licenses/gpl.txt * GNU General Public License @@ -39,16 +39,13 @@ namespace armarx WeissHapticSensorsUnitPropertyDefinitions(std::string prefix): HapticUnitPropertyDefinitions(prefix) { - //defineOptionalProperty<int>("FirstPipeID", 1, "Id of the first Linux/Xenomai Pipe to use for data transfer"); - //defineOptionalProperty<std::string>("PipeBaseName", "rtp", "Base name of pipe devices"); - //defineOptionalProperty<std::string>("Logfile", "", "Logfile for logging pipe communication"); } }; class WeissHapticSensorsUnit : virtual public HapticUnit { public: - virtual std::string getDefaultName() { return "HapticUnitArmar4"; } + virtual std::string getDefaultName() { return "WeissHapticSensorsUnit"; } virtual void onInitHapticUnit(); virtual void onStartHapticUnit(); diff --git a/source/RobotAPI/statecharts/motioncontrol/MotionControl.cpp b/source/RobotAPI/statecharts/motioncontrol/MotionControl.cpp index dcbdd72b4404d9bccf3c68c5b8223a761d44628c..10ec9a97711826ddd828b5b3d060ebb375db2173 100644 --- a/source/RobotAPI/statecharts/motioncontrol/MotionControl.cpp +++ b/source/RobotAPI/statecharts/motioncontrol/MotionControl.cpp @@ -852,7 +852,7 @@ void DoPreshape::onEnter() ARMARX_INFO << VAROUT(availableJoints); if(it != context->handUnits.end()) { - NameValueMap jointValues = it->second->getPreshapeJointValues(getInput<std::string>("preshapeName")); + NameValueMap jointValues = it->second->getShapeJointValues(getInput<std::string>("preshapeName")); Term jointCondition; ARMARX_IMPORTANT << VAROUT(jointValues); for (NameValueMap::const_iterator itJ = jointValues.begin(); itJ != jointValues.end(); ++itJ) @@ -863,7 +863,7 @@ void DoPreshape::onEnter() jointCondition = jointCondition && Literal(id, "inrange", Literal::createParameterList((float)(itJ->second - 2.0f/180.0f*M_PI), (float)(itJ->second + 2.0f/180.0f*M_PI))); } cond = installCondition<EvSuccess>(jointCondition,"joint angles reached"); - it->second->preshape(getInput<std::string>("preshapeName")); + it->second->setShape(getInput<std::string>("preshapeName")); action = setTimeoutEvent(5000, createEvent<EvSuccess>()); } @@ -932,7 +932,7 @@ void DoPrefixPreshapeSet::onEnter() std::map<std::string, HandUnitInterfacePrx>::iterator it = context->handUnits.find(handUnitName); if(it != context->handUnits.end()) { - setLocal("preshapes", DoPreshape::GetPreshapeSet(SingleTypeVariantListPtr::dynamicCast(it->second->getPreshapeNames()), getInput<std::string>("preshapePrefix"))); + setLocal("preshapes", DoPreshape::GetPreshapeSet(SingleTypeVariantListPtr::dynamicCast(it->second->getShapeNames()), getInput<std::string>("preshapePrefix"))); } else { diff --git a/source/RobotAPI/statecharts/motioncontrol/MotionControl.h b/source/RobotAPI/statecharts/motioncontrol/MotionControl.h index 7e22a3d624662bf5b680213399bed6b2078adb2c..27fd999c71705bd04d159ad1dcc5422d954390aa 100644 --- a/source/RobotAPI/statecharts/motioncontrol/MotionControl.h +++ b/source/RobotAPI/statecharts/motioncontrol/MotionControl.h @@ -58,6 +58,8 @@ namespace MotionControl * \param targetJointValues the desired joint values * \param targetTolerance tolerance defining how precisely the joint position has to be reached * \param timeoutInMs a timeout after which the attempt to move is aborted + * + * \warning Deprecated, use RobotSkills/statecharts/MotionControlGroup/JointPositionControl instead */ struct MoveJoints : StateTemplate<MoveJoints> { diff --git a/source/RobotAPI/statecharts/placeobject/PlaceObject.cpp b/source/RobotAPI/statecharts/placeobject/PlaceObject.cpp index ffe624d9dc854d9d57329c4711b06c8b545fda1f..b5429097077bcaec9a0b62661fb241bd64f6f5e9 100644 --- a/source/RobotAPI/statecharts/placeobject/PlaceObject.cpp +++ b/source/RobotAPI/statecharts/placeobject/PlaceObject.cpp @@ -166,8 +166,8 @@ namespace armarx HandUnitInterfacePrx handUnitPrx = context->getHandUnit("RightHandUnit"); if (handUnitPrx) { - ARMARX_INFO << "Sending open hand command" << flush; - handUnitPrx->open(); + ARMARX_INFO << "Sending open hand command TODO...." << flush; + //handUnitPrx->open(); ARMARX_INFO << "TEST: set object released: Vitalis" << flush; handUnitPrx->setObjectReleased("Vitalis"); } else