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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Hashes for RoboticsLanguage-0.3.17-py2-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 918ede774d7ee8d7fad0ee875b2da698a0ba0a5fd4089eaa0745270bc4949a67 |
|
MD5 | 926ba789e9488866e562483f091aae96 |
|
BLAKE2b-256 | c707883cdd2bc9017fa126911aaa64e96dff3f8c95e9067373671d5808aff3b1 |