Skip to content

tue-robotics/auto-ros

Repository files navigation

auto-ros

CI NPM version

Wrapper of ROSLIB.Ros which automatically reconnects

Features

  • 🔄 Automatic reconnection to rosbridge websocket
  • 📘 Full TypeScript support with type definitions
  • 🎯 Modern ES2022+ module
  • 🔔 Event-based status updates
  • ⚡ Zero configuration required

Installation

npm install auto-ros

Usage

JavaScript

import AutoRos from 'auto-ros'

const autoRos = new AutoRos()

autoRos.connect()

TypeScript

import AutoRos, { type ConnectionStatus } from 'auto-ros'

const autoRos = new AutoRos({
  reconnectTimeOut: 5000,
  rosOptions: {
    // transportFactory can be provided if you need a custom transport
  }
})

autoRos.on('status', (status: ConnectionStatus) => {
  console.log('Connection status:', status)
})

autoRos.connect('ws://localhost:9090')

API

Constructor

new AutoRos(options?: AutoRosOptions)

Options

  • reconnectTimeOut (number, optional): Reconnect timeout in milliseconds. Default: 5000
  • rosOptions (object, optional): Options passed to the Ros constructor
    • transportFactory (ITransportFactory, optional): The factory to use to create a transport. Defaults to a WebSocket transport factory.

Methods

connect(url?: string): void

Connect to rosbridge. If no URL is provided, uses the previous URL or a default based on hostname.

Properties

ros: Ros

The underlying Ros instance from roslib.

status: ConnectionStatus

Current connection status. Can be: 'connecting', 'connected', 'closed', or 'error'.

Events

The class extends EventEmitter, so you can listen to events:

  • 'status': Emitted when connection status changes

Development

# Install dependencies
npm install

# Build
npm run build

# Run tests
npm test

# Lint
npm run lint

License

See the repository license file.

About

Wrapper of ROSLIB.Ros which automatically reconnects

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 5