CHANGELOG

Changelog for package rosbridge_library

2.0.0 (2024-10-08)

  • Fix action cancellation by passing status from JSON (#953)

  • Update pre-commit and fix issues (#954)

  • Fix length-limited list types (#840)

  • fix: update new subs with dds from publisher (#940)

  • Avoid stale subscription when unsubscribing during resubscription (#948)

  • Changed type hints in ros_loader.py to use imports from Typing (#938)

  • Avoid stack traces when aborting an advertised action goal (#906)

  • Timeout if service server not available within server_timeout_time (#905)

  • Use ROS 2 Node Clock in Message Conversion (#900)

  • Fix issues when canceling and unadvertising actions (#896)

  • Support actions in rosbridge protocol (#886)

  • Port unit tests to ROS 2 + Fix CBOR conversion and PNG compression (#882)

  • Contributors: Brad Martin, Dimitri Nikitopoulos, EricGallimore, Ezra Brooks, Paul Gesel, Sebastian Castro, michael-cmt

1.3.2 (2023-09-27)

  • Interpret call_services_in_new_thread as boolean (#857)

  • Add option to call services in a separate thread (#847)

  • fix memory leak on service call (#774)

  • Contributors: Sebastian Castro, hiroyuki obinata, rwhitney456

1.3.1 (2022-10-21)

  • Optimized large binary array publishing (#819)

  • Skip unnecessary conversion for cbor/cbor-raw compression (#792) (#800)

  • Improve robustness for multiple client connections (#803)

  • Minor performance improvements (#809)

  • Remove unnecessary checking of topic globs. (#793) (#799)

  • Fix duplicate subscription created with wrong ‘raw’ attribute. (#798)

  • Contributors: Hans-Joachim Krauch, Steffen Nattke, Ted Sender

1.3.0 (2022-08-16)

  • Allow integers in conversion to float array messages (#777)

  • Non standard msg modules (#735)

  • Contributors: Jacob Bandes-Storch, Will

1.2.0 (2022-05-20)

  • Fixed float arrays conversion (#730)

  • Fixed multiple subscriber on transient_local topic (#723)

  • Fix translation of time and time arrays (#691)

  • Fix array behavior (#692)

  • Contributors: Jacob Bandes-Storch, José Castelo, Kenji Miyake, Will, p0rys

1.1.2 (2022-01-03)

  • [694] update DurabilityPolicy api that are being deprecated (#695)

  • Fix byte behavior (#693)

  • Fix test_message_conversion.py (#645)

  • Fix test_ros_loader.py (#644)

  • Fix CI test configuration and temporarily disable rosbridge_library test (#686)

  • Contributors: Evan Flynn, Jacob Bandes-Storch, Kenji Miyake

1.1.1 (2021-12-09)

  • Allow subscribing to any qos profile when creating a subscriber (#690)

  • Fix and add test for multiple subscribers to same topic (#687)

  • Fix error when advertising duplicate service (#683)

  • Fix incoming service calls (#669)

  • Replace busy wait in AdvertiseService with async handler (#666)

  • Contributors: Domenic Rodriguez, Jacob Bandes-Storch, Roman Shtylman

1.1.0 (2021-10-22)

  • Fix test imports from rosbridge_test_msgs (#668)

  • Move msg/srv from rosapi and rosbridge_library into separate packages; enable Rolling in CI (#665)

  • Fix test_services.py (#653)

  • Fix unused variables: flake8 –select=F841 (#623)

  • Remove get_service_instance from ros_loader (#647)

  • Fix test settings for rosbridge_library (#643)

  • Fix DOS line endings (#658)

  • Port #464, #478, #496, and #502 from ROS1 branch (#663)

  • Add pre-commit, format with black and isort (#648)

  • Contributors: Adrian Macneil, Christian Clauss, Domenic Rodriguez, Jacob Bandes-Storch, Kenji Miyake

1.0.8 (2021-08-26)

  • Fix various Python code style and lint issues

  • Contributors: Christian Clauss, Jacob Bandes-Storch

1.0.7 (2021-08-18)

  • Fix typos discovered by codespell (#600)

  • Contributors: Christian Clauss

1.0.6 (2021-08-17)

  • Fix broken links in changelogs

  • Contributors: Jacob Bandes-Storch

1.0.5 (2021-08-12)

1.0.4 (2021-08-11)

1.0.3 (2021-08-03)

  • Add cbor-raw compression support (#574, adapted from ROS 1 implementation #452)

  • Adaptations to Eloquent [Again] (#533) * increase spin period to 1000Hz to allow 1000 messages per second into the websocket * allow interpreting int as float when needed * better handling array.array and numpy arrays * allow bytes and str websocket messages * add boolean type * handle type extraction of static array rostypes * missing cls variable Co-authored-by: Maximilian Matthe <maxi.matthe@googlemail.com> Co-authored-by: CoRoLa generic <corola@bi> Co-authored-by: joshwapohlmann <joshwa.pohlmann@barkhauseninstitut.org>

  • Fix for type error caused by appending byte arrays to empty string buffer (#507)

  • Contributors: Connor Brooks, Jacob Bandes-Storch, travipross

1.0.2 (2019-09-24)

  • use Python 3 dependency keys (#436)

1.0.1 (2019-09-20)

1.0.0 (2019-09-19)

  • Port to ROS 2

0.11.3 (2019-08-07)

0.11.2 (2019-07-08)

0.11.1 (2019-05-08)

  • fixed logwarn msg formatting in publishers (#398)

  • Contributors: Gautham P Das

0.11.0 (2019-03-29)

  • BSON can send Nan and Inf (#391)

  • Contributors: akira_you

0.10.2 (2019-03-04)

  • Fix typo (#379)

  • Contributors: David Weis

0.10.1 (2018-12-16)

  • Inline cbor library (#377) Prefer system version with C speedups, but include pure Python implementation.

  • Contributors: Matt Vollrath

0.10.0 (2018-12-14)

  • CBOR encoding (#364) * Add CBOR encoding * Fix value extraction performance regression Extract message values once per message. * Fix typed array tags Was using big-endian tags and encoding little-endian. Always use little-endian for now since Intel is prevalent for desktop. Add some comments to this effect. * Update CBOR protocol documentation More information about draft typed arrays and when to use CBOR. * Fix 64-bit integer CBOR packing Use an actual 64-bit format.

  • use package format 2, remove unnecessary dependencies (#348)

  • removing has_key for python3, keeping backwards compatibility (#337) * removing has_key for python3, keeping backwards compatibility * py3 change for itervalues, keeping py2 compatibility

  • Contributors: Andreas Klintberg, Dirk Thomas, Matt Vollrath

0.9.0 (2018-04-09)

  • Fix typo in function call

  • Add missing argument to InvalidMessageException (#323) Add missing argument to InvalidMessageException constructor

  • Make unregister_timeout configurable (#322) Pull request #247 introduces a 10 second delay to mitigate issue #138. This change makes this delay configurable by passing an argument either on the command line or when including a launch file. Usage example: `xml <launch> <include file="$(find rosbridge_server)/launch/rosbridge_websocket.launch"> <arg name="unregister_timeout" value="5.0"/> </include> </launch> ` Closes #320

  • message_conversion: create stand-alone object inst (#319) Catching the ROSInitException allows to create object instances without an initialized ROS state

  • Fixes #313 by fixing has_binary in protocol.py (#315) * Fixes #313 by fixing has_binary in protocol.py Checks for lists that have binary content as well as dicts * Minor refactoring for protocol.py

  • fix fragment bug (#316) * fix bug that lost data while sending large packets * fixed travis ci failed by @T045T * fixed travis ci failed by @T045T * travis ci failed * fix rosbridge_library/test/experimental/fragmentation+srv+tcp test bug * sync .travis.yaml * fix the service_response message bug * fix the fragment paring error * fix indentation of “service” line

  • add graceful_shutdown() method to advertise_service capability This gives the service a bit of time to cancel any in-flight service requests (which should fix #265). This is important because we busy-wait for a rosbridge response for service calls and those threads do not get stopped otherwise. Also, rospy service clients do not currently support timeouts, so any clients would be stuck too. A new test case in test_service_capabilities.py verifies the fix works

  • Add rostest for service capabilities and fix bugs also fixed some typos

  • Fix Travis config (#311) * fix Travis config dist: kinetic is currently unsupported * fix rostests for some reason, rostest seems to hide the rosout node - changed tests to use other services

  • Contributors: Anwar, Johannes Rothe, Jørgen Borgesen, Nils Berg, Phil, WH-0501, elgarlepp

0.8.6 (2017-12-08)

  • Import StringIO from StringIO if python2 and from io if python3 fixes #306 (#307)

  • Contributors: Jihoon Lee

0.8.5 (2017-11-23)

  • Raise if inappropriate bson module is installed (Appease #198) (#270) * Raise Exception if inappropriate bson module is installed (Related to #198)

  • Add Python3 compatibility (#300) * First pass at Python 3 compatibility * message_conversion: Only call encode on a Python2 str or bytes type * protocol.py: Changes for dict in Python3. Compatible with Python 2 too. * More Python 3 fixes, all tests pass * Move definition of string_types to rosbridge_library.util

  • Contributors: Junya Hayashi, Kartik Mohta

0.8.4 (2017-10-16)

0.8.3 (2017-09-11)

  • Type conversion convention correction, correcting issue #240

  • Contributors: Alexis Paques

0.8.2 (2017-09-11)

0.8.1 (2017-08-30)

  • remove ujson from dependency to build in trusty (#290)

  • Contributors: Jihoon Lee

0.8.0 (2017-08-30)

  • Cleaning up travis configuration (#283) configure travis to use industial ci configuration. Now it uses xenial and kinetic

  • Merge pull request #272 from ablakey/patch-1 Prevent a KeyError when bson_only_mode is unset.

  • Update protocol.py Prevent a KeyError when bson_only_mode is unset.

  • Merge pull request #257 from Sanic/bson-only-mode Implemented a bson_only_mode flag for the TCP version of rosbridge

  • Merge pull request #247 from v-lopez/develop Delay unregister to mitigate #138

  • Change class constant to module constant

  • Reduce timeout for tests Tests will sleep for 10% extra of the timeout to prevent some situations were the test sleep ended right before the unregister timer fired

  • Fix test advertise errors after delayed unregister changes

  • Fix missing tests due to delayed unregistration

  • Move UNREGISTER_TIMEOUT to member class so it’s accessible from outside

  • minor change in variable usage

  • Implemented a bson_only_mode flag for the TCP version of rosbridge; This allows you to switch to a full-duplex transmission of BSON messages and therefore eliminates the need for a base64 encoding of binary data; Use the new mode by starting:’roslaunch rosbridge_server rosbridge_tcp.launch bson_only_mode:=True’ or passing ‘–bson_only_mode’ to the rosbridge_tcp.py script

  • Delay unregister to mitigate !138

  • Contributors: Andrew Blakey, Jihoon Lee, Nils Berg, Patrick Mania, Victor Lopez

0.7.17 (2017-01-25)

  • adjust log level for security globs Normal operation (i.e. no globs or successful verification of requests) is now silent, with illegal requests producing a warning.

  • add missing import

  • correct default values for security globs also accept empty list as the default “do not check globs” value in addition to None. Finally, append rosapi service glob after processing command line input so it’s not overwritten

  • Added services_glob to CallServices, added globs to rosbridge_tcp and rosbridge_udp, and other miscellaneous fixes.

  • As per the suggestions of @T045T, fixed several typos, improved logging, and made some style fixes.

  • Added new parameters for topic and service security. Added 3 new parameters to rosapi and rosbridge_server which filter the topics, services, and parameters broadcast by the server to match an array of glob strings.

  • Contributors: Eric, Nils Berg

0.7.16 (2016-08-15)

  • Fixed deprecated code in pillow

  • Contributors: vladrotea

0.7.15 (2016-04-25)

  • changelog updated

  • Contributors: Russell Toris

0.7.14 (2016-02-11)

  • Another fix for code

  • Replaced += with ‘’.join() for python code

  • Default Protocol delay_between_messages = 0 This prevents performance problems when multiple clients are subscribing to high frequency topics. Fixes #203

  • Contributors: Matt Vollrath, kiloreux

0.7.13 (2015-08-14)

  • Nevermind o_O

  • Add test_depend too (just in case)

  • Add dependency on python bson

  • Get parameter at encode time

  • Add flag for using the bson encoding

  • revert comment regarding unpublisher

  • avoiding racing condition

  • Add bson encoding to the server side

  • Fix catkin_lint issues

  • don’t unregister topic from rosbridge. It creates md5 sum warning.. #138

  • Contributors: David Lu, Jihoon Lee, Matt Vollrath, dwlee

0.7.12 (2015-04-07)

  • use <test_depend> for test dependencies

  • use rospy.resolve_name for namespaced service calls

  • fix resolving namespaced service calls

  • Contributors: Ramon Wijnands

0.7.11 (2015-03-23)

0.7.10 (2015-02-25)

0.7.9 (2015-02-24)

0.7.8 (2015-01-16)

0.7.7 (2015-01-06)

0.7.6 (2014-12-26)

  • 0.7.5

  • update changelog

  • 0.7.4

  • changelog updated

  • 0.7.3

  • changelog updated

  • 0.7.2

  • changelog updated

  • 0.7.1

  • update changelog

  • 0.7.0

  • changelog updated

  • rewrite of advertise service

  • cleanup init function

  • matches original call_service

  • matches original call_service

  • service_request –> reuse of call_service (previously defined)

  • stop_service –> unadvertise_service

  • service_name –> service

  • service_type –> type

  • removed service_module

  • request_id –> id

  • Contributors: Jihoon Lee, Russell Toris

0.7.5 (2014-12-26)

0.7.4 (2014-12-16)

0.7.3 (2014-12-15)

0.7.2 (2014-12-15)

  • 0.7.1

  • update changelog

  • Contributors: Jihoon Lee

0.7.1 (2014-12-09)

0.7.0 (2014-12-02)

  • rewrite of advertise service

  • cleanup init function

  • matches original call_service

  • matches original call_service

  • service_request –> reuse of call_service (previously defined)

  • stop_service –> unadvertise_service

  • service_name –> service

  • service_type –> type

  • removed service_module

  • request_id –> id

  • Contributors: Russell Toris

0.6.8 (2014-11-05)

  • add a lock to calls to load_manifest - apparently, it’s not thread safe fixes #103 and #108

  • Contributors: Nils Berg

0.6.7 (2014-10-22)

  • updated package manifests

  • Contributors: Russell Toris

0.6.6 (2014-10-21)

0.6.5 (2014-10-14)

  • 0.6.4

  • update changelog

  • modify tests less duplicated code, some other changes to (hopefully) improve reliability. Tested locally about 30 times without encountering any failures.

  • Change the behavior of MessageHandler.transition() Now reflects usage in the tests, i.e. a QueueMessageHandler only needs queue_length to be defined, not throttle_rate.

  • 0.6.3

  • update change log

  • install util python module to fix #128

  • Contributors: Jihoon Lee, Nils Berg

0.6.4 (2014-10-08)

0.6.3 (2014-10-07)

  • install util python module to fix #128

  • Contributors: Jihoon Lee

0.6.2 (2014-10-06)

  • Remove unused json imports; move json imports to utility Fixes #7

  • Contributors: Graeme Yeates

0.6.1 (2014-09-01)

  • Handle float infinity and NAN s

  • Windows-related fix for PIL Image module import

  • Fixed typo in raising type errors.

  • something messed up indentation not sure how that could happen, worked here.

  • map Inf and NaN to null JSON does not support Inf and NaN values. Currently they are just written into the JSON and JSON.parse on the client side will fail. Correct is to map them to null which will then be parsed correctly by JSON.parse on the client side. The issue with that is that the shortcut for lists of floats might be impossible (maybe someone else with more experience in python comes up with something else?). Maybe something similar is necessary in the to_inst case, but I can not really test them. Real world application is to process laser scans, they contain inf and nan values for some drivers if the measurements are invalid or out of range.

  • Update .travis.yml and package.xml for rosbridge_library tests

  • Put back unregister for the publisher and clarify the reconnect behavior of the test case. The exponential backoff of the client causes hard to understand timing of the events. All specs passed locally on hydro: SUMMARY * RESULT: SUCCESS * TESTS: 103 * ERRORS: 0 * FAILURES: 0

  • Add copyright notice to the file

  • Remove extra whitespace

  • Make the test more deterministic

  • Remove circular dependency.

  • Contributors: Achim Konigs, Alex Sorokin, Alexander Sorokin, Jonathan Wade, jon-weisz

0.6.0 (2014-05-23)

  • Ensure that service name is a string Closes #104

  • Contributors: Piyush Khandelwal

0.5.4 (2014-04-17)

  • removing wrong import

  • test case for fixed size of uint8 array

  • uses regular expression to match uint8 array and char array.

  • logerr when it fails while message_conversion

  • Contributors: Jihoon Lee

0.5.3 (2014-03-28)

  • use queue_size for publishers

  • Contributors: Jon Binney

0.5.2 (2014-03-14)

  • First attempt adding latching support for topic publishers

  • merging changes of groovy-devel into hydro-devel

  • adding missing dependency in rosbridge_library #70

  • Fixed wrong unicode encoding

  • support publishing non-ascii letters

  • Added error message on result=False When call_service returns False as result, values contains the error message.

  • added parameter lookup to rosbridge_tcp.py, modules where those are used, and default parameters to launch file; internal default-values still get used when launch-file does not provide them; internal defaults can be changed within rosbridge_tcp.py

  • Merge branch ‘experimental_branch’ into new_features

  • fix handling of partial/multiple/broken json by avoiding to pass nested json (without op-field) to rosbridge.. probably still needs more complex handling of incoming ‘broken’ json

  • nested service not MiRoR related anymore

  • added singleton for request-list; allows provider to send service response without specifying module and type, they get looked up when response is received via request_id

  • fix for nested service responses - use ros_loader and message_conversion for populating an according instance

  • use message_conversion in handle_servie_request

  • snapshot for branch to show to genpy devs

  • using float64 instead of std_msgs/Float64 lets scripts run fine.. ; next: fix with using std_msgs/Float64 –> need nested data field

  • nested srv uses now message_conversion.extract_values

  • adapted test scripted to ros_loader; (removed .srv from module_name

  • use rosloader for finding service_class

  • fixed calculation of fragment_count

  • cleanup: files, notes, some code

  • added message_field <message_intervall> to allow client to control delay between messages from rosbridge

  • added TODO: check if service successfully registered in ros

  • added description of new opcodes

  • tests, comments, description, ..

  • tested rosbridge_websocket with new capabilities; websocket test scripts not working yet..; but new caps are working when using rosbridge_websocket and tcp2ws wrapper –> so only testscripts need to be fixed for websockets.

  • updated websocket test service server and client script to use websocket

  • updated websocket test service server script to use websocket

  • added files to test new caps with websocket server

  • feierabend.. morgen weiter mit server & client JSON-decoder, see notes

  • fixed parsing of incomplete/multiple JSON in incoming buffer; so clients do not need to use an interval when sending to rosbridge

  • only current changes; not yet done..

  • code cleanup, not yet finished..; rosbridge logging much cleaner now

  • fixed test_server_defragment - recodegit status

  • minor

  • linuxonandroid

  • fixed some parts; ..still better do some redesign for queueing of messages..

  • forced tcp_send to use queue and use delay between sends

  • blocking behavior for service requests to non-ros; test-scripts use get-ip4 helper function; ..needs a lot cleanup before next steps..

  • need to implement server side blocking of multiple requests, to keep implementation of service provider as easy and simple as possible

  • not finished

  • some changes.. still needs several fixes

  • unique request_ids

  • fixed deserialization of multiple fragments in incoming-data; was caused by too short delay between socket-sends (<0.2 seconds); maybe only temp. fixed

  • added fragment sorting to test-client and test-server

  • message_size debugging; TODO: sort list of received fragments! ; make sure receive_buffers are big enough for fragment_size + header..

  • minor changes

  • testing: service server fragmentsizes receive: 1 send: 1; client fragmentsize receive: 1; is working..

  • fixed an error that caused service_response to appear quoted as string once too often; should be ok now

  • fragmentation basically working; service_server can request fragmented service_calls, service_client can request fragmented responses; fragmentation can be requested by adding fragmentation_size parameter to any message sent to rosbridge

  • some code cleanup

  • set service_request_timeout back to 60 seconds; had 2s from timeout_tests..

  • fixed example: non-ros_service_server.py to use only 1 socket; commented and structured code and comments in test-scripts

  • some minor changes: comments, debug-output, ..

  • added test script for non-ros_service_client calling service from non-ros_service_server

  • added msg and srv files

  • fixed (removed) dependency to beginner_tutorials for service_server test-scripts. beginner_tutorials package not needed anymore.

  • behaviour on advertising existing service: replace service-provider, similar to ROS-groovy behaviour, see issues..

  • behaviour on advertising existing service: replace service-provider, similar to ROS-groovy behaviour, see issues..

  • removed obsolete test-scripts

  • stop service added

  • first working classes: service_server

  • should use its own branch: service_server.py; add initial thoughts and code-base for developing ServiceServer capability

  • fixed errors in protocol.py and defragmentation.py

  • added test-scripts for defragmentation AND tcp-server

  • change json imports to try to use ujson or simplejson

  • change json imports to try to use ujson or simplejson; correct log_message to show length of content/data instead of overall length

  • fixed variable name in finish()

  • Clean up of defragmentation.py.

  • add defragmentation capability

  • merge with fuerte-devel

  • add defragmentation capability

  • commented out that problematic unregister line

  • Contributors: Brandon Alexander, Jihoon Lee, Julian Cerruti, Kaijen Hsiao, Stefan Profanter, dave, furushchev, fxm-db, ipa-fxm, root, unknown

0.5.1 (2013-10-31)

  • Implement multiple subscriptions to latched topics (fixes #1).

  • generate more natural json for service call result

  • add result field to service response

  • Contributors: Siegfried-A. Gevatter Pujals, Takashi Ogura

0.5.0 (2013-07-17)

  • 0.5.0 preparation for hydro release

  • even more missing depends for unit tests

  • more missing test packages

  • missing depends added when running tests

  • rostest now uses devel instead of install

  • rostest added to package

  • Contributors: Jihoon Lee, Russell Toris

0.4.4 (2013-04-08)

0.4.3 (2013-04-03 08:24)

0.4.2 (2013-04-03 08:12)

  • eclipse projects removed

  • Contributors: Russell Toris

0.4.1 (2013-03-07)

  • adding message generation build dependency

  • Contributors: Jihoon Lee

0.4.0 (2013-03-05)

  • removing rostest

  • Commenting out rostest

  • Update rosbridge_library/package.xml removed <test_depend>rospy</test_depend>

  • Fixes “‘int’ is not iterable” bug.

  • Adds test_all.test launch file.

  • Error fix from wrong package name.

  • Moves test package tests into rosbridge_library. I learned about NOINSTALL for msg and srv generation in CMakeList.

  • Resolves submodule issues.

  • Uses only 1 .gitignore to avoid confusion.

  • Merge pull request #15 from baalexander/remove_unregister Removes buggy unregister call.

  • Removes buggy unregister call. Fixes Issue #12.

  • Adds BSD license header to code files. See Issue #13.

  • Removing ultrajson from rosbridge. If JSON parsing becomes a performance bottle neck, we can re-add it.

  • Catkinizing rosbridge_library and server.

  • PNG compression now creates a square RGB image padded with new-line characters

  • Add stack dependencies and rosdeps.

  • Collapse directory structure.

  • Moved the packages inside a folder called rosbridge

  • Initial commit of rosbridge_library

  • Contributors: Austin Hendrix, Brandon Alexander, David Gossow, Jihoon Lee, Jonathan Mace, Russell Toris