ros-sports / humanoid_base_footprint Goto Github PK
View Code? Open in Web Editor NEWThis ROS package includes a node which provides the base footprint frame for any humanoid robot following REP - 120.
License: Apache License 2.0
This ROS package includes a node which provides the base footprint frame for any humanoid robot following REP - 120.
License: Apache License 2.0
Want Github Action CI to run for all supported ROS2 distros.
Should move documentation to a README file, since the package isn't part of bit-bots/bit-bots-docs anymore.
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?
Hi there,
Thanks for your sharing of the repo, I am reading your code and notice those lines:
humanoid_base_footprint/src/base_footprint.cpp
Lines 140 to 152 in 2e9c85b
Hope for your answer sincerely.
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.
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
Pull request Template is out of date, should be updated.
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.
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:
My instinct is option 2. Thoughts? @ros-sports/humanoid_base_footprint
When kicking, the base footprint stays at the same position relative to the support foot.
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.
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.
roslaunch bitbots_dynamic_kick viz.launch
rosrun bitbots_dynamic_kick dummy_client.launch
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.
BaseFootprintBroadcaster::loop() is never called. Where do we start loopin' ?
I'd like to remove .rdrmanifest
as it is specific to bit-bots.
Refer to this conversation on a PR
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.