Skip to content

ROS 2 (Robot Operating System) message serialization, for reading and writing bags and network messages

License

Notifications You must be signed in to change notification settings

Lichtblick-Suite/rosmsg2-serialization

 
 

Repository files navigation

@lichtblick/rosmsg2-serialization

ROS 2 (Robot Operating System) message serialization, for reading and writing bags and network messages

npm version

MessageReader

Message reader deserializes ROS 2 CDR messages into plain objects. The messages are fully deserialized.

import { MessageReader } from "@lichtblick/rosmsg2-serialization";

// message definition comes from `parse()` in @lichtblick/rosmsg
const reader = new MessageReader(messageDefinition);

// deserialize a buffer into an object
const message = reader.readMessage([0x00, 0x01, ...]);

// access message fields
message.header.stamp;

MessageWriter

Convert an object, array, or primitive value into binary data using ROS 2 CDR message serialization.

import { MessageWriter } from "@lichtblick/rosmsg2-serialization";

// message definition comes from `parse()` in @lichtblick/rosmsg
const writer = new MessageWriter(pointStampedMessageDefinition);

// serialize the passed in object to a Uint8Array as a geometry_msgs/PointStamped message
const uint8Array = writer.writeMessage({
  header: {
    stamp: { sec: 0, nanosec: 0 },
    frame_id: ""
  },
  x: 1,
  y: 0,
  z: 0
});

Test

yarn test

License

@lichtblick/rosmsg2-serialization is licensed under the MIT License.

Releasing

  1. Run yarn version --[major|minor|patch] to bump version
  2. Run git push && git push --tags to push new tag
  3. GitHub Actions will take care of the rest

About

ROS 2 (Robot Operating System) message serialization, for reading and writing bags and network messages

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 100.0%