Skip to content

Releases: Michi-Tsubaki/ROS2.jl

v0.2.0

25 Oct 15:52

Choose a tag to compare

ROS2.jl v0.2.0 Release Notes

Diff to previous

v0.1.5...v0.2.0

Compatibility

This release adds a lot of feature, but is fully backward compatible with v0.1.5. All existing code will continue to work without any modifications.
When migrating from v0.1.5:

New features do not affect existing code
Existing APIs (Publisher, Subscriber, Timer, etc.) unchanged
No breaking changes

New Features

Time Management System

  • Added ROSTime, ROSDuration, and ROSClock types
  • Time arithmetic support (addition, subtraction, comparison operators)
  • Conversion functions with builtin_interfaces messages (to_msg_time, from_msg_time, etc.)
  • Conversion to seconds and nanoseconds (to_sec, to_nsec)

TF2 Transform System

  • TransformListener: Query transformations between coordinate frames
  • TransformBroadcaster: Publish dynamic coordinate transformations
  • StaticTransformBroadcaster: Publish static coordinate transformations
  • lookup_transform, can_transform: Transform lookup and availability checking
  • create_transform_stamped: Transform message creation

Message Handling

  • get_available_message_types: Get available message types
  • create_msg_dynamic: Dynamic message creation
  • get_message_fields: Message field introspection
  • is_valid_message_type: Message type validation
  • Added QoSProfile with presets (DEFAULT_QOS, SENSOR_DATA_QOS)

Advanced Features

  • LifecycleNode: Lifecycle management (configure, activate, deactivate, cleanup, shutdown_lifecycle)
  • MultiThreadedExecutor: Multi-threaded execution (add_node, spin_executor, shutdown_executor)
  • ComponentManager: Component management (load_component, unload_component, list_components)
  • Domain ID management (set_domain_id, get_domain_id)

Code Improvements

Formatting

  • Applied consistent code formatting across all files
  • Cleaned up function argument indentation
  • Organized whitespace

Initialization

  • Enhanced environment variable checking in __init__
  • Proper Python path configuration
  • Improved error handling

Export Management

  • Properly exported all new functionality
  • Organized module structure

File Structure

New Files

  • src/time.jl: Time management module
  • src/tf2.jl: TF2 transform module
  • src/messages.jl: Message handling module
  • src/advanced.jl: Advanced features module

Modified Files

  • src/ROS2.jl: Added includes and exports for new modules
  • src/action.jl: Code formatting fixes
  • src/timer.jl: Code formatting fixes

Compatibility

When migrating from v0.1.5:

  • New features do not affect existing code
  • Existing APIs (Publisher, Subscriber, Timer, etc.) unchanged

Installation

] add ROS2

or

using Pkg
Pkg.add("ROS2")

Future Plans

  • Action client/server enhancements
  • Advanced service features
  • Enhanced parameter system
  • Bag file support

v0.1.5

12 Feb 03:29
bb362b0

Choose a tag to compare

<description of version>

v0.1.4

04 Feb 01:13

Choose a tag to compare

rename directory and pass CI without ROS2 install

v0.1.3

03 Feb 02:17

Choose a tag to compare

version change

v0.1.2

03 Feb 02:04

Choose a tag to compare

RobotJuliaClient --> RobotOperationgClient

v0.1.1

03 Feb 01:45
9e38b34

Choose a tag to compare

ROJ --> RobotJuliaClient

v0.1.0

02 Feb 17:11
84fb13f

Choose a tag to compare

Merge pull request #5 from Michi-Tsubaki/tsubaki/ros-pubsub

Closes #4