Skip to content

tu-darmstadt-ros-pkg/inspection_mission_teach_in

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

inspection_mission_teach_in

Backend for intuitive mission creation by operator demonstration.


Installation

In order to install the software use the command

$ hector install inspecton_mission_teach_in,

followed by

$ hector update_make.

Afterwards the package with all its dependencies should be installed into the src folder of hector.


Dependencies

To successfully run this node there has to run an instance of:

  • mission execution manager
  • persistent_worldmodel
  • wrs2018_scenario

Usage

Start Up

The node can be started via the command:

$ roslaunch inspection_mission_teach_in inspection_mission_teach_in.launch

The launch file contains parameters, that need to be adjusted to the current needs and also depends on the robot, which is currently used. For once the robot width and length need to match the dimensions of the used robot, as they are used for collision avoidance. The variable sampling_distance describes the threshold used for adding new points to the currently recorded paths. poi_eps is the amount of clearance to an nearby POI, which is tolerated, when performing a mission relevant action, so that no new POI is created. After a short start-up time the node is operational. It provides services, which can be called for mission recording and autonomous execution. All services can be called via

$ rosservice call /inspection_mission_teach_in/<service_name> argument(s).

To see which arguments are required, tab can be pressed twice, to get the help of auto-complete.

The corresponding UI can be launched by the command:

$ roslaunch inspection_mission_teach_in ui.launch.

It provides buttons for almost all services provided by the node and therefore enables the user to perform most actions via a single click of a button. Those are located in the bottom right of the UI in the folder "mission teach-in". Also all relevant topics regarding the recording and repeated execution are visualized.

Mission Recording

Start Recording

To record an inspection mission the operator start the recording and choose a recording mode. Currently there are two: "standard" and "strictPaths". For both modes there is a button in the UI.

  • "standard" uses path smoothing, collision avoidance, loop detection, recovers from being away from the path and searches for the shortest distance between start and goal using a variant of dijkstra. If a new path is recorded and there already exists a shorter direct path between two points of interests, the newly recorded path will not be saved.
  • "strictPaths" does not use the dijkstra algorithm to find the shortest route between two point of interest, but drives exactly along the paths the operator drove during the recording and therefore does not include loop detection. Nevertheless it still incorporates collision aviodance, smoothing and recovering from positions off the path.

The mode in which a recording was made, can not be changed later on. Entering an empty string will also lead to recording in standard mode.

Inspect Points of Interest

After starting the recording, the operator can move the robot freely. The path taken will be saved. If the operator wants to set a point of interest and trigger an inspection action on it, the corresponding button should be pressed. The currently available actions types are: drive_here, wait_here, 360_picture.

  • drive_here: after driving to this position the robot will not do anything further
  • wait_here: after arriving on the point of interest, the robot will wait for 5 seconds before moving on
  • 360_picture: on arrival a 360° picture should be taken. However this behavior still needs to be created, since it does not exist as of yet. For now it also waits for 5 seconds.

It is not neccessary to create a point of interest of the starting point of the mission via the service, since it will be added automatically as the first other point of interest is created via this service. If performing an inspection close enough to an already existing point of interest, the action will be performed this point of interest. Therefore another point of interest will bot be created. The standard deviation, that is tolerated, is 0.2m.

An arbitrary amount of points of interest can be created for a mission. The paths are always stored from point of interest to the next one. Internally a graph is build out of the points of interest as nodes and the paths between them as edges. If the recording shall be stopped, the stop button in the UI should be pressed. On stopping a final poi is created and saved as an end point.

Autonomous Mission Execution

Then a mission message will be generated and stored into a bag in the missions folder in inspection_mission_teach_in. It will be named after the date and time of the end of the recording. To execute a mission from a bag file simply call the service load_mission_from_bag. The parameter is the name of the bag file in inspection_mission_teach_in/missions including the .bag. Example:

$ rosservice call /inspection_mission_teach_in/load_mission_from_bag "bag_name.bag"

There currently is no button for this in the UI. In order for the behavior, invoked by loading a bag, to work, the robot needs to have a config with the name of "compact_drive_pose" in the move_group "complete_robot_pose".

Information during Execution

There are some topics providing information about the teach-in, previous recorded paths, currently driven path and path sections deemed unfit for driving on and newly planned paths as replacement as well as points of interest. To display the points of interest the topic /worldmodel_server/visualization needs to be visualized. The topic /inspection_mission_teach_in/recorded_path tracks the path of the current recording, which will get saved after the end of the recording. The topic /inspection_mission_teach_in/pathToDriveAlong visualizes the path currently followed by an autonomous execution. Then there are two MarkerArray topics. First there is the topic /inspection_mission_teach_in/graph_edges. It visualizes all paths from previous recording in light blue, which are currently stored in a graph used for path finding. The topic /inspection_mission_teach_in/path_planning publishes three different things at once: path sections which will lead to collision with the environment in red, planned paths to avoid these collisions in green and path sections, which are deemed to be top sharp to drive along or are likely to be loops, are highlighted purple.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •