Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
research:software:lrp [2016/12/21 19:52] – [Advanced Features] jfabry | research:software:lrp [2018/04/02 21:51] (current) – mcampusa | ||
---|---|---|---|
Line 7: | Line 7: | ||
We all like videos of robots, right? Here are some of LRP on a few different robots for your viewing pleasure. | We all like videos of robots, right? Here are some of LRP on a few different robots for your viewing pleasure. | ||
- | * [[https:// | + | * [[https:// |
- | * [[https:// | + | * [[https:// |
- | * [[https:// | + | * [[https:// |
- | * [[https:// | + | * [[https:// |
+ | * [[https:// | ||
**NEWS**: | **NEWS**: | ||
+ | * Miguel presented LRP at the [[https:// | ||
* [[http:// | * [[http:// | ||
* [[http:// | * [[http:// | ||
Line 209: | Line 211: | ||
=== Exit transitions === | === Exit transitions === | ||
+ | |||
+ | In a nested machine it is possible to define transitions that go to a state of the parent machine, effectively exiting the nested machine. Such transitions are like normal transactions, | ||
+ | |||
+ | A simple example is as follows. As soon as the '' | ||
+ | < | ||
+ | (machine root | ||
+ | (var out := [false]) | ||
+ | (state one | ||
+ | (machine nested | ||
+ | (state onen) | ||
+ | (exit goout onen-> | ||
+ | (event goout [out])) | ||
+ | (onentry (spawn nested onen)) | ||
+ | ) | ||
+ | (state two) | ||
+ | ) | ||
+ | (spawn root one) | ||
+ | </ | ||
=== Eventless transitions === | === Eventless transitions === | ||
- | === User interface: | + | It can become tedious for transitions to need an event as a trigger, since it requires the definition of an event as a separate statement. This is especially tedious when the transition is the only that references that event. To ease this tedium, transitions also accept a block instead of an event name. This block should return true for the transition to trigger. |
+ | |||
+ | Eventless transitions are in fact syntactic sugar: an event is generated and added to the machine, with as action block the block that was specified in the transition, and the transition instead then refers to that event. | ||
+ | |||
+ | === User interface: | ||
+ | The LRP user interface allows for the user to force a machine in a given state. By right-clicking on a state in the visualisation a menu appears, with the option to '' | ||
+ | Transition to and jump to also combine with concurrency (see above for concurrency): | ||
==== Downloads ==== | ==== Downloads ==== | ||
Line 256: | Line 282: | ||
Next time the LRP interpreter is opened the ROS bridge UI will open, asking for the name of the class that represents the current package. | Next time the LRP interpreter is opened the ROS bridge UI will open, asking for the name of the class that represents the current package. | ||
+ | |||
+ | If you have problems installing PhaROS, you can bypass the main installation by downloading only the PhaROS API for Pharo. | ||
+ | Gofer it | ||
+ | smalltalkhubUser: | ||
+ | configuration; | ||
+ | load | ||
+ | |||
+ | After installing PhaROS, you can install the LRP ROS bridge (see above). | ||
=== Parrot AR.Drone Support === | === Parrot AR.Drone Support === |