dummy_image_publisher.cpp
Go to the documentation of this file.
1 // *****************************************************************************
2 //
3 // Copyright (c) 2014, Southwest Research Institute® (SwRI®)
4 // All rights reserved.
5 //
6 // Redistribution and use in source and binary forms, with or without
7 // modification, are permitted provided that the following conditions are met:
8 // * Redistributions of source code must retain the above copyright
9 // notice, this list of conditions and the following disclaimer.
10 // * Redistributions in binary form must reproduce the above copyright
11 // notice, this list of conditions and the following disclaimer in the
12 // documentation and/or other materials provided with the distribution.
13 // * Neither the name of Southwest Research Institute® (SwRI®) nor the
14 // names of its contributors may be used to endorse or promote products
15 // derived from this software without specific prior written permission.
16 //
17 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18 // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20 // ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
21 // DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
22 // (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
23 // LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
24 // ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
26 // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 //
28 // *****************************************************************************
29 
30 #include <string>
31 
32 // ROS Libraries
33 #include <ros/ros.h>
34 #include <sensor_msgs/Image.h>
35 
37 {
38  public:
40  {
41  ros::NodeHandle node;
42  ros::NodeHandle priv("~");
43  image_pub_ = node.advertise<sensor_msgs::Image>("image", 100);
44 
45  priv.param("rate", rate_, 10.0);
46  priv.param("width", width_, 640);
47  priv.param("height", height_, 480);
48  priv.param("encoding", encoding_, std::string("mono8"));
49  }
50 
51  void Spin()
52  {
53  sensor_msgs::Image image;
54  image.encoding = encoding_;
55  image.width = width_;
56  image.height = height_;
57  image.step = width_;
58  image.data.resize(height_ * width_);
59 
60  ros::Rate rate(rate_);
61  while (ros::ok())
62  {
63  image.header.stamp = ros::Time::now();
64  image_pub_.publish(image);
65 
66  ros::spinOnce();
67  rate.sleep();
68  }
69  }
70 
71  private:
72  double rate_;
73  int32_t width_;
74  int32_t height_;
75  std::string encoding_;
76 
78 };
79 
80 int main(int argc, char **argv)
81 {
82  ros::init(argc, argv, "dummy_image_publisher", ros::init_options::AnonymousName);
83 
85  node.Spin();
86 }
ros::init_options::AnonymousName
AnonymousName
DummyImagePublisherNode
Definition: dummy_image_publisher.cpp:36
DummyImagePublisherNode::encoding_
std::string encoding_
Definition: dummy_image_publisher.cpp:75
ros::Publisher
DummyImagePublisherNode::width_
int32_t width_
Definition: dummy_image_publisher.cpp:73
ros::init
ROSCPP_DECL void init(const M_string &remappings, const std::string &name, uint32_t options=0)
ros.h
ros::spinOnce
ROSCPP_DECL void spinOnce()
main
int main(int argc, char **argv)
Definition: dummy_image_publisher.cpp:80
ros::Publisher::publish
void publish(const boost::shared_ptr< M > &message) const
ros::NodeHandle::advertise
Publisher advertise(AdvertiseOptions &ops)
ros::ok
ROSCPP_DECL bool ok()
DummyImagePublisherNode::Spin
void Spin()
Definition: dummy_image_publisher.cpp:51
ros::Rate::sleep
bool sleep()
DummyImagePublisherNode::height_
int32_t height_
Definition: dummy_image_publisher.cpp:74
ros::NodeHandle::param
T param(const std::string &param_name, const T &default_val) const
DummyImagePublisherNode::rate_
double rate_
Definition: dummy_image_publisher.cpp:72
DummyImagePublisherNode::image_pub_
ros::Publisher image_pub_
Definition: dummy_image_publisher.cpp:77
ros::Rate
DummyImagePublisherNode::DummyImagePublisherNode
DummyImagePublisherNode()
Definition: dummy_image_publisher.cpp:39
ros::NodeHandle
ros::Time::now
static Time now()


swri_image_util
Author(s): Kris Kozak
autogenerated on Fri Aug 2 2024 08:39:19