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

Adds xpp_anymal #14

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open

Adds xpp_anymal #14

wants to merge 2 commits into from

Conversation

ferrolho
Copy link

@ferrolho ferrolho commented Jul 20, 2020

ANYbotics has (for some time now) made a description of ANYmal B available to the public. As such, I thought it would be appropriate to finally complete the XPP suite with the visualizer for ANYmal.

This PR will allow to visualize ANYmal in Rviz out-of-the-box, provided the robot description has been cloned/downloaded into the catkin workspace.

The PR should not be merged yet, as there are some glitches in the kinematics of the robot:
Screenshot from 2020-07-20 14-32-39

The values that need to be reviewed are:

  • hfe_to_haa_z, length_thigh, and length_shank in anymalleg_inverse_kinematics.h
  • base2hip_LF_ in inverse_kinematics_anymal.h

The method GetJointAngles() in anymalleg_inverse_kinematics.cc needs to be modified too, as currrently it is specifically tailored to the Hyq robot.

Finally, a small modification will also have to be made in ethz-adrl/towr. We will need to add

<include file="$(find xpp_anymal)/launch/anymal.launch"></include>

to the launch file towr/towr_ros/launch/towr_ros.launch.

@awinkler
Copy link
Contributor

awinkler commented Jul 21, 2020

Thanks for following up on this, yeah, i think that's a good idea. I'll see if I find time to look at this during the weekend.

My first thought is, in order to make this easily installable through ROS, we should copy the anymal_b_simple_description into xpp to make the whole code run with one sudo apt install ros-* command and you don't have to clone the description file from git separately in the right place. Of course giving proper attribution to the original repo and anybotics. Would this be okey @remod, @lisler? Or are you actually maybe planning on adding that repo to ROS sometime in the future? In that case we could just include it as a dependency.

@ferrolho
Copy link
Author

In my post above, I forgot to include a reminder to update the SRBD mass and inertia in towr/towr/include/towr/models/examples/anymal_model.h#L62-L68.

The values below are taken from a nominal configuration of the public model.

mass = 30.421396462
mass_matrix =   1.16485     -0.00137526   -0.00062895
               -0.00137526   2.21088      -0.000189223
               -0.00062895  -0.000189223   2.3175

I am not sure which specific joint configuration you (@awinkler) used to retrieve this information for the old model, so I used an arbitrary "nominal" configuration:

anim

@remod
Copy link

remod commented Jul 22, 2020

Thanks for following up on this, yeah, i think that's a good idea. I'll see if I find time to look at this during the weekend.

My first thought is, in order to make this easily installable through ROS, we should copy the anymal_b_simple_description into xpp to make the whole code run with one sudo apt install ros-* command and you don't have to clone the description file from git separately in the right place. Of course giving proper attribution to the original repo and anybotics. Would this be okey @remod, @lisler? Or are you actually maybe planning on adding that repo to ROS sometime in the future? In that case we could just include it as a dependency.

Hi @awinkler!

We do not have any plans to release a Debian package of the anymal_b_simple_description package. It is under BSD-3 license, so you can include it in your project if you want :)

@awinkler
Copy link
Contributor

Thanks for that input Remo!🙂

@awinkler
Copy link
Contributor

awinkler commented Aug 1, 2020

I added most of the elements above (see https://github.com/leggedrobotics/xpp/tree/anymal_integration) and also adapted the towr repo as you suggested (https://github.com/ethz-adrl/towr/tree/anymal_integration). Will merge once the IK is fixed.

I didn't have time to fix the inverse kinematics. As you said, this requires the correct values for the IK from the urdf file. It might even be neccessary to calculate e.g. the shin length by combining some of the values (as there is e.g. this offset of the knee to the rotational axis). But i still think the structure of the IK should be correct and also work in this case, just requires some digging into.

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.

None yet

3 participants