In sim, the IiwaDriver uses AddIiwa() while creating the controller plant, which always adds the iiwa7. This behavior is incorrect when using the iiwa14.
One solution is to extend the IiwaDriver struct to specify whether the IIWA is an iiwa7 or iiwa14. But this seems a bit redundant as the iiwa model is already specified in the scenario file.
The correct solution seems to be indicated in Russ' TODO comment viz add the iiwa model provided in the scenario file, and freeze the iiwa's child model instances. Russ' comment says that freezing child instances is not implemented yet and is waiting for upstream Drake PRs. Now that RemoveJoint() has landed, is this unblocked?
Problem
In sim, the
IiwaDriver
usesAddIiwa()
while creating the controller plant, which always adds the iiwa7. This behavior is incorrect when using the iiwa14.@cohnt hardcodes the iiwa14 in his fork, but ideally both iiwa7 and iiwa14 should be supported.
Potential solutions
IiwaDriver
struct to specify whether the IIWA is an iiwa7 or iiwa14. But this seems a bit redundant as the iiwa model is already specified in the scenario file.RemoveJoint()
has landed, is this unblocked?PR
PR that fixes this: #317
References