Skip to main content

The Robotics Language

Project description

The Robotics Language (RoL) is an open extensible domain-specific (or model-based) language for robotics. RoL is an abstraction on top of ROS to efficiently and quickly develop ROS applications using a mathematics-centred language. RoL generates ROS c++ nodes, HTML interfaces, or any other elements.

The base RoL language has a structure similar to standard high-level programming languages

# A simple topic echo node
node(
  name:'example echo',

  definitions: block(
    # the input signal
    echo_in in Signals(Strings, rosTopic:'/echo/in', onNew: echo_out = echo_in ),

    # the echo signal
    echo_out in Signals(Strings, rosTopic:'/echo/out')
  )
)

The power of the RoL is in its ability to integrate mini-abstraction languages:

# A finite state machine
node(
  name:'example state machine',

  definitions: block(

    # a mini-language: code is defined within `<{ }>`
    FiniteStateMachine<{

      name:machine
      initial:idle

      (idle)-start->(running)-stop->(idle)
      (running)-error->(fault)-reset->(idle)
      (idle)-calibration->(calibrate)-reset->(idle)

    }>,

    # the start signal
    start in Signals(Empty, rosTopic:'/start', onNew: machine.fire('start')),

    # the stop signal
    stop in Signals(Empty, rosTopic:'/stop', onNew: machine.fire('stop'))

  )
)

The RoL is in practice an open compiler where users can develop their own languages by means of plug-ins. The RoL is programmed in python and uses XML as the internal abstract syntax tree.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for RoboticsLanguage, version 0.3.14
Filename, size File type Python version Upload date Hashes
Filename, size RoboticsLanguage-0.3.14-py2-none-any.whl (23.4 MB) File type Wheel Python version py2 Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page