A node written down as a JSON file, rules between nodes as another, and the naming and encoding rules a robot's topics follow, with no ROS 2 or Zenoh installed.
One install for the 5 capabilities of this domain. Each is also its own package, and
pamoja is the whole framework in one.
npm install @pamoja/profiles
| Capability | Package | What it covers |
|---|---|---|
| Device profiles | @pamoja/profile |
Named, ready-to-run device profiles from plain data or a JSON manifest, run as a node in every language |
| Rules | @pamoja/profile |
Rules between nodes as a file: a condition over one node's topic with hysteresis, and the actions that drive another node's actuator or publish, run by an engine off any link in every language, or judged reading by reading |
| Robot motion | @pamoja/kit |
Wheel speeds for differential, skid-steer, car-like, and mecanum chassis, a two-link arm and Denavit-Hartenberg forward kinematics, odometry, waypoint guidance, a safety gate, and servo, ESC, and encoder conversions |
| ROS 2 rules | @pamoja/ros2 |
ROS 2 names, RIHS01 type hashes, CDR encoding, and rmw_zenoh key assembly, with no ROS 2 installed |
| Zenoh keys | @pamoja/zenoh |
Zenoh key expressions: validity, canonical form, matching, and whether two expressions share or cover keys |
The guides, with a worked TypeScript example for each, are at https://pamoja.molex.cloud/docs.
MIT
Profiles and robotics: A node written down as a JSON file, rules between nodes as another, and the naming and encoding rules a robot's topics follow, with no ROS 2 or Zenoh installed.
Installing this package installs
@pamoja/profile,@pamoja/kit,@pamoja/ros2,@pamoja/zenoh, and re-exports each under its own name, so a name two of them share stays unambiguous.