personalrobotics / aikido

Artificial Intelligence for Kinematics, Dynamics, and Optimization
https://personalrobotics.github.io/aikido/
BSD 3-Clause "New" or "Revised" License
213 stars 30 forks source link

Check ability of Robot class to handle R0 joints #622

Closed egordon closed 1 year ago

egordon commented 1 year ago

Previously, the Robot class only worked with "controlled MetaSkeletons" by default (i.e. the MetaSkeleton stripped of all fixed and R0 joints). However, our planners do not make that distinction by default. Therefore, there were number-of-joint mismatches between many generated trajectories and their corresponding MetaSkeletons when checking state space compatibility.

The solution was to either: (1) Update the codebase to strip all R0 joints from any MetaSkeletons we plan on. OR (2) Just remove the concept of joints entirely from the MetaSkeletonStateSpace and only deal with DoFs.

Because DART already deals only with DoFs in functions like "getPositions", this push goes for the latter.

As a consequence, some conversion code that claims to only work with R1 and SO2 joints was updated to allow R0 joints (which make no change to code execution anyway).


Before creating a pull request

Before merging a pull request

codecov[bot] commented 1 year ago

Codecov Report

Merging #622 (17dc0b3) into master (1303e3f) will increase coverage by 0.01%. The diff coverage is 55.55%.

:exclamation: Current head 17dc0b3 differs from pull request most recent head b670276. Consider uploading reports for the commit b670276 to get more accurate results

@@            Coverage Diff             @@
##           master     #622      +/-   ##
==========================================
+ Coverage   76.13%   76.14%   +0.01%     
==========================================
  Files         206      206              
  Lines        7231     7230       -1     
==========================================
  Hits         5505     5505              
+ Misses       1726     1725       -1     
Impacted Files Coverage Δ
.../control/KinematicSimulationTrajectoryExecutor.cpp 88.05% <ø> (+2.55%) :arrow_up:
...r/vectorfield/MoveEndEffectorOffsetVectorField.cpp 72.97% <0.00%> (-2.03%) :arrow_down:
src/trajectory/util.cpp 92.95% <33.33%> (-0.62%) :arrow_down:
src/statespace/dart/MetaSkeletonStateSpace.cpp 69.09% <100.00%> (+0.82%) :arrow_up:
src/planner/ompl/CRRT.cpp 72.95% <0.00%> (-0.52%) :arrow_down: