Skip to content
Snippets Groups Projects
Commit 1f7707e4 authored by Peter Kaiser's avatar Peter Kaiser
Browse files
parents c4d9477a d84fb20d
No related branches found
No related tags found
No related merge requests found
Showing
with 114 additions and 29 deletions
<?xml version="1.0" encoding="utf-8"?>
<VariantInfo>
<Lib name="RobotAPIRemoteRobot">
<VariantFactory include="RobotAPI/robotstate/remote/RobotStateObjectFactories.h" />
<VariantFactory include="RobotAPI/libraries/robotstate/remote/RobotStateObjectFactories.h" />
<Variant baseType="::armarx::Vector3Base" dataType="::armarx::Vector3" humanName="Vector3" />
<Variant baseType="::armarx::QuaternionBase" dataType="::armarx::Quaternion" humanName="Quaternion" />
<Variant baseType="::armarx::PoseBase" dataType="::armarx::Pose" humanName="Pose" />
......
......@@ -60,7 +60,7 @@
# Attributes:
# - Case sensitivity: no
# - Required: yes
ArmarX.KinematicUnitObserver.RobotFileName = /Armar4/data/robotmodel/ArmarIV.xml
ArmarX.KinematicUnitObserver.RobotFileName = Armar4/robotmodel/ArmarIV.xml
# ArmarX.KinematicUnitObserver.RobotNodeSetName: Robot node name
......
......@@ -68,7 +68,7 @@
# Attributes:
# - Case sensitivity: no
# - Required: yes
ArmarX.KinematicUnitSimulation.RobotFileName = /Armar4/data/robotmodel/ArmarIV.xml
ArmarX.KinematicUnitSimulation.RobotFileName = Armar4/robotmodel/ArmarIV.xml
# ArmarX.KinematicUnitSimulation.RobotNodeSetName: Robot node name
......
ArmarX.RobotStateComponent.RobotFileName=/Armar4/data/robotmodel/ArmarIV.xml # model XML file path containing a VirtualRobot RobotNodeSet that defines the joints
ArmarX.RobotStateComponent.RobotFileName=Armar4/robotmodel/ArmarIV.xml # model XML file path containing a VirtualRobot RobotNodeSet that defines the joints
ArmarX.RobotStateComponent.RobotNodeSetName=Robot # node set name
ArmarX.RobotStateComponent.ObjectName=RobotStateComponent # name of the ICE adapter
# test config file for KinematicUnit configured to be a Head
ArmarX.KinematicUnitSimulation.RobotFileName=${ArmarXHome_DIR}/Armar3/data/robotmodel/ArmarIII-Head.xml # (absolut path required) model XML file path containing a VirtualRobot RobotNodeSet that defines the joints
ArmarX.KinematicUnitSimulation.RobotFileName=Armar3/data/robotmodel/ArmarIII-Head.xml # (absolut path required) model XML file path containing a VirtualRobot RobotNodeSet that defines the joints
ArmarX.KinematicUnitSimulation.RobotNodeSetName=Head # node set name
ArmarX.KinematicUnitSimulation.AdapterName=HeadKinematicUnit # name of the Ice adapter
# test config file for KinematicUnit configured to be a Head
ArmarX.KinematicUnitObserver.RobotFileName=${ArmarXHome_DIR}/Armar3/data/robotmodel/ArmarIII-Head.xml # (absolut path required) model XML file path containing a VirtualRobot RobotNodeSet that defines the joints
ArmarX.KinematicUnitObserver.RobotFileName=Armar3/data/robotmodel/ArmarIII-Head.xml # (absolut path required) model XML file path containing a VirtualRobot RobotNodeSet that defines the joints
ArmarX.KinematicUnitObserver.RobotNodeSetName=Head # node set name
ArmarX.KinematicUnitObserver.AdapterName=HeadKinematicUnitObserver # name of the Ice adapter
# test config file for KinematicUnit configured to be a Head
ArmarX.RobotStateComponent.RobotFileName=${ArmarXHome_DIR}/Armar3/data/robotmodel/ArmarIII-LeftArm.xml # (absolut path required) model XML file path containing a VirtualRobot RobotNodeSet that defines the joints
ArmarX.RobotStateComponent.RobotFileName=Armar3/data/robotmodel/ArmarIII-LeftArm.xml # (absolut path required) model XML file path containing a VirtualRobot RobotNodeSet that defines the joints
ArmarX.RobotStateComponent.RobotNodeSetName=LeftArm # node set name
ArmarX.RobotStateComponent.AdapterName=RobotStateComponent # name of the Ice adapter
......@@ -5,7 +5,7 @@ ArmarX.DisableLogging=False
ArmarX.KinematicUnitGuiPlugin.MinimumLoggingLevel=Info
ArmarX.KinematicUnitGuiPlugin.RobotFileName=${ArmarXHome_DIR}/Armar4/data/robotmodel/ArmarIV.xml
ArmarX.KinematicUnitGuiPlugin.RobotFileName=Armar4/robotmodel/ArmarIV.xml
ArmarX.KinematicUnitGuiPlugin.RobotNodeSetName=Robot
ArmarX.KinematicUnitGuiPlugin.KinematicUnitName=RobotKinematicUnit
#ArmarX.MdiPlugin.Profile=TCPMover
......
# test config file for KinematicUnit configured to be a Head
ArmarX.KinematicUnitSimulation.RobotFileName=${ArmarXHome_DIR}/Armar4/data/robotmodel/ArmarIV.xml
ArmarX.KinematicUnitSimulation.RobotFileName=Armar4/robotmodel/ArmarIV.xml
ArmarX.KinematicUnitSimulation.RobotNodeSetName=Robot # node set name vorher Head
ArmarX.KinematicUnitSimulation.AdapterName=RobotKinematicUnit # name of the Ice adapter vorher HeadKinematicUnit
# A test config file for KinematicUnit configured to be a Head
ArmarX.KinematicUnitSimulation.RobotFileName=${ArmarXHome_DIR}/Armar4/data/robotmodel/ArmarIV.xml # (absolut path required) model XML file path containing a VirtualRobot RobotNodeSet that defines the joints
ArmarX.KinematicUnitSimulation.RobotFileName=Armar4/robotmodel/ArmarIV.xml # (absolut path required) model XML file path containing a VirtualRobot RobotNodeSet that defines the joints
ArmarX.KinematicUnitSimulation.RobotNodeSetName=Robot # node set name vorher Head
ArmarX.KinematicUnitSimulation.AdapterName=RobotKinematicUnit # name of the Ice adapter vorher HeadKinematicUnit
......
# test config file for KinematicUnit configured to be a Head
ArmarX.KinematicUnitObserver.RobotFileName=${ArmarXHome_DIR}/Armar4/data/robotmodel/ArmarIV.xml # (absolut path required) model XML file path containing a VirtualRobot RobotNodeSet that defines the joints
ArmarX.KinematicUnitObserver.RobotFileName=Armar4/robotmodel/ArmarIV.xml # (absolut path required) model XML file path containing a VirtualRobot RobotNodeSet that defines the joints
ArmarX.KinematicUnitObserver.RobotNodeSetName=Robot # node set name
ArmarX.KinematicUnitObserver.AdapterName=RobotKinematicUnitObserver # name of the Ice adapter
......@@ -28,7 +28,7 @@
#include <Core/core/Component.h>
#include <RobotAPI/interface/units/HapticUnit.h>
#include <Core/util/variants/eigen3/MatrixVariant.h>
#include <Core/util/variants/eigen3/VariantObjectFactories.h>
#include <Core/util/variants/eigen3/Eigen3VariantObjectFactories.h>
namespace armarx
......
......@@ -90,21 +90,16 @@ void ForceTorqueObserver::offerValue(std::string channelName, const std::string
channelName += "_pod";
if(!existsChannel(channelName))
{
offerChannel(channelName, type + " on " + channelName);
offerDataFieldWithDefault(channelName, type + "_x", Variant(vec->x), type + " on X axis");
offerDataFieldWithDefault(channelName, type + "_y", Variant(vec->y), type + " on Y axis");
offerDataFieldWithDefault(channelName, type + "_z", Variant(vec->z), type + " on Z axis");
offerDataFieldWithDefault(channelName, type + "_frame", Variant(vec->frame), "Frame of " + value);
}
else
if(!existsChannel(channelName) )
{
setDataField(channelName, type + "_x", Variant(vec->x));
setDataField(channelName, type + "_y", Variant(vec->y));
setDataField(channelName, type + "_z", Variant(vec->z));
setDataField(channelName, type + "_frame", Variant(vec->frame));
offerChannel(channelName, identifier + " on " + channelName);
}
offerOrUpdateDataField(channelName, identifier + "_x", Variant(vec->x), type + " on X axis");
offerOrUpdateDataField(channelName, identifier + "_y", Variant(vec->y), type + " on Y axis");
offerOrUpdateDataField(channelName, identifier + "_z", Variant(vec->z), type + " on Z axis");
offerOrUpdateDataField(channelName, identifier + "_frame", Variant(vec->frame), "Frame of " + value->frame);
updateChannel(channelName);
......
......@@ -27,7 +27,8 @@
#include <RobotAPI/interface/units/HapticUnit.h>
#include <Core/observers/Observer.h>
#include <Core/util/variants/eigen3/MatrixVariant.h>
#include <Core/util/variants/eigen3/VariantObjectFactories.h>
//#include <Core/util/variants/eigen3/Eigen3LibRegistry.h>
#include <Core/util/variants/eigen3/Eigen3VariantObjectFactories.h>
#include <Core/core/services/tasks/PeriodicTask.h>
namespace armarx
......
......@@ -44,7 +44,7 @@ namespace armarx
//std::string robotModelFile;
//ArmarXDataPath::getAbsolutePath("Armar3/data/robotmodel/ArmarIII.xml", robotModelFile);
//ArmarXDataPath::getAbsolutePath("Armar3/robotmodel/ArmarIII.xml", robotModelFile);
//localRobot = VirtualRobot::RobotIO::loadRobot(robotModelFile.c_str(), VirtualRobot::RobotIO::eStructure);
//VirtualRobot::RobotPtr robotSnapshot(new RemoteRobot(remoteRobotPrx));
//localRobot->setConfig(robotSnapshot->getConfig());
......
......@@ -26,6 +26,9 @@ set(SLICE_FILES
units/TCPControlUnit.ice
units/TCPMoverUnitInterface.ice
units/UnitInterface.ice
visualization/DebugDrawerInterface.ice
)
# generate the interface library
......
......@@ -120,10 +120,16 @@ module armarx
* @return proxy to the shared robot which constantly updates all joint values
*/
SharedRobotInterface* getSynchronizedRobot();
/**
* @return proxy to a copy of the shared robot with non updating joint values
*/
SharedRobotInterface* getRobotSnapshot(string time);
/**
* @return the robot xml filename as specified in the configuration
*/
string getRobotFilename();
};
};
......
/*
* This file is part of ArmarX.
*
* ArmarX is free software; you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation; either version 2 of
* the License, or (at your option) any later version.
*
* ArmarX is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* @package ArmarX::RobotAPI
* @author Nikolaus Vahrenkamp
* @copyright 2014
* @license http://www.gnu.org/licenses/gpl.txt
* GNU General Public License
*/
#ifndef _ARMARX_API_DEBUGDRAWERLAYER_SLICE_
#define _ARMARX_API_DEBUGDRAWERLAYER_SLICE_
#include <Core/interface/core/UserException.ice>
#include <Core/interface/core/BasicTypes.ice>
#include <RobotAPI/interface/robotstate/PoseBase.ice>
module armarx
{
/*!
* \brief A layered drawing interface.
* All drawing operations are identified with a layer name in order to distinguish different drawing entitties.
* The layered approach allows a visualizer GUI to enable/disable different layers according to the requested visualization.
*/
interface DebugDrawerInterface
{
/*!
* \brief Draw or update a coordinate system.
* \param drawLayer A custom name to distinguish different drawing layers.
* \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);
/*!
* \brief setPoseVisu draws on the "debug" layer
* \param poseName
* \param globalPose
*/
void setPoseDebugLayerVisu(string poseName, PoseBase globalPose);
/*!
* \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);
/*!
* \brief Removes pose from the "debug" layer.
*/
void removePoseDebugLayerVisu(string poseName);
};
};
#endif
......@@ -6,7 +6,8 @@
#include "SerialInterface.h"
#include "TactileSensor.h"
#include <RobotAPI/interface/units/HapticUnit.h>
#include <Core/util/variants/eigen3/VariantObjectFactories.h>
#include <Core/util/variants/eigen3/Eigen3VariantObjectFactories.h>
//#include <Core/util/variants/eigen3/Eigen3LibRegistry.h>
#include "TextWriter.h"
#include <Core/observers/variant/TimestampVariant.h>
#include <Core/util/variants/eigen3/MatrixVariant.h>
......
......@@ -151,7 +151,12 @@ namespace armarx
// ARMARX_VERBOSE_S << "duration: " << (IceUtil::Time::now() - start).toMilliSeconds() << " ms";
}
std::string RobotStateComponent::getRobotFilename(const Ice::Current&)
{
std::string robotFile = getProperty<std::string>("RobotFileName").getValue();
return robotFile;
}
void RobotStateComponent::reportControlModeChanged(const NameControlModeMap& jointModes, bool aValueChanged,const Current& c){}
void RobotStateComponent::reportJointVelocities(const NameValueMap& jointVelocities, bool aValueChanged,const Current& c){}
void RobotStateComponent::reportJointTorques(const NameValueMap& jointTorques, bool aValueChanged,const Current& c){}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment