personalrobotics / ada_ros2

ROS2 Hardware Interface and Description for the ADA Robot
BSD 3-Clause "New" or "Revised" License
2 stars 1 forks source link

Move cartesian controller to selectively damped least squares solver #46

Closed amalnanavati closed 6 months ago

amalnanavati commented 6 months ago

Description

Our cartesian controller currently uses the damped least squares solver. It works well, but has unexpected and scary motion (that often speeds up) near singularities. The motion near singularities also often deviates along unintuitive dimension of the end effector pose (as in, visually I feel the goal could have been better-achieved by deviating along a different dimension). Further, tuning alpha is unintuitive imho.

Instead, this PR shifts our cartesian controller to selectively damped least squares, which adaptively chooses a damping factor, and does so separately for each dimension that has reached singularity. As a result, it promises to have better performance at singularities.

Note that both solvers are implemented in here (the header files for each implementation link to the above papers).

Testing