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.20-py2-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6850c2413d62a502ae5fe0543b8143c409a33005231de40467f157535fda60da |
|
MD5 | 3837d23f69bef4a75512b85af749c72c |
|
BLAKE2b-256 | f31f0266b3668e401c1df052c701680332e6f49ff646df579033ccbc6f853144 |