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

Add light weight suction gripper with updated multicopter velocity controller #196

Merged
merged 1 commit into from
Jul 29, 2022

Conversation

iche033
Copy link
Collaborator

@iche033 iche033 commented Jul 28, 2022

Signed-off-by: Ian Chen ichen@osrfoundation.org

Alternative to #194

In comparison to #194, this PR adds the proposed changes while preserving existing behavior of multicopters with the original suction grippers by

  • adding a new mbzirc_suction_gripper_light model with the proposed mass changes
  • adding a parameter to multicopter velocity controller plugin to enable/disable rotor thrust computation changes
    • the updated controller with the thrust changes is only enabled if a quad / hexrotor is equipped with the lightweight version of the suction gripper

Some minor issues I noticed when testing the lightweight gripper:

  • a quadrotor with light weight suction gripper and no payload drifts slowly upwards in z when set to hover, i.e. linear vel set to zero
  • a hexrotor with light weight suction gripper is slight more unstable compared to the original suction gripper.

It's possible that we could tune other params to make the flight behavior more stable but at this stage, we prefer not to make more changes. The original gripper has its own caveats. We just give the users an extra option to choose whichever works best for them.

To test:

  1. launch the test environment

    ros2 launch ros_ign_gazebo ign_gazebo.launch.py ign_args:="-v 4 -r test/simple_demo_manip.sdf"
    
  2. Remove a test model in this environment that is not needed

    ign service -s /world/simple_demo/remove --reqtype ignition.msgs.Entity --reptype ignition.msgs.Boolean --timeout 300 --req 'name: "box1kg" type: MODEL'
    
  3. Spawn a quadrotor with the lightweight suction gripper - the new gripper should be green in color

    ros2 launch mbzirc_ign spawn.launch.py name:=quadrotor_1 world:=simple_demo model:=mbzirc_quadrotor type:=uav x:=-0  y:=2.05 z:=1.92 R:=0 P:=0 Y:=0 gripper:=mbzirc_suction_gripper_light
    
  4. Enable suction

    ros2 topic pub --once /quadrotor_1/gripper/suction_on std_msgs/msg/Bool 'data: True'
    
  5. Take off with the blue small box payload

    ros2 topic pub --once /quadrotor_1/cmd_vel geometry_msgs/msg/Twist '{linear: {x: 0.0, y: 0.0, z: 5}, angular: {x: 0.0, y: 0.0, z: 0.0}}'
    

    the quadrotor should fly upwards in z faster than with the original suction gripper

  6. Make the quadrotor hover

    ros2 topic pub --once /quadrotor_1/cmd_vel geometry_msgs/msg/Twist '{linear: {x: 0.0, y: 0.0, z: 0}, angular: {x: 0.0, y: 0.0, z: 0.0}}'
    

    the quadrotor should hover in place with some small drift

…ntroller

Signed-off-by: Ian Chen <ichen@osrfoundation.org>
@iche033 iche033 mentioned this pull request Jul 28, 2022
@iche033 iche033 requested a review from caguero July 28, 2022 05:25
Copy link

@pieniacy pieniacy left a comment

Choose a reason for hiding this comment

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

Code and tests look fine!

simplescreenrecorder-2022-07-28_14.52.16.mp4

Copy link
Collaborator

@caguero caguero left a comment

Choose a reason for hiding this comment

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

It works for me!

@iche033 iche033 merged commit 52474ac into main Jul 29, 2022
@iche033 iche033 deleted the add_suction_gripper_light branch July 29, 2022 00:41
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.

3 participants