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.21-py2-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8248731cbed82c0f1d7ce57390eabe60d0b767770fdd18740b29c2751bd11778 |
|
MD5 | 05f6876b73c739b593ca06480da09458 |
|
BLAKE2b-256 | 4fa383a6c936fa05862203279bce0ef35b51c834778524792bda86f6e254777e |