getting_started:practical_problems:abort
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
getting_started:practical_problems:abort [2017/11/05 13:31] – [Define Signal Handler when using ROS] graf | getting_started:practical_problems:abort [2024/02/16 08:16] (current) – ursgraf | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Shutting down a System ====== | + | ====== Shutting down a System |
How does a robot control system properly shut down? In general it does never stop. Pressing an emergency button might switch to a emergency safety level. From there it might restart again after certain steps are taken. \\ However, in a system under development it is often desirable to end an application. That usually means to switch to a specific safety level where the necessary steps for a well controlled stopping of the application takes place. Only after this happened the executor stops running and returns control to the main program, which then stops as well. \\ | How does a robot control system properly shut down? In general it does never stop. Pressing an emergency button might switch to a emergency safety level. From there it might restart again after certain steps are taken. \\ However, in a system under development it is often desirable to end an application. That usually means to switch to a specific safety level where the necessary steps for a well controlled stopping of the application takes place. Only after this happened the executor stops running and returns control to the main program, which then stops as well. \\ | ||
- | The following example shows how this can be accomplished. The code can be found in [[getting_started: | + | The following example shows how this can be accomplished. The code can be found in [[getting_started: |
<code cpp> | <code cpp> | ||
#include " | #include " | ||
Line 32: | Line 32: | ||
In the example this function triggers a safety event '' | In the example this function triggers a safety event '' | ||
- | After pressing '' | + | After pressing '' |
The system will stay in the level as long as the shutting down will take. This could include a whole sequence of steps such as applying brakes or driving to a safe position. As soon as this point is reached another safety event, '' | The system will stay in the level as long as the shutting down will take. This could include a whole sequence of steps such as applying brakes or driving to a safe position. As soon as this point is reached another safety event, '' | ||
<code cpp> | <code cpp> | ||
Line 43: | Line 43: | ||
===== Define Signal Handler when using ROS ===== | ===== Define Signal Handler when using ROS ===== | ||
- | If you use ROS you have to keep in mind to define | + | If you use ROS you have to keep in mind to register |
+ | <code cpp> | ||
+ | |||
+ | int main() { | ||
+ | ... | ||
+ | // init ROS node | ||
+ | |||
+ | signal(SIGINT, | ||
+ | ... | ||
+ | } | ||
+ | </ |
getting_started/practical_problems/abort.1509885065.txt.gz · Last modified: 2017/11/05 13:31 (external edit)