AUV-Coop-Assembly
Master Thesis for Robotics Engineering. Cooperative peg-in-hole assembly with two underwater vehicles guided by vision
Class Hierarchy
This inheritance list is sorted roughly, but not completely, alphabetically:
[detail level 12]
 CCollisionPropagatorThe CollisionPropagator class It is used to propagate a force suffered by the tip (where the passed jacob world_J_veh_tip and trasf matrix wTpegtip point) to the whole arm, providing the resultant joint velocities. These velocities act as a "disturb" so they must be added to the control vector output of the tpik procedure
 CControllerResponsabile of 1) taking matrices and giving them to Tasks classes, so they can compute their activations, references, jacobians, etc matrices 2) After all tasks have setted matrices, it executes the icat algorithm and return the yDot to the caller
 CCoordInterfaceCoordThe CoordInterfaceCoord class
 CCoordInterfaceMissManThe CoordInterface class class to deal with ros comunications (pub/sub) from MissionManager node to Coordinator node
 CDetector
 CExchangedInfoThe ExchangedInfo struct VARIABLE infos about thing not physically internally in the robot (e.g position of other robot)
 CGraspConstrainerThe GraspConstrainer class
 CInfos
 CInfosVision
 CKDLHelper
 CLogger
 CMissionManager
 CMonoTracker
 CRobotInterfaceRobotInterface: a ros node responsible of taken info from simulator and robot sensors, and of given commands back. It is the intermiate layer between actual robot and mission manager ("main")
 CRobotSensorThe RobotSensor struct used to store info from robot sensors (eg force torque)
 CRobotStateThe RobotState struct VARIABLE info about the robot (e.g. position of vehicle respect world)
 CRobotStructThe RobotStruct struct CONSTANT info about the robot (e.g. fixed frame for vehicle to sensors)
 CRobotVisionInterfaceRobotInterface: a ros node responsible of taken info from simulator and robot sensors, and of given commands back. It is the intermiate layer between robot and mission manager ("main") This "Vision" Version is specialized for a robot with no arm and horizontal cameras used to detect hole and help the insertion phase
 CRobotVisioStateThe RobotState struct VARIABLE info about the robot (e.g. position of vehicle respect world)
 CRobotVisioStructThe RobotStruct struct CONSTANT info about the robot (e.g. fixed frame for vehicle to sensors)
 CDCAM::rs_intrinsics
 CStereoTracker
 CTaskABSTRACT class task. Each task is a derived class of this class. It contains all the variable that the task must have, methods to get these protected variables, and a pure virtual function that the derived class must implement
 CArmNullVelTaskThe ArmNullVelTask class. It is a non reactive task which is needed when vehicle moves, because we want big movements to be made only by vehicle. In such situation, this task should be putted as the highest priority task
 CArmShapeTaskThe ArmShapeTask class Preferred arm Shape: an optimization task. It is a non scalar task, each joint is controlled separately and bringed to its preferred position. The activation is always the identity, so it is important that these task will be the last one which modifify yDot for the arm
 CCoopTaskThe CoopTask class
 CEndEffectorReachTaskTask to make the end effector reach a goal (both linear and angular position)
 CForceInsertTaskTo help the inserting phase with force torque sensor this task is to generate velocity such that the forces are nullified
 CFovEEToToolTask
 CHorizontalAttitudeTask
 CJointLimitTask
 CLastTask"Fake" Task needed as last to algorithm, it has all fixed matrices of eye and zeros so no setxx are necessary updateMatrices is only necessary because father class Task say to implement it (it will be empty anyway)
 CManipulabilityTask
 CObstacleAvoidEETaskThe ObstacleAvoidEETask class Usage of this task can be for avoiding with the end effector, ground, objects, or other robot TODO for each obstacle implement a task OTHERWISE set this task not as scalar one but one row for each object to avoid. at the moment it avoid only the seafloor
 CObstacleAvoidVehicleTaskThe ObstacleAvoidVehicleTask class (where the obstacle is the other vehicle, at the moment only for this)
 CPipeReachTask
 CVehicleConstrainVelTaskThe vehicleConstrainVelTask class This task is a non-reactive one used to to constrain the velocities of the vehicle to the actual ones. It is needed for the parallel arm-vehicle coordination scheme, And it will be the highest priority task (being a constraint one) of the second list of tasks
 CVehicleNullVelTaskThe VehicleNullVel class. It is a non reactive task which is needed in manipulation phases where we want the vehicle to stay still while the arm is manipulating something. In such situation, this task should be putted as the highest priority task
 CVehicleReachTaskTask to make the vehicle reach a goal (both linear and angular position)
 CTransformsThe Transforms struct VARIABLE AND CONSTANT infos necessary to the mission, but not related directly to robot (e.g. position of a goal, control point in the world (tool point))
 CTransformsVisioThe Transforms struct VARIABLE AND CONSTANT infos necessary to the mission, but not related directly to robot (e.g. position of a goal, control point in the world (tool point))
 CVisionInterfaceCoordThe VisionInterfaceCoord class. It is the coordinator interface which take the hole estimated pose from the Vision Robot
 CVisionInterfaceVision
 CWorldInterfaceThe WorldInterface class to get position from world to anything else