1 Introduction
-
A method (TOORAD) for how a robot and person’s actions can be jointly optimized for dressing tasks.
-
An implementation of our method applied to a PR2 assisting several participants with pulling sleeves of a hospital gown onto their arms.
-
An evaluation of our implementation with participants with disabilities.
-
A survey of people with disabilities on their needs and capabilities to inform this and other works.
2 Related work
2.1 Learning for robot-assisted dressing
2.1.1 Learning from demonstration
2.1.2 Reinforcement learning
2.2 Perceiving and modeling the user for robot-assisted dressing
2.3 User-interaction for robot-assisted dressing
2.4 Planning for robot-assisted dressing
2.5 Planning for mobile manipulators
2.6 Integrating task and motion planning
3 Task optimization of robot-assisted dressing (TOORAD)
3.1 Problem definition
\(\mathop {\mathrm{arg}\,\mathrm{max}}\limits _{{{\varvec{A}}}_{\text {h}, \text {r}}\in \mathcal {U}^{\text {c}}} \quad R_{\text {d}}({{\varvec{A}}}_{\text {h}, \text {r}})\)
| (2) |
\(\begin{array}{ll}R_{\text {d}}({{\varvec{A}}}_{\text {h, r}}) =-\psi C_{\text {n}}(N) \\ \qquad \quad \quad \qquad + \frac{1}{N} \sum \limits _{i=1}^{N}\Big (-\zeta C_{t}({\varvec{c}}_{\text {h},i}) - \eta C_{s}({\varvec{c}}_{\text {h},i},{\varvec{t}}_{\text {r},i}) + \gamma \big (\alpha R_{reach}({\varvec{c}}_{\text {h},i}, {\varvec{c}}_{\text {r},i}, {\varvec{t}}_{\text {r},i}) + \beta R_{manip}({\varvec{c}}_{\text {h},i}, {\varvec{c}}_{\text {r},i}, {\varvec{t}}_{\text {r},i})\big )\Big )\end{array}\)
| (3) |
Subject to: | |
− Collision constraints | |
− Garment stretching constraints | |
− Range-of-motion constraints of the person | |
Where: | |
− \({{\varvec{A}}}_{\text {h}, \text {r}} = \big \{ \{{\varvec{c}}_{h,1},{\varvec{c}}_{r,1},{\varvec{t}}_{r,1}\}, \ldots , \{{\varvec{c}}_{h,N},{\varvec{c}}_{r,N},{\varvec{t}}_{r,N}\} \big \}\) | |
− N is the number of subtasks, \(N=\text {length}({{\varvec{A}}}_{\text {h}, \text {r}})\) | |
− \(C_{n}\) is a cost on the number of subtasks | |
− \(C_{t}\) is a cost on torque experienced at the person’s shoulder | |
− \(C_{s}\) is a cost on stretching the garment | |
− \(R_{\text {reach}}\) is a reward for how much of the trajectory the robot can reach | |
− \(R_{\text {manip}}\) is a reward for the dexterity of the robot arm along the trajectory | |
− \(\psi , \zeta , \eta , \gamma , \alpha , \beta \) are weights for the terms in the objective function |
\(\mathop {\mathrm{arg}\,\mathrm{max}}\limits _{\varvec{\pi }} -\psi C_{\text {n}}(N) + \frac{1}{N} \sum \limits _{i=1}^{N}\big ( F(\pi _i)\big )\)
| Top-level optimization to plan subtasks | (8) |
Where: | ||
\(F(\pi _i)=\mathop {\mathrm{max}}\limits _{{\varvec{c}}_{\text {h},i}} \big (-\zeta C_{t}({\varvec{c}}_{\text {h},i}) - \eta C_{s}({\varvec{c}}_{\text {h},i},\pi _i({\varvec{c}}_{\text {h},i})) + \gamma R_{\text {r}}({\varvec{c}}_{\text {h},i},\pi _i({\varvec{c}}_{\text {h},i}))\big ) \)
| Mid-level optimization of human configuration | (9) |
\(R_{\text {r}}({\varvec{c}}_{\text {h},i},\pi _i({\varvec{c}}_{\text {h},i})) = \mathop {{max}}\limits _{{\varvec{c}}_{\text {r},i}} \big (\alpha R_{reach}({\varvec{c}}_{\text {h},i}, {\varvec{c}}_{\text {r},i},\pi _i({\varvec{c}}_{\text {h},i})) + \beta R_{manip}({\varvec{c}}_{\text {h},i}, {\varvec{c}}_{\text {r},i}, \pi _i({\varvec{c}}_{\text {h},i}))\big )\)
| Lower-level optimization of robot configuration | (10) |
And where: | ||
− \(\varvec{\pi } = \{\pi _1, \ldots , \pi _N\}\) | ||
− \({\varvec{t}}_{\text {r},i}=\pi _i({\varvec{c}}_{\text {h},i})\) | ||
− \(N=\text {length}(\varvec{\pi })\) | ||
All subject to: | ||
− Collision constraints | ||
− Garment stretching constraints | ||
− Range-of-motion constraints of the person | ||
− \(C_{n}\) is a cost on the number of subtasks | ||
− \(C_{t}\) is a cost on torque experienced at the person’s shoulder | ||
− \(C_{s}\) is a cost on stretching the garment | ||
− \(\varvec{c_{\text {h},i}} \in \mathcal {H}\) | ||
− \(\varvec{\pi } \in \varvec{\varPi }\) |
3.2 Assumptions
3.3 Optimization architecture
3.3.1 Optimization algorithms
3.4 Selecting candidate trajectory policies
3.4.1 Determining the human configuration space of the policy
-
The person’s body is not in self-collision.
-
The robot’s tool does not collide with the person.
-
The trajectory is successful in the cloth-person physics simulator.
3.5 Constraints
-
Stretching limits of the garment.
-
The person’s range of motion.
-
The person’s body is not in self-collision.
-
The robot does not collide with the person, wheelchair or garment.
-
The garment does not experience interference from the wheelchair.
-
\({\varvec{c}}_{\text {h},i}\in \mathcal {H}\)
3.6 Subtask optimization
3.7 Human optimization
3.7.1 Cost on torque
3.7.2 Cost on stretching the garment
3.8 Robot optimization
4 TOORAD implementation details
4.1 Simulators
4.2 Practical additions to the optimization
5 Evaluation
5.1 System implementation
5.1.1 Grasping
5.1.2 Sensing
5.1.3 Control
5.2 Study with participants with disabilities
5.2.1 Participant details
5.2.2 Questionnaire on habits, needs, capabilities, and thoughts on robot-assisted dressing
Pre-experiment questions (\(N=6\)) | Score: mean (std) |
When I select clothing, the ease of don and doff is important | 6.3 (0.74) |
If a robot could assist me with dressing to the same effectiveness as my current methods, I would allow the robot to assist me with dressing | 6.3 (0.74) |
Post-experiment questions (\(N=4\)) | Score: mean (std) |
The system successfully accomplished tasks | 7.0 (0.0) |
I felt comfortable using the robot-assisted dressing system | 6.3 (1.15) |
I would prefer receiving dressing assistance from a robot than another human | 4.7 (1.53) |
I would like to receive this form of dressing assistance from a robot in the future | 5.3 (1.53) |