Giter Club home page Giter Club logo

trac_ik's Introduction

trac_ik

ROS 2 port of trac_ik, an alternative Inverse Kinematics solver to the popular inverse Jacobian methods in KDL.

This repo contains 5 ROS 2 pacakges:

Link to the original repository: https://bitbucket.org/traclabs/trac_ik/src/master/

trac_ik's People

Contributors

alecive avatar aprotyas avatar awesomebytes avatar davetcoleman avatar de-vri-es avatar facontidavide avatar gavanderhoorn avatar mamoll avatar mikaelarguedas avatar mintar avatar mlanighan avatar pbeeson avatar rkeatin3 avatar swhart115 avatar tykurtz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

trac_ik's Issues

Update documentation to reflect changes.

Obviously, this fork entailed a lot of changes to the original repository.

All such changes should be documented appropriately in package-specific READMEs, at the minimum.

Add CI.

I haven't yet sorted out the logistics, but a Github actions based CI pipeline would probably be the least friction path for now.

THANKS!

Just wanted to say thank you. You saved me 1 day of work today :)

I wonder if you would accept pull requests. I would like to remove the math3d.h and use Eigen instead

Add tests for `trac_ik_lib`.

All packages are missing tests, but trac_ik_lib hurts the most from their absence. The goal should be to write some unit tests for the trac_ik::ik_solver class, at minimum.

This ticket is a bit complicated. There is definite value in it, but I'm not sure how to best approach it.

Add ROS 2 support

This is a meta-ticket that I'll use to track progress for multiple smaller items. Notably:

  • trac_ik_lib: (#2)
    • Migrate parameters business to be rclcpp compliant.
      • ⚠️API break⚠️: As a fallout of this directive, I've changed a TracIK constructor to accept a std::string of the URDF XML robot description file, rather than a std::string of the parameter housing the robot description XML. This was necessary because parameters are not global in ROS 2, and because I didn't want to publish the XML on a robot_description topic (although that's how it's done in robot_state_publisher).
    • Convert roscpp logging macros to rclcpp logging macros.
    • Move from boost::posix_time::ptime to std::chrono::time_point.
      • This is not exactly needed, but I'd like to remove superfluous boost dependencies.
  • trac_ik_kinematics_plugin: (#9)
    • Write the plugin for moveit2.
    • Update moveit documentation about the trac_ik library and about writing said plugins.
  • trac_ik_python: (#5)
    • Move from rospy to rclpy.
    • Use required ament_cmake_python functions to install the package.
    • Remove boost dependencies.
    • Move from tf/tf_conversions to tf2/tf2_kdl.
    • Settle on the trac_ik Python class API. What to do about the URDF string? Ideally it should mimic trac_ik_lib.
    • Update tests to be ROS 2 compliant.
  • trac_ik_examples: (#2)
    • Convert ROS 1 examples to ROS 2 equivalents.
    • Migrate launch file to be ROS 2 compliant.
    • Import a pr2.urdf file into the package launch tree.
      • This can be achieved by manually calling xacro on the pr2.urdf.xacro from the pr2_description package.
      • This is necessary because pr2_common is not published as a ROS 2 package.
    • Migrate parameters business to be rclcpp compliant.
    • Move from boost::posix_time::ptime to std::chrono::time_point.
      • This is not exactly needed, but I'd like to remove superfluous boost dependencies.
  • Miscellaneous:
    • #10
    • #11
    • #7
    • Move all packages from catkin to ament.
    • Change name to trac_ik2?
    • #8
    • Remove previous release CHANGELOGs.
    • #13
    • Remove previous tags.
    • Migrate from math3d.h to Eigen for matrix math. #26 (comment)
  • Community (?):

Enable common linters.

ament_lint_common should suffice. It will be useful to figure out if some files should not be linted.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.