ISAAC  0.2.11
Flight software for the ISAAC project, adding functionality to the Astrobee robot, operating inside the International Space Station.
All Classes Functions Variables Pages
Inspection Behavior

This directory provides two tools: inspection_tool and sci_cam_tool.

Using the inspection tool

This tool is used to initiate inspection actions. To run the tool:

rosrun inspection inspection_tool -$ACTION [OPTIONS]

General parameters

Parameter Default value Description
camera "sci_cam" Camera to use"\ilinebr </td> </tr> <tr class="markdownTableRowEven"> <td class="markdownTableBodyNone"> pos\ilinebr </td> <td class="markdownTableBodyNone"> ""\ilinebr </td> <td class="markdownTableBodyNone"> Desired position in cartesian format 'X Y Z' (meters)\ilinebr </td> </tr> <tr class="markdownTableRowOdd"> <td class="markdownTableBodyNone"> att\ilinebr </td> <td class="markdownTableBodyNone"> ""\ilinebr </td> <td class="markdownTableBodyNone"> Desired attitude in RPY format 'roll pitch yaw' (degrees)

Once you launch the command, the actions available are:

Inspection coordination:

pause: Pauses the current action being performed, the goal is kept, so a resume command will resume the action.

resume: Resumes a paused or failed action (in the case where there is a motion fail or picture fail). It will restart on the "move to inspection pose" step.

repeat: Resumes the survey repeating the last inspection pose.

skip: Skips the surrent inspection pose, useful if a certain pose is unreachable.

save: Saves the current goal, in the case flight software needs to be restarted. The current survey is saved in resources/current.txt. It can be loaded afterwards using

Inspection modes:

anomaly: Starts an anomaly inspection action. The robot will come up to a target, take a picture and run the picture through the image anomaly detector to classify it. To specify the anomaly location, the position of the anomaly is needed and the attitude in which the robot should view it. The following figure shows an example of the target marker specified and how the robot positioned itself to view it:

An example command for this type of anomaly would be:

rosrun inspection inspection_tool -anomaly -anomaly_poses /resources/inspection_iss.txt

Relevant parameters:

Parameter Default value Description
target_distance 0.3, Anomaly: desired distance to target (m)
min_distance 0.2, Anomaly: minimum distance to target (m)
max_distance 0.7, Anomaly: maximum distance to target (m)
max_angle 40.0, Anomaly: maximum angle to target (deg)
target_size_x 0.05, Anomaly: target size x - width (m)
target_size_y 0.05, Anomaly: target size y - height (m)
depth_cam "haz", Anomaly: depth cam to be used for distance measurements
toggle_flashlight 0.0 (no toggle) Anomaly: Toggle flashlight 0=OFF 1=MAX
focus_distance_step 0.05 Anomaly: Step to iterate focus distances (m)
focus_distance_range 0.0, (no focus range) Anomaly: Range when iterating focus distances (m)

geometry: Starts a geometry inspection, meaning that it will go to the commanded poses and take pictures to be processed by the geometry mapper.

An example command for this type of anomaly would be:

rosrun inspection inspection_tool -geometry -geometry_poses /resources/geometry_iss.txt

panorama: it will do a panorama survey of all points specified. For more information on how these surveys are generated, see page: Panorama coverage planning.

An example command for this type of anomaly would be:

rosrun inspection inspection_tool -panorama -panorama_poses /resources/panorama_iss.txt

Relevant parameters:

Parameter Default value Description
panorama_mode "" Panorama configuration pre-set (from pano_test_cases.cvs)
pan_min -180.0 Panorama: minimum pan
pan_max 180.0 Panorama: maximum pan
tilt_min -90.0 Panorama: minimum tilt
tilt_max 90.0 Panorama: maximum tilt
h_fov -1.0 Panorama: camera horizontal fov, default -1 uses camera matrix
v_fov -1.0 Panorama: camera vertical fov, default -1 uses camera matrix
overlap 0.5 Panorama: overlap between images
att_tol 5.0 Panorama: attitude tolerance due to mobility

volumetric: This will perform a volumetric survey

An example command for this type of anomaly would be:

rosrun inspection inspection_tool -volumetric -volumetric_poses /resources/volumetric_iss.txt

Using sci_cam_tool

This tool is used to control the sci cam plugin in the Astrobee simulator, more precisely the way it acquires pictures. To use it, perform the following steps:

Start the simulator, for example as:

roslaunch astrobee sim.launch

Start this tool, for example as:

rosrun inspection sci_cam_tool

There are three modes of operating the sci cam that one can choose from:

1) takeSinglePicture
2) turnOnContinuousPictureTaking
3) turnOffContinuousPictureTaking

The behavior corresponds to taking a single picture at this time, allowing the camera to take pictures as often as it can, and disallowing this mode.

The pictures will be published on the topic

/hw/cam_sci/compressed

They will also show up in the sci cam window in RVIZ.

If requests to take a single picture come at a high rate, some of them will be dropped.

Using export panorama tool

This tool was created to allow for panorama surveys to be created and exported. This is useful to make panorama plans beforehand to ensure reproduceability.

To export the panorama file:

rosrun inspection export_panorama -panorama_poses $PANORAMA_POSES -panorama_out $OUTPUL_PLAN

where $PANORAMA_POSES is a text file container the poses of the panorama centers, and $OUTPUT_PLAN is the output path of the panorama w.r.t. the package folder. Other options that can be specified are:

-camera (Camera to use) type: string default: "sci_cam"
-ns (Robot namespace) type: string default: ""
-overlap (Panorama: overlap between images) type: double default: 0.5
-pan_max (Panorama: maximum pan) type: double default: 180
-pan_min (Panorama: minimum pan) type: double default: -180
-panorama_out (Panorama poses output) type: string
  default: "/resources/pano_out.txt"
-panorama_poses (Panorama poses list to map) type: string
  default: "/resources/scicam_panorama.txt"
-tilt_max (Panorama: maximum tilt) type: double default: 90
-tilt_min (Panorama: minimum tilt) type: double default: -90