Package Summary

Tags No category tags.
Version 1.11.0
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ros/nodelet_core.git
VCS Type git
VCS Version noetic-devel
Last Updated 2024-09-25
Dev Status MAINTAINED
CI status
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

The nodelet package is designed to provide a way to run multiple algorithms in the same process with zero copy transport between algorithms. This package provides both the nodelet base class needed for implementing a nodelet, as well as the NodeletLoader class used for instantiating nodelets.

Additional Links

Maintainers

  • Geoffrey Biggs

Authors

  • Tully Foote
  • Radu Bogdan Rusu
  • Michael Carroll
README
No README found. No README in repository either.
CHANGELOG

Changelog for package nodelet

1.11.0 (2024-01-09)

  • Don't install version.h.in (#113)
  • Fix use-after-free when a nodelet throws on initialization (#122)
  • Update package maintainers (#114)
  • Reduce boost dependency scope (#118)
  • Switch to new boost/bind/bind.hpp (#117)
  • show warning in every 10 seconds when manager is not found (#115)
  • Contributors: Geoffrey Biggs, Hugal31, Jochen Sprickerhof, Shingo Kitagawa, Stephan

1.10.2 (2021-10-07)

  • add version.h for nodelet (#105)
  • Fix missing num_threads call when NODELET_QUEUE_DEBUG (#112)
  • Contributors: Matthijs van der Burgh, Shingo Kitagawa

1.10.1 (2021-01-25)

  • removed callback queue pause around onInit() (#107)
  • Contributors: Tomáš Báča

1.10.0 (2020-03-09)

  • Update maintainer to Michael Carroll (#104)
  • Bump CMake version to avoid CMP0048 warning (#102)
  • enable Windows build (#85)
  • Fix build issue on Windows (#82)
  • delay processing of queues until Nodelet::onInit() returns (#66)
  • Contributors: James Xu, Johnson Shih, Michael Carroll, Shane Loretz, Simon Gene Gottlieb

1.9.16 (2018-04-27)

  • uuid dependency fixup (#74)
    • don't export uuid library
    • wrap for readability
  • Contributors: Mikael Arguedas

1.9.15 (2018-03-16)

  • use new pluginlib headers (#73)
  • Contributors: Mikael Arguedas

1.9.14 (2017-11-15)

  • declared_nodelets: continue on missing plugin xml (#70)
  • Contributors: Furushchev

1.9.13 (2017-10-27)

  • Drop unneeded forward declaration. (#68)
  • Contributors: Mike Purvis

1.9.12 (2017-08-04)

1.9.11 (2017-07-27)

  • Add getRemappingArgs method to nodelet to reuse it in subclass (#61)
  • remove trailing whitespaces (#62)
  • switch to package format 2 (#63)
  • Show pkg and manifest file with verbose option (#59)
  • Contributors: Kentaro Wada, Mikael Arguedas

1.9.10 (2017-03-27)

1.9.9 (2017-02-17)

  • drop unused dependency on tinyxml (#54)
  • Install the declared_nodelets script (#53)
  • Contributors: Dmitry Rozhkov, Kentaro Wada

1.9.8 (2016-11-15)

  • Fix bond handling during nodelet unloading (#51)
    • add test whether bond breaking on unload works (tests #50)

    * disable callback for broken bond when we are breaking it This avoids the nodelet::LoaderROS::unload() method to be called twice for the same nodelet, causing an error output. * use AsyncSpinner for nodelet load in order for the shutdown procedure to work During shutdown, the bonds still need to communicate their status in order for the nodelet to properly/cleanly/quickly unload. This requires the node to spin.

    • add test whether LoaderROS::unload() is called twice (tests #50)
  • Contributors: Daniel Seifert

1.9.7 (2016-10-24)

1.9.6 (2016-09-20)

1.9.5 (2016-06-22)

  • more sane debugging messages
  • Contributors: Daniel Stonier

1.9.4 (2016-03-15)

  • update maintainer
  • Contributors: Mikael Arguedas

1.9.3 (2015-08-05)

  • adding support for named nodelet loggers
  • nodelet loader: display error messages from both load attempts on failure
  • Contributors: Max Schwarz, Tully Foote

1.9.2 (2014-10-30)

  • Fix dependency version
  • Contributors: Esteve Fernandez

1.9.1 (2014-10-29)

  • Use FindUUID.cmake from cmake-modules to find the UUID libraries
  • nodelet: Loader: do not call impl->refresh_classes if not available
  • Contributors: Esteve Fernandez, Max Schwarz

1.9.0 (2014-06-16)

  • Fix initialization error handling (#13)
  • Contributors: Esteve Fernandez

1.8.3 (2014-05-08)

  • Add version to pluginlib dependency
  • nodelet: avoid breaking bond when unloading unknown nodelet
  • nodelet: refresh list of available classes if class is not found
  • Fixed missing header
  • Correctly check that there are enough arguments when nodelet is launched with the unload command
  • Exit if Loader::load returns failure in "standalone" mode instead of continuing to run
  • Contributors: Dirk Thomas, Esteve Fernandez, Forrest Voight, Gary Servin, Marcus Liebhardt, Mitchell Wills
  • fix missing header (#14)
  • fix check that there are enough arguments when nodelet is launched with the unload command (#12)
  • exit if Loader::load returns failure in "standalone" mode instead of continuing to run (#11)

1.8.2 (2014-01-07)

  • fix erasing bond when it breaks (#8)

1.8.0 (2013-07-11)

  • add missing archive/library/runtime destination for library
  • Export pluginlib as a transitive dependency Also remove some old Apple specific rules which are no longer required.
  • use EXPORTED_TARGETS variable instead of explicit target names
  • update email in package.xml

1.7.15 (2013-03-12)

1.7.14 (2013-01-13)

  • add missing link library uuid (fix #4)

1.7.13 (2012-12-27)

  • move nodelet_topic_tools to separate package, fix unit tests

1.7.12 (2012-12-19 01:34)

1.7.11 (2012-12-19 00:58)

1.7.10 (2012-12-14)

  • add missing dep to catkin

1.7.9 (2012-12-13)

  • add missing downstream depend
  • switched from langs to message* packages

1.7.8 (2012-12-06)

  • updated catkin_package(DEPENDS)

1.7.7 (2012-11-01)

1.7.6 (2012-10-30)

  • fix catkin function order
  • clean up package.xml files

1.7.5 (2012-10-23)

1.7.4 (2012-10-08)

1.7.3 (2012-10-04)

1.7.2 (2012-10-03)

1.7.1 (2012-10-02)

  • adding nodelet_core metapackage and reving to 1.7.1

1.7.0 (2012-10-01)

  • fix dependencies
  • make it compile locally
  • first pass at catkinizing the stack
  • updated to latest pluginlib
  • updated usage of pluginlib according to updated REP 121
  • use updated pluginlib to auto-unload libraries when unloading nodelets
  • fixed issue #5144 on OS X lion
  • Commentary on who owns what among Loader, Nodelet, CallbackQueue and CallbackQueueManager.
  • Moved most of Loader's member variables into an opaque PIMPL struct so we can change things without breaking ABI.
  • All bond code moved to LoaderROS. Loader no longer needs to know about bond.
  • Removed CallbackQueue::disable(). Loader removes a nodelet's queues from the queue manager when unloading it, which is sufficient to prevent new callbacks for that nodelet getting added.
  • Removed some code and comments concerned with callbacks getting called after their nodelet's destruction. This can't actually happen anymore, since callbacks only fire if they can lock a weak_ptr to their parent nodelet.
  • Refactoring to streamline Nodelet back down to a simple plugin interface. It no longer knows about detail::CallbackQueue[Manager] or Bond; init() simply takes the single- and multi-threaded ros::CallbackQueueInterface* instead (defaulting to NULL). Loader owns the callback queues and bond for each nodelet. This makes it possible to use Nodelet without all the surrounding infrastructure.
  • Take Bond pointers as const-ref instead of value in Loader and Nodelet.
  • Added Loader constructor taking a boost::function object used as a factory for nodelet instances, replacing the default use of a pluginlib class loader. This is to support ROSGUI, which defines its specialized plugin interface as a subclass of Nodelet, and thus needs a different class loader.
  • Removed some debug code in Loader constructor.
  • 'nodelet load' more reliably unloads the nodelet on exiting. In particular it intercepts XML-RPC shutdown command, used for example by 'rosnode kill'.
  • Enabled error output when service calls fail abnormally.
  • Rewrote tracked_object logic to be clearer.
  • Have detail::CallbackQueue use a ros::VoidConstWPtr as the tracked object, which is now optional. More generic, and fixes test_nodelet which was broken by the last commit.
  • Fixed race conditions/deadlocks when unloading a nodelet. Now disable the nodelet's callback queues before deleting it. The queues have a WPtr to the nodelet, so any outstanding callbacks will get discarded.
  • ~Loader now stops callback manager threads before destroying the nodelets. Otherwise the worker threads could operate on nodelet data as/after it's destroyed.
  • Use ros::names::parentNamespace().
  • Cleaned scoped_ptr's out of ThreadInfo and updated its padding.
  • Made ThreadInfo::calling an atomic_count. This allows the manager thread to pick the queue with least work more accurately, and reduces contention b/c getSmallestQueue no longer needs to lock on queue_mutex_.
  • Minor code cleanup and finer locking in managerThread().
  • Actually pad ThreadInfo to a multiple of 64 bytes. Previous expression was wrongly wrapped in sizeof().
  • Instead of thread_info_.resize(num_threads), push each ThreadInfo on individually. With resize(), all threads ended up sharing the same queue_mutex and queue_cond. Doesn't seem to be much of a performance win though.
  • Added test instrumentation to CallbackQueueManager to track size of worker thread queues over time. Must be enabled at compilation time with -DNODELET_QUEUE_DEBUG.
  • nodelet patches for osx lion support from wjwwood
  • Added --no-bond option to nodelet loading to disable bonds.
  • updated platform tags
  • don't need to link against tinyxml directly
  • link against system tinyxml
  • Fix for #4855 This fix actually makes sense, but that it wasn't caught earlier doesn't. The construction of nodelet::Loader n(false) was creating the first node handle and letting it go out of scope, which was automagically calling ros::shutdown(), which is a dumb thing for ros::NodeHandle to do automagically on destruction.
  • Each nodelet now places its bonds on a custom callback queue
  • a script to list declared nodelets
  • real fix for #4460
  • patch for #4460
  • adding support for once, throttle, and filter features. With unit tests for all but the filters #4681
  • fix for #4609
  • MUX simplified by using a 8-connected null filters DeMUX has a specialization for message type (uses ros::Subscriber internally by default) Added rosdep for nodelet (uuid)
  • adding optional namespace aware constructor to nodelet loader. #4243 and fixing vestigial comments referencing Filters #4221
  • nodelet uses bond to handle crashes on the manager or the spawner end. #4221
  • locking in all cases
  • fix hang on CallbackQueueManager destruction (#4402)
  • better check for services
  • fix hanging tests and a hang on nodelet CallbackQueueManager destruction (#4082)
  • added a boost mutex
  • preventing nodelets from busywaiting
  • Added optional parameter num_worker_threads to nodelets.
  • Added Ubuntu platform tags to manifest
  • implemented nodelet unloading on shutdown
  • fixed a segfault on destroy
  • merging josh's branch from ticket #3875
  • adding usage
  • fancy new command line parsing for nodelets #3876
  • moving topic tools out of nodelet proper, removing rospy and message_filters dependencies from nodelet
  • doc updates
  • fixed a segfault
  • small changes (ptr->boost shared_ptr)
  • init guard
  • making nodehandles pointers to avoid default constructors
  • switching mt_spinner to be a pointer created on init so it's not trying to create a nodehandle at construction
  • cleanup
  • switching to cpp command based nodelet implementation as per API review
  • changes as per API review
  • enforcing unique name in manager
  • supporting argv passing on server side
  • getname return type for API review
  • adding MT Nodehandle creation methods and fixing up tutorials
  • passing parameters
  • we're always going to spin
  • added my_args in the service call
  • some changes as we discuss them during the API review
  • cleaning up private and public api elements
  • nodelet_internal_init is now private and a friend of NodeletLoader
  • nodelet API changes
  • COND rosconsole Nodelet wrappers working
  • adding multithreaded callback queue
  • removing unnecessary code after refactor
  • adding NODELET rosconsole wrappers, note init method is now void args
  • moving nodelet package into common trunk so I don't lose it in reorganization

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

Name Deps
ainstein_radar_drivers
ainstein_radar_filters
apriltag_ros
arm
dock
light_flow
perch
states
comms_bridge
dds_ros_bridge
ground_dds_ros_bridge
ctl
fam
eps_driver
epson_imu
flashlight
is_camera
laser
perching_arm
pico_driver
pmc_actuator
signal_lights
smart_dock
speed_cam
temp_monitor
vive
depth_odometry
ground_truth_localizer
handrail_detect
interest_point
lk_optical_flow
localization_manager
localization_node
marker_tracking
point_cloud_common
ros_graph_localizer
ros_pose_extrapolator
vive_localization
access_control
cpu_mem_monitor
data_bagger
disk_monitor
executive
image_sampler
sys_monitor
choreographer
framestore
mapper
planner_qp
planner_trapezoidal
config_reader
ff_common
ff_util
jsonloader
avt_vimba_camera
capabilities
laser_scan_densifier
cob_bringup
nodelet_tutorial_math
cras_imu_tools
cras_laser_geometry
camera_throttle
cras_cpp_common
cras_topic_tools
cv_camera
dataspeed_can_usb
dataspeed_pds_can
dataspeed_pds_lcm
dataspeed_ulc_can
dbw_fca_can
dbw_mkz_can
dbw_polaris_can
depthimage_to_laserscan
ensenso_camera
floam
foxglove_bridge
gazebo_plugins
hector_pose_estimation
hfl_driver
ifm3d_ros_driver
depth_image_proc
image_proc
image_publisher
image_rotate
image_view
stereo_image_proc
imu_transformer
imu_complementary_filter
imu_filter_madgwick
jsk_data
jsk_topic_tools
imagesift
jsk_pcl_ros
jsk_pcl_ros_utils
jsk_perception
resized_image_transport
laser_filters
laser_proc
libuvc_camera
swri_image_util
swri_nodelet
swri_transform_util
moveit_ros_perception
nerian_stereo
nodelet_core
nodelet_topic_tools
test_nodelet
test_nodelet_topic_tools
novatel_gps_driver
novatel_oem7_driver
octomap_server
opencv_apps
openni2_camera
openni2_launch
openni_camera
openni_launch
pcl_ros
phidgets_accelerometer
phidgets_analog_inputs
phidgets_analog_outputs
phidgets_digital_inputs
phidgets_digital_outputs
phidgets_gyroscope
phidgets_high_speed_encoder
phidgets_humidity
phidgets_ik
phidgets_magnetometer
phidgets_motors
phidgets_spatial
phidgets_temperature
point_cloud_color
point_cloud_transport
pointcloud_to_laserscan
pointgrey_camera_driver
prosilica_camera
raptor_dbw_can
rc_genicam_camera
rc_genicam_driver
rc_visard_driver
rgbd_launch
robot_localization
rqt_gui_cpp
rtabmap_legacy
rtabmap_odom
rtabmap_slam
rtabmap_sync
rtabmap_util
laser_ortho_projector
laser_scan_matcher
laser_scan_sparsifier
laser_scan_splitter
sensor_filters
gmapping
stag_ros
tf2_server
tuw_multi_robot_ctrl
udp_com
ueye_cam
urg_node
usb_cam_hardware
velodyne_driver
velodyne_laserscan
velodyne_pointcloud
video_stream_opencv
visp_tracker
visp_ros
zbar_ros
darknet_ros
spinnaker_camera_driver
camera_aravis
aruco_opencv
astra_ros
beluga_amcl
magnetometer_compass
etsi_its_conversion
message_tf_frame_transformer
mqtt_client

Launch files

No launch files found

Messages

No message files found.

Plugins

No plugins found.

Recent questions tagged nodelet at Robotics Stack Exchange

Package Summary

Tags No category tags.
Version 1.9.16
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ros/nodelet_core.git
VCS Type git
VCS Version indigo-devel
Last Updated 2019-02-15
Dev Status MAINTAINED
CI status Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

The nodelet package is designed to provide a way to run multiple algorithms in the same process with zero copy transport between algorithms. This package provides both the nodelet base class needed for implementing a nodelet, as well as the NodeletLoader class used for instantiating nodelets.

Additional Links

Maintainers

  • Mikael Arguedas

Authors

  • Tully Foote
  • Radu Bogdan Rusu
README
No README found. No README in repository either.
CHANGELOG

Changelog for package nodelet

Forthcoming

  • delay processing of queues until Nodelet::onInit() returns

1.9.16 (2018-04-27)

  • uuid dependency fixup (#74)
    • don't export uuid library
    • wrap for readability
  • Contributors: Mikael Arguedas

1.9.15 (2018-03-16)

  • use new pluginlib headers (#73)
  • Contributors: Mikael Arguedas

1.9.14 (2017-11-15)

  • declared_nodelets: continue on missing plugin xml (#70)
  • Contributors: Furushchev

1.9.13 (2017-10-27)

  • Drop unneeded forward declaration. (#68)
  • Contributors: Mike Purvis

1.9.12 (2017-08-04)

1.9.11 (2017-07-27)

  • Add getRemappingArgs method to nodelet to reuse it in subclass (#61)
  • remove trailing whitespaces (#62)
  • switch to package format 2 (#63)
  • Show pkg and manifest file with verbose option (#59)
  • Contributors: Kentaro Wada, Mikael Arguedas

1.9.10 (2017-03-27)

1.9.9 (2017-02-17)

  • drop unused dependency on tinyxml (#54)
  • Install the declared_nodelets script (#53)
  • Contributors: Dmitry Rozhkov, Kentaro Wada

1.9.8 (2016-11-15)

  • Fix bond handling during nodelet unloading (#51)
    • add test whether bond breaking on unload works (tests #50)

    * disable callback for broken bond when we are breaking it This avoids the nodelet::LoaderROS::unload() method to be called twice for the same nodelet, causing an error output. * use AsyncSpinner for nodelet load in order for the shutdown procedure to work During shutdown, the bonds still need to communicate their status in order for the nodelet to properly/cleanly/quickly unload. This requires the node to spin.

    • add test whether LoaderROS::unload() is called twice (tests #50)
  • Contributors: Daniel Seifert

1.9.7 (2016-10-24)

1.9.6 (2016-09-20)

1.9.5 (2016-06-22)

  • more sane debugging messages
  • Contributors: Daniel Stonier

1.9.4 (2016-03-15)

  • update maintainer
  • Contributors: Mikael Arguedas

1.9.3 (2015-08-05)

  • adding support for named nodelet loggers
  • nodelet loader: display error messages from both load attempts on failure
  • Contributors: Max Schwarz, Tully Foote

1.9.2 (2014-10-30)

  • Fix dependency version
  • Contributors: Esteve Fernandez

1.9.1 (2014-10-29)

  • Use FindUUID.cmake from cmake-modules to find the UUID libraries
  • nodelet: Loader: do not call impl->refresh_classes if not available
  • Contributors: Esteve Fernandez, Max Schwarz

1.9.0 (2014-06-16)

  • Fix initialization error handling (#13)
  • Contributors: Esteve Fernandez

1.8.3 (2014-05-08)

  • Add version to pluginlib dependency
  • nodelet: avoid breaking bond when unloading unknown nodelet
  • nodelet: refresh list of available classes if class is not found
  • Fixed missing header
  • Correctly check that there are enough arguments when nodelet is launched with the unload command
  • Exit if Loader::load returns failure in "standalone" mode instead of continuing to run
  • Contributors: Dirk Thomas, Esteve Fernandez, Forrest Voight, Gary Servin, Marcus Liebhardt, Mitchell Wills
  • fix missing header (#14)
  • fix check that there are enough arguments when nodelet is launched with the unload command (#12)
  • exit if Loader::load returns failure in "standalone" mode instead of continuing to run (#11)

1.8.2 (2014-01-07)

  • fix erasing bond when it breaks (#8)

1.8.0 (2013-07-11)

  • add missing archive/library/runtime destination for library
  • Export pluginlib as a transitive dependency Also remove some old Apple specific rules which are no longer required.
  • use EXPORTED_TARGETS variable instead of explicit target names
  • update email in package.xml

1.7.15 (2013-03-12)

1.7.14 (2013-01-13)

  • add missing link library uuid (fix #4)

1.7.13 (2012-12-27)

  • move nodelet_topic_tools to separate package, fix unit tests

1.7.12 (2012-12-19 01:34)

1.7.11 (2012-12-19 00:58)

1.7.10 (2012-12-14)

  • add missing dep to catkin

1.7.9 (2012-12-13)

  • add missing downstream depend
  • switched from langs to message* packages

1.7.8 (2012-12-06)

  • updated catkin_package(DEPENDS)

1.7.7 (2012-11-01)

1.7.6 (2012-10-30)

  • fix catkin function order
  • clean up package.xml files

1.7.5 (2012-10-23)

1.7.4 (2012-10-08)

1.7.3 (2012-10-04)

1.7.2 (2012-10-03)

1.7.1 (2012-10-02)

  • adding nodelet_core metapackage and reving to 1.7.1

1.7.0 (2012-10-01)

  • fix dependencies
  • make it compile locally
  • first pass at catkinizing the stack
  • updated to latest pluginlib
  • updated usage of pluginlib according to updated REP 121
  • use updated pluginlib to auto-unload libraries when unloading nodelets
  • fixed issue #5144 on OS X lion
  • Commentary on who owns what among Loader, Nodelet, CallbackQueue and CallbackQueueManager.
  • Moved most of Loader's member variables into an opaque PIMPL struct so we can change things without breaking ABI.
  • All bond code moved to LoaderROS. Loader no longer needs to know about bond.
  • Removed CallbackQueue::disable(). Loader removes a nodelet's queues from the queue manager when unloading it, which is sufficient to prevent new callbacks for that nodelet getting added.
  • Removed some code and comments concerned with callbacks getting called after their nodelet's destruction. This can't actually happen anymore, since callbacks only fire if they can lock a weak_ptr to their parent nodelet.
  • Refactoring to streamline Nodelet back down to a simple plugin interface. It no longer knows about detail::CallbackQueue[Manager] or Bond; init() simply takes the single- and multi-threaded ros::CallbackQueueInterface* instead (defaulting to NULL). Loader owns the callback queues and bond for each nodelet. This makes it possible to use Nodelet without all the surrounding infrastructure.
  • Take Bond pointers as const-ref instead of value in Loader and Nodelet.
  • Added Loader constructor taking a boost::function object used as a factory for nodelet instances, replacing the default use of a pluginlib class loader. This is to support ROSGUI, which defines its specialized plugin interface as a subclass of Nodelet, and thus needs a different class loader.
  • Removed some debug code in Loader constructor.
  • 'nodelet load' more reliably unloads the nodelet on exiting. In particular it intercepts XML-RPC shutdown command, used for example by 'rosnode kill'.
  • Enabled error output when service calls fail abnormally.
  • Rewrote tracked_object logic to be clearer.
  • Have detail::CallbackQueue use a ros::VoidConstWPtr as the tracked object, which is now optional. More generic, and fixes test_nodelet which was broken by the last commit.
  • Fixed race conditions/deadlocks when unloading a nodelet. Now disable the nodelet's callback queues before deleting it. The queues have a WPtr to the nodelet, so any outstanding callbacks will get discarded.
  • ~Loader now stops callback manager threads before destroying the nodelets. Otherwise the worker threads could operate on nodelet data as/after it's destroyed.
  • Use ros::names::parentNamespace().
  • Cleaned scoped_ptr's out of ThreadInfo and updated its padding.
  • Made ThreadInfo::calling an atomic_count. This allows the manager thread to pick the queue with least work more accurately, and reduces contention b/c getSmallestQueue no longer needs to lock on queue_mutex_.
  • Minor code cleanup and finer locking in managerThread().
  • Actually pad ThreadInfo to a multiple of 64 bytes. Previous expression was wrongly wrapped in sizeof().
  • Instead of thread_info_.resize(num_threads), push each ThreadInfo on individually. With resize(), all threads ended up sharing the same queue_mutex and queue_cond. Doesn't seem to be much of a performance win though.
  • Added test instrumentation to CallbackQueueManager to track size of worker thread queues over time. Must be enabled at compilation time with -DNODELET_QUEUE_DEBUG.
  • nodelet patches for osx lion support from wjwwood
  • Added --no-bond option to nodelet loading to disable bonds.
  • updated platform tags
  • don't need to link against tinyxml directly
  • link against system tinyxml
  • Fix for #4855 This fix actually makes sense, but that it wasn't caught earlier doesn't. The construction of nodelet::Loader n(false) was creating the first node handle and letting it go out of scope, which was automagically calling ros::shutdown(), which is a dumb thing for ros::NodeHandle to do automagically on destruction.
  • Each nodelet now places its bonds on a custom callback queue
  • a script to list declared nodelets
  • real fix for #4460
  • patch for #4460
  • adding support for once, throttle, and filter features. With unit tests for all but the filters #4681
  • fix for #4609
  • MUX simplified by using a 8-connected null filters DeMUX has a specialization for message type (uses ros::Subscriber internally by default) Added rosdep for nodelet (uuid)
  • adding optional namespace aware constructor to nodelet loader. #4243 and fixing vestigial comments referencing Filters #4221
  • nodelet uses bond to handle crashes on the manager or the spawner end. #4221
  • locking in all cases
  • fix hang on CallbackQueueManager destruction (#4402)
  • better check for services
  • fix hanging tests and a hang on nodelet CallbackQueueManager destruction (#4082)
  • added a boost mutex
  • preventing nodelets from busywaiting
  • Added optional parameter num_worker_threads to nodelets.
  • Added Ubuntu platform tags to manifest
  • implemented nodelet unloading on shutdown
  • fixed a segfault on destroy
  • merging josh's branch from ticket #3875
  • adding usage
  • fancy new command line parsing for nodelets #3876
  • moving topic tools out of nodelet proper, removing rospy and message_filters dependencies from nodelet
  • doc updates
  • fixed a segfault
  • small changes (ptr->boost shared_ptr)
  • init guard
  • making nodehandles pointers to avoid default constructors
  • switching mt_spinner to be a pointer created on init so it's not trying to create a nodehandle at construction
  • cleanup
  • switching to cpp command based nodelet implementation as per API review
  • changes as per API review
  • enforcing unique name in manager
  • supporting argv passing on server side
  • getname return type for API review
  • adding MT Nodehandle creation methods and fixing up tutorials
  • passing parameters
  • we're always going to spin
  • added my_args in the service call
  • some changes as we discuss them during the API review
  • cleaning up private and public api elements
  • nodelet_internal_init is now private and a friend of NodeletLoader
  • nodelet API changes
  • COND rosconsole Nodelet wrappers working
  • adding multithreaded callback queue
  • removing unnecessary code after refactor
  • adding NODELET rosconsole wrappers, note init method is now void args
  • moving nodelet package into common trunk so I don't lose it in reorganization

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

No launch files found

Messages

No message files found.

Plugins

No plugins found.

Recent questions tagged nodelet at Robotics Stack Exchange

Package Summary

Tags No category tags.
Version 1.9.16
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ros/nodelet_core.git
VCS Type git
VCS Version indigo-devel
Last Updated 2019-02-15
Dev Status MAINTAINED
CI status Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

The nodelet package is designed to provide a way to run multiple algorithms in the same process with zero copy transport between algorithms. This package provides both the nodelet base class needed for implementing a nodelet, as well as the NodeletLoader class used for instantiating nodelets.

Additional Links

Maintainers

  • Mikael Arguedas

Authors

  • Tully Foote
  • Radu Bogdan Rusu
README
No README found. No README in repository either.
CHANGELOG

Changelog for package nodelet

Forthcoming

  • delay processing of queues until Nodelet::onInit() returns

1.9.16 (2018-04-27)

  • uuid dependency fixup (#74)
    • don't export uuid library
    • wrap for readability
  • Contributors: Mikael Arguedas

1.9.15 (2018-03-16)

  • use new pluginlib headers (#73)
  • Contributors: Mikael Arguedas

1.9.14 (2017-11-15)

  • declared_nodelets: continue on missing plugin xml (#70)
  • Contributors: Furushchev

1.9.13 (2017-10-27)

  • Drop unneeded forward declaration. (#68)
  • Contributors: Mike Purvis

1.9.12 (2017-08-04)

1.9.11 (2017-07-27)

  • Add getRemappingArgs method to nodelet to reuse it in subclass (#61)
  • remove trailing whitespaces (#62)
  • switch to package format 2 (#63)
  • Show pkg and manifest file with verbose option (#59)
  • Contributors: Kentaro Wada, Mikael Arguedas

1.9.10 (2017-03-27)

1.9.9 (2017-02-17)

  • drop unused dependency on tinyxml (#54)
  • Install the declared_nodelets script (#53)
  • Contributors: Dmitry Rozhkov, Kentaro Wada

1.9.8 (2016-11-15)

  • Fix bond handling during nodelet unloading (#51)
    • add test whether bond breaking on unload works (tests #50)

    * disable callback for broken bond when we are breaking it This avoids the nodelet::LoaderROS::unload() method to be called twice for the same nodelet, causing an error output. * use AsyncSpinner for nodelet load in order for the shutdown procedure to work During shutdown, the bonds still need to communicate their status in order for the nodelet to properly/cleanly/quickly unload. This requires the node to spin.

    • add test whether LoaderROS::unload() is called twice (tests #50)
  • Contributors: Daniel Seifert

1.9.7 (2016-10-24)

1.9.6 (2016-09-20)

1.9.5 (2016-06-22)

  • more sane debugging messages
  • Contributors: Daniel Stonier

1.9.4 (2016-03-15)

  • update maintainer
  • Contributors: Mikael Arguedas

1.9.3 (2015-08-05)

  • adding support for named nodelet loggers
  • nodelet loader: display error messages from both load attempts on failure
  • Contributors: Max Schwarz, Tully Foote

1.9.2 (2014-10-30)

  • Fix dependency version
  • Contributors: Esteve Fernandez

1.9.1 (2014-10-29)

  • Use FindUUID.cmake from cmake-modules to find the UUID libraries
  • nodelet: Loader: do not call impl->refresh_classes if not available
  • Contributors: Esteve Fernandez, Max Schwarz

1.9.0 (2014-06-16)

  • Fix initialization error handling (#13)
  • Contributors: Esteve Fernandez

1.8.3 (2014-05-08)

  • Add version to pluginlib dependency
  • nodelet: avoid breaking bond when unloading unknown nodelet
  • nodelet: refresh list of available classes if class is not found
  • Fixed missing header
  • Correctly check that there are enough arguments when nodelet is launched with the unload command
  • Exit if Loader::load returns failure in "standalone" mode instead of continuing to run
  • Contributors: Dirk Thomas, Esteve Fernandez, Forrest Voight, Gary Servin, Marcus Liebhardt, Mitchell Wills
  • fix missing header (#14)
  • fix check that there are enough arguments when nodelet is launched with the unload command (#12)
  • exit if Loader::load returns failure in "standalone" mode instead of continuing to run (#11)

1.8.2 (2014-01-07)

  • fix erasing bond when it breaks (#8)

1.8.0 (2013-07-11)

  • add missing archive/library/runtime destination for library
  • Export pluginlib as a transitive dependency Also remove some old Apple specific rules which are no longer required.
  • use EXPORTED_TARGETS variable instead of explicit target names
  • update email in package.xml

1.7.15 (2013-03-12)

1.7.14 (2013-01-13)

  • add missing link library uuid (fix #4)

1.7.13 (2012-12-27)

  • move nodelet_topic_tools to separate package, fix unit tests

1.7.12 (2012-12-19 01:34)

1.7.11 (2012-12-19 00:58)

1.7.10 (2012-12-14)

  • add missing dep to catkin

1.7.9 (2012-12-13)

  • add missing downstream depend
  • switched from langs to message* packages

1.7.8 (2012-12-06)

  • updated catkin_package(DEPENDS)

1.7.7 (2012-11-01)

1.7.6 (2012-10-30)

  • fix catkin function order
  • clean up package.xml files

1.7.5 (2012-10-23)

1.7.4 (2012-10-08)

1.7.3 (2012-10-04)

1.7.2 (2012-10-03)

1.7.1 (2012-10-02)

  • adding nodelet_core metapackage and reving to 1.7.1

1.7.0 (2012-10-01)

  • fix dependencies
  • make it compile locally
  • first pass at catkinizing the stack
  • updated to latest pluginlib
  • updated usage of pluginlib according to updated REP 121
  • use updated pluginlib to auto-unload libraries when unloading nodelets
  • fixed issue #5144 on OS X lion
  • Commentary on who owns what among Loader, Nodelet, CallbackQueue and CallbackQueueManager.
  • Moved most of Loader's member variables into an opaque PIMPL struct so we can change things without breaking ABI.
  • All bond code moved to LoaderROS. Loader no longer needs to know about bond.
  • Removed CallbackQueue::disable(). Loader removes a nodelet's queues from the queue manager when unloading it, which is sufficient to prevent new callbacks for that nodelet getting added.
  • Removed some code and comments concerned with callbacks getting called after their nodelet's destruction. This can't actually happen anymore, since callbacks only fire if they can lock a weak_ptr to their parent nodelet.
  • Refactoring to streamline Nodelet back down to a simple plugin interface. It no longer knows about detail::CallbackQueue[Manager] or Bond; init() simply takes the single- and multi-threaded ros::CallbackQueueInterface* instead (defaulting to NULL). Loader owns the callback queues and bond for each nodelet. This makes it possible to use Nodelet without all the surrounding infrastructure.
  • Take Bond pointers as const-ref instead of value in Loader and Nodelet.
  • Added Loader constructor taking a boost::function object used as a factory for nodelet instances, replacing the default use of a pluginlib class loader. This is to support ROSGUI, which defines its specialized plugin interface as a subclass of Nodelet, and thus needs a different class loader.
  • Removed some debug code in Loader constructor.
  • 'nodelet load' more reliably unloads the nodelet on exiting. In particular it intercepts XML-RPC shutdown command, used for example by 'rosnode kill'.
  • Enabled error output when service calls fail abnormally.
  • Rewrote tracked_object logic to be clearer.
  • Have detail::CallbackQueue use a ros::VoidConstWPtr as the tracked object, which is now optional. More generic, and fixes test_nodelet which was broken by the last commit.
  • Fixed race conditions/deadlocks when unloading a nodelet. Now disable the nodelet's callback queues before deleting it. The queues have a WPtr to the nodelet, so any outstanding callbacks will get discarded.
  • ~Loader now stops callback manager threads before destroying the nodelets. Otherwise the worker threads could operate on nodelet data as/after it's destroyed.
  • Use ros::names::parentNamespace().
  • Cleaned scoped_ptr's out of ThreadInfo and updated its padding.
  • Made ThreadInfo::calling an atomic_count. This allows the manager thread to pick the queue with least work more accurately, and reduces contention b/c getSmallestQueue no longer needs to lock on queue_mutex_.
  • Minor code cleanup and finer locking in managerThread().
  • Actually pad ThreadInfo to a multiple of 64 bytes. Previous expression was wrongly wrapped in sizeof().
  • Instead of thread_info_.resize(num_threads), push each ThreadInfo on individually. With resize(), all threads ended up sharing the same queue_mutex and queue_cond. Doesn't seem to be much of a performance win though.
  • Added test instrumentation to CallbackQueueManager to track size of worker thread queues over time. Must be enabled at compilation time with -DNODELET_QUEUE_DEBUG.
  • nodelet patches for osx lion support from wjwwood
  • Added --no-bond option to nodelet loading to disable bonds.
  • updated platform tags
  • don't need to link against tinyxml directly
  • link against system tinyxml
  • Fix for #4855 This fix actually makes sense, but that it wasn't caught earlier doesn't. The construction of nodelet::Loader n(false) was creating the first node handle and letting it go out of scope, which was automagically calling ros::shutdown(), which is a dumb thing for ros::NodeHandle to do automagically on destruction.
  • Each nodelet now places its bonds on a custom callback queue
  • a script to list declared nodelets
  • real fix for #4460
  • patch for #4460
  • adding support for once, throttle, and filter features. With unit tests for all but the filters #4681
  • fix for #4609
  • MUX simplified by using a 8-connected null filters DeMUX has a specialization for message type (uses ros::Subscriber internally by default) Added rosdep for nodelet (uuid)
  • adding optional namespace aware constructor to nodelet loader. #4243 and fixing vestigial comments referencing Filters #4221
  • nodelet uses bond to handle crashes on the manager or the spawner end. #4221
  • locking in all cases
  • fix hang on CallbackQueueManager destruction (#4402)
  • better check for services
  • fix hanging tests and a hang on nodelet CallbackQueueManager destruction (#4082)
  • added a boost mutex
  • preventing nodelets from busywaiting
  • Added optional parameter num_worker_threads to nodelets.
  • Added Ubuntu platform tags to manifest
  • implemented nodelet unloading on shutdown
  • fixed a segfault on destroy
  • merging josh's branch from ticket #3875
  • adding usage
  • fancy new command line parsing for nodelets #3876
  • moving topic tools out of nodelet proper, removing rospy and message_filters dependencies from nodelet
  • doc updates
  • fixed a segfault
  • small changes (ptr->boost shared_ptr)
  • init guard
  • making nodehandles pointers to avoid default constructors
  • switching mt_spinner to be a pointer created on init so it's not trying to create a nodehandle at construction
  • cleanup
  • switching to cpp command based nodelet implementation as per API review
  • changes as per API review
  • enforcing unique name in manager
  • supporting argv passing on server side
  • getname return type for API review
  • adding MT Nodehandle creation methods and fixing up tutorials
  • passing parameters
  • we're always going to spin
  • added my_args in the service call
  • some changes as we discuss them during the API review
  • cleaning up private and public api elements
  • nodelet_internal_init is now private and a friend of NodeletLoader
  • nodelet API changes
  • COND rosconsole Nodelet wrappers working
  • adding multithreaded callback queue
  • removing unnecessary code after refactor
  • adding NODELET rosconsole wrappers, note init method is now void args
  • moving nodelet package into common trunk so I don't lose it in reorganization

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

No launch files found

Messages

No message files found.

Plugins

No plugins found.

Recent questions tagged nodelet at Robotics Stack Exchange

Package Summary

Tags No category tags.
Version 1.9.16
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ros/nodelet_core.git
VCS Type git
VCS Version indigo-devel
Last Updated 2019-02-15
Dev Status MAINTAINED
CI status Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

The nodelet package is designed to provide a way to run multiple algorithms in the same process with zero copy transport between algorithms. This package provides both the nodelet base class needed for implementing a nodelet, as well as the NodeletLoader class used for instantiating nodelets.

Additional Links

Maintainers

  • Mikael Arguedas

Authors

  • Tully Foote
  • Radu Bogdan Rusu
README
No README found. No README in repository either.
CHANGELOG

Changelog for package nodelet

Forthcoming

  • delay processing of queues until Nodelet::onInit() returns

1.9.16 (2018-04-27)

  • uuid dependency fixup (#74)
    • don't export uuid library
    • wrap for readability
  • Contributors: Mikael Arguedas

1.9.15 (2018-03-16)

  • use new pluginlib headers (#73)
  • Contributors: Mikael Arguedas

1.9.14 (2017-11-15)

  • declared_nodelets: continue on missing plugin xml (#70)
  • Contributors: Furushchev

1.9.13 (2017-10-27)

  • Drop unneeded forward declaration. (#68)
  • Contributors: Mike Purvis

1.9.12 (2017-08-04)

1.9.11 (2017-07-27)

  • Add getRemappingArgs method to nodelet to reuse it in subclass (#61)
  • remove trailing whitespaces (#62)
  • switch to package format 2 (#63)
  • Show pkg and manifest file with verbose option (#59)
  • Contributors: Kentaro Wada, Mikael Arguedas

1.9.10 (2017-03-27)

1.9.9 (2017-02-17)

  • drop unused dependency on tinyxml (#54)
  • Install the declared_nodelets script (#53)
  • Contributors: Dmitry Rozhkov, Kentaro Wada

1.9.8 (2016-11-15)

  • Fix bond handling during nodelet unloading (#51)
    • add test whether bond breaking on unload works (tests #50)

    * disable callback for broken bond when we are breaking it This avoids the nodelet::LoaderROS::unload() method to be called twice for the same nodelet, causing an error output. * use AsyncSpinner for nodelet load in order for the shutdown procedure to work During shutdown, the bonds still need to communicate their status in order for the nodelet to properly/cleanly/quickly unload. This requires the node to spin.

    • add test whether LoaderROS::unload() is called twice (tests #50)
  • Contributors: Daniel Seifert

1.9.7 (2016-10-24)

1.9.6 (2016-09-20)

1.9.5 (2016-06-22)

  • more sane debugging messages
  • Contributors: Daniel Stonier

1.9.4 (2016-03-15)

  • update maintainer
  • Contributors: Mikael Arguedas

1.9.3 (2015-08-05)

  • adding support for named nodelet loggers
  • nodelet loader: display error messages from both load attempts on failure
  • Contributors: Max Schwarz, Tully Foote

1.9.2 (2014-10-30)

  • Fix dependency version
  • Contributors: Esteve Fernandez

1.9.1 (2014-10-29)

  • Use FindUUID.cmake from cmake-modules to find the UUID libraries
  • nodelet: Loader: do not call impl->refresh_classes if not available
  • Contributors: Esteve Fernandez, Max Schwarz

1.9.0 (2014-06-16)

  • Fix initialization error handling (#13)
  • Contributors: Esteve Fernandez

1.8.3 (2014-05-08)

  • Add version to pluginlib dependency
  • nodelet: avoid breaking bond when unloading unknown nodelet
  • nodelet: refresh list of available classes if class is not found
  • Fixed missing header
  • Correctly check that there are enough arguments when nodelet is launched with the unload command
  • Exit if Loader::load returns failure in "standalone" mode instead of continuing to run
  • Contributors: Dirk Thomas, Esteve Fernandez, Forrest Voight, Gary Servin, Marcus Liebhardt, Mitchell Wills
  • fix missing header (#14)
  • fix check that there are enough arguments when nodelet is launched with the unload command (#12)
  • exit if Loader::load returns failure in "standalone" mode instead of continuing to run (#11)

1.8.2 (2014-01-07)

  • fix erasing bond when it breaks (#8)

1.8.0 (2013-07-11)

  • add missing archive/library/runtime destination for library
  • Export pluginlib as a transitive dependency Also remove some old Apple specific rules which are no longer required.
  • use EXPORTED_TARGETS variable instead of explicit target names
  • update email in package.xml

1.7.15 (2013-03-12)

1.7.14 (2013-01-13)

  • add missing link library uuid (fix #4)

1.7.13 (2012-12-27)

  • move nodelet_topic_tools to separate package, fix unit tests

1.7.12 (2012-12-19 01:34)

1.7.11 (2012-12-19 00:58)

1.7.10 (2012-12-14)

  • add missing dep to catkin

1.7.9 (2012-12-13)

  • add missing downstream depend
  • switched from langs to message* packages

1.7.8 (2012-12-06)

  • updated catkin_package(DEPENDS)

1.7.7 (2012-11-01)

1.7.6 (2012-10-30)

  • fix catkin function order
  • clean up package.xml files

1.7.5 (2012-10-23)

1.7.4 (2012-10-08)

1.7.3 (2012-10-04)

1.7.2 (2012-10-03)

1.7.1 (2012-10-02)

  • adding nodelet_core metapackage and reving to 1.7.1

1.7.0 (2012-10-01)

  • fix dependencies
  • make it compile locally
  • first pass at catkinizing the stack
  • updated to latest pluginlib
  • updated usage of pluginlib according to updated REP 121
  • use updated pluginlib to auto-unload libraries when unloading nodelets
  • fixed issue #5144 on OS X lion
  • Commentary on who owns what among Loader, Nodelet, CallbackQueue and CallbackQueueManager.
  • Moved most of Loader's member variables into an opaque PIMPL struct so we can change things without breaking ABI.
  • All bond code moved to LoaderROS. Loader no longer needs to know about bond.
  • Removed CallbackQueue::disable(). Loader removes a nodelet's queues from the queue manager when unloading it, which is sufficient to prevent new callbacks for that nodelet getting added.
  • Removed some code and comments concerned with callbacks getting called after their nodelet's destruction. This can't actually happen anymore, since callbacks only fire if they can lock a weak_ptr to their parent nodelet.
  • Refactoring to streamline Nodelet back down to a simple plugin interface. It no longer knows about detail::CallbackQueue[Manager] or Bond; init() simply takes the single- and multi-threaded ros::CallbackQueueInterface* instead (defaulting to NULL). Loader owns the callback queues and bond for each nodelet. This makes it possible to use Nodelet without all the surrounding infrastructure.
  • Take Bond pointers as const-ref instead of value in Loader and Nodelet.
  • Added Loader constructor taking a boost::function object used as a factory for nodelet instances, replacing the default use of a pluginlib class loader. This is to support ROSGUI, which defines its specialized plugin interface as a subclass of Nodelet, and thus needs a different class loader.
  • Removed some debug code in Loader constructor.
  • 'nodelet load' more reliably unloads the nodelet on exiting. In particular it intercepts XML-RPC shutdown command, used for example by 'rosnode kill'.
  • Enabled error output when service calls fail abnormally.
  • Rewrote tracked_object logic to be clearer.
  • Have detail::CallbackQueue use a ros::VoidConstWPtr as the tracked object, which is now optional. More generic, and fixes test_nodelet which was broken by the last commit.
  • Fixed race conditions/deadlocks when unloading a nodelet. Now disable the nodelet's callback queues before deleting it. The queues have a WPtr to the nodelet, so any outstanding callbacks will get discarded.
  • ~Loader now stops callback manager threads before destroying the nodelets. Otherwise the worker threads could operate on nodelet data as/after it's destroyed.
  • Use ros::names::parentNamespace().
  • Cleaned scoped_ptr's out of ThreadInfo and updated its padding.
  • Made ThreadInfo::calling an atomic_count. This allows the manager thread to pick the queue with least work more accurately, and reduces contention b/c getSmallestQueue no longer needs to lock on queue_mutex_.
  • Minor code cleanup and finer locking in managerThread().
  • Actually pad ThreadInfo to a multiple of 64 bytes. Previous expression was wrongly wrapped in sizeof().
  • Instead of thread_info_.resize(num_threads), push each ThreadInfo on individually. With resize(), all threads ended up sharing the same queue_mutex and queue_cond. Doesn't seem to be much of a performance win though.
  • Added test instrumentation to CallbackQueueManager to track size of worker thread queues over time. Must be enabled at compilation time with -DNODELET_QUEUE_DEBUG.
  • nodelet patches for osx lion support from wjwwood
  • Added --no-bond option to nodelet loading to disable bonds.
  • updated platform tags
  • don't need to link against tinyxml directly
  • link against system tinyxml
  • Fix for #4855 This fix actually makes sense, but that it wasn't caught earlier doesn't. The construction of nodelet::Loader n(false) was creating the first node handle and letting it go out of scope, which was automagically calling ros::shutdown(), which is a dumb thing for ros::NodeHandle to do automagically on destruction.
  • Each nodelet now places its bonds on a custom callback queue
  • a script to list declared nodelets
  • real fix for #4460
  • patch for #4460
  • adding support for once, throttle, and filter features. With unit tests for all but the filters #4681
  • fix for #4609
  • MUX simplified by using a 8-connected null filters DeMUX has a specialization for message type (uses ros::Subscriber internally by default) Added rosdep for nodelet (uuid)
  • adding optional namespace aware constructor to nodelet loader. #4243 and fixing vestigial comments referencing Filters #4221
  • nodelet uses bond to handle crashes on the manager or the spawner end. #4221
  • locking in all cases
  • fix hang on CallbackQueueManager destruction (#4402)
  • better check for services
  • fix hanging tests and a hang on nodelet CallbackQueueManager destruction (#4082)
  • added a boost mutex
  • preventing nodelets from busywaiting
  • Added optional parameter num_worker_threads to nodelets.
  • Added Ubuntu platform tags to manifest
  • implemented nodelet unloading on shutdown
  • fixed a segfault on destroy
  • merging josh's branch from ticket #3875
  • adding usage
  • fancy new command line parsing for nodelets #3876
  • moving topic tools out of nodelet proper, removing rospy and message_filters dependencies from nodelet
  • doc updates
  • fixed a segfault
  • small changes (ptr->boost shared_ptr)
  • init guard
  • making nodehandles pointers to avoid default constructors
  • switching mt_spinner to be a pointer created on init so it's not trying to create a nodehandle at construction
  • cleanup
  • switching to cpp command based nodelet implementation as per API review
  • changes as per API review
  • enforcing unique name in manager
  • supporting argv passing on server side
  • getname return type for API review
  • adding MT Nodehandle creation methods and fixing up tutorials
  • passing parameters
  • we're always going to spin
  • added my_args in the service call
  • some changes as we discuss them during the API review
  • cleaning up private and public api elements
  • nodelet_internal_init is now private and a friend of NodeletLoader
  • nodelet API changes
  • COND rosconsole Nodelet wrappers working
  • adding multithreaded callback queue
  • removing unnecessary code after refactor
  • adding NODELET rosconsole wrappers, note init method is now void args
  • moving nodelet package into common trunk so I don't lose it in reorganization

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

Name Deps
bta_tof_driver
uvc_camera
capabilities
laser_scan_densifier
cob_bringup
nodelet_tutorial_math
cv_camera
dataspeed_ulc_can
depthimage_to_laserscan
fetch_gazebo
flir_boson_usb
freenect_camera
freenect_launch
gazebo_plugins
gscam
hector_gazebo_thermal_camera
hector_pose_estimation
depth_image_proc
image_proc
image_publisher
image_rotate
image_view
stereo_image_proc
imu_transformer
imu_filter_madgwick
jsk_data
jsk_topic_tools
imagesift
jsk_pcl_ros
jsk_pcl_ros_utils
jsk_perception
resized_image_transport
kobuki_auto_docking
kobuki_bumper2pc
kobuki_capabilities
kobuki_controller_tutorial
kobuki_node
kobuki_random_walker
kobuki_rapps
kobuki_safety_controller
laser_proc
libuvc_camera
swri_image_util
swri_nodelet
swri_transform_util
nodelet_core
nodelet_topic_tools
test_nodelet
test_nodelet_topic_tools
novatel_gps_driver
octomap_server
opencv_apps
openni2_camera
openni2_launch
openni_camera
openni_launch
pcl_ros
phidgets_imu
phidgets_ir
pointcloud_to_laserscan
pointgrey_camera_driver
prosilica_camera
rc_visard_driver
rgbd_launch
rqt_gui_cpp
rtabmap_ros
laser_ortho_projector
laser_scan_matcher
laser_scan_sparsifier
laser_scan_splitter
gmapping
ueye_cam
urg_node
velodyne_driver
velodyne_laserscan
velodyne_pointcloud
video_stream_opencv
visp_tracker
visp_ros
webrtc_ros
yocs_cmd_vel_mux
yocs_diff_drive_pose_controller
yocs_safety_controller
yocs_velocity_smoother
zbar_ros
bebop_driver
camera1394
camera1394stereo
cliff_detector
depth_sensor_pose
laserscan_kinect
hector_elevation_mapping
hector_quadrotor_pose_estimation
hector_qrcode_detection
hector_barrel_detection_nodelet
industrial_extrinsic_cal
intrinsic_cal
rgbd_depth_correction
target_finder
infinisoleil
kobuki_softnode
oculusprime
rb_tracker
roch_bringup
roch_follower
roch_navigation
roch_base
roch_capabilities
roch_sensorpc
ros1_ros_cpptemplate
stdr_robot
stdr_server
tango_ros_native
turtlebot_follower
apriltags_ros
bta_ros
cob_openni2_tracker
cob_people_detection
jsk_aero_startup
jsk_fetch_startup
jsk_robot_startup
segbot_sensors
velodyne_height_map
camera_pose_calibration
evarobot_gazebo
grasp_prediction_arc2017
micros_mars_task_alloc
raptor_dbw_can
octomap_tensor_field

Launch files

No launch files found

Messages

No message files found.

Plugins

No plugins found.

Recent questions tagged nodelet at Robotics Stack Exchange

Package Summary

Tags No category tags.
Version 1.8.6
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ros/nodelet_core.git
VCS Type git
VCS Version hydro-devel
Last Updated 2015-04-30
Dev Status MAINTAINED
CI status Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

The nodelet package is designed to provide a way to run multiple algorithms in the same process with zero copy transport between algorithms. This package provides both the nodelet base class needed for implementing a nodelet, as well as the NodeletLoader class used for instantiating nodelets.

Additional Links

Maintainers

  • Esteve Fernandez

Authors

  • Tully Foote
  • Radu Bogdan Rusu
README
No README found. No README in repository either.
CHANGELOG

Changelog for package nodelet

1.8.6 (2014-10-30)

  • Fix dependency version
  • Contributors: Esteve Fernandez

1.8.5 (2014-10-29)

  • Use FindUUID.cmake from cmake-modules to find the UUID libraries
  • Contributors: Esteve Fernandez

1.8.4 (2014-06-16)

  • Unload nodelets if they fail to initialize Fixes #13

1.8.3 (2014-05-08)

  • refresh list of available classes and fix bond issue
  • fix missing header (#14)
  • fix check that there are enough arguments when nodelet is launched with the unload command (#12)
  • exit if Loader::load returns failure in "standalone" mode instead of continuing to run (#11)

1.8.2 (2014-01-07)

  • fix erasing bond when it breaks (#8)

1.8.0 (2013-07-11)

  • add missing archive/library/runtime destination for library
  • Export pluginlib as a transitive dependency Also remove some old Apple specific rules which are no longer required.
  • use EXPORTED_TARGETS variable instead of explicit target names
  • update email in package.xml

1.7.15 (2013-03-12)

1.7.14 (2013-01-13)

  • add missing link library uuid (fix #4)

1.7.13 (2012-12-27)

  • move nodelet_topic_tools to separate package, fix unit tests

1.7.12 (2012-12-19 01:34)

1.7.11 (2012-12-19 00:58)

1.7.10 (2012-12-14)

  • add missing dep to catkin

1.7.9 (2012-12-13)

  • add missing downstream depend
  • switched from langs to message* packages

1.7.8 (2012-12-06)

  • updated catkin_package(DEPENDS)

1.7.7 (2012-11-01)

1.7.6 (2012-10-30)

  • fix catkin function order
  • clean up package.xml files

1.7.5 (2012-10-23)

1.7.4 (2012-10-08)

1.7.3 (2012-10-04)

1.7.2 (2012-10-03)

1.7.1 (2012-10-02)

  • adding nodelet_core metapackage and reving to 1.7.1

1.7.0 (2012-10-01)

  • fix dependencies
  • make it compile locally
  • first pass at catkinizing the stack
  • updated to latest pluginlib
  • updated usage of pluginlib according to updated REP 121
  • use updated pluginlib to auto-unload libraries when unloading nodelets
  • fixed issue #5144 on OS X lion
  • Commentary on who owns what among Loader, Nodelet, CallbackQueue and CallbackQueueManager.
  • Moved most of Loader's member variables into an opaque PIMPL struct so we can change things without breaking ABI.
  • All bond code moved to LoaderROS. Loader no longer needs to know about bond.
  • Removed CallbackQueue::disable(). Loader removes a nodelet's queues from the queue manager when unloading it, which is sufficient to prevent new callbacks for that nodelet getting added.
  • Removed some code and comments concerned with callbacks getting called after their nodelet's destruction. This can't actually happen anymore, since callbacks only fire if they can lock a weak_ptr to their parent nodelet.
  • Refactoring to streamline Nodelet back down to a simple plugin interface. It no longer knows about detail::CallbackQueue[Manager] or Bond; init() simply takes the single- and multi-threaded ros::CallbackQueueInterface* instead (defaulting to NULL). Loader owns the callback queues and bond for each nodelet. This makes it possible to use Nodelet without all the surrounding infrastructure.
  • Take Bond pointers as const-ref instead of value in Loader and Nodelet.
  • Added Loader constructor taking a boost::function object used as a factory for nodelet instances, replacing the default use of a pluginlib class loader. This is to support ROSGUI, which defines its specialized plugin interface as a subclass of Nodelet, and thus needs a different class loader.
  • Removed some debug code in Loader constructor.
  • 'nodelet load' more reliably unloads the nodelet on exiting. In particular it intercepts XML-RPC shutdown command, used for example by 'rosnode kill'.
  • Enabled error output when service calls fail abnormally.
  • Rewrote tracked_object logic to be clearer.
  • Have detail::CallbackQueue use a ros::VoidConstWPtr as the tracked object, which is now optional. More generic, and fixes test_nodelet which was broken by the last commit.
  • Fixed race conditions/deadlocks when unloading a nodelet. Now disable the nodelet's callback queues before deleting it. The queues have a WPtr to the nodelet, so any outstanding callbacks will get discarded.
  • ~Loader now stops callback manager threads before destroying the nodelets. Otherwise the worker threads could operate on nodelet data as/after it's destroyed.
  • Use ros::names::parentNamespace().
  • Cleaned scoped_ptr's out of ThreadInfo and updated its padding.
  • Made ThreadInfo::calling an atomic_count. This allows the manager thread to pick the queue with least work more accurately, and reduces contention b/c getSmallestQueue no longer needs to lock on queue_mutex.
  • Minor code cleanup and finer locking in managerThread().
  • Actually pad ThreadInfo to a multiple of 64 bytes. Previous expression was wrongly wrapped in sizeof().
  • Instead of thread_info.resize(num_threads), push each ThreadInfo on individually. With resize(), all threads ended up sharing the same queue_mutex and queue_cond. Doesn't seem to be much of a performance win though.
  • Added test instrumentation to CallbackQueueManager to track size of worker thread queues over time. Must be enabled at compilation time with -DNODELET_QUEUE_DEBUG.
  • nodelet patches for osx lion support from wjwwood
  • Added --no-bond option to nodelet loading to disable bonds.
  • updated platform tags
  • don't need to link against tinyxml directly
  • link against system tinyxml
  • Fix for #4855 This fix actually makes sense, but that it wasn't caught earlier doesn't. The construction of nodelet::Loader n(false) was creating the first node handle and letting it go out of scope, which was automagically calling ros::shutdown(), which is a dumb thing for ros::NodeHandle to do automagically on destruction.
  • Each nodelet now places its bonds on a custom callback queue
  • a script to list declared nodelets
  • real fix for #4460
  • patch for #4460
  • adding support for once, throttle, and filter features. With unit tests for all but the filters #4681
  • fix for #4609
  • MUX simplified by using a 8-connected null filters DeMUX has a specialization for message type (uses ros::Subscriber internally by default) Added rosdep for nodelet (uuid)
  • adding optional namespace aware constructor to nodelet loader. #4243 and fixing vestigial comments referencing Filters #4221
  • nodelet uses bond to handle crashes on the manager or the spawner end. #4221
  • locking in all cases
  • fix hang on CallbackQueueManager destruction (#4402)
  • better check for services
  • fix hanging tests and a hang on nodelet CallbackQueueManager destruction (#4082)
  • added a boost mutex
  • preventing nodelets from busywaiting
  • Added optional parameter num_worker_threads to nodelets.
  • Added Ubuntu platform tags to manifest
  • implemented nodelet unloading on shutdown
  • fixed a segfault on destroy
  • merging josh's branch from ticket #3875
  • adding usage
  • fancy new command line parsing for nodelets #3876
  • moving topic tools out of nodelet proper, removing rospy and message_filters dependencies from nodelet
  • doc updates
  • fixed a segfault
  • small changes (ptr->boost shared_ptr)
  • init guard
  • making nodehandles pointers to avoid default constructors
  • switching mt_spinner to be a pointer created on init so it's not trying to create a nodehandle at construction
  • cleanup
  • switching to cpp command based nodelet implementation as per API review
  • changes as per API review
  • enforcing unique name in manager
  • supporting argv passing on server side
  • getname return type for API review
  • adding MT Nodehandle creation methods and fixing up tutorials
  • passing parameters
  • we're always going to spin
  • added my_args in the service call
  • some changes as we discuss them during the API review
  • cleaning up private and public api elements
  • nodelet_internal_init is now private and a friend of NodeletLoader
  • nodelet API changes
  • COND rosconsole Nodelet wrappers working
  • adding multithreaded callback queue
  • removing unnecessary code after refactor
  • adding NODELET rosconsole wrappers, note init method is now void args
  • moving nodelet package into common trunk so I don't lose it in reorganization

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

Name Deps
uvc_camera
capabilities
cob_camera_sensors
cob_bringup
nodelet_tutorial_math
cv_camera
depthimage_to_laserscan
freenect_camera
freenect_launch
gazebo_plugins
gscam
hector_gazebo_thermal_camera
hector_pose_estimation
depth_image_proc
image_proc
image_rotate
image_view
stereo_image_proc
imu_filter_madgwick
jsk_data
jsk_topic_tools
imagesift
jsk_pcl_ros
jsk_pcl_ros_utils
jsk_perception
resized_image_transport
kobuki_auto_docking
kobuki_bumper2pc
kobuki_controller_tutorial
kobuki_node
kobuki_random_walker
kobuki_safety_controller
laser_proc
libuvc_camera
nodelet_core
nodelet_topic_tools
test_nodelet
test_nodelet_topic_tools
octomap_server
openni2_camera
openni_camera
pcl_ros
pointcloud_to_laserscan
phidgets_imu
phidgets_ir
pointgrey_camera_driver
prosilica_camera
rgbd_launch
rqt_gui_cpp
rtabmap_ros
gmapping
ueye_cam
urg_node
velodyne_driver
velodyne_laserscan
velodyne_pointcloud
video_stream_opencv
visp_tracker
visp_ros
yocs_cmd_vel_mux
yocs_diff_drive_pose_controller
yocs_velocity_smoother
zbar_ros
camera1394
camera1394stereo
hector_elevation_mapping
hector_quadrotor_pose_estimation
hector_qrcode_detection
hector_barrel_detection_nodelet
kobuki_softnode
rosjava_messages
stdr_robot
stdr_server
turtlebot_follower
apriltags_ros
bta_ros
cob_3d_mapping_demonstrator
cob_3d_mapping_filters
cob_3d_mapping_pipeline
cob_3d_mapping_point_map
cob_3d_registration
cob_3d_segmentation
cob_table_object_cluster
cob_openni2_tracker
cob_people_detection
jsk_aero_startup
jsk_fetch_startup
jsk_robot_startup
openni2_launch
openni_launch
v4r_ellipses
velodyne_height_map

Launch files

No launch files found

Messages

No message files found.

Plugins

No plugins found.

Recent questions tagged nodelet at Robotics Stack Exchange

Package Summary

Tags No category tags.
Version 1.9.16
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ros/nodelet_core.git
VCS Type git
VCS Version indigo-devel
Last Updated 2019-02-15
Dev Status MAINTAINED
CI status Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

The nodelet package is designed to provide a way to run multiple algorithms in the same process with zero copy transport between algorithms. This package provides both the nodelet base class needed for implementing a nodelet, as well as the NodeletLoader class used for instantiating nodelets.

Additional Links

Maintainers

  • Mikael Arguedas

Authors

  • Tully Foote
  • Radu Bogdan Rusu
README
No README found. No README in repository either.
CHANGELOG

Changelog for package nodelet

Forthcoming

  • delay processing of queues until Nodelet::onInit() returns

1.9.16 (2018-04-27)

  • uuid dependency fixup (#74)
    • don't export uuid library
    • wrap for readability
  • Contributors: Mikael Arguedas

1.9.15 (2018-03-16)

  • use new pluginlib headers (#73)
  • Contributors: Mikael Arguedas

1.9.14 (2017-11-15)

  • declared_nodelets: continue on missing plugin xml (#70)
  • Contributors: Furushchev

1.9.13 (2017-10-27)

  • Drop unneeded forward declaration. (#68)
  • Contributors: Mike Purvis

1.9.12 (2017-08-04)

1.9.11 (2017-07-27)

  • Add getRemappingArgs method to nodelet to reuse it in subclass (#61)
  • remove trailing whitespaces (#62)
  • switch to package format 2 (#63)
  • Show pkg and manifest file with verbose option (#59)
  • Contributors: Kentaro Wada, Mikael Arguedas

1.9.10 (2017-03-27)

1.9.9 (2017-02-17)

  • drop unused dependency on tinyxml (#54)
  • Install the declared_nodelets script (#53)
  • Contributors: Dmitry Rozhkov, Kentaro Wada

1.9.8 (2016-11-15)

  • Fix bond handling during nodelet unloading (#51)
    • add test whether bond breaking on unload works (tests #50)

    * disable callback for broken bond when we are breaking it This avoids the nodelet::LoaderROS::unload() method to be called twice for the same nodelet, causing an error output. * use AsyncSpinner for nodelet load in order for the shutdown procedure to work During shutdown, the bonds still need to communicate their status in order for the nodelet to properly/cleanly/quickly unload. This requires the node to spin.

    • add test whether LoaderROS::unload() is called twice (tests #50)
  • Contributors: Daniel Seifert

1.9.7 (2016-10-24)

1.9.6 (2016-09-20)

1.9.5 (2016-06-22)

  • more sane debugging messages
  • Contributors: Daniel Stonier

1.9.4 (2016-03-15)

  • update maintainer
  • Contributors: Mikael Arguedas

1.9.3 (2015-08-05)

  • adding support for named nodelet loggers
  • nodelet loader: display error messages from both load attempts on failure
  • Contributors: Max Schwarz, Tully Foote

1.9.2 (2014-10-30)

  • Fix dependency version
  • Contributors: Esteve Fernandez

1.9.1 (2014-10-29)

  • Use FindUUID.cmake from cmake-modules to find the UUID libraries
  • nodelet: Loader: do not call impl->refresh_classes if not available
  • Contributors: Esteve Fernandez, Max Schwarz

1.9.0 (2014-06-16)

  • Fix initialization error handling (#13)
  • Contributors: Esteve Fernandez

1.8.3 (2014-05-08)

  • Add version to pluginlib dependency
  • nodelet: avoid breaking bond when unloading unknown nodelet
  • nodelet: refresh list of available classes if class is not found
  • Fixed missing header
  • Correctly check that there are enough arguments when nodelet is launched with the unload command
  • Exit if Loader::load returns failure in "standalone" mode instead of continuing to run
  • Contributors: Dirk Thomas, Esteve Fernandez, Forrest Voight, Gary Servin, Marcus Liebhardt, Mitchell Wills
  • fix missing header (#14)
  • fix check that there are enough arguments when nodelet is launched with the unload command (#12)
  • exit if Loader::load returns failure in "standalone" mode instead of continuing to run (#11)

1.8.2 (2014-01-07)

  • fix erasing bond when it breaks (#8)

1.8.0 (2013-07-11)

  • add missing archive/library/runtime destination for library
  • Export pluginlib as a transitive dependency Also remove some old Apple specific rules which are no longer required.
  • use EXPORTED_TARGETS variable instead of explicit target names
  • update email in package.xml

1.7.15 (2013-03-12)

1.7.14 (2013-01-13)

  • add missing link library uuid (fix #4)

1.7.13 (2012-12-27)

  • move nodelet_topic_tools to separate package, fix unit tests

1.7.12 (2012-12-19 01:34)

1.7.11 (2012-12-19 00:58)

1.7.10 (2012-12-14)

  • add missing dep to catkin

1.7.9 (2012-12-13)

  • add missing downstream depend
  • switched from langs to message* packages

1.7.8 (2012-12-06)

  • updated catkin_package(DEPENDS)

1.7.7 (2012-11-01)

1.7.6 (2012-10-30)

  • fix catkin function order
  • clean up package.xml files

1.7.5 (2012-10-23)

1.7.4 (2012-10-08)

1.7.3 (2012-10-04)

1.7.2 (2012-10-03)

1.7.1 (2012-10-02)

  • adding nodelet_core metapackage and reving to 1.7.1

1.7.0 (2012-10-01)

  • fix dependencies
  • make it compile locally
  • first pass at catkinizing the stack
  • updated to latest pluginlib
  • updated usage of pluginlib according to updated REP 121
  • use updated pluginlib to auto-unload libraries when unloading nodelets
  • fixed issue #5144 on OS X lion
  • Commentary on who owns what among Loader, Nodelet, CallbackQueue and CallbackQueueManager.
  • Moved most of Loader's member variables into an opaque PIMPL struct so we can change things without breaking ABI.
  • All bond code moved to LoaderROS. Loader no longer needs to know about bond.
  • Removed CallbackQueue::disable(). Loader removes a nodelet's queues from the queue manager when unloading it, which is sufficient to prevent new callbacks for that nodelet getting added.
  • Removed some code and comments concerned with callbacks getting called after their nodelet's destruction. This can't actually happen anymore, since callbacks only fire if they can lock a weak_ptr to their parent nodelet.
  • Refactoring to streamline Nodelet back down to a simple plugin interface. It no longer knows about detail::CallbackQueue[Manager] or Bond; init() simply takes the single- and multi-threaded ros::CallbackQueueInterface* instead (defaulting to NULL). Loader owns the callback queues and bond for each nodelet. This makes it possible to use Nodelet without all the surrounding infrastructure.
  • Take Bond pointers as const-ref instead of value in Loader and Nodelet.
  • Added Loader constructor taking a boost::function object used as a factory for nodelet instances, replacing the default use of a pluginlib class loader. This is to support ROSGUI, which defines its specialized plugin interface as a subclass of Nodelet, and thus needs a different class loader.
  • Removed some debug code in Loader constructor.
  • 'nodelet load' more reliably unloads the nodelet on exiting. In particular it intercepts XML-RPC shutdown command, used for example by 'rosnode kill'.
  • Enabled error output when service calls fail abnormally.
  • Rewrote tracked_object logic to be clearer.
  • Have detail::CallbackQueue use a ros::VoidConstWPtr as the tracked object, which is now optional. More generic, and fixes test_nodelet which was broken by the last commit.
  • Fixed race conditions/deadlocks when unloading a nodelet. Now disable the nodelet's callback queues before deleting it. The queues have a WPtr to the nodelet, so any outstanding callbacks will get discarded.
  • ~Loader now stops callback manager threads before destroying the nodelets. Otherwise the worker threads could operate on nodelet data as/after it's destroyed.
  • Use ros::names::parentNamespace().
  • Cleaned scoped_ptr's out of ThreadInfo and updated its padding.
  • Made ThreadInfo::calling an atomic_count. This allows the manager thread to pick the queue with least work more accurately, and reduces contention b/c getSmallestQueue no longer needs to lock on queue_mutex_.
  • Minor code cleanup and finer locking in managerThread().
  • Actually pad ThreadInfo to a multiple of 64 bytes. Previous expression was wrongly wrapped in sizeof().
  • Instead of thread_info_.resize(num_threads), push each ThreadInfo on individually. With resize(), all threads ended up sharing the same queue_mutex and queue_cond. Doesn't seem to be much of a performance win though.
  • Added test instrumentation to CallbackQueueManager to track size of worker thread queues over time. Must be enabled at compilation time with -DNODELET_QUEUE_DEBUG.
  • nodelet patches for osx lion support from wjwwood
  • Added --no-bond option to nodelet loading to disable bonds.
  • updated platform tags
  • don't need to link against tinyxml directly
  • link against system tinyxml
  • Fix for #4855 This fix actually makes sense, but that it wasn't caught earlier doesn't. The construction of nodelet::Loader n(false) was creating the first node handle and letting it go out of scope, which was automagically calling ros::shutdown(), which is a dumb thing for ros::NodeHandle to do automagically on destruction.
  • Each nodelet now places its bonds on a custom callback queue
  • a script to list declared nodelets
  • real fix for #4460
  • patch for #4460
  • adding support for once, throttle, and filter features. With unit tests for all but the filters #4681
  • fix for #4609
  • MUX simplified by using a 8-connected null filters DeMUX has a specialization for message type (uses ros::Subscriber internally by default) Added rosdep for nodelet (uuid)
  • adding optional namespace aware constructor to nodelet loader. #4243 and fixing vestigial comments referencing Filters #4221
  • nodelet uses bond to handle crashes on the manager or the spawner end. #4221
  • locking in all cases
  • fix hang on CallbackQueueManager destruction (#4402)
  • better check for services
  • fix hanging tests and a hang on nodelet CallbackQueueManager destruction (#4082)
  • added a boost mutex
  • preventing nodelets from busywaiting
  • Added optional parameter num_worker_threads to nodelets.
  • Added Ubuntu platform tags to manifest
  • implemented nodelet unloading on shutdown
  • fixed a segfault on destroy
  • merging josh's branch from ticket #3875
  • adding usage
  • fancy new command line parsing for nodelets #3876
  • moving topic tools out of nodelet proper, removing rospy and message_filters dependencies from nodelet
  • doc updates
  • fixed a segfault
  • small changes (ptr->boost shared_ptr)
  • init guard
  • making nodehandles pointers to avoid default constructors
  • switching mt_spinner to be a pointer created on init so it's not trying to create a nodehandle at construction
  • cleanup
  • switching to cpp command based nodelet implementation as per API review
  • changes as per API review
  • enforcing unique name in manager
  • supporting argv passing on server side
  • getname return type for API review
  • adding MT Nodehandle creation methods and fixing up tutorials
  • passing parameters
  • we're always going to spin
  • added my_args in the service call
  • some changes as we discuss them during the API review
  • cleaning up private and public api elements
  • nodelet_internal_init is now private and a friend of NodeletLoader
  • nodelet API changes
  • COND rosconsole Nodelet wrappers working
  • adding multithreaded callback queue
  • removing unnecessary code after refactor
  • adding NODELET rosconsole wrappers, note init method is now void args
  • moving nodelet package into common trunk so I don't lose it in reorganization

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

Name Deps
ainstein_radar_drivers
ainstein_radar_filters
avt_vimba_camera
bta_tof_driver
uvc_camera
capabilities
cis_camera
laser_scan_densifier
cob_bringup
nodelet_tutorial_math
cv_camera
dataspeed_can_usb
dataspeed_pds_can
dataspeed_pds_lcm
dataspeed_ulc_can
dbw_fca_can
dbw_mkz_can
depthimage_to_laserscan
ensenso_camera
fetch_gazebo
flir_boson_usb
freenect_camera
freenect_launch
gazebo_plugins
gscam
hector_pose_estimation
hfl_driver
ifm3d_ros_driver
depth_image_proc
image_proc
image_publisher
image_rotate
image_view
stereo_image_proc
imu_transformer
imu_filter_madgwick
jsk_data
jsk_topic_tools
imagesift
jsk_pcl_ros
jsk_pcl_ros_utils
jsk_perception
resized_image_transport
kobuki_auto_docking
kobuki_bumper2pc
kobuki_capabilities
kobuki_controller_tutorial
kobuki_node
kobuki_random_walker
kobuki_rapps
kobuki_safety_controller
laser_proc
libuvc_camera
swri_image_util
swri_nodelet
swri_transform_util
nerian_stereo
nodelet_core
nodelet_topic_tools
test_nodelet
test_nodelet_topic_tools
novatel_gps_driver
novatel_oem7_driver
octomap_server
omronsentech_camera
opencv_apps
openni2_camera
openni2_launch
openni_camera
openni_launch
pcl_ros
phidgets_high_speed_encoder
phidgets_ik
phidgets_imu
pointcloud_to_laserscan
pointgrey_camera_driver
prosilica_camera
raptor_dbw_can
rc_genicam_driver
rc_visard_driver
rgbd_launch
rslidar_driver
rslidar_pointcloud
rqt_gui_cpp
rtabmap_ros
laser_ortho_projector
laser_scan_matcher
laser_scan_sparsifier
laser_scan_splitter
gmapping
stag_ros
tuw_ellipses
tuw_multi_robot_ctrl
ueye_cam
urg_node
usb_cam_hardware
velodyne_driver
velodyne_laserscan
velodyne_pointcloud
vesc_ackermann
vesc_driver
video_stream_opencv
visp_tracker
visp_ros
webrtc_ros
yocs_cmd_vel_mux
yocs_diff_drive_pose_controller
yocs_safety_controller
yocs_velocity_smoother
zbar_ros
apriltag_ros
bebop_driver
camera1394
camera1394stereo
cht10_node
darknet_ros
cliff_detector
depth_sensor_pose
laserscan_kinect
find_moving_objects
spinnaker_camera_driver
hector_elevation_mapping
hector_quadrotor_pose_estimation
hector_qrcode_detection
hector_barrel_detection_nodelet
imi_camera
industrial_extrinsic_cal
intrinsic_cal
rgbd_depth_correction
target_finder
infinisoleil
kobuki_softnode
mynt_eye_ros_wrapper
lslidar_n301_driver
mobility_base_bringup
mobility_base_pointcloud_filter
movidius_ncs_launch
movidius_ncs_stream
o3m151_driver
oculusprime
rb_tracker
roch_follower
roch_navigation
roch_rapps
roch_base
roch_capabilities
roch_sensorpc
ros1_ros_cpptemplate
spinnaker_sdk_camera_driver
stdr_robot
stdr_server
tango_ros_native
turtlebot_follower
xbot_node
xbot_safety_controller
xiaoqiang_depth_image_proc
xiaoqiang_freenect_camera
xiaoqiang_freenect_launch

Launch files

No launch files found

Messages

No message files found.

Plugins

No plugins found.

Recent questions tagged nodelet at Robotics Stack Exchange

Package Summary

Tags No category tags.
Version 1.9.16
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ros/nodelet_core.git
VCS Type git
VCS Version indigo-devel
Last Updated 2019-02-15
Dev Status MAINTAINED
CI status
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

The nodelet package is designed to provide a way to run multiple algorithms in the same process with zero copy transport between algorithms. This package provides both the nodelet base class needed for implementing a nodelet, as well as the NodeletLoader class used for instantiating nodelets.

Additional Links

Maintainers

  • Mikael Arguedas

Authors

  • Tully Foote
  • Radu Bogdan Rusu
README
No README found. No README in repository either.
CHANGELOG

Changelog for package nodelet

Forthcoming

  • delay processing of queues until Nodelet::onInit() returns

1.9.16 (2018-04-27)

  • uuid dependency fixup (#74)
    • don't export uuid library
    • wrap for readability
  • Contributors: Mikael Arguedas

1.9.15 (2018-03-16)

  • use new pluginlib headers (#73)
  • Contributors: Mikael Arguedas

1.9.14 (2017-11-15)

  • declared_nodelets: continue on missing plugin xml (#70)
  • Contributors: Furushchev

1.9.13 (2017-10-27)

  • Drop unneeded forward declaration. (#68)
  • Contributors: Mike Purvis

1.9.12 (2017-08-04)

1.9.11 (2017-07-27)

  • Add getRemappingArgs method to nodelet to reuse it in subclass (#61)
  • remove trailing whitespaces (#62)
  • switch to package format 2 (#63)
  • Show pkg and manifest file with verbose option (#59)
  • Contributors: Kentaro Wada, Mikael Arguedas

1.9.10 (2017-03-27)

1.9.9 (2017-02-17)

  • drop unused dependency on tinyxml (#54)
  • Install the declared_nodelets script (#53)
  • Contributors: Dmitry Rozhkov, Kentaro Wada

1.9.8 (2016-11-15)

  • Fix bond handling during nodelet unloading (#51)
    • add test whether bond breaking on unload works (tests #50)

    * disable callback for broken bond when we are breaking it This avoids the nodelet::LoaderROS::unload() method to be called twice for the same nodelet, causing an error output. * use AsyncSpinner for nodelet load in order for the shutdown procedure to work During shutdown, the bonds still need to communicate their status in order for the nodelet to properly/cleanly/quickly unload. This requires the node to spin.

    • add test whether LoaderROS::unload() is called twice (tests #50)
  • Contributors: Daniel Seifert

1.9.7 (2016-10-24)

1.9.6 (2016-09-20)

1.9.5 (2016-06-22)

  • more sane debugging messages
  • Contributors: Daniel Stonier

1.9.4 (2016-03-15)

  • update maintainer
  • Contributors: Mikael Arguedas

1.9.3 (2015-08-05)

  • adding support for named nodelet loggers
  • nodelet loader: display error messages from both load attempts on failure
  • Contributors: Max Schwarz, Tully Foote

1.9.2 (2014-10-30)

  • Fix dependency version
  • Contributors: Esteve Fernandez

1.9.1 (2014-10-29)

  • Use FindUUID.cmake from cmake-modules to find the UUID libraries
  • nodelet: Loader: do not call impl->refresh_classes if not available
  • Contributors: Esteve Fernandez, Max Schwarz

1.9.0 (2014-06-16)

  • Fix initialization error handling (#13)
  • Contributors: Esteve Fernandez

1.8.3 (2014-05-08)

  • Add version to pluginlib dependency
  • nodelet: avoid breaking bond when unloading unknown nodelet
  • nodelet: refresh list of available classes if class is not found
  • Fixed missing header
  • Correctly check that there are enough arguments when nodelet is launched with the unload command
  • Exit if Loader::load returns failure in "standalone" mode instead of continuing to run
  • Contributors: Dirk Thomas, Esteve Fernandez, Forrest Voight, Gary Servin, Marcus Liebhardt, Mitchell Wills
  • fix missing header (#14)
  • fix check that there are enough arguments when nodelet is launched with the unload command (#12)
  • exit if Loader::load returns failure in "standalone" mode instead of continuing to run (#11)

1.8.2 (2014-01-07)

  • fix erasing bond when it breaks (#8)

1.8.0 (2013-07-11)

  • add missing archive/library/runtime destination for library
  • Export pluginlib as a transitive dependency Also remove some old Apple specific rules which are no longer required.
  • use EXPORTED_TARGETS variable instead of explicit target names
  • update email in package.xml

1.7.15 (2013-03-12)

1.7.14 (2013-01-13)

  • add missing link library uuid (fix #4)

1.7.13 (2012-12-27)

  • move nodelet_topic_tools to separate package, fix unit tests

1.7.12 (2012-12-19 01:34)

1.7.11 (2012-12-19 00:58)

1.7.10 (2012-12-14)

  • add missing dep to catkin

1.7.9 (2012-12-13)

  • add missing downstream depend
  • switched from langs to message* packages

1.7.8 (2012-12-06)

  • updated catkin_package(DEPENDS)

1.7.7 (2012-11-01)

1.7.6 (2012-10-30)

  • fix catkin function order
  • clean up package.xml files

1.7.5 (2012-10-23)

1.7.4 (2012-10-08)

1.7.3 (2012-10-04)

1.7.2 (2012-10-03)

1.7.1 (2012-10-02)

  • adding nodelet_core metapackage and reving to 1.7.1

1.7.0 (2012-10-01)

  • fix dependencies
  • make it compile locally
  • first pass at catkinizing the stack
  • updated to latest pluginlib
  • updated usage of pluginlib according to updated REP 121
  • use updated pluginlib to auto-unload libraries when unloading nodelets
  • fixed issue #5144 on OS X lion
  • Commentary on who owns what among Loader, Nodelet, CallbackQueue and CallbackQueueManager.
  • Moved most of Loader's member variables into an opaque PIMPL struct so we can change things without breaking ABI.
  • All bond code moved to LoaderROS. Loader no longer needs to know about bond.
  • Removed CallbackQueue::disable(). Loader removes a nodelet's queues from the queue manager when unloading it, which is sufficient to prevent new callbacks for that nodelet getting added.
  • Removed some code and comments concerned with callbacks getting called after their nodelet's destruction. This can't actually happen anymore, since callbacks only fire if they can lock a weak_ptr to their parent nodelet.
  • Refactoring to streamline Nodelet back down to a simple plugin interface. It no longer knows about detail::CallbackQueue[Manager] or Bond; init() simply takes the single- and multi-threaded ros::CallbackQueueInterface* instead (defaulting to NULL). Loader owns the callback queues and bond for each nodelet. This makes it possible to use Nodelet without all the surrounding infrastructure.
  • Take Bond pointers as const-ref instead of value in Loader and Nodelet.
  • Added Loader constructor taking a boost::function object used as a factory for nodelet instances, replacing the default use of a pluginlib class loader. This is to support ROSGUI, which defines its specialized plugin interface as a subclass of Nodelet, and thus needs a different class loader.
  • Removed some debug code in Loader constructor.
  • 'nodelet load' more reliably unloads the nodelet on exiting. In particular it intercepts XML-RPC shutdown command, used for example by 'rosnode kill'.
  • Enabled error output when service calls fail abnormally.
  • Rewrote tracked_object logic to be clearer.
  • Have detail::CallbackQueue use a ros::VoidConstWPtr as the tracked object, which is now optional. More generic, and fixes test_nodelet which was broken by the last commit.
  • Fixed race conditions/deadlocks when unloading a nodelet. Now disable the nodelet's callback queues before deleting it. The queues have a WPtr to the nodelet, so any outstanding callbacks will get discarded.
  • ~Loader now stops callback manager threads before destroying the nodelets. Otherwise the worker threads could operate on nodelet data as/after it's destroyed.
  • Use ros::names::parentNamespace().
  • Cleaned scoped_ptr's out of ThreadInfo and updated its padding.
  • Made ThreadInfo::calling an atomic_count. This allows the manager thread to pick the queue with least work more accurately, and reduces contention b/c getSmallestQueue no longer needs to lock on queue_mutex_.
  • Minor code cleanup and finer locking in managerThread().
  • Actually pad ThreadInfo to a multiple of 64 bytes. Previous expression was wrongly wrapped in sizeof().
  • Instead of thread_info_.resize(num_threads), push each ThreadInfo on individually. With resize(), all threads ended up sharing the same queue_mutex and queue_cond. Doesn't seem to be much of a performance win though.
  • Added test instrumentation to CallbackQueueManager to track size of worker thread queues over time. Must be enabled at compilation time with -DNODELET_QUEUE_DEBUG.
  • nodelet patches for osx lion support from wjwwood
  • Added --no-bond option to nodelet loading to disable bonds.
  • updated platform tags
  • don't need to link against tinyxml directly
  • link against system tinyxml
  • Fix for #4855 This fix actually makes sense, but that it wasn't caught earlier doesn't. The construction of nodelet::Loader n(false) was creating the first node handle and letting it go out of scope, which was automagically calling ros::shutdown(), which is a dumb thing for ros::NodeHandle to do automagically on destruction.
  • Each nodelet now places its bonds on a custom callback queue
  • a script to list declared nodelets
  • real fix for #4460
  • patch for #4460
  • adding support for once, throttle, and filter features. With unit tests for all but the filters #4681
  • fix for #4609
  • MUX simplified by using a 8-connected null filters DeMUX has a specialization for message type (uses ros::Subscriber internally by default) Added rosdep for nodelet (uuid)
  • adding optional namespace aware constructor to nodelet loader. #4243 and fixing vestigial comments referencing Filters #4221
  • nodelet uses bond to handle crashes on the manager or the spawner end. #4221
  • locking in all cases
  • fix hang on CallbackQueueManager destruction (#4402)
  • better check for services
  • fix hanging tests and a hang on nodelet CallbackQueueManager destruction (#4082)
  • added a boost mutex
  • preventing nodelets from busywaiting
  • Added optional parameter num_worker_threads to nodelets.
  • Added Ubuntu platform tags to manifest
  • implemented nodelet unloading on shutdown
  • fixed a segfault on destroy
  • merging josh's branch from ticket #3875
  • adding usage
  • fancy new command line parsing for nodelets #3876
  • moving topic tools out of nodelet proper, removing rospy and message_filters dependencies from nodelet
  • doc updates
  • fixed a segfault
  • small changes (ptr->boost shared_ptr)
  • init guard
  • making nodehandles pointers to avoid default constructors
  • switching mt_spinner to be a pointer created on init so it's not trying to create a nodehandle at construction
  • cleanup
  • switching to cpp command based nodelet implementation as per API review
  • changes as per API review
  • enforcing unique name in manager
  • supporting argv passing on server side
  • getname return type for API review
  • adding MT Nodehandle creation methods and fixing up tutorials
  • passing parameters
  • we're always going to spin
  • added my_args in the service call
  • some changes as we discuss them during the API review
  • cleaning up private and public api elements
  • nodelet_internal_init is now private and a friend of NodeletLoader
  • nodelet API changes
  • COND rosconsole Nodelet wrappers working
  • adding multithreaded callback queue
  • removing unnecessary code after refactor
  • adding NODELET rosconsole wrappers, note init method is now void args
  • moving nodelet package into common trunk so I don't lose it in reorganization

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

Name Deps
ainstein_radar_drivers
ainstein_radar_filters
apriltag_ros
arm
dock
light_flow
perch
states
comms_bridge
dds_ros_bridge
ground_dds_ros_bridge
ctl
fam
eps_driver
epson_imu
flashlight
is_camera
laser
perching_arm
pico_driver
pmc_actuator
signal_lights
smart_dock
speed_cam
temp_monitor
vive
depth_odometry
ground_truth_localizer
handrail_detect
interest_point
lk_optical_flow
localization_manager
localization_node
marker_tracking
point_cloud_common
ros_graph_localizer
ros_pose_extrapolator
vive_localization
access_control
cpu_mem_monitor
data_bagger
disk_monitor
executive
image_sampler
sys_monitor
choreographer
framestore
mapper
planner_qp
planner_trapezoidal
config_reader
ff_common
ff_util
jsonloader
avt_vimba_camera
bta_tof_driver
uvc_camera
capabilities
cis_camera
aruco_pose
clover
laser_scan_densifier
cob_bringup
nodelet_tutorial_math
cras_imu_tools
cras_laser_geometry
camera_throttle
cras_cpp_common
cras_topic_tools
cv_camera
dataspeed_can_usb
dataspeed_pds_can
dataspeed_pds_lcm
dataspeed_ulc_can
dbw_fca_can
dbw_mkz_can
dbw_polaris_can
depthimage_to_laserscan
ensenso_camera
fetch_gazebo
flir_boson_usb
floam
foxglove_bridge
freenect_camera
freenect_launch
gazebo_plugins
gscam
hector_pose_estimation
hfl_driver
ifm3d_ros_driver
depth_image_proc
image_proc
image_publisher
image_rotate
image_view
stereo_image_proc
imu_transformer
imu_complementary_filter
imu_filter_madgwick
jsk_data
jsk_topic_tools
imagesift
jsk_pcl_ros
jsk_pcl_ros_utils
jsk_perception
resized_image_transport
kobuki_auto_docking
kobuki_bumper2pc
kobuki_capabilities
kobuki_controller_tutorial
kobuki_node
kobuki_random_walker
kobuki_rapps
kobuki_safety_controller
laser_filters
laser_proc
libuvc_camera
swri_image_util
swri_nodelet
swri_transform_util
moveit_ros_perception
nerian_stereo
nodelet_core
nodelet_topic_tools
test_nodelet
test_nodelet_topic_tools
novatel_gps_driver
novatel_oem7_driver
octomap_server
omronsentech_camera
opencv_apps
openni2_camera
openni2_launch
openni_camera
openni_launch
pcl_ros
phidgets_high_speed_encoder
phidgets_ik
phidgets_imu
point_cloud_color
point_cloud_transport
pointcloud_to_laserscan
pointgrey_camera_driver
prosilica_camera
radial_menu_backend
raptor_dbw_can
rc_genicam_camera
rc_genicam_driver
rc_visard_driver
rgbd_launch
rslidar_driver
rslidar_pointcloud
robot_localization
rqt_gui_cpp
rtabmap_ros
laser_ortho_projector
laser_scan_matcher
laser_scan_sparsifier
laser_scan_splitter
sensor_filters
gmapping
stag_ros
tf2_server
tuw_ellipses
tuw_multi_robot_ctrl
udp_com
ueye_cam
urg_node
usb_cam_hardware
velodyne_driver
velodyne_laserscan
velodyne_pointcloud
vesc_ackermann
vesc_driver
video_stream_opencv
visp_tracker
visp_ros
webrtc_ros
yocs_cmd_vel_mux
yocs_diff_drive_pose_controller
yocs_safety_controller
yocs_velocity_smoother
zbar_ros

Launch files

No launch files found

Messages

No message files found.

Plugins

No plugins found.

Recent questions tagged nodelet at Robotics Stack Exchange