Motion retargeting control for human-robot interaction
AssigneeHonda Motor Co., Ltd.
InventorsKatsu Yamane, Akshit Kaplish
Life of this patent
Estimating the term…
Abstract
Controlling a robot may be performed by calculating a desired velocity based on an operator contact force and a robot contact force, calculating a transformation matrix based on an operator pose, a robot pose, a robot trajectory, the operator contact force, and the robot contact force, calculating a least square solution to Jf+{circumflex over (v)}f based on the desired velocity, calculating a scaling factor based on a current joint position of a joint of the robot, calculating a first trajectory based on the least square solution, the scaling factor, and the transformation matrix, calculating the robot trajectory, calculating a joint command based on the robot trajectory and the robot pose, and implementing the joint command.
Claims18
A system for controlling a robot, comprising:
- an admittance controller, implemented via a processor, receiving an operator contact force fh and a robot contact force fr and calculating a desired velocity vf based on the operator contact force fh and the robot contact force fr;
- a retargeting controller, implemented via the processor, receiving an operator pose Rk, a robot pose q, a robot trajectory q*, the operator contact force fh, and the robot contact force fr and calculating a transformation matrix Tj which maps a human contact state to a robot contact state based on the operator pose Rk, the robot pose q, the robot trajectory q*, the operator contact force fh, and the robot contact force fr, wherein the operator pose Rk is received from a sensor worn by an operator of the robot;
- a force optimization controller, implemented via the processor, receiving the desired velocity vf and calculating a least square solution qf to Jf+{circumflex over (v)}f based on the desired velocity vf, wherein Jf+ is a Moore-Penrose pseudoinverse of Jf, wherein Jf is a Jacobian matrix of positions of contact points with respect to joint positions and calculating a maximum scaling factor sf based on a current joint position qj of a joint of the robot;
- a motion optimization controller, implemented via the processor, receiving the least square solution qf, the maximum scaling factor sf, and the transformation matrix Tj and calculating a first trajectory {dot over (q)}* based on the least square solution qf, the maximum scaling factor sf, and the transformation matrix Tj, wherein the motion optimization controller relaxes the least square solution qf based on the maximum scaling factor sf;
- a tracking controller, implemented via the processor, receiving the first trajectory {dot over (q)}* and the robot pose q, calculating the robot trajectory q* based on the first trajectory {dot over (q)}*, and calculating a joint command τ based on the robot trajectory q* and the robot pose q;
- and
- a motor controller, implemented via the processor, implementing the joint command τ at the joint of the robot.
A method for controlling a robot, comprising:
- calculating a desired velocity vf based on an operator contact force fh and a robot contact force fr;
- calculating a transformation matrix Tj which maps a human contact state to a robot contact state based on an operator pose Rk, a robot pose q, a robot trajectory q*, the operator contact force fh, and the robot contact force fr;
- receiving the operator pose Rk from a sensor worn by an operator of the robot;
- calculating a least square solution qf to Jf+{circumflex over (v)}f based on the desired velocity vf, wherein Jf+ is a Moore-Penrose pseudoinverse of Jf, wherein Jf is a Jacobian matrix of positions of contact points with respect to joint positions;
- calculating a maximum scaling factor sf based on a current joint position qj of a joint of the robot;
- calculating a first trajectory {dot over (q)}* based on the least square solution qf, the maximum scaling factor sf, and the transformation matrix Tj;
- relaxing the least square solution qf based on the maximum scaling factor sf;
- calculating the robot trajectory q* based on the first trajectory {dot over (q)}*;
- calculating a joint command z based on the robot trajectory q* and the robot pose q;
- and
- implementing the joint command τ at the joint of the robot.
A system for controlling a robot, comprising:
- a force sensor attached to the robot measuring a robot contact force fr;
- an admittance controller, implemented via a processor, receiving an operator contact force fh and the robot contact force fr and calculating a desired velocity vf based on the operator contact force fh and the robot contact force fr;
- a retargeting controller, implemented via the processor, receiving an operator pose Rk, a robot pose q, a robot trajectory q*, the operator contact force fh, and the robot contact force fr and calculating a transformation matrix Tj which maps a human contact state to a robot contact state based on the operator pose Rk, the robot pose q, the robot trajectory q*, the operator contact force fh, and the robot contact force fr, wherein the operator pose Rk is received from a sensor worn by an operator of the robot;
- a force optimization controller, implemented via the processor, receiving the desired velocity vf and calculating a least square solution qf to Jf+{circumflex over (v)}f based on the desired velocity vf, wherein Jf+ is a Moore-Penrose pseudoinverse of Jf, wherein Jf is a Jacobian matrix of positions of contact points with respect to joint positions and calculating a maximum scaling factor sf based on a current joint position qj of a joint of the robot;
- a motion optimization controller, implemented via the processor, receiving the least square solution qf, the maximum scaling factor sf, and the transformation matrix Tj and calculating a first trajectory {dot over (q)}* based on the least square solution qf, the maximum scaling factor sf, and the transformation matrix Tj, wherein the motion optimization controller relaxes the least square solution qf based on the maximum scaling factor sf;
- a tracking controller, implemented via the processor, receiving the first trajectory {dot over (q)}* and the robot pose q, calculating the robot trajectory q* based on the first trajectory {dot over (q)}*, calculating a joint command τ based on the robot trajectory q* and the robot pose q;
- and
- a motor controller, implemented via the processor, implementing the joint command τ at the joint of the robot.
Dependencies are inferred from the claim text.