Giter VIP home page Giter VIP logo

humanoid_base_footprint's People

Contributors

dependabot[bot] avatar flova avatar ftsell avatar ijnek avatar jaagut avatar jgueldenstein avatar nfiedler avatar sammyramone avatar timonegk avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

humanoid_base_footprint's Issues

Move documentation to README

Is your feature request related to a problem? Please describe.

Should move documentation to a README file, since the package isn't part of bit-bots/bit-bots-docs anymore.

Release rot-conv as a third party library into ROS2

The rot-conv library must be released into ROS2 for this package to be released into ROS2.
Alternatively, rot_conv::QuatNoEYaw is the only function being used from rot_conv, so perhaps we could simply reimplement that function?

Question: What are those lines used for?

Hi there,
Thanks for your sharing of the repo, I am reading your code and notice those lines:

// Convert tf to eigen quaternion
Eigen::Quaterniond eigen_quat
(odom.transform.rotation.w, odom.transform.rotation.x, odom.transform.rotation.y,
odom.transform.rotation.z);
// can't use this out of some reasons tf2::convert(odom.transform.rotation, eigen_quat);
// Remove yaw from quaternion
Eigen::Quaterniond eigen_quat_out;
rot_conv::QuatNoEYaw(eigen_quat, eigen_quat_out);
// Convert eigen to tf quaternion
tf2::Quaternion tf_quat_out;
tf2::convert(eigen_quat_out, tf_quat_out);

It seems that those lines are never used later in the other part of the code. So I am wondering what they are used for?

Hope for your answer sincerely.

Listen for /support_foot and not just /walk_support_state

This should be done to increase compatibility with different action the robot can do.
For example a kick also needs to publish a support foot but it would not be logical to publish on /walk_support_state. It is also not practical to add a new subscriber to humanoid_base_footprint for every other action.

Publishing transforms by using tf2_ros::MessageFilter on JointStates

How about rather than having humanoid_base_footprint publish at a set frequency, we respond to transform changes using something like a tf2::MesssageFilter, as discussed in [tf2] get new transform as soon as possible (callback)?. That way humanoid_base_footprint transforms become available whenever new data is available to calculate it.

As the tf we have to publish is base_link -> base_footprint, applying the filter to the JointStates topic seems appropriate. Here is an example for one done for the Nao robot in ROS1

Using Timer instead of "Loop with wait"

Rather than having a loop with a "wait" inside, it would seem better to have a timer that fires at a set frequency, and do everything inside the timer callback.

Should either drop support for ROS2 Foxy and Galactic, or come up with alternatives to these problems

The master branch doesn't compile on ROS2 Foxy and Galactic, because of issues stated below:

  • Some imports have been renamed from .h files to .hpp files recently in Rolling (and these changes have not been backported to Galactic).

    - #include <tf2_eigen/tf2_eigen.h>
    - #include <tf2_geometry_msgs/tf2_geometry_msgs.h>
    + #include <tf2_eigen/tf2_eigen.hpp>
    + #include <tf2_geometry_msgs/tf2_geometry_msgs.hpp>
  • rclcpp::Clock::sleep_until is being used in base_footprint.cpp, but is a new feature in ROS2 Rolling, and didn't exist in ROS2 Foxy and Galactic

Two alternatives:

  • Try and support Foxy and Galactic, on a "galactic" branch. Any future PRs will be backported if possible until something is absolutely un-backportable.
  • Ditch Foxy and Galactic support because we haven't even made a release yet, and care about all the backporting business after we make our first release. This will involve removing CI for Focy and Galactic.

My instinct is option 2. Thoughts? @ros-sports/humanoid_base_footprint

Kick support foot must be treated different from walk support foot

Expected behavior

When kicking, the base footprint stays at the same position relative to the support foot.

Current behavior

During the kick, the base footprint only keeps the z position of the support foot, x and y are in the middle between the feet. This behavior is adequate for the walking, but not for the kick.

Possible Solution

There could be a separate subscriber for the kick setting an internal variable and as long as that variable is set, the base_footprint will be published at the same position relative to the support foot.

Steps to Reproduce

  1. roslaunch bitbots_dynamic_kick viz.launch
  2. rosrun bitbots_dynamic_kick dummy_client.launch
  3. Observer the base_footprint in rviz.

Context (Environment)

  • RViz
  • Simulator
  • Robot
  • Local

This issue might lead to a lot of problems in the whole vision, localization and behavior pipeline while kicking since base_footprint is used everywhere.

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.