Skip to content

New features for Absolem robot. #551

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

Merged
merged 9 commits into from
Apr 8, 2021
Merged

Conversation

peci1
Copy link
Collaborator

@peci1 peci1 commented Aug 17, 2020

This PR depends on #542.

New features were added to the Absolem robot model:

  • relative positional control of flippers
  • velocity and torque limits from <joint><limits> are now respected by the flipper controller
  • the FlipperControlPlugin was rewritten to use a more reliable implementation of the switching between positional and velocity control

@acschang
Copy link
Contributor

These new features will not be incorporated into the SubT Virtual Testbed prior to Cave Circuit. We will keep this PR open for consideration after Cave Circuit.

@peci1
Copy link
Collaborator Author

peci1 commented Aug 20, 2020

I know, that's okay ;)

@nkoenig
Copy link
Contributor

nkoenig commented Jan 13, 2021

The bounding box for this model is

Min[-0.608707 -0.296315 -0.188594] Max[0.608707 0.296317 0.615689]

@peci1 peci1 force-pushed the absolem_new_features branch from 7c8747b to fe3369c Compare February 10, 2021 16:53
@peci1
Copy link
Collaborator Author

peci1 commented Feb 10, 2021

I rebased on master and this PR is ready for review.

@peci1
Copy link
Collaborator Author

peci1 commented Feb 10, 2021

Review could be easier commit-by-commit as I kept distinct features separate.

To test the relative positional control:

LC_ALL=C LANG=C ign launch -v4 competition.ign circuit:=cave worldName:=simple_cave_01 robotName1:=X1 robotConfig1:=CTU_CRAS_NORLAB_ABSOLEM_SENSOR_CONFIG_1 localModel:=true

# lift up front left flipper by 0.5 rad; calling it for the second time should lift further
# if you issue the command in the middle of another positional command,
# it should treat position relative from where it currently is
rostopic pub /X1/flippers_cmd_pos_rel/front_right std_msgs/Float64 "data: -0.5" 

# push down front left flipper by 0.5 rad
rostopic pub /X1/flippers_cmd_pos_rel/front_right std_msgs/Float64 "data: 0.5" 

Further, the model now respects the pi/4 rad/s velocity limit of flipper joints from SDF. It also sets an explicit velocity limit of 0.8 rad/s in the plugin configurations, but this gets capped by the SDF limit. This should emit a warning on simulator startup, that the plugin is configured for higher velocity than the joint actually allows. If you're not happy about this warning, I can decrease the value in flipper control plugin to pi/4, too. Anyways, issuing a velocity command should get capped by the SDF limit:

rostopic pub /X1/flippers_cmd_vel/front_right std_msgs/Float64 "data: -1.5" 

# verify that the velocity is always between -0.78 and 0.78
rostopic echo /X1/joint_state/velocity[1]

@osrf-jenkins
Copy link

Build finished. No test results found.

@osrf-jenkins
Copy link

Build finished. No test results found.

@peci1
Copy link
Collaborator Author

peci1 commented Mar 3, 2021

I've updated this branch with master (no conflict) and simplified ECM handling by gazebosim/gz-sim#629 (released with ign-gazebo 4.6.0).

# Conflicts:
#	submitted_models/ctu_cras_norlab_absolem_sensor_config_1/src/flipper_control_plugin.cpp
@peci1
Copy link
Collaborator Author

peci1 commented Mar 16, 2021

@nkoenig @iche033 Friendly ping. I'd like to submit new sensor configs of Absolem, but it'd be more convenient if these changes were already merged. This PR has been open for 7 months now...

@mjcarroll
Copy link
Contributor

Tested out position, relative position, and velocity control with no adverse interactions on my system.

@mjcarroll mjcarroll requested a review from acschang March 25, 2021 21:08
@mjcarroll
Copy link
Contributor

@acschang Can you give this one more pass?

Copy link
Contributor

@acschang acschang left a comment

Choose a reason for hiding this comment

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

Functionality LGTM. I don't see any adverse behavior with other functionality from the small set of tests I did.

Also, in peci1's example for velocity control, use the following:

rostopic pub /X1/flippers_cmd_vel/front_right std_msgs/Float64 "data: -1.5" 
rostopic echo /X1/joint_state/velocity[3]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants