rospy_message_converter package from rospy_message_converter reporospy_message_converter |
|
Package Summary
Tags | No category tags. |
Version | 0.5.9 |
License | BSD |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/DFKI-NI/rospy_message_converter.git |
VCS Type | git |
VCS Version | master |
Last Updated | 2024-04-26 |
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
Additional Links
Maintainers
- Martin Günther
Authors
- Brandon Alexander
rospy_message_converter
Rospy_message_converter is a lightweight ROS package and Python library to convert from Python dictionaries and JSON messages to rospy messages, and vice versa.
ROS 1 and ROS 2 branches
ROS 1 users should use the master
branch. ROS 2 users should use the appropriate
branch for their distro (foxy
/galactic
/humble
/rolling
/…).
Usage
Convert a dictionary to a ROS message
from rospy_message_converter import message_converter
from std_msgs.msg import String
dictionary = { 'data': 'Howdy' }
message = message_converter.convert_dictionary_to_ros_message('std_msgs/String', dictionary)
Convert a ROS message to a dictionary
from rospy_message_converter import message_converter
from std_msgs.msg import String
message = String(data = 'Howdy')
dictionary = message_converter.convert_ros_message_to_dictionary(message)
Convert JSON to a ROS message
from rospy_message_converter import json_message_converter
from std_msgs.msg import String
json_str = '{"data": "Hello"}'
message = json_message_converter.convert_json_to_ros_message('std_msgs/String', json_str)
Convert a ROS message to JSON
from rospy_message_converter import json_message_converter
from std_msgs.msg import String
message = String(data = 'Hello')
json_str = json_message_converter.convert_ros_message_to_json(message)
Test
To run the tests:
catkin_make test
pre-commit Formatting Checks
This repo has a pre-commit check that runs in CI. You can use this locally and set it up to run automatically before you commit something. To install, use pip:
pip3 install --user pre-commit
To run over all the files in the repo manually:
pre-commit run -a
To run pre-commit automatically before committing in the local repo, install the git hooks:
pre-commit install
License
Project is released under the BSD license.
GitHub actions - Continuous Integration
ROS Buildfarm
binary deb | source deb | devel | doc | |
---|---|---|---|---|
noetic |
Change Log
0.5.9 (2022-09-12)
- Fix flake8 errors
- Re-format code using black
- package.xml: Add missing build_export_depend
- Fix EOF and trailing whitespace
- Add pre-commit config
- README: Add note about branches
- pass down log_level to helper functions (#60)
- Declare file encoding This is necessary on ROS Melodic (Python2), because I have added a non-ASCII character (u umlaut) in my last commit.
- Add LICENSE file and license headers
- Contributors: Martin Günther, Yuri Rocha
0.5.8 (2022-03-03)
- add option to change log level (#58)
- Contributors: Yuri Rocha
0.5.7 (2021-09-08)
- Handle None values in dictionary
- Add tests for None
- Dockerfile-kinetic: Add --include-eol-distros
- Contributors: Martin Günther
0.5.6 (2021-03-01)
- Propagate strict_mode, check_missing_fields in _convert_to_ros_type Previously, _convert_to_ros_type dropped strict_mode and check_missing_fields in nested messages.
- Add NestedUint8ArrayTestService tests
- propagate check_types in _convert_to_ros_type (#51) Co-authored-by: Martin Günther <<martin.guenther@dfki.de>>
- Fix binary_array_as_bytes=False with nested msgs
- Add param binary_array_as_bytes Closes #45.
- Contributors: Marc Bosch-Jorge, Martin Günther, Otacon5555
0.5.5 (2020-11-09)
- Decode strings from ROS messages as UTF8 This makes the python2 behavior equal to python3.
- python3 only: Validate base64 strings
- Add bytes to python3 string types This means that
[bytes]{.title-ref} will now also be base64-decoded, which fixes the
following tests on python3:
- test_dictionary_with_uint8_array_bytes
- test_dictionary_with_uint8_array_bytes_unencoded
* test_dictionary_with_3uint8_array_bytes On python2, [bytes]{.title-ref} is just an alias for [str]{.title-ref}, which is why it worked without this.
- Fix and add tests
- Contributors: Martin Günther
0.5.4 (2020-10-13)
- Avoid numpy dependency
- Contributors: Martin Günther, betaboon
0.5.3 (2020-08-20)
- Add check_types parameter to convert_dictionary_to_ros_message (#42)
- Allow numpy numeric types in numeric fields (#41) Fixes #39.
- perf: Remove remaining regexes This is only a small speedup of about 1.03x.
- perf: Avoid regex in _is_field_type_a_primitive_array This makes the function almost 3x faster.
- perf: Reorder type checks Perform the cheaper checks first. This results in a speedup of about 1.2x.
- perf: Avoid regex in is_ros_binary_type This makes is_ros_binary_type almost 5x faster and as a result the whole convert_ros_message_to_dictionary function almost 2x faster.
- Compare types, not type names; improve error message Old error message: TypeError: Wrong type: '1.0' must be float64 New error message: TypeError: Field 'x' has wrong type <type 'numpy.float64'> (valid types: [<type 'int'>, <type 'float'>])
- Remove unused python_to_ros_type_map
- added test for convert_dictionary_to_ros_message with int8 array
- python 3 fix for _convert_to_ros_binary
- Contributors: Martin Günther, Steffen Rühl
0.5.2 (2020-07-09)
- Check for wrong field types when converting from dict to ros msg
- Check for missing fields when converting from dict to ros msg
- Contributors: Martin Günther, alecarnevale
0.5.1 (2020-05-25)
- Initial release into Noetic
- Decode base64-encoded byte arrays as unicode
- Make tests compatible with python3
- add check for python3 str serializing #33 (#34)
- efficient conversion of primitive array to ros type (#31)
- efficient conversion of primitive array
- removed unused _convert_from_ros_primitive
- optionally ignore extra fields when deserializing (#29)
- Remove EOL distros indigo + lunar from CI
- travis CI: Use matrix to split ROS distros
- Update README (convert to md, add build status)
- Contributors: Martin Günther, George Hartt, Jannik Abbenseth, Omri Rozenzaft
0.5.0 (2019-01-17)
- Initial release into Lunar and Melodic
- Remove support for Jade (EOL)
- Change maintainer from Brandon Alexander to Martin Günther
- Move repo from baalexander to uos
- Add serialize_deserialize to unit tests, fix incorrect tests caught by this
- Remove dependency on ROS master in tests; all tests are now unit tests (#18)
- Add service request/response support (#17)
- Fix fixed-size uint8 array conversion failure (#15)
- Fix unicode handling in string fields (#13)
- Enable testing only if CATKIN_ENABLE_TESTING is set (#9)
- Contributors: Martin Günther, Brandon Alexander, George Laurent, Jean-Baptiste Doyon, Viktor Schlegel, Rein Appeldoorn, Will Baker, neka-nat
0.4.0 (2015-12-13)
- Adds support for ROS Jade
- Removes support for ROS Groovy and Hydro (EOL)
- Uses single branch for all ROS versions
- Docker support for local development and Travis CI
0.3.0 (2014-06-03)
- Adds support for ROS Indigo
0.2.0 (2013-07-15)
- Updates to ROS Hydro
- Builds and runs tests with Travis CI
- Adds CHANGELOG
0.1.4 (2013-04-16)
- Documents Python functions
- Throws error if invalid JSON or dictionary
0.1.3 (2013-03-04)
- Adds rostest dependency
0.1.2 (2013-03-04)
- Adds missing build_depends and run_depends
0.1.1 (2013-03-01)
- Adds message_generation dependency to fix build
0.1.0 (2013-02-27)
- Initial release of rospy_message_converter
Wiki Tutorials
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
mir_driver | |
inorbit_republisher | |
rosbag_pandas |
Launch files
Messages
Services
Plugins
Recent questions tagged rospy_message_converter at Robotics Stack Exchange
rospy_message_converter package from rospy_message_converter reporospy_message_converter |
|
Package Summary
Tags | No category tags. |
Version | 0.5.9 |
License | BSD |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/uos/rospy_message_converter.git |
VCS Type | git |
VCS Version | master |
Last Updated | 2024-04-26 |
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
Additional Links
Maintainers
- Martin Günther
Authors
- Brandon Alexander
rospy_message_converter
Rospy_message_converter is a lightweight ROS package and Python library to convert from Python dictionaries and JSON messages to rospy messages, and vice versa.
ROS 1 and ROS 2 branches
ROS 1 users should use the master
branch. ROS 2 users should use the appropriate
branch for their distro (foxy
/galactic
/humble
/rolling
/…).
Usage
Convert a dictionary to a ROS message
from rospy_message_converter import message_converter
from std_msgs.msg import String
dictionary = { 'data': 'Howdy' }
message = message_converter.convert_dictionary_to_ros_message('std_msgs/String', dictionary)
Convert a ROS message to a dictionary
from rospy_message_converter import message_converter
from std_msgs.msg import String
message = String(data = 'Howdy')
dictionary = message_converter.convert_ros_message_to_dictionary(message)
Convert JSON to a ROS message
from rospy_message_converter import json_message_converter
from std_msgs.msg import String
json_str = '{"data": "Hello"}'
message = json_message_converter.convert_json_to_ros_message('std_msgs/String', json_str)
Convert a ROS message to JSON
from rospy_message_converter import json_message_converter
from std_msgs.msg import String
message = String(data = 'Hello')
json_str = json_message_converter.convert_ros_message_to_json(message)
Test
To run the tests:
catkin_make test
pre-commit Formatting Checks
This repo has a pre-commit check that runs in CI. You can use this locally and set it up to run automatically before you commit something. To install, use pip:
pip3 install --user pre-commit
To run over all the files in the repo manually:
pre-commit run -a
To run pre-commit automatically before committing in the local repo, install the git hooks:
pre-commit install
License
Project is released under the BSD license.
GitHub actions - Continuous Integration
ROS Buildfarm
binary deb | source deb | devel | doc | |
---|---|---|---|---|
noetic |
Change Log
0.5.9 (2022-09-12)
- Fix flake8 errors
- Re-format code using black
- package.xml: Add missing build_export_depend
- Fix EOF and trailing whitespace
- Add pre-commit config
- README: Add note about branches
- pass down log_level to helper functions (#60)
- Declare file encoding This is necessary on ROS Melodic (Python2), because I have added a non-ASCII character (u umlaut) in my last commit.
- Add LICENSE file and license headers
- Contributors: Martin Günther, Yuri Rocha
0.5.8 (2022-03-03)
- add option to change log level (#58)
- Contributors: Yuri Rocha
0.5.7 (2021-09-08)
- Handle None values in dictionary
- Add tests for None
- Dockerfile-kinetic: Add --include-eol-distros
- Contributors: Martin Günther
0.5.6 (2021-03-01)
- Propagate strict_mode, check_missing_fields in _convert_to_ros_type Previously, _convert_to_ros_type dropped strict_mode and check_missing_fields in nested messages.
- Add NestedUint8ArrayTestService tests
- propagate check_types in _convert_to_ros_type (#51) Co-authored-by: Martin Günther <<martin.guenther@dfki.de>>
- Fix binary_array_as_bytes=False with nested msgs
- Add param binary_array_as_bytes Closes #45.
- Contributors: Marc Bosch-Jorge, Martin Günther, Otacon5555
0.5.5 (2020-11-09)
- Decode strings from ROS messages as UTF8 This makes the python2 behavior equal to python3.
- python3 only: Validate base64 strings
- Add bytes to python3 string types This means that
[bytes]{.title-ref} will now also be base64-decoded, which fixes the
following tests on python3:
- test_dictionary_with_uint8_array_bytes
- test_dictionary_with_uint8_array_bytes_unencoded
* test_dictionary_with_3uint8_array_bytes On python2, [bytes]{.title-ref} is just an alias for [str]{.title-ref}, which is why it worked without this.
- Fix and add tests
- Contributors: Martin Günther
0.5.4 (2020-10-13)
- Avoid numpy dependency
- Contributors: Martin Günther, betaboon
0.5.3 (2020-08-20)
- Add check_types parameter to convert_dictionary_to_ros_message (#42)
- Allow numpy numeric types in numeric fields (#41) Fixes #39.
- perf: Remove remaining regexes This is only a small speedup of about 1.03x.
- perf: Avoid regex in _is_field_type_a_primitive_array This makes the function almost 3x faster.
- perf: Reorder type checks Perform the cheaper checks first. This results in a speedup of about 1.2x.
- perf: Avoid regex in is_ros_binary_type This makes is_ros_binary_type almost 5x faster and as a result the whole convert_ros_message_to_dictionary function almost 2x faster.
- Compare types, not type names; improve error message Old error message: TypeError: Wrong type: '1.0' must be float64 New error message: TypeError: Field 'x' has wrong type <type 'numpy.float64'> (valid types: [<type 'int'>, <type 'float'>])
- Remove unused python_to_ros_type_map
- added test for convert_dictionary_to_ros_message with int8 array
- python 3 fix for _convert_to_ros_binary
- Contributors: Martin Günther, Steffen Rühl
0.5.2 (2020-07-09)
- Check for wrong field types when converting from dict to ros msg
- Check for missing fields when converting from dict to ros msg
- Contributors: Martin Günther, alecarnevale
0.5.1 (2020-05-25)
- Initial release into Noetic
- Decode base64-encoded byte arrays as unicode
- Make tests compatible with python3
- add check for python3 str serializing #33 (#34)
- efficient conversion of primitive array to ros type (#31)
- efficient conversion of primitive array
- removed unused _convert_from_ros_primitive
- optionally ignore extra fields when deserializing (#29)
- Remove EOL distros indigo + lunar from CI
- travis CI: Use matrix to split ROS distros
- Update README (convert to md, add build status)
- Contributors: Martin Günther, George Hartt, Jannik Abbenseth, Omri Rozenzaft
0.5.0 (2019-01-17)
- Initial release into Lunar and Melodic
- Remove support for Jade (EOL)
- Change maintainer from Brandon Alexander to Martin Günther
- Move repo from baalexander to uos
- Add serialize_deserialize to unit tests, fix incorrect tests caught by this
- Remove dependency on ROS master in tests; all tests are now unit tests (#18)
- Add service request/response support (#17)
- Fix fixed-size uint8 array conversion failure (#15)
- Fix unicode handling in string fields (#13)
- Enable testing only if CATKIN_ENABLE_TESTING is set (#9)
- Contributors: Martin Günther, Brandon Alexander, George Laurent, Jean-Baptiste Doyon, Viktor Schlegel, Rein Appeldoorn, Will Baker, neka-nat
0.4.0 (2015-12-13)
- Adds support for ROS Jade
- Removes support for ROS Groovy and Hydro (EOL)
- Uses single branch for all ROS versions
- Docker support for local development and Travis CI
0.3.0 (2014-06-03)
- Adds support for ROS Indigo
0.2.0 (2013-07-15)
- Updates to ROS Hydro
- Builds and runs tests with Travis CI
- Adds CHANGELOG
0.1.4 (2013-04-16)
- Documents Python functions
- Throws error if invalid JSON or dictionary
0.1.3 (2013-03-04)
- Adds rostest dependency
0.1.2 (2013-03-04)
- Adds missing build_depends and run_depends
0.1.1 (2013-03-01)
- Adds message_generation dependency to fix build
0.1.0 (2013-02-27)
- Initial release of rospy_message_converter
Wiki Tutorials
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
mir_driver |
Launch files
Messages
Services
Plugins
Recent questions tagged rospy_message_converter at Robotics Stack Exchange
rospy_message_converter package from rospy_message_converter reporospy_message_converter |
|
Package Summary
Tags | No category tags. |
Version | 0.5.9 |
License | BSD |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/baalexander/rospy_message_converter.git |
VCS Type | git |
VCS Version | master |
Last Updated | 2024-04-26 |
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
Additional Links
Maintainers
- Martin Günther
Authors
- Brandon Alexander
rospy_message_converter
Rospy_message_converter is a lightweight ROS package and Python library to convert from Python dictionaries and JSON messages to rospy messages, and vice versa.
ROS 1 and ROS 2 branches
ROS 1 users should use the master
branch. ROS 2 users should use the appropriate
branch for their distro (foxy
/galactic
/humble
/rolling
/…).
Usage
Convert a dictionary to a ROS message
from rospy_message_converter import message_converter
from std_msgs.msg import String
dictionary = { 'data': 'Howdy' }
message = message_converter.convert_dictionary_to_ros_message('std_msgs/String', dictionary)
Convert a ROS message to a dictionary
from rospy_message_converter import message_converter
from std_msgs.msg import String
message = String(data = 'Howdy')
dictionary = message_converter.convert_ros_message_to_dictionary(message)
Convert JSON to a ROS message
from rospy_message_converter import json_message_converter
from std_msgs.msg import String
json_str = '{"data": "Hello"}'
message = json_message_converter.convert_json_to_ros_message('std_msgs/String', json_str)
Convert a ROS message to JSON
from rospy_message_converter import json_message_converter
from std_msgs.msg import String
message = String(data = 'Hello')
json_str = json_message_converter.convert_ros_message_to_json(message)
Test
To run the tests:
catkin_make test
pre-commit Formatting Checks
This repo has a pre-commit check that runs in CI. You can use this locally and set it up to run automatically before you commit something. To install, use pip:
pip3 install --user pre-commit
To run over all the files in the repo manually:
pre-commit run -a
To run pre-commit automatically before committing in the local repo, install the git hooks:
pre-commit install
License
Project is released under the BSD license.
GitHub actions - Continuous Integration
ROS Buildfarm
binary deb | source deb | devel | doc | |
---|---|---|---|---|
noetic |
Change Log
0.5.9 (2022-09-12)
- Fix flake8 errors
- Re-format code using black
- package.xml: Add missing build_export_depend
- Fix EOF and trailing whitespace
- Add pre-commit config
- README: Add note about branches
- pass down log_level to helper functions (#60)
- Declare file encoding This is necessary on ROS Melodic (Python2), because I have added a non-ASCII character (u umlaut) in my last commit.
- Add LICENSE file and license headers
- Contributors: Martin Günther, Yuri Rocha
0.5.8 (2022-03-03)
- add option to change log level (#58)
- Contributors: Yuri Rocha
0.5.7 (2021-09-08)
- Handle None values in dictionary
- Add tests for None
- Dockerfile-kinetic: Add --include-eol-distros
- Contributors: Martin Günther
0.5.6 (2021-03-01)
- Propagate strict_mode, check_missing_fields in _convert_to_ros_type Previously, _convert_to_ros_type dropped strict_mode and check_missing_fields in nested messages.
- Add NestedUint8ArrayTestService tests
- propagate check_types in _convert_to_ros_type (#51) Co-authored-by: Martin Günther <<martin.guenther@dfki.de>>
- Fix binary_array_as_bytes=False with nested msgs
- Add param binary_array_as_bytes Closes #45.
- Contributors: Marc Bosch-Jorge, Martin Günther, Otacon5555
0.5.5 (2020-11-09)
- Decode strings from ROS messages as UTF8 This makes the python2 behavior equal to python3.
- python3 only: Validate base64 strings
- Add bytes to python3 string types This means that
[bytes]{.title-ref} will now also be base64-decoded, which fixes the
following tests on python3:
- test_dictionary_with_uint8_array_bytes
- test_dictionary_with_uint8_array_bytes_unencoded
* test_dictionary_with_3uint8_array_bytes On python2, [bytes]{.title-ref} is just an alias for [str]{.title-ref}, which is why it worked without this.
- Fix and add tests
- Contributors: Martin Günther
0.5.4 (2020-10-13)
- Avoid numpy dependency
- Contributors: Martin Günther, betaboon
0.5.3 (2020-08-20)
- Add check_types parameter to convert_dictionary_to_ros_message (#42)
- Allow numpy numeric types in numeric fields (#41) Fixes #39.
- perf: Remove remaining regexes This is only a small speedup of about 1.03x.
- perf: Avoid regex in _is_field_type_a_primitive_array This makes the function almost 3x faster.
- perf: Reorder type checks Perform the cheaper checks first. This results in a speedup of about 1.2x.
- perf: Avoid regex in is_ros_binary_type This makes is_ros_binary_type almost 5x faster and as a result the whole convert_ros_message_to_dictionary function almost 2x faster.
- Compare types, not type names; improve error message Old error message: TypeError: Wrong type: '1.0' must be float64 New error message: TypeError: Field 'x' has wrong type <type 'numpy.float64'> (valid types: [<type 'int'>, <type 'float'>])
- Remove unused python_to_ros_type_map
- added test for convert_dictionary_to_ros_message with int8 array
- python 3 fix for _convert_to_ros_binary
- Contributors: Martin Günther, Steffen Rühl
0.5.2 (2020-07-09)
- Check for wrong field types when converting from dict to ros msg
- Check for missing fields when converting from dict to ros msg
- Contributors: Martin Günther, alecarnevale
0.5.1 (2020-05-25)
- Initial release into Noetic
- Decode base64-encoded byte arrays as unicode
- Make tests compatible with python3
- add check for python3 str serializing #33 (#34)
- efficient conversion of primitive array to ros type (#31)
- efficient conversion of primitive array
- removed unused _convert_from_ros_primitive
- optionally ignore extra fields when deserializing (#29)
- Remove EOL distros indigo + lunar from CI
- travis CI: Use matrix to split ROS distros
- Update README (convert to md, add build status)
- Contributors: Martin Günther, George Hartt, Jannik Abbenseth, Omri Rozenzaft
0.5.0 (2019-01-17)
- Initial release into Lunar and Melodic
- Remove support for Jade (EOL)
- Change maintainer from Brandon Alexander to Martin Günther
- Move repo from baalexander to uos
- Add serialize_deserialize to unit tests, fix incorrect tests caught by this
- Remove dependency on ROS master in tests; all tests are now unit tests (#18)
- Add service request/response support (#17)
- Fix fixed-size uint8 array conversion failure (#15)
- Fix unicode handling in string fields (#13)
- Enable testing only if CATKIN_ENABLE_TESTING is set (#9)
- Contributors: Martin Günther, Brandon Alexander, George Laurent, Jean-Baptiste Doyon, Viktor Schlegel, Rein Appeldoorn, Will Baker, neka-nat
0.4.0 (2015-12-13)
- Adds support for ROS Jade
- Removes support for ROS Groovy and Hydro (EOL)
- Uses single branch for all ROS versions
- Docker support for local development and Travis CI
0.3.0 (2014-06-03)
- Adds support for ROS Indigo
0.2.0 (2013-07-15)
- Updates to ROS Hydro
- Builds and runs tests with Travis CI
- Adds CHANGELOG
0.1.4 (2013-04-16)
- Documents Python functions
- Throws error if invalid JSON or dictionary
0.1.3 (2013-03-04)
- Adds rostest dependency
0.1.2 (2013-03-04)
- Adds missing build_depends and run_depends
0.1.1 (2013-03-01)
- Adds message_generation dependency to fix build
0.1.0 (2013-02-27)
- Initial release of rospy_message_converter
Wiki Tutorials
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged rospy_message_converter at Robotics Stack Exchange
rospy_message_converter package from rospy_message_converter reporospy_message_converter |
|
Package Summary
Tags | No category tags. |
Version | 0.5.9 |
License | BSD |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/uos/rospy_message_converter.git |
VCS Type | git |
VCS Version | master |
Last Updated | 2024-04-26 |
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
Additional Links
Maintainers
- Martin Günther
Authors
- Brandon Alexander
rospy_message_converter
Rospy_message_converter is a lightweight ROS package and Python library to convert from Python dictionaries and JSON messages to rospy messages, and vice versa.
ROS 1 and ROS 2 branches
ROS 1 users should use the master
branch. ROS 2 users should use the appropriate
branch for their distro (foxy
/galactic
/humble
/rolling
/…).
Usage
Convert a dictionary to a ROS message
from rospy_message_converter import message_converter
from std_msgs.msg import String
dictionary = { 'data': 'Howdy' }
message = message_converter.convert_dictionary_to_ros_message('std_msgs/String', dictionary)
Convert a ROS message to a dictionary
from rospy_message_converter import message_converter
from std_msgs.msg import String
message = String(data = 'Howdy')
dictionary = message_converter.convert_ros_message_to_dictionary(message)
Convert JSON to a ROS message
from rospy_message_converter import json_message_converter
from std_msgs.msg import String
json_str = '{"data": "Hello"}'
message = json_message_converter.convert_json_to_ros_message('std_msgs/String', json_str)
Convert a ROS message to JSON
from rospy_message_converter import json_message_converter
from std_msgs.msg import String
message = String(data = 'Hello')
json_str = json_message_converter.convert_ros_message_to_json(message)
Test
To run the tests:
catkin_make test
pre-commit Formatting Checks
This repo has a pre-commit check that runs in CI. You can use this locally and set it up to run automatically before you commit something. To install, use pip:
pip3 install --user pre-commit
To run over all the files in the repo manually:
pre-commit run -a
To run pre-commit automatically before committing in the local repo, install the git hooks:
pre-commit install
License
Project is released under the BSD license.
GitHub actions - Continuous Integration
ROS Buildfarm
binary deb | source deb | devel | doc | |
---|---|---|---|---|
noetic |
Change Log
0.5.9 (2022-09-12)
- Fix flake8 errors
- Re-format code using black
- package.xml: Add missing build_export_depend
- Fix EOF and trailing whitespace
- Add pre-commit config
- README: Add note about branches
- pass down log_level to helper functions (#60)
- Declare file encoding This is necessary on ROS Melodic (Python2), because I have added a non-ASCII character (u umlaut) in my last commit.
- Add LICENSE file and license headers
- Contributors: Martin Günther, Yuri Rocha
0.5.8 (2022-03-03)
- add option to change log level (#58)
- Contributors: Yuri Rocha
0.5.7 (2021-09-08)
- Handle None values in dictionary
- Add tests for None
- Dockerfile-kinetic: Add --include-eol-distros
- Contributors: Martin Günther
0.5.6 (2021-03-01)
- Propagate strict_mode, check_missing_fields in _convert_to_ros_type Previously, _convert_to_ros_type dropped strict_mode and check_missing_fields in nested messages.
- Add NestedUint8ArrayTestService tests
- propagate check_types in _convert_to_ros_type (#51) Co-authored-by: Martin Günther <<martin.guenther@dfki.de>>
- Fix binary_array_as_bytes=False with nested msgs
- Add param binary_array_as_bytes Closes #45.
- Contributors: Marc Bosch-Jorge, Martin Günther, Otacon5555
0.5.5 (2020-11-09)
- Decode strings from ROS messages as UTF8 This makes the python2 behavior equal to python3.
- python3 only: Validate base64 strings
- Add bytes to python3 string types This means that
[bytes]{.title-ref} will now also be base64-decoded, which fixes the
following tests on python3:
- test_dictionary_with_uint8_array_bytes
- test_dictionary_with_uint8_array_bytes_unencoded
* test_dictionary_with_3uint8_array_bytes On python2, [bytes]{.title-ref} is just an alias for [str]{.title-ref}, which is why it worked without this.
- Fix and add tests
- Contributors: Martin Günther
0.5.4 (2020-10-13)
- Avoid numpy dependency
- Contributors: Martin Günther, betaboon
0.5.3 (2020-08-20)
- Add check_types parameter to convert_dictionary_to_ros_message (#42)
- Allow numpy numeric types in numeric fields (#41) Fixes #39.
- perf: Remove remaining regexes This is only a small speedup of about 1.03x.
- perf: Avoid regex in _is_field_type_a_primitive_array This makes the function almost 3x faster.
- perf: Reorder type checks Perform the cheaper checks first. This results in a speedup of about 1.2x.
- perf: Avoid regex in is_ros_binary_type This makes is_ros_binary_type almost 5x faster and as a result the whole convert_ros_message_to_dictionary function almost 2x faster.
- Compare types, not type names; improve error message Old error message: TypeError: Wrong type: '1.0' must be float64 New error message: TypeError: Field 'x' has wrong type <type 'numpy.float64'> (valid types: [<type 'int'>, <type 'float'>])
- Remove unused python_to_ros_type_map
- added test for convert_dictionary_to_ros_message with int8 array
- python 3 fix for _convert_to_ros_binary
- Contributors: Martin Günther, Steffen Rühl
0.5.2 (2020-07-09)
- Check for wrong field types when converting from dict to ros msg
- Check for missing fields when converting from dict to ros msg
- Contributors: Martin Günther, alecarnevale
0.5.1 (2020-05-25)
- Initial release into Noetic
- Decode base64-encoded byte arrays as unicode
- Make tests compatible with python3
- add check for python3 str serializing #33 (#34)
- efficient conversion of primitive array to ros type (#31)
- efficient conversion of primitive array
- removed unused _convert_from_ros_primitive
- optionally ignore extra fields when deserializing (#29)
- Remove EOL distros indigo + lunar from CI
- travis CI: Use matrix to split ROS distros
- Update README (convert to md, add build status)
- Contributors: Martin Günther, George Hartt, Jannik Abbenseth, Omri Rozenzaft
0.5.0 (2019-01-17)
- Initial release into Lunar and Melodic
- Remove support for Jade (EOL)
- Change maintainer from Brandon Alexander to Martin Günther
- Move repo from baalexander to uos
- Add serialize_deserialize to unit tests, fix incorrect tests caught by this
- Remove dependency on ROS master in tests; all tests are now unit tests (#18)
- Add service request/response support (#17)
- Fix fixed-size uint8 array conversion failure (#15)
- Fix unicode handling in string fields (#13)
- Enable testing only if CATKIN_ENABLE_TESTING is set (#9)
- Contributors: Martin Günther, Brandon Alexander, George Laurent, Jean-Baptiste Doyon, Viktor Schlegel, Rein Appeldoorn, Will Baker, neka-nat
0.4.0 (2015-12-13)
- Adds support for ROS Jade
- Removes support for ROS Groovy and Hydro (EOL)
- Uses single branch for all ROS versions
- Docker support for local development and Travis CI
0.3.0 (2014-06-03)
- Adds support for ROS Indigo
0.2.0 (2013-07-15)
- Updates to ROS Hydro
- Builds and runs tests with Travis CI
- Adds CHANGELOG
0.1.4 (2013-04-16)
- Documents Python functions
- Throws error if invalid JSON or dictionary
0.1.3 (2013-03-04)
- Adds rostest dependency
0.1.2 (2013-03-04)
- Adds missing build_depends and run_depends
0.1.1 (2013-03-01)
- Adds message_generation dependency to fix build
0.1.0 (2013-02-27)
- Initial release of rospy_message_converter
Wiki Tutorials
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged rospy_message_converter at Robotics Stack Exchange
rospy_message_converter package from rospy_message_converter reporospy_message_converter |
|
Package Summary
Tags | No category tags. |
Version | 0.5.9 |
License | BSD |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/uos/rospy_message_converter.git |
VCS Type | git |
VCS Version | master |
Last Updated | 2024-04-26 |
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
Additional Links
Maintainers
- Martin Günther
Authors
- Brandon Alexander
rospy_message_converter
Rospy_message_converter is a lightweight ROS package and Python library to convert from Python dictionaries and JSON messages to rospy messages, and vice versa.
ROS 1 and ROS 2 branches
ROS 1 users should use the master
branch. ROS 2 users should use the appropriate
branch for their distro (foxy
/galactic
/humble
/rolling
/…).
Usage
Convert a dictionary to a ROS message
from rospy_message_converter import message_converter
from std_msgs.msg import String
dictionary = { 'data': 'Howdy' }
message = message_converter.convert_dictionary_to_ros_message('std_msgs/String', dictionary)
Convert a ROS message to a dictionary
from rospy_message_converter import message_converter
from std_msgs.msg import String
message = String(data = 'Howdy')
dictionary = message_converter.convert_ros_message_to_dictionary(message)
Convert JSON to a ROS message
from rospy_message_converter import json_message_converter
from std_msgs.msg import String
json_str = '{"data": "Hello"}'
message = json_message_converter.convert_json_to_ros_message('std_msgs/String', json_str)
Convert a ROS message to JSON
from rospy_message_converter import json_message_converter
from std_msgs.msg import String
message = String(data = 'Hello')
json_str = json_message_converter.convert_ros_message_to_json(message)
Test
To run the tests:
catkin_make test
pre-commit Formatting Checks
This repo has a pre-commit check that runs in CI. You can use this locally and set it up to run automatically before you commit something. To install, use pip:
pip3 install --user pre-commit
To run over all the files in the repo manually:
pre-commit run -a
To run pre-commit automatically before committing in the local repo, install the git hooks:
pre-commit install
License
Project is released under the BSD license.
GitHub actions - Continuous Integration
ROS Buildfarm
binary deb | source deb | devel | doc | |
---|---|---|---|---|
noetic |
Change Log
0.5.9 (2022-09-12)
- Fix flake8 errors
- Re-format code using black
- package.xml: Add missing build_export_depend
- Fix EOF and trailing whitespace
- Add pre-commit config
- README: Add note about branches
- pass down log_level to helper functions (#60)
- Declare file encoding This is necessary on ROS Melodic (Python2), because I have added a non-ASCII character (u umlaut) in my last commit.
- Add LICENSE file and license headers
- Contributors: Martin Günther, Yuri Rocha
0.5.8 (2022-03-03)
- add option to change log level (#58)
- Contributors: Yuri Rocha
0.5.7 (2021-09-08)
- Handle None values in dictionary
- Add tests for None
- Dockerfile-kinetic: Add --include-eol-distros
- Contributors: Martin Günther
0.5.6 (2021-03-01)
- Propagate strict_mode, check_missing_fields in _convert_to_ros_type Previously, _convert_to_ros_type dropped strict_mode and check_missing_fields in nested messages.
- Add NestedUint8ArrayTestService tests
- propagate check_types in _convert_to_ros_type (#51) Co-authored-by: Martin Günther <<martin.guenther@dfki.de>>
- Fix binary_array_as_bytes=False with nested msgs
- Add param binary_array_as_bytes Closes #45.
- Contributors: Marc Bosch-Jorge, Martin Günther, Otacon5555
0.5.5 (2020-11-09)
- Decode strings from ROS messages as UTF8 This makes the python2 behavior equal to python3.
- python3 only: Validate base64 strings
- Add bytes to python3 string types This means that
[bytes]{.title-ref} will now also be base64-decoded, which fixes the
following tests on python3:
- test_dictionary_with_uint8_array_bytes
- test_dictionary_with_uint8_array_bytes_unencoded
* test_dictionary_with_3uint8_array_bytes On python2, [bytes]{.title-ref} is just an alias for [str]{.title-ref}, which is why it worked without this.
- Fix and add tests
- Contributors: Martin Günther
0.5.4 (2020-10-13)
- Avoid numpy dependency
- Contributors: Martin Günther, betaboon
0.5.3 (2020-08-20)
- Add check_types parameter to convert_dictionary_to_ros_message (#42)
- Allow numpy numeric types in numeric fields (#41) Fixes #39.
- perf: Remove remaining regexes This is only a small speedup of about 1.03x.
- perf: Avoid regex in _is_field_type_a_primitive_array This makes the function almost 3x faster.
- perf: Reorder type checks Perform the cheaper checks first. This results in a speedup of about 1.2x.
- perf: Avoid regex in is_ros_binary_type This makes is_ros_binary_type almost 5x faster and as a result the whole convert_ros_message_to_dictionary function almost 2x faster.
- Compare types, not type names; improve error message Old error message: TypeError: Wrong type: '1.0' must be float64 New error message: TypeError: Field 'x' has wrong type <type 'numpy.float64'> (valid types: [<type 'int'>, <type 'float'>])
- Remove unused python_to_ros_type_map
- added test for convert_dictionary_to_ros_message with int8 array
- python 3 fix for _convert_to_ros_binary
- Contributors: Martin Günther, Steffen Rühl
0.5.2 (2020-07-09)
- Check for wrong field types when converting from dict to ros msg
- Check for missing fields when converting from dict to ros msg
- Contributors: Martin Günther, alecarnevale
0.5.1 (2020-05-25)
- Initial release into Noetic
- Decode base64-encoded byte arrays as unicode
- Make tests compatible with python3
- add check for python3 str serializing #33 (#34)
- efficient conversion of primitive array to ros type (#31)
- efficient conversion of primitive array
- removed unused _convert_from_ros_primitive
- optionally ignore extra fields when deserializing (#29)
- Remove EOL distros indigo + lunar from CI
- travis CI: Use matrix to split ROS distros
- Update README (convert to md, add build status)
- Contributors: Martin Günther, George Hartt, Jannik Abbenseth, Omri Rozenzaft
0.5.0 (2019-01-17)
- Initial release into Lunar and Melodic
- Remove support for Jade (EOL)
- Change maintainer from Brandon Alexander to Martin Günther
- Move repo from baalexander to uos
- Add serialize_deserialize to unit tests, fix incorrect tests caught by this
- Remove dependency on ROS master in tests; all tests are now unit tests (#18)
- Add service request/response support (#17)
- Fix fixed-size uint8 array conversion failure (#15)
- Fix unicode handling in string fields (#13)
- Enable testing only if CATKIN_ENABLE_TESTING is set (#9)
- Contributors: Martin Günther, Brandon Alexander, George Laurent, Jean-Baptiste Doyon, Viktor Schlegel, Rein Appeldoorn, Will Baker, neka-nat
0.4.0 (2015-12-13)
- Adds support for ROS Jade
- Removes support for ROS Groovy and Hydro (EOL)
- Uses single branch for all ROS versions
- Docker support for local development and Travis CI
0.3.0 (2014-06-03)
- Adds support for ROS Indigo
0.2.0 (2013-07-15)
- Updates to ROS Hydro
- Builds and runs tests with Travis CI
- Adds CHANGELOG
0.1.4 (2013-04-16)
- Documents Python functions
- Throws error if invalid JSON or dictionary
0.1.3 (2013-03-04)
- Adds rostest dependency
0.1.2 (2013-03-04)
- Adds missing build_depends and run_depends
0.1.1 (2013-03-01)
- Adds message_generation dependency to fix build
0.1.0 (2013-02-27)
- Initial release of rospy_message_converter
Wiki Tutorials
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged rospy_message_converter at Robotics Stack Exchange
rospy_message_converter package from rospy_message_converter reporospy_message_converter |
|
Package Summary
Tags | No category tags. |
Version | 0.5.9 |
License | BSD |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/DFKI-NI/rospy_message_converter.git |
VCS Type | git |
VCS Version | master |
Last Updated | 2024-04-26 |
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
Additional Links
Maintainers
- Martin Günther
Authors
- Brandon Alexander
rospy_message_converter
Rospy_message_converter is a lightweight ROS package and Python library to convert from Python dictionaries and JSON messages to rospy messages, and vice versa.
ROS 1 and ROS 2 branches
ROS 1 users should use the master
branch. ROS 2 users should use the appropriate
branch for their distro (foxy
/galactic
/humble
/rolling
/…).
Usage
Convert a dictionary to a ROS message
from rospy_message_converter import message_converter
from std_msgs.msg import String
dictionary = { 'data': 'Howdy' }
message = message_converter.convert_dictionary_to_ros_message('std_msgs/String', dictionary)
Convert a ROS message to a dictionary
from rospy_message_converter import message_converter
from std_msgs.msg import String
message = String(data = 'Howdy')
dictionary = message_converter.convert_ros_message_to_dictionary(message)
Convert JSON to a ROS message
from rospy_message_converter import json_message_converter
from std_msgs.msg import String
json_str = '{"data": "Hello"}'
message = json_message_converter.convert_json_to_ros_message('std_msgs/String', json_str)
Convert a ROS message to JSON
from rospy_message_converter import json_message_converter
from std_msgs.msg import String
message = String(data = 'Hello')
json_str = json_message_converter.convert_ros_message_to_json(message)
Test
To run the tests:
catkin_make test
pre-commit Formatting Checks
This repo has a pre-commit check that runs in CI. You can use this locally and set it up to run automatically before you commit something. To install, use pip:
pip3 install --user pre-commit
To run over all the files in the repo manually:
pre-commit run -a
To run pre-commit automatically before committing in the local repo, install the git hooks:
pre-commit install
License
Project is released under the BSD license.
GitHub actions - Continuous Integration
ROS Buildfarm
binary deb | source deb | devel | doc | |
---|---|---|---|---|
noetic |
Change Log
0.5.9 (2022-09-12)
- Fix flake8 errors
- Re-format code using black
- package.xml: Add missing build_export_depend
- Fix EOF and trailing whitespace
- Add pre-commit config
- README: Add note about branches
- pass down log_level to helper functions (#60)
- Declare file encoding This is necessary on ROS Melodic (Python2), because I have added a non-ASCII character (u umlaut) in my last commit.
- Add LICENSE file and license headers
- Contributors: Martin Günther, Yuri Rocha
0.5.8 (2022-03-03)
- add option to change log level (#58)
- Contributors: Yuri Rocha
0.5.7 (2021-09-08)
- Handle None values in dictionary
- Add tests for None
- Dockerfile-kinetic: Add --include-eol-distros
- Contributors: Martin Günther
0.5.6 (2021-03-01)
- Propagate strict_mode, check_missing_fields in _convert_to_ros_type Previously, _convert_to_ros_type dropped strict_mode and check_missing_fields in nested messages.
- Add NestedUint8ArrayTestService tests
- propagate check_types in _convert_to_ros_type (#51) Co-authored-by: Martin Günther <<martin.guenther@dfki.de>>
- Fix binary_array_as_bytes=False with nested msgs
- Add param binary_array_as_bytes Closes #45.
- Contributors: Marc Bosch-Jorge, Martin Günther, Otacon5555
0.5.5 (2020-11-09)
- Decode strings from ROS messages as UTF8 This makes the python2 behavior equal to python3.
- python3 only: Validate base64 strings
- Add bytes to python3 string types This means that
[bytes]{.title-ref} will now also be base64-decoded, which fixes the
following tests on python3:
- test_dictionary_with_uint8_array_bytes
- test_dictionary_with_uint8_array_bytes_unencoded
* test_dictionary_with_3uint8_array_bytes On python2, [bytes]{.title-ref} is just an alias for [str]{.title-ref}, which is why it worked without this.
- Fix and add tests
- Contributors: Martin Günther
0.5.4 (2020-10-13)
- Avoid numpy dependency
- Contributors: Martin Günther, betaboon
0.5.3 (2020-08-20)
- Add check_types parameter to convert_dictionary_to_ros_message (#42)
- Allow numpy numeric types in numeric fields (#41) Fixes #39.
- perf: Remove remaining regexes This is only a small speedup of about 1.03x.
- perf: Avoid regex in _is_field_type_a_primitive_array This makes the function almost 3x faster.
- perf: Reorder type checks Perform the cheaper checks first. This results in a speedup of about 1.2x.
- perf: Avoid regex in is_ros_binary_type This makes is_ros_binary_type almost 5x faster and as a result the whole convert_ros_message_to_dictionary function almost 2x faster.
- Compare types, not type names; improve error message Old error message: TypeError: Wrong type: '1.0' must be float64 New error message: TypeError: Field 'x' has wrong type <type 'numpy.float64'> (valid types: [<type 'int'>, <type 'float'>])
- Remove unused python_to_ros_type_map
- added test for convert_dictionary_to_ros_message with int8 array
- python 3 fix for _convert_to_ros_binary
- Contributors: Martin Günther, Steffen Rühl
0.5.2 (2020-07-09)
- Check for wrong field types when converting from dict to ros msg
- Check for missing fields when converting from dict to ros msg
- Contributors: Martin Günther, alecarnevale
0.5.1 (2020-05-25)
- Initial release into Noetic
- Decode base64-encoded byte arrays as unicode
- Make tests compatible with python3
- add check for python3 str serializing #33 (#34)
- efficient conversion of primitive array to ros type (#31)
- efficient conversion of primitive array
- removed unused _convert_from_ros_primitive
- optionally ignore extra fields when deserializing (#29)
- Remove EOL distros indigo + lunar from CI
- travis CI: Use matrix to split ROS distros
- Update README (convert to md, add build status)
- Contributors: Martin Günther, George Hartt, Jannik Abbenseth, Omri Rozenzaft
0.5.0 (2019-01-17)
- Initial release into Lunar and Melodic
- Remove support for Jade (EOL)
- Change maintainer from Brandon Alexander to Martin Günther
- Move repo from baalexander to uos
- Add serialize_deserialize to unit tests, fix incorrect tests caught by this
- Remove dependency on ROS master in tests; all tests are now unit tests (#18)
- Add service request/response support (#17)
- Fix fixed-size uint8 array conversion failure (#15)
- Fix unicode handling in string fields (#13)
- Enable testing only if CATKIN_ENABLE_TESTING is set (#9)
- Contributors: Martin Günther, Brandon Alexander, George Laurent, Jean-Baptiste Doyon, Viktor Schlegel, Rein Appeldoorn, Will Baker, neka-nat
0.4.0 (2015-12-13)
- Adds support for ROS Jade
- Removes support for ROS Groovy and Hydro (EOL)
- Uses single branch for all ROS versions
- Docker support for local development and Travis CI
0.3.0 (2014-06-03)
- Adds support for ROS Indigo
0.2.0 (2013-07-15)
- Updates to ROS Hydro
- Builds and runs tests with Travis CI
- Adds CHANGELOG
0.1.4 (2013-04-16)
- Documents Python functions
- Throws error if invalid JSON or dictionary
0.1.3 (2013-03-04)
- Adds rostest dependency
0.1.2 (2013-03-04)
- Adds missing build_depends and run_depends
0.1.1 (2013-03-01)
- Adds message_generation dependency to fix build
0.1.0 (2013-02-27)
- Initial release of rospy_message_converter