Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update to latest tesseract #22

Merged
merged 51 commits into from
Aug 25, 2023

Conversation

marrts
Copy link
Member

@marrts marrts commented May 10, 2023

Updating to the latest version of Tesseract, including the latest tesseract_ros2 changes.

  • Of particular note is the new plugin-based taskflow setup

Currently WIP while waiting for tesseract-robotics/tesseract_planning#314 to be resolved.

@marrts marrts force-pushed the update/tesseract_0.16 branch from 7d1c0bd to c12d05b Compare June 15, 2023 16:41
@marrts
Copy link
Member Author

marrts commented Jun 15, 2023

Updated to latest commit of all tesseract branches.

Currently a bug with custom task constant tcp time param, but it does run.

@marrts marrts changed the title WIP: Update/tesseract 0.16 Update/tesseract 0.16 Jun 15, 2023
@marrts marrts changed the title Update/tesseract 0.16 Update/tesseract 0.17 Jun 15, 2023
@marrts
Copy link
Member Author

marrts commented Jun 15, 2023

This is now fully working, but failing CI because it is using an older tesseract docker image to build off of.

snp_motion_planning/CMakeLists.txt Outdated Show resolved Hide resolved
Comment on lines +11 to +17
static const std::string TRAJOPT_DEFAULT_NAMESPACE = "TrajOptMotionPlannerTask";
static const std::string OMPL_DEFAULT_NAMESPACE = "OMPLMotionPlannerTask";
static const std::string DESCARTES_DEFAULT_NAMESPACE = "DescartesMotionPlannerTask";
static const std::string SIMPLE_DEFAULT_NAMESPACE = "SimpleMotionPlannerTask";
static const std::string MIN_LENGTH_DEFAULT_NAMESPACE = "MinLengthTask";
static const std::string CONTACT_CHECK_DEFAULT_NAMESPACE = "DiscreteContactCheckTask";
static const std::string ISP_DEFAULT_NAMESPACE = "IterativeSplineParameterizationTask";
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are these actually used in this file? Also, do are these already defined somewhere in a tesseract header? If so and if we need these values, let's not redefine them

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These directly correspond to the names given in the task_composer_plugins.yaml file. They are not hardcoded any where in Tesseract, but I did copy the names from the example in Tesseract. Perhaps that should be made more clear.

snp_motion_planning/src/planning_server.cpp Outdated Show resolved Hide resolved
@marip8
Copy link
Member

marip8 commented Jun 21, 2023

I'm trying to build this now, and it seems like this PR actually targets the master branch of tesseract_planning not 0.17.0 and not 0.16.3 (from the dependencies.repos). Can you update the name of the PR and the .repos file to the correct version?

@marrts marrts changed the title Update/tesseract 0.17 Update to latest tesseract Jun 21, 2023
@marrts
Copy link
Member Author

marrts commented Jun 21, 2023

I'm trying to build this now, and it seems like this PR actually targets the master branch of tesseract_planning not 0.17.0 and not 0.16.3 (from the dependencies.repos). Can you update the name of the PR and the .repos file to the correct version?

Updated

@marrts
Copy link
Member Author

marrts commented Jun 21, 2023

I'm suddenly getting IK solver failures, I need to figure out what has happened.

@marrts
Copy link
Member Author

marrts commented Jun 22, 2023

I'm suddenly getting IK solver failures, I need to figure out what has happened.

It seems like something changed to somehow break the IKfast implementation. If I use our generated IKFast the motion planner crashes, but it works just fine with KDL.

I tested the code before this PR and confirmed IKFast was working. It would generate 4 solutions per IK and when I switched to KDL it would only generate 1 (it's also obvious when using KDL because the terminal populates with a bunch of extra text).

I also duplicated the IKFast crashing on another machine that was working fine with the code before this PR.

Tesseract hasn't had any changes to the IKFast code in the tesseract_kinematics package and I confirmed that it was finding and loading our generated motoman ikfast solver by adding debugging print statements in tesseract where plugins are loaded.

When I attach a debugger to the motion planner it crashes at this line because I guess some values are invalid: https://github.com/marrts/scan_n_plan_workshop/blob/789110816e1805b373f8368146d6344077714451/snp_motion_planning/src/plugins/kinematics/motoman_hc10_ikfast_solver.hpp#L7512

I haven't figured out why this is happening yet.

@marrts marrts force-pushed the update/tesseract_0.16 branch from a2f6b0e to 6bbbe4f Compare July 17, 2023 20:05
@marrts
Copy link
Member Author

marrts commented Jul 17, 2023

@marip8 This is passing CI for Foxy now, so it should be ready to merge and we can make issues about getting humble and rolling passing CI.

Although, I'm not sure why clang-format is failing. I don't see anything in the CI output and nothing changes locally for me when I run clang format.

@rjoomen
Copy link

rjoomen commented Jul 27, 2023

Could the IKFast crashing have to do with the LAPACK dependencies of qpOASES, which was recently added?

@marrts
Copy link
Member Author

marrts commented Jul 27, 2023

Could the IKFast crashing have to do with the LAPACK dependencies of qpOASES, which was tesseract-robotics/trajopt#327?

I'm not familiar with those libraries and how they might impact IKFast. Is there a specific reason why you think these might be causing a problem?

Also, I know that you've been working on a PR related to IKFast in Tesseract, did you experience any similar issues, or is that working smoothly?

@rjoomen
Copy link

rjoomen commented Jul 31, 2023

I did not experience similar issues, but I checked, and my IKFast solution does not use any of the LAPACK routines, and neither do the solvers used for the unit tests in tesseract_kinematics (abb_ird2400 and iiwa7).

It just occurred to me this might be the problem as it could be a dependency issue, as nothing did change to your code.

@srsidd

This comment was marked as off-topic.

@marip8 marip8 mentioned this pull request Aug 3, 2023
@marip8 marip8 merged commit 27be614 into ros-industrial-consortium:master Aug 25, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants