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=" | ||
+ | /> | ||
+ | </ | ||
+ | |||
+ |