|
VisualContactDetection determines if the robot hand is colliding with another object, causing it to move. More...
#include <VisionX/components/image_processor/VisualContactDetection/VisualContactDetection.h>
Public Member Functions | |
void | activate (const Ice::Current &c=Ice::emptyCurrent) override |
void | deactivate (const Ice::Current &c=Ice::emptyCurrent) override |
std::string | getDefaultName () const override |
visionx::FramedPositionBaseList | getFingertipPositions (const Ice::Current &c=Ice::emptyCurrent) override |
Returns the positions of the fingertips in this order: thumb, index, middle, ring, pinky. More... | |
armarx::FramedPoseBasePtr | getHandPose (const Ice::Current &c=Ice::emptyCurrent) override |
Returns the hand pose. More... | |
Public Member Functions inherited from ImageProcessor | |
std::string | getImageListenerTopicName (std::string providerName) const |
Public Member Functions inherited from Component | |
void | forceComponentCreatedByComponentCreateFunc () |
forces the flag to be set to true that the object instance was created by the Component::create function More... | |
std::vector< PropertyUserPtr > | getAdditionalPropertyUsers () const |
template<typename PropertyType > | |
Property< PropertyType > | getProperty (const std::string &name) |
template<typename PropertyType > | |
Property< PropertyType > | getProperty (const std::string &name) const |
template<class T > | |
void | getProperty (std::atomic< T > &val, const std::string &name) const |
template<class T > | |
void | getProperty (T &val, const std::string &name) const |
template<class ProxyType > | |
ProxyType | getProxyFromProperty (const std::string &propertyName, bool addToDependencies=false, const std::string &endpoints="", bool throwOnProxyError=true) |
Get a proxy whose name is specified by the given property. More... | |
template<class ProxyType > | |
void | getProxyFromProperty (ProxyType &proxy, const std::string &propertyName, bool addToDependencies=false, const std::string &endpoints="", bool throwOnProxyError=true) |
template<class TopicProxyType > | |
TopicProxyType | getTopicFromProperty (const std::string &propertyName) |
Get a topic proxy whose name is specified by the given property. More... | |
template<class TopicProxyType > | |
void | getTopicFromProperty (TopicProxyType &top, const std::string &propertyName) |
void | initializeProperties (const std::string &configName, Ice::PropertiesPtr const &properties, const std::string &configDomain) |
initializes the properties of this component. More... | |
void | injectPropertyDefinitions (PropertyDefinitionsPtr &props) override |
void | offeringTopicFromProperty (const std::string &propertyName) |
Offer a topic whose name is specified by the given property. More... | |
virtual void | preOnConnectComponent () override |
virtual void | preOnInitComponent () override |
bool | usingProxyFromProperty (const std::string &propertyName, const std::string &endpoints="") |
Use a proxy whose name is specified by the given property. More... | |
void | usingTopicFromProperty (const std::string &propertyName, bool orderedPublishing=false) |
Use a topic whose name is specified by the given property. More... | |
Public Member Functions inherited from ManagedIceObject | |
void | enableProfiler (bool enable) |
setProfiler allows setting ManagedIceObject::profiler to a new instance (if the new instance is actually not a null pointer) More... | |
std::string | generateSubObjectName (const std::string &subObjectName) |
Generates a unique name for a sub object from a general name. More... | |
ArmarXManagerPtr | getArmarXManager () const |
Returns the ArmarX manager used to add and remove components. More... | |
ManagedIceObjectConnectivity | getConnectivity () const |
Retrieve connectivity of the object (topcis as well as proxies) More... | |
IceManagerPtr | getIceManager () const |
Returns the IceManager. More... | |
VariantBasePtr | getMetaInfo (const std::string &id) |
StringVariantBaseMap | getMetaInfoMap () const |
std::string | getName () const |
Retrieve name of object. More... | |
Ice::ObjectAdapterPtr | getObjectAdapter () const |
Returns object's Ice adapter. More... | |
ArmarXObjectSchedulerPtr | getObjectScheduler () const |
PeriodicTaskPtr | getPeriodicTask (const std::string &name) |
Profiler::ProfilerPtr | getProfiler () const |
getProfiler returns an instance of armarx::Profiler More... | |
template<class ProxyTarg , class... Args> | |
void | getProxy (const char *name, IceInternal::ProxyHandle< ProxyTarg > &proxy, Args &&...args) |
template<class ProxyType > | |
ProxyType | getProxy (const std::string &name, bool addToDependencies=false, const std::string &endpoints="", bool throwOnProxyError=true) |
Retrieves a proxy object. More... | |
template<class ProxyTarg , class... Args> | |
void | getProxy (const std::string &name, IceInternal::ProxyHandle< ProxyTarg > &proxy, Args &&...args) |
template<class ProxyTarg , class... Args> | |
void | getProxy (IceInternal::ProxyHandle< ProxyTarg > &proxy, const char *name, Args &&...args) |
template<class ProxyTarg , class... Args> | |
void | getProxy (IceInternal::ProxyHandle< ProxyTarg > &proxy, const std::string &name, Args &&...args) |
Assigns a proxy to proxy . More... | |
Ice::ObjectPrx | getProxy (long timeoutMs=0, bool waitForScheduler=true) const |
Returns the proxy of this object (optionally it waits for the proxy) More... | |
template<class Prx > | |
Prx | getProxy (long timeoutMs=0, bool waitForScheduler=true) const |
template<class ProxyType > | |
void | getProxy (ProxyType &proxy, const char *name, bool addToDependencies=false, const std::string &endpoints="", bool throwOnProxyError=true) |
Overload to allow using string literals as name (solve ambiguous overload). More... | |
template<class Prx > | |
void | getProxy (Prx &prx, long timeoutMs=0, bool waitForScheduler=true) const |
int | getState () const |
Retrieve current state of the ManagedIceObject. More... | |
template<class TopicProxyType > | |
TopicProxyType | getTopic (const std::string &name) |
Returns a proxy of the specified topic. More... | |
template<class TopicProxyType > | |
void | getTopic (TopicProxyType &topicProxy, const std::string &name) |
Assigns a proxy of the specified topic to topicProxy . More... | |
std::vector< std::string > | getUnresolvedDependencies () const |
returns the names of all unresolved dependencies More... | |
ManagedIceObject (ManagedIceObject const &other) | |
void | offeringTopic (const std::string &name) |
Registers a topic for retrival after initialization. More... | |
void | preambleGetTopic (std::string const &name) |
void | setMetaInfo (const std::string &id, const VariantBasePtr &value) |
Allows to set meta information that can be queried live via Ice interface on the ArmarXManager. More... | |
void | startPeriodicTask (const std::string &uniqueName, std::function< void(void)> f, int periodMs, bool assureMeanInterval=false, bool forceSystemTime=true) |
bool | stopPeriodicTask (const std::string &name) |
bool | unsubscribeFromTopic (const std::string &name) |
Unsubscribe from a topic. More... | |
bool | usingProxy (const std::string &name, const std::string &endpoints="") |
Registers a proxy for retrieval after initialization and adds it to the dependency list. More... | |
void | usingTopic (const std::string &name, bool orderedPublishing=false) |
Registers a proxy for subscription after initialization. More... | |
void | waitForObjectScheduler () |
Waits until the ObjectScheduler could resolve all dependencies. More... | |
void | waitForProxy (std::string const &name, bool addToDependencies) |
Public Member Functions inherited from Logging | |
SpamFilterDataPtr | deactivateSpam (float deactivationDurationSec=10.0f, const std::string &identifier="", bool deactivate=true) const |
disables the logging for the current line for the given amount of seconds. More... | |
MessageTypeT | getEffectiveLoggingLevel () const |
Logging () | |
void | setLocalMinimumLoggingLevel (MessageTypeT level) |
With setLocalMinimumLoggingLevel the minimum verbosity-level of log-messages can be set. More... | |
void | setTag (const LogTag &tag) |
void | setTag (const std::string &tagName) |
virtual | ~Logging () |
Public Member Functions inherited from PropertyUser | |
std::vector< std::string > | getComponentProxyNames () |
Ice::PropertiesPtr | getIceProperties () const |
Returns the set of Ice properties. More... | |
template<typename PropertyType > | |
Property< PropertyType > | getProperty (const std::string &name) |
Property creation and retrieval. More... | |
template<typename PropertyType > | |
Property< PropertyType > | getProperty (const std::string &name) const |
Hack to allow using getProperty in const -modified methods. More... | |
template<class T > | |
void | getProperty (std::atomic< T > &val, const std::string &name) const |
template<class T > | |
void | getProperty (T &val, const std::string &name) const |
template<class T > | |
std::vector< T > | getPropertyAsCSV (const std::string &name, const std::string &splitBy=",;", bool trimElements=true, bool removeEmptyElements=true) |
template<class ContainerT > | |
void | getPropertyAsCSV (ContainerT &val, const std::string &name, const std::string &splitBy=",;", bool trimElements=true, bool removeEmptyElements=true) |
PropertyDefinitionsPtr | getPropertyDefinitions () |
Returns the component's property definition container. More... | |
std::vector< std::string > | getSubscribedTopicNames () |
std::vector< std::string > | getTopicProxyNames () |
bool | hasProperty (const std::string &name) |
PropertyUser () | |
virtual void | setIceProperties (Ice::PropertiesPtr properties) |
Sets the Ice properties. More... | |
bool | tryAddProperty (const std::string &propertyName, const std::string &value) |
virtual void | updateIceProperties (const std::map< std::string, std::string > &changes) |
void | updateProperties () |
void | updateProxies (IceManagerPtr) |
~PropertyUser () override | |
Protected Member Functions | |
armarx::PropertyDefinitionsPtr | createPropertyDefinitions () override |
void | onConnectImageProcessor () override |
Implement this method in the ImageProcessor in order execute parts when the component is fully initialized and about to run. More... | |
void | onExitImageProcessor () override |
Exit the ImapeProcessor component. More... | |
void | onInitImageProcessor () override |
Setup the vision component. More... | |
void | process () override |
Process the vision component. More... | |
Protected Member Functions inherited from ImageProcessor | |
void | cleanup () |
clean up memory More... | |
void | componentPropertiesUpdated (const std::set< std::string > &changedProperties) override |
Implement this function if you would like to react to changes in the properties. More... | |
armarx::PropertyDefinitionsPtr | createPropertyDefinitions () override |
void | enableResultImages (int numberImages, ImageDimension imageDimension, ImageType imageType, const std::string &name="") |
Enables visualization. More... | |
int | getCompressionQuality () const |
CompressionType | getCompressionType () const |
float | getFramerate () const |
std::string | getHardwareId (const Ice::Current &c=Ice::emptyCurrent) |
Returns machines hardware Id string. More... | |
armarx::MetaInfoSizeBasePtr | getImageMetaInfo (const std::string &imageProviderName="") const |
Get meta information from the image provider. More... | |
ImageProviderInfo | getImageProvider (std::string name, bool waitForProxy, ImageType destinationImageType=eRgb) |
ImageProviderInfo | getImageProvider (std::string name, ImageType destinationImageType=eRgb, bool waitForProxy=false) |
Select an ImageProvider. More... | |
int | getImages (CByteImage **ppImages) |
Poll images from provider. More... | |
int | getImages (CFloatImage **ppImages) |
int | getImages (std::string providerName, CByteImage **ppImages, armarx::MetaInfoSizeBasePtr &info) |
Poll images from provider. More... | |
int | getImages (std::string providerName, CFloatImage **ppImages, armarx::MetaInfoSizeBasePtr &info) |
int | getImages (std::string providerName, const std::vector< CByteImageUPtr > &ppImages, armarx::MetaInfoSizeBasePtr &info) |
int | getImages (std::string providerName, void **ppBuffer, armarx::MetaInfoSizeBasePtr &info) |
int | getImages (void **ppBuffer) |
ImageTransferStats | getImageTransferStats (std::string provideNname, bool resetStats=false) |
Retrieve statistics for a connection to an ImageProvider. More... | |
int | getNumberOfImages (const std::string &providerName="") |
Returns the number of images provided by the specified image provider If no provider is specified, the first provider is taken. More... | |
bool | isNewImageAvailable () |
bool | isNewImageAvailable (const std::string &providerName) |
void | onConnectComponent () override |
void | onDisconnectComponent () override |
virtual void | onDisconnectImageProcessor () |
Implement this method in the ImageProcessor in order execute parts when the component looses network connectivity. More... | |
void | onExitComponent () override |
void | onInitComponent () override |
void | provideResultImages (CByteImage **images, armarx::MetaInfoSizeBasePtr info=nullptr) |
sends result images for visualization More... | |
void | provideResultImages (const std::vector< CByteImageUPtr > &images, armarx::MetaInfoSizeBasePtr info=nullptr) |
void | releaseImageProvider (std::string providerName) |
void | reportImageAvailable (const std::string &providerName, const Ice::Current &c=Ice::emptyCurrent) override |
Listener callback function. More... | |
virtual void | runProcessor () |
void | setCompressionType (CompressionType compressionType=ePNG, int compressionQuality=9) |
Sets the compression type and compression quality. More... | |
void | setFramerate (float fps) |
void | usingImageProvider (std::string name) |
Registers a delayed topic subscription and a delayed provider proxy retrieval which all will be available on the start of the component. More... | |
bool | waitForImages (int milliseconds=1000) |
Wait for new images. More... | |
bool | waitForImages (std::string providerName, IceUtil::Time waitTime) |
bool | waitForImages (std::string providerName, int milliseconds=1000) |
Wait for new images. More... | |
Protected Member Functions inherited from Component | |
void | addPropertyUser (const PropertyUserPtr &subPropertyUser) |
Add additional property users here that should show up in the application help text. More... | |
Component () | |
Protected default constructor. Used for virtual inheritance. Use createManagedIceObject() instead. More... | |
std::string | getConfigDomain () |
Retrieve config domain for this component as set in constructor. More... | |
std::string | getConfigIdentifier () |
Retrieve config identifier for this component as set in constructor. More... | |
std::string | getConfigName () |
Retrieve config name for this component as set in constructor. More... | |
virtual void | icePropertiesInitialized () |
Protected Member Functions inherited from ManagedIceObject | |
template<class PluginT , class... ParamsT> | |
PluginT * | addPlugin (const std::string prefix="", ParamsT &&...params) |
template<class PluginT , class... ParamsT> | |
void | addPlugin (PluginT *&targ, const std::string prefix="", ParamsT &&...params) |
template<class PluginT , class... ParamsT> | |
void | addPlugin (std::experimental::observer_ptr< PluginT > &targ, const std::string prefix="", ParamsT &&...params) |
Ice::CommunicatorPtr | getCommunicator () const |
std::unique_ptr< ManagedIceObjectPlugin > & | getPluginPointer (std::type_info const &type, std::string const &prefix) |
ManagedIceObject () | |
Protected default constructor. More... | |
virtual void | postOnConnectComponent () |
virtual void | postOnDisconnectComponent () |
virtual void | postOnExitComponent () |
virtual void | postOnInitComponent () |
virtual void | preOnDisconnectComponent () |
virtual void | preOnExitComponent () |
bool | removeProxyDependency (const std::string &name) |
This function removes the dependency of this object on the in parameter name specified object. More... | |
void | setName (std::string name) |
Override name of well-known object. More... | |
void | terminate () |
Initiates termination of this IceManagedObject. More... | |
~ManagedIceObject () override | |
Protected Member Functions inherited from Logging | |
bool | checkLogLevel (MessageTypeT level) const |
const LogSenderPtr & | getLogSender () const |
Retrieve log sender. More... | |
LogSenderPtr | loghelper (const char *file, int line, const char *function) const |
Additional Inherited Members | |
Public Types inherited from ManagedIceObject | |
using | PeriodicTaskPtr = IceUtil::Handle< SimplePeriodicTask< std::function< void(void)> >> |
Static Public Member Functions inherited from Component | |
template<class T , class TPtr = IceInternal::Handle<T>> | |
static TPtr | create (Ice::PropertiesPtr properties=Ice::createProperties(), const std::string &configName="", const std::string &configDomain="ArmarX") |
Factory method for a component. More... | |
Static Public Member Functions inherited from ManagedIceObject | |
static std::string | generateSubObjectName (const std::string &superObjectName, const std::string &subObjectName) |
Generates a unique name for a sub object from a general name and unique name. More... | |
static std::string | GetObjectStateAsString (int state) |
Static Public Attributes inherited from ImageProcessor | |
static std::string | ListenerSuffix = ".ImageListener" |
Static Public Attributes inherited from ManagedIceObject | |
static const ManagedIceObjectPtr | NullPtr |
A nullptr to be used when a const ref to a nullptr is required. More... | |
Protected Types inherited from ImageProcessor | |
using | ImageProviderMap = std::map< std::string, armarx::IceSharedMemoryConsumer< unsigned char >::pointer_type > |
Protected Attributes inherited from ImageProcessor | |
int | compressionQuality = 9 |
CompressionType | compressionType = eNoCompression |
float | desiredFps = 0 |
std::map< std::string, ImageProviderInfo > | imageProviderInfoMap |
std::shared_mutex | imageProviderInfoMutex |
armarx::PeriodicTask< ImageProcessor >::pointer_type | processorTask |
IceInternal::Handle< ResultImageProvider > | resultImageProvider |
bool | startProcessorTask = true |
std::map< std::string, ImageTransferStats > | statistics |
std::mutex | statisticsMutex |
ImageProviderMap | usedImageProviders |
Protected Attributes inherited from Logging | |
MessageTypeT | minimumLoggingLevel |
SpamFilterDataPtr | spamFilter |
LogTag | tag |
VisualContactDetection determines if the robot hand is colliding with another object, causing it to move.
To this end, it localizes the robot hand using the marker ball and the finger tips, calculates the optical flow in the image, clusters it, and looks for a cluster that exist solely in front of the hand.
Definition at line 100 of file VisualContactDetection.h.
|
override |
Definition at line 1150 of file VisualContactDetection.cpp.
|
inlineoverrideprotectedvirtual |
Reimplemented from Component.
Definition at line 142 of file VisualContactDetection.h.
|
override |
Definition at line 1177 of file VisualContactDetection.cpp.
|
inlineoverridevirtual |
Implements ManagedIceObject.
Definition at line 109 of file VisualContactDetection.h.
|
override |
Returns the positions of the fingertips in this order: thumb, index, middle, ring, pinky.
Definition at line 1132 of file VisualContactDetection.cpp.
|
override |
Returns the hand pose.
Definition at line 1123 of file VisualContactDetection.cpp.
|
overrideprotectedvirtual |
Implement this method in the ImageProcessor in order execute parts when the component is fully initialized and about to run.
Implements ImageProcessor.
Definition at line 88 of file VisualContactDetection.cpp.
|
overrideprotectedvirtual |
Exit the ImapeProcessor component.
Implement this method in order to clean up the ImageProcessor
Implements ImageProcessor.
Definition at line 940 of file VisualContactDetection.cpp.
|
overrideprotectedvirtual |
Setup the vision component.
Implement this method in the ImageProcessor in order to setup its parameters. Use this for the registration of adaptars and subscription to topics
argc | number of filtered command line arguments |
argv | filtered command line arguments |
Implements ImageProcessor.
Definition at line 58 of file VisualContactDetection.cpp.
|
overrideprotectedvirtual |
Process the vision component.
The main loop of the imageprocessor to be implemented in the subclass. Do not block this method. One process should execute exactly one image processing step. The rate at which this function is called can be set with setFramerate(). If no framerate is set, the process will run as fast as possible.
Implements ImageProcessor.
Definition at line 189 of file VisualContactDetection.cpp.