30 #include <OgreSceneNode.h> 31 #include <OgreSceneManager.h> 52 "Advanced: set the size of the incoming FluidPressure message queue. " 53 " Increasing this is useful if your incoming TF data is delayed significantly " 54 "from your FluidPressure data, but it can greatly increase memory usage if the messages are big.",
89 sensor_msgs::PointCloud2Ptr filtered(
new sensor_msgs::PointCloud2);
92 sensor_msgs::PointField
x;
95 x.datatype = sensor_msgs::PointField::FLOAT32;
97 sensor_msgs::PointField
y;
100 y.datatype = sensor_msgs::PointField::FLOAT32;
102 sensor_msgs::PointField
z;
105 z.datatype = sensor_msgs::PointField::FLOAT32;
107 sensor_msgs::PointField fluid_pressure;
108 fluid_pressure.name =
"fluid_pressure";
109 fluid_pressure.offset = 12;
110 fluid_pressure.datatype = sensor_msgs::PointField::FLOAT64;
111 fluid_pressure.count = 1;
114 filtered->header = msg->header;
115 filtered->fields.push_back(x);
116 filtered->fields.push_back(y);
117 filtered->fields.push_back(z);
118 filtered->fields.push_back(fluid_pressure);
119 filtered->data.resize(20);
120 const float zero_float = 0.0;
121 memcpy(&filtered->data[x.offset], &zero_float, 4);
122 memcpy(&filtered->data[y.offset], &zero_float, 4);
123 memcpy(&filtered->data[z.offset], &zero_float, 4);
124 memcpy(&filtered->data[fluid_pressure.offset], &msg->fluid_pressure, 8);
125 filtered->height = 1;
127 filtered->is_bigendian =
false;
128 filtered->point_step = 20;
129 filtered->row_step = 1;
IntProperty * queue_size_property_
virtual void onInitialize()
virtual void onInitialize()
Do initialization. Overridden from MessageFilterDisplay.
Displays an FluidPressure message of type sensor_msgs::FluidPressure.
DisplayContext * context_
This DisplayContext pointer is the main connection a Display has into the rest of rviz...
virtual bool setValue(const QVariant &new_value)
Set the new value for this property. Returns true if the new value is different from the old value...
virtual int getInt() const
Return the internal property value as an integer.
ros::NodeHandle update_nh_
A NodeHandle whose CallbackQueue is run from the main GUI thread (the "update" thread).
virtual void processMessage(const sensor_msgs::FluidPressureConstPtr &msg)
Process a single message. Overridden from MessageFilterDisplay.
ros::CallbackQueueInterface * getCallbackQueue()
void initialize(DisplayContext *context, Ogre::SceneNode *scene_node)
virtual void update(float wall_dt, float ros_dt)
Called periodically by the visualization manager.
tf::MessageFilter< sensor_msgs::FluidPressure > * tf_filter_
TFSIMD_FORCE_INLINE const tfScalar & y() const
Property specialized to provide max/min enforcement for integers.
Ogre::SceneNode * scene_node_
The Ogre::SceneNode to hold all 3D scene elements shown by this Display.
Displays a point cloud of type sensor_msgs::PointCloud.
virtual void setQueueSize(uint32_t new_queue_size)
virtual Property * subProp(const QString &sub_name)
Return the first child Property with the given name, or the FailureProperty if no child has the name...
virtual void reset()
Called to tell the display to clear its state.
void addMessage(const sensor_msgs::PointCloudConstPtr &cloud)
void setCallbackQueue(CallbackQueueInterface *queue)
TFSIMD_FORCE_INLINE const tfScalar & x() const
TFSIMD_FORCE_INLINE const tfScalar & z() const
void hide()
Hide this Property in any PropertyTreeWidgets.
#define PLUGINLIB_EXPORT_CLASS(class_type, base_class_type)
PointCloudCommon * point_cloud_common_
void update(float wall_dt, float ros_dt)