ImFusion SDK 4.3
ROS plugin

Integration with ROS and MoveIt! More...

+ Collaboration diagram for ROS plugin:

Detailed Description

Integration with ROS and MoveIt!

Classes

class  SimpleROSListenerInterface
 Convenience interface that wraps ROS subscribers. More...
 
class  SimpleROSImageListener
 
class  SimpleROSTrackingListener
 
class  SimpleROSFloatListener
 
class  SimpleROSStringListener
 
class  SimpleROSIntListener
 
class  SimpleROSPublisherInterface
 Convenience interface that wraps ROS publisher. More...
 
class  SimpleROSImagePublisher
 
class  SimpleROSTrackingPublisher
 
class  SimpleROSFloatPublisher
 
class  SimpleROSStringPublisher
 
class  SimpleROSServiceCallerInterface
 Convenience interface that wraps ROS service clients. More...
 
class  SimpleROSServiceServerInterface
 Convenience interface that wraps ROS service servers. More...
 
class  SimpleROSEmptyServiceCaller
 ImFusion implementation of std_srvs/Empty service client. More...
 
class  SimpleROSEmptyServiceServer
 ImFusion implementation of std_srvs/Empty service server. More...
 
class  SimpleROSTriggerServiceCaller
 ImFusion implementation of std_srvs/Trigger service client. More...
 
class  SimpleROSTriggerServiceServer
 ImFusion implementation of std_srvs/Trigger service server. More...
 
class  SimpleROSSetBoolServiceCaller
 ImFusion implementation of std_srvs/SetBool service client. More...
 
class  SimpleROSSetBoolServiceServer
 ImFusion implementation of std_srvs/SetBool service server. More...
 
class  SimpleROSListener< ROSMSG >
 
struct  ROSParameterPath
 Class to abstract between ROS1 and ROS2 parameter paths. More...
 
class  ImFusionROSManager
 Singleton class to manage the ROS node When using ROS2, it will manage the main ROS node used to listen to tf. More...
 
class  ROSTypeName
 
class  ImFusionTfManager
 Singleton class to manage tf. More...
 
class  ROSTfTrackingStream
 Tracking streams which are generated by listening to the ROS tf system. More...
 
class  ROSTopicImageStream
 Image streams which are generated by listening to ROS 2D Image topics. More...
 
class  ROSTopicTrackingOutStream
 Tracking streams which can transmit a position in space over ROS Transform/Pose topics. More...
 
class  ROSTopicImageOutStream
 Tracking streams which can transmit images over ROS Image topics. More...
 
class  ROSTopicTrackingStream
 Tracking streams which are generated by listening to ROS Transform/Pose topics. More...
 
class  CreateROSStreamAlgorithm
 
class  ROSBagIoAlgorithm
 IO algorithm to load/store SharedImageSets and TrackingStreams from/to ROS Bag files. More...
 
class  ROSMaster
 ROS Master execution handler. More...
 
class  ROSMasterAlgorithm
 Algorithm to run a ROS1 master. More...
 
class  ROSParameter
 Wrapper for ROS1 and ROS2 parameters. More...
 
class  ROSParameterManager
 Class to handle ROS1 and ROS2 parameters. More...
 
class  MoveItControlStream
 Control interface mirroring a running ROS MoveIt! More...
 
class  CreateMoveItControlStreamAlgorithm
 

Enumerations

enum class  ROSTrackingType { Pose , PoseStamped , Transform , TransformStamped }
 

Functions

ros::Time timepointToROSTime (const std::chrono::system_clock::time_point &tp)
 Convert a std::chrono time point to ROS Time.
 
std::chrono::system_clock::time_point rosTimeToTimepoint (const ros::Time &tp)
 Convert ROS Time to a std::chrono time point.
 
ros::Time nanosecondsToROSTime (const std::chrono::nanoseconds &tp)
 Convert std::chrono::nanoseconds duration from epoch to ROS Time.
 
std::chrono::nanoseconds rosTimeToNanoseconds (const ros::Time &tp)
 Convert ROS Time to a std::chrono::nanoseconds duration from epoch.
 
std_msgs::Header makeHeader (const std::optional< std::string > &tfFrameId={}, const std::optional< std::chrono::system_clock::time_point > &timestamp={}, int seq=0)
 Convert a ImFusion type into a ROS message type with header.
 
unsigned long long rosTimeToTimestampMs (const ros::Time &stamp)
 Convert ROS Time to milliseconds from the Unix epoch.
 
ros::Time timestampMsToROSTime (unsigned long long stamp)
 Convert milliseconds from the Unix epoch to ROS Time.
 
double rosTimeToTimestampSec (const ros::Time &stamp)
 Convert ROS Time to milliseconds from the Unix epoch.
 
ros::Time timestampSecToROSTime (double stamp)
 Convert milliseconds from the Unix epoch to ROS Time.
 
unsigned long long timepointToTimestampMs (const std::chrono::system_clock::time_point &tp)
 Convert a std::chrono time point to milliseconds from the Unix epoch.
 
std::chrono::system_clock::time_point timestampMsToTimepoint (unsigned long long tp)
 Convert milliseconds from the Unix epoch to a std::chrono time point.
 
geometry_msgs::Transform isom3ToROSTransform (const isom3 &mat)
 Converts an ImFusion isom3 (in millimeters) into a ROS Transform (in meters)
 
isom3 rosTransformToIsom3 (const geometry_msgs::Transform &transform)
 Converts a ROS Transform (in meters) into an ImFusion isom3 (in millimeters)
 
geometry_msgs::Pose isom3ToROSPose (const isom3 &mat)
 Converts an ImFusion isom3 (in millimeters) into a ROS Pose (in meters)
 
isom3 rosPoseToIsom3 (const geometry_msgs::Pose &pose)
 Converts a ROS Pose (in meters) into an ImFusion isom3 (in millimeters)
 
std::optional< PixelTyperosImageEncodingToPixelType (const std::string &imageEncoding)
 Converts a ROS image encoding name to an ImFusion PixelType (if supported)
 
std::string imageToROSImageEncoding (const Image &imageDescriptor)
 Converts an ImFusion PixelType to a ROS image encoding.
 
std::unique_ptr< MemImagerosImageToMemImage (const sensor_msgs::Image &image, bool owning=true)
 Converts a ROS image message to an ImFusion MemImage.
 
sensor_msgs::Image imageToROSImage (const MemImage &image)
 Converts an ImFusion image to a ROS image message.
 

Function Documentation

◆ makeHeader()

std_msgs::Header makeHeader ( const std::optional< std::string > & tfFrameId = {},
const std::optional< std::chrono::system_clock::time_point > & timestamp = {},
int seq = 0 )

#include <ROSPlugin/Include/ImFusion/ROS/ROSConversions.h>

Convert a ImFusion type into a ROS message type with header.

Parameters
tfFrameIdId of the tf frame the object lies in (parent frame). If nullopt, the frame set as equivalent to the ImFusion world in the Settings will be used
timestampTimestamp of the message. If nullopt, the current time will be used
seqSequence number of the message. The field is deprecated and it will be overwritten by the publisher!

◆ rosImageToMemImage()

std::unique_ptr< MemImage > rosImageToMemImage ( const sensor_msgs::Image & image,
bool owning = true )

#include <ROSPlugin/Include/ImFusion/ROS/ROSConversions.h>

Converts a ROS image message to an ImFusion MemImage.

Parameters
imageinput ros image
owningif false, the image points to the ROS image data without owning it; if true, the data will be cloned
Search Tab / S to search, Esc to close