• No se han encontrado resultados

DISPOSICIONES GENERALES Artículo 103.- ACTOS DE LA ADMINISTRACIÓN TRIBUTARIA

TÍTULO VII TRIBUNAL FISCAL

DISPOSICIONES GENERALES Artículo 103.- ACTOS DE LA ADMINISTRACIÓN TRIBUTARIA

During mobile manipulation, autonomous robots can achieve most tasks using a set of atomic action primitives as shown in Table 4.1. Using these primitives, I constructed a number of tasks very common for mobile manipulators. Their sequence and composition of primitives is detailed in Figure 4.8.

The ve basic actions an autonomous mobile manipulator needs to be capable of are closing and opening its hand, moving its base, reaching for entities in its vicinity, and visually identifying its surroundings. Additionally, a sixth capability is moving its head  or Pan/Tilt Unit (PTU)  situating its camera system. While this is not notoriously necessary, it gives the robot addi- tional freedom to explore the environment and relieves it of unnecessarily using its navigational capabilities. This reduces localization uncertainty from odometry drift, and the risk of collisions. In Figure 4.8, six basic activities are decomposed into the above primitives necessary to perform them. Each of the activities can have one or more preconditions, such as rst nding, localizing, and approaching an object before it can be picked up, or identifying a drawer handle before it can be grasped. These additional steps are highly context dependent and are not part of the actual task. They need to be taken care of by a higher level plan that checks and ensures the availability of all required information to perform the more basic tasks. The same plan (or its parent plans) must take care of handling failures that were emitted while performing the basic activities, and react accordingly by either retrying, choosing a dierent task, or by giving up.

In the following paragraphs, each of the basic activities is discussed briey, together with their specic requirements, potential pitfalls, and information that was left out of the Figure for the sake of brevity and clarity.

Picking up an object (Figure 4.8a) An object needs to be in the robot's vicinity in order to be picked up. The robot needs to be kinematically able to reach it without colliding with other objects. All necessary information about the object (e.g. grasp points) and task (e.g. which end eector and which grasp point to use) must be available prior to picking it up, partially acquired through e.g. a Searching for an object action.

First, the robot needs to approach the object with its end eector and assume a pregrasp pose (the role of pre- and post-poses will be further explained in Section 4.3.3). While doing

3. Mobile Manipulation Picking up an object Pregrasp Reach Grasp Reach Enclose Lift Reach Carry Reach (a) Picking up an object

Putting down an object Preputdown Reach Putdown Reach Release Unhand Reach Park Reach (b) Putting down an object

Opening a container Grasp handle Reach, Enclose Pull close to robot Reach Move base away Navigate Unhand handle Release, Reach (c) Opening a container (drawer, cupboard) Closing a container Grasp handle Reach, Enclose Move base close Navigate Push away from robot Reach Unhand handle Release, Reach (d) Closing a container (drawer, cupboard) Searching for an object

Make object accessible Possibly All Look at object Look Identify object See (e) Searching for an object

Transporting an object Search for object Possibly All Pick up object All ex- cept See Move to tar- get location Navigate Access tar- get location Possibly All Putdown object All ex- cept See (f) Transporting an object

Figure 4.8: Common tasks for mobile manipulation robots, as constructed from atomic action primitives. Possibly All denotes tasks that may or may not require all primitives, such as accessing target locations (e.g. table top vs. drawer).

so, the end eector is positioned as close to the object as possible, while not colliding with other objects around it. It then goes into an actual grasp pose, linearly moving the end eector towards the object (in case of a full closure grasp). During this phase, collisions are ignored to account for object model errors that would make the object appear too large, making grasping it impossible. Alternatively, a motion planner could be allowed a collision penetration depth for the object model. The end eector is then closed to xate the object. The motion planner must be informed of two changes: Attaching the collision model of the grasped object to the end eector, and adding its mass to the kinematic chain; for heavy objects, the dynamics of the robot arm will change, potentially resulting in controller failures when ignored.

To take minor model and perception errors into account, the robot then slightly lifts the object from the table. Possible misperception could position it inside of the table model in the collision scene, otherwise making moving an object xated to the robot's end eector impossible, thus preventing successful motion planning. After lifting, the robot assumes a carry pose for transport with the end eector holding the object, again avoiding collisions in a free space motion.

Consecutive motion planning tasks for this end eector now need to take the object's shape into account, as it stays attached to the robot until it is put down, lost, or taken away.

Generalized Plan Design and Representation for Robots

Putting down an object (Figure 4.8b) Similar to picking up an object, putting it down requires immediate vicinity to the location where the object is to be placed. This means for most cases that this action was preceeded by a Transporting an Object action. Additionally, the target location has to be perceived as free, with enough space to t the object. The robot has to be kinematically able to reach the target location such that the object can reach its nal pose.

The object to put down needs to be brought close to its target location rst. To do so, under consideration of the collision environment, the robot assumes a preputdown pose. The object is then linearly moved into place, to the nal putdown pose, ignoring collisions to account for possible errors in the environment model and the target location (e.g. collision model of the put down surface is geometrically higher than the target pose). The object is then released from the end eector, which is then linearly moved away from the object into an unhand pose close to the object. This is done for the same reasons that, during picking up an object, a pregrasp pose is assumed. After releasing the object, it is important to detach the object model from the robot model to inform the motion planner of the changes in the kinematic robot chain and the end eector extents. The end eector is then moved into a park pose, avoiding collisions in a free space motion.

Opening a container (Figure 4.8c) The container to open needs accessible handles that the robot can either pull, push, or otherwise move to uncover the container's contents. At least one handle needs to be kinematically reachable, and its exact pose and characteristics need to be available to the robot. Additionally, enough space needs to be available for moving the robot's corpus out of the way when opening the container.

Initially, the handle used to open the container must be grasped. Depending on the charac- teristics of the container, it is usually either attached to a prismatic joint (drawers), or a revolute joint (e.g. cupboards, fridges, dishwashers), which aects the trajectory used for opening the container. This information is either already known when the container has been identied (and the information is available in an external knowledge base), or is dynamically infered based on the force excerted on the grasping hand when moving the container door [77]. The handle is pulled close to the robot to make base navigation with a grasped handle more tractable. The base is then moved to fulll opening the container. Base movement is only necessary when e.g. a drawer opens farther than the robot can pull its arm back or when the initial base position is too close to the drawer already. Navigating back allows for additional space along the opening axis. Opening a cupboard with a revolute door and a long door lever can require evading the opening door, also requiring base movement. Figure 4.9 depicts some examples for this. Finally, the handle is unhanded to allow other navigation and manipulation activities.

Closing a container (Figure 4.8d) Closing a container is done in the exact opposite way than opening it. The robot requires information about the door handle, grasps it, moves the base such that the largest part of the opening trajectory is covered, and pushes the door close. The handle is then again unhanded.

Contrary to opening a container, handle information is not essential when closing it. Pushing the door into the appropriate direction is a faster alternative to close it and requires no precise grasping, but leaves the door dynamics uncertain and can lead to unwanted collisions.

Searching for an object (Figure 4.8e) Searching and identifying a desired object requires at least a vague description of what the performing robot needs to look for, and a perception system that can process this description to yield either success or failure upon object inspection. In human households, objects can reside on tables, in drawers, cupboards, behind doors, or in any other enclosed, covered, or obstructed area. Making an object accessible means nding a potential residence location, approaching it, and opening or uncovering it if necessary (as in

3. Mobile Manipulation Robot Robot Robot x y

(a) Opening a drawer with a prismatic joint

Robot Robot Robot x y (b) Opening a cupboard with a revolute door joint

Robot Rob ot Rob ot x y

(c) Opening a room door in a narrow corridor Rob ot Rob ot Rob ot z x

(d) Opening a dishwasher door

Figure 4.9: Most common cases of extra space requirements and constraints when opening containers of dierent kinds.

opening a container). To test available objects against the desired description, the robot points its camera at the object, and processes perceived visual cues to identify what it sees. These steps (together with closing the container again) are repeated until either the object is found, or a frustration tolerance is exceeded.

Transporting an object (Figure 4.8f) Besides the preconditions of its subtasks, object transport requires information about the object to deliver, and its target location. Necessary object knowledge includes constraints such as not tilting a full mug, or a maximum velocity for fragile, unstable, or stacked objects.

For transporting an object, it rst has to be searched and localized. The robot then picks it up and moves its base close to the target location. This location needs to be made accessible (e.g. opening a door, etc.) before the robot can put down the object.

For situations that require more than one hand to carry  such as heavy objects, or objects of large dimensions  making the target location accessible needs to be done before actually acquiring the object. These two variants have to be distinguished by a higher level plan that has a priori information about the task, or that can branch into the respective strategy after the object has been found and identied.