This shows you the differences between two versions of the page.
robots:computer:talos:software:program_structure [2015/01/12 15:29] david |
robots:computer:talos:software:program_structure [2021/08/14 04:21] |
||
---|---|---|---|
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:** | ||
- | |||
- | {{ : | ||
- | |||
- | **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 (Mobotware): | ||
- | |||
- | < | ||
- | <point | ||
- | 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=" | ||
- | /> | ||
- | </ | ||
- | |||