本文整理汇总了C++中ros::NodeHandle::setCallbackQueue方法的典型用法代码示例。如果您正苦于以下问题:C++ NodeHandle::setCallbackQueue方法的具体用法?C++ NodeHandle::setCallbackQueue怎么用?C++ NodeHandle::setCallbackQueue使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ros::NodeHandle
的用法示例。
在下文中一共展示了NodeHandle::setCallbackQueue方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: SimpleTransmission
GripperRosControl(const std::vector<std::string>& actr_names, const std::vector<std::string>& jnt_names,
const std::vector<std::string>& controller_names, const std::vector<double>& reducers)
: actr_names_(actr_names)
, jnt_names_(jnt_names)
, controller_names_(controller_names)
{
for (int i = 0; i < jnt_names_.size(); i++)
{
std::string actr = actr_names_[i];
std::string jnt = jnt_names_[i];
// Get transmission
boost::shared_ptr<transmission_interface::SimpleTransmission> t_ptr(
new transmission_interface::SimpleTransmission(reducers[i]));
trans_.push_back(t_ptr);
// Initialize and wrap raw current data
actr_curr_data_[actr].position.push_back(&actr_curr_pos_[actr]);
actr_curr_data_[actr].velocity.push_back(&actr_curr_vel_[actr]);
actr_curr_data_[actr].effort.push_back(&actr_curr_eff_[actr]);
jnt_curr_data_[jnt].position.push_back(&jnt_curr_pos_[jnt]);
jnt_curr_data_[jnt].velocity.push_back(&jnt_curr_vel_[jnt]);
jnt_curr_data_[jnt].effort.push_back(&jnt_curr_eff_[jnt]);
// Initialize and wrap raw command data
actr_cmd_data_[actr].position.push_back(&actr_cmd_pos_[actr]);
jnt_cmd_data_[jnt].position.push_back(&jnt_cmd_pos_[jnt]);
// Register transmissions to each interface
actr_to_jnt_state_.registerHandle(transmission_interface::ActuatorToJointStateHandle(
actr + "_trans", trans_[i].get(), actr_curr_data_[actr], jnt_curr_data_[jnt]));
jnt_to_actr_pos_.registerHandle(transmission_interface::JointToActuatorPositionHandle(
jnt + "_trans", trans_[i].get(), actr_cmd_data_[actr], jnt_cmd_data_[jnt]));
// Connect and register the joint state handle
hardware_interface::JointStateHandle state_handle(jnt, &jnt_curr_pos_[jnt], &jnt_curr_vel_[jnt],
&jnt_curr_eff_[jnt]);
jnt_state_interface_.registerHandle(state_handle);
// Connect and register the joint position handle
hardware_interface::JointHandle pos_handle(jnt_state_interface_.getHandle(jnt), &jnt_cmd_pos_[jnt]);
pos_jnt_interface_.registerHandle(pos_handle);
// ROS publishers and subscribers
actr_cmd_pub_[actr] = nh_.advertise<std_msgs::Float64>("dxl/" + controller_names_[i] + "/command", 5);
actr_state_sub_[actr] =
nh_.subscribe("dxl/" + controller_names_[i] + "/state", 1, &GripperRosControl::actrStateCallback, this);
}
// Register interfaces
registerInterface(&jnt_state_interface_);
registerInterface(&pos_jnt_interface_);
// Start spinning
nh_.setCallbackQueue(&subscriber_queue_);
subscriber_spinner_.reset(new ros::AsyncSpinner(1, &subscriber_queue_));
subscriber_spinner_->start();
}
示例2: ImageConverter
ImageConverter()
: it_(nh_),
ch_(nh_, "trigger_node")
{
ch_.setCallbackQueue(&trigger_queue_);
// Subscribe to input video feed and publish output video feed
image_sub_ = it_.subscribe("/camera/image_raw", 1,
&ImageConverter::imageCb, this);
image_pub_ = it_.advertise("/image_converter/output_video", 1);
cv::namedWindow(OPENCV_WINDOW);
advertisetriggerservice("no_name");
}
示例3:
/**
* Initialize module - called in server constructor
*/
void srs_env_model::COcPatchMaker::init(ros::NodeHandle & node_handle)
{
ROS_DEBUG("Initializing CCompressedPointCloudPlugin");
if ( m_bSpinThread )
{
// if we're spinning our own thread, we'll also need our own callback queue
node_handle.setCallbackQueue( &callback_queue_ );
need_to_terminate_ = false;
spin_thread_.reset( new boost::thread(boost::bind(&COcPatchMaker::spinThread, this)) );
node_handle_ = node_handle;
}
// Read parameters
{
// Where to get camera position information
node_handle.param("camera_info_topic_name", m_cameraInfoTopic, CPC_CAMERA_INFO_PUBLISHER_NAME );
}
// Subscribe to position topic
// Create subscriber
m_camPosSubscriber = node_handle.subscribe<sensor_msgs::CameraInfo>( m_cameraInfoTopic, 10, &srs_env_model::COcPatchMaker::onCameraChangedCB, this );
if (!m_camPosSubscriber)
{
ROS_ERROR("Not subscribed...");
ROS_ERROR( "Cannot subscribe to the camera position publisher..." );
}
// stereo cam params for sensor cone:
// node_handle.param<int> ("compressed_pc_camera_stereo_offset_left", m_camera_stereo_offset_left, 0); // 128
// node_handle.param<int> ("compressed_pc_camera_stereo_offset_right", m_camera_stereo_offset_right, 0);
node_handle.param("registration_patch_view_fraction_x", m_fracX, m_fracX );
node_handle.param("registration_patch_view_fraction_y", m_fracY, m_fracY );
node_handle.param("registration_patch_publish_cloud", m_bPublishCloud, m_bPublishCloud );
if( m_bPublishCloud )
// Create publisher - simple point cloud
m_pubConstrainedPC = node_handle.advertise<sensor_msgs::PointCloud2> (REGISTRATION_CONSTRAINED_CLOUD_PUBLISHER_NAME, 5, false);
}
示例4: PERROR
void srs::CLimitedPointCloudPlugin::init(ros::NodeHandle & node_handle)
{
if ( m_bSpinThread )
{
// if we're spinning our own thread, we'll also need our own callback queue
node_handle.setCallbackQueue( &callback_queue_ );
need_to_terminate_ = false;
spin_thread_.reset( new boost::thread(boost::bind(&CLimitedPointCloudPlugin::spinThread, this)) );
node_handle_ = node_handle;
}
// Read parameters
// Camera position topic name
std::string cameraPositionTopic;
node_handle.param("rviz_camera_position_topic_name", cameraPositionTopic, CAMERA_POSITION_TOPIC_NAME );
// Point cloud publishing topic name
node_handle.param("pointcloud_centers_publisher", m_pcPublisherName, POINTCLOUD_CENTERS_PUBLISHER_NAME );
// Create publisher
m_pcPublisher = node_handle.advertise<sensor_msgs::PointCloud2> (m_pcPublisherName, 100, m_latchedTopics);
// Subscribe to position topic
// Create subscriber
m_camPosSubscriber = node_handle.subscribe<srs_env_model_msgs::RVIZCameraPosition>( cameraPositionTopic, 10, &srs::CLimitedPointCloudPlugin::onCameraPositionChangedCB, this );
// = new message_filters::Subscriber<srs_env_model_msgs::RVIZCameraPosition>(node_handle, cameraPositionTopic, 1);
if (!m_camPosSubscriber)
{
ROS_ERROR("Not subscribed...");
PERROR( "Cannot subscribe to the camera position publisher..." );
}
/*
// Create message filter
m_tfCamPosSub = new tf::MessageFilter<srs_env_model_msgs::RVIZCameraPosition>( *m_camPosSubscriber, m_tfListener, "/map", 1);
m_tfCamPosSub->registerCallback(boost::bind( &CLimitedPointCloudPlugin::onCameraPositionChangedCB, this, _1));
*/
// Clear old pointcloud data
m_data->clear();
}
示例5: ShowTFTree
ShowTFTree() : root_nh_(""), priv_nh_("~")
{
tf_counter_ = 0;
// subscribe to /tf
string sub_topic;
priv_nh_.param<string>("subscribe_topic", sub_topic, "/tf");
sub_ = root_nh_.subscribe(sub_topic, 10, &ShowTFTree::callback, this);
root_nh_.setCallbackQueue(&tf_message_callback_queue_);
// create thread for processing callback queue
boost::thread* dedicated_listener_thread_;
dedicated_listener_thread_ = new boost::thread(boost::bind(&ShowTFTree::processCallbackQueueThread, this));
// waiting callback
cout <<"Collecting tf frames.. " ;
wait_time_ = 3;
priv_nh_.getParam("wait", wait_time_);
sync_timer_ = timer_nh_.createTimer(ros::Duration(1.0), boost::bind( &ShowTFTree::wait, this ) );
}
示例6: PERROR
/**
* Initialize plugin
*/
void srs_env_model::CCompressedPointCloudPlugin::init(ros::NodeHandle & node_handle)
{
ROS_DEBUG("Initializing CCompressedPointCloudPlugin");
// 2013/01/31 Majkl: I guess we should publish the map in the Octomap TF frame...
node_handle.param("ocmap_frame_id", m_frameId, m_frameId);
if ( m_bSpinThread )
{
// if we're spinning our own thread, we'll also need our own callback queue
node_handle.setCallbackQueue( &callback_queue_ );
need_to_terminate_ = false;
spin_thread_.reset( new boost::thread(boost::bind(&CCompressedPointCloudPlugin::spinThread, this)) );
node_handle_ = node_handle;
}
// Read parameters
{
// Where to get camera position information
node_handle.param("compressed_pc_camera_info_topic_name", m_cameraInfoTopic, CPC_CAMERA_INFO_PUBLISHER_NAME );
ROS_INFO("SRS_ENV_SERVER: parameter - compressed_pc_camera_info_topic_name: %s", m_cameraInfoTopic.c_str() );
// Point cloud publishing topic name
node_handle.param("compressed_pc_pointcloud_centers_publisher", m_pcPublisherName, CPC_SIMPLE_PC_PUBLISHING_TOPIC_NAME);
ROS_INFO("SRS_ENV_SERVER: parameter - compressed_pc_pointcloud_centers_publisher: %s", m_pcPublisherName.c_str() );
// Should simple pointcloud be published too?
node_handle.param("publish_simple_cloud", m_bPublishSimpleCloud, false );
// How many uncomplete frames should be published before complete one
int uf;
node_handle.param("compressed_pc_differential_frames_count", uf, CPC_NUM_DIFFERENTIAL_FRAMES );
m_uncomplete_frames = uf;
ROS_INFO("SRS_ENV_SERVER: parameter - compressed_pc_update_data_topic_name: %i", uf );
// Complete data topic name
node_handle.param( "compressed_pc_update_data_topic_name", m_ocUpdatePublisherName, CPC_COMPLETE_TOPIC_NAME );
ROS_INFO("SRS_ENV_SERVER: parameter - compressed_pc_update_data_topic_name: %s", m_ocUpdatePublisherName.c_str() );
}
// Services
{
m_serviceSetNumIncomplete = node_handle.advertiseService( SetNumIncompleteFrames_SRV,
&srs_env_model::CCompressedPointCloudPlugin::setNumIncompleteFramesCB, this );
}
// Create publisher - simple point cloud
if( m_bPublishSimpleCloud)
m_pcPublisher = node_handle.advertise<sensor_msgs::PointCloud2> (m_pcPublisherName, 5, m_latchedTopics);
// Create publisher - packed info - cam position and update pointcloud
m_ocUpdatePublisher = node_handle.advertise< srs_env_model::OctomapUpdates > ( m_ocUpdatePublisherName, 5, m_latchedTopics );
// Subscribe to position topic
// Create subscriber
m_camPosSubscriber = node_handle.subscribe<sensor_msgs::CameraInfo>( m_cameraInfoTopic, 10, &srs_env_model::CCompressedPointCloudPlugin::onCameraChangedCB, this );
// = new message_filters::Subscriber<srs_env_model_msgs::RVIZCameraPosition>(node_handle, cameraPositionTopic, 1);
if (!m_camPosSubscriber)
{
ROS_ERROR("Not subscribed...");
PERROR( "Cannot subscribe to the camera position publisher..." );
}
/*
// Create message filter
m_tfCamPosSub = new tf::MessageFilter<srs_env_model_msgs::RVIZCameraPosition>( *m_camPosSubscriber, m_tfListener, "/map", 1);
m_tfCamPosSub->registerCallback(boost::bind( &CCompressedPointCloudPlugin::onCameraPositionChangedCB, this, _1));
*/
// Clear old pointcloud data
m_data->clear();
// stereo cam params for sensor cone:
node_handle.param<int> ("compressed_pc_camera_stereo_offset_left", m_camera_stereo_offset_left, 0); // 128
node_handle.param<int> ("compressed_pc_camera_stereo_offset_right", m_camera_stereo_offset_right, 0);
}