This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
|
robots:computer:talos:software:program_structure [2015/01/12 14:40] david created |
robots:computer:talos:software:program_structure [2021/08/14 04:21] (current) |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ====== Program structure ====== | ||
| + | To provide a easy and modular programming of the robot, every device can be seperately started by a launch file. | ||
| + | They provide the startup setting whats neccessary | ||
| + | |||
| + | Launch files for the actors and sensor devices: | ||
| + | * Laserscanner (start_laserscanner.launch) | ||
| + | * IMU (start_imu.launch) | ||
| + | * Joystick (start_...) | ||
| + | * Motorcontrollers | ||
| + | * GPS | ||
| + | |||
| + | Launch Files for setting up the position estimation of the robot (odometry, path estimation, etc.): | ||
| + | * start_local_positioning.launch | ||
| + | * start_global_positioning.launch | ||
| + | |||
| + | Launch files for starting the basic control layers for following waypoints and avoid obstacles: | ||
| + | * start_deterministic_control.launch | ||
| + | * start_adaptive_control.launch | ||
| + | |||
| + | Launch files for the decision layer, what decides what singals finaly goes to the motorcontrollers and some visualisation: | ||
| + | * start_decision_layer.launch | ||
| + | * start_visualisation.launch | ||
| + | |||
| + | Under normal circumstances all launchfiles can be started with one command in a terminal: | ||
| + | < | ||
| + | |||
| + | a detailed graph of all programmed nodes can be found in the next picture of the overall node graph... | ||
| **Node graph:** | **Node graph:** | ||
| {{ : | {{ : | ||
| + | |||
| + | **Mission files** | ||
| + | |||
| + | The robot navigation follow a 2D kartesian koordinate system. At outdoor navigation task we can use the | ||
| + | UTM Koordinate System to navigate. So the positions can be set by absolute coordinates in UTM. This is | ||
| + | sufficient for deterministic navigation. | ||
| + | But if we want to perform a special task at a certain point, some more information for success is neccessary! | ||
| + | This additional information could be: | ||
| + | * how precice do the robot need to reach the "goal point" | ||
| + | * how long should it stay there | ||
| + | * does it need to wait for other tasks to accomplish (z.B. picking a fruit) | ||
| + | * what to do if goal is unreachable | ||
| + | * are some special control parameters neccessary | ||
| + | * etc... | ||
| + | * | ||
| + | typically these information can be provided by a .txt or .xml file, because of the easy way of programming and | ||
| + | uncomplicated change for different programmes. | ||
| + | |||
| + | Example mission file: | ||
| + | |||
| + | < | ||
| + | < | ||
| + | utme=" | ||
| + | utmn=" | ||
| + | comment=" | ||
| + | /> | ||
| + | <point | ||
| + | utme=" | ||
| + | utmn=" | ||
| + | speed=" | ||
| + | comment=" | ||
| + | /> | ||
| + | <point | ||
| + | utme=" | ||
| + | utmn=" | ||
| + | wait=" | ||
| + | comment=" | ||
| + | /> | ||
| + | <point | ||
| + | utme=" | ||
| + | utmn=" | ||
| + | comment=" | ||
| + | /> | ||
| + | <point | ||
| + | utme=" | ||
| + | utmn=" | ||
| + | wait_until_task_ready=" | ||
| + | comment=" | ||
| + | /> | ||
| + | </ | ||
| + | |||
| + | |||