Changing Tracking Color with Messages

From wikidb
Jump to: navigation, search

Instance variables: add color parameters.

class Demo
{
protected:
    ...  

    int min_hue_;
    int max_hue_;
    int min_saturation_;

Constructor: Add a subscriber for /hue_set messages.
Constructor: Init the color parameters.

public:

Demo (ros::NodeHandle & nh):nh_ (nh), it_ (nh_)
{
    ...
    hue_set_sub_ = nh_.subscribe("/hue_set", 1000, 
				 &Demo::hueSetCallback, this);
    min_hue_        =  6;
    max_hue_        = 26;
    min_saturation_ = 96;
}

Callback function: Set new color parameters.

  void hueSetCallback (const geometry_msgs::Point::ConstPtr & hue_set_msg)
  {
    ROS_INFO("*** In hueSetCallback: x: %d   y: %d   z: %d",
	     (int)(hue_set_msg->x), 
             (int)(hue_set_msg->y), 
             (int)(hue_set_msg->z));
    min_hue_        = (int)(hue_set_msg->x);
    max_hue_        = (int)(hue_set_msg->y);
    min_saturation_ = (int)(hue_set_msg->z);
  }

test_hue application start up

eepp@tabor:opencv_edc$ roslaunch launch/test_hue.launch 
... logging to /home/eepp/.ros/log/b9c61d8c-c1a9-11e1-ac1e-0001c005f78e/roslaunch-tabor-3021.log
Checking log directory for disk usage. This may take awhile.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.

...

started roslaunch server http://tabor:41133/
15 frames/sec at 1340951431.973778981
15 frames/sec at 1340951432.983857918
15 frames/sec at 1340951433.991471178
15 frames/sec at 1340951434.986086136
[ INFO] [1340951435.242190476]: *** In hueSetCallback: x: 95   y: 105   z: 100
15 frames/sec at 1340951435.991725402

Send test_hue a message

 rostopic pub -1 /hue_set geometry_msgs/Point 95 105 100

Test Hue Program called test_hue.cpp.

Test Hue Lauch called test_hue.launch