ISAAC
0.2.11
Flight software for the ISAAC project, adding functionality to the Astrobee robot, operating inside the International Space Station.
|
This directory provides two tools: inspection_tool and sci_cam_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
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.
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