personalrobotics / ada_ros2

ROS2 Hardware Interface and Description for the ADA Robot
BSD 3-Clause "New" or "Revised" License
2 stars 1 forks source link

Implement MoveIt Servo #23

Closed amalnanavati closed 11 months ago

amalnanavati commented 11 months ago

Description

This PR configures MoveIt Servo and its affiliated controllers.

Testing

Setup:

  1. Pull pr_ros_controllers#28 and re-build your workspace.
  2. Launch the force-torque sensor:
    1. Sim: ros2 run ada_feeding dummy_ft_sensor.py
    2. Real: ros2 run forque_sensor_hardware forque_sensor_hardware
  3. Launch MoveIt:
    1. Sim:ros2 launch ada_moveit demo.launch.py sim:=mock
    2. Real: ros2 launch ada_moveit demo.launch.py
  4. Re-tare the F/T sensor: ros2 service call /wireless_ft/set_bias std_srvs/srv/SetBool "{data: true}"

Testing:

Follow-Up PR

This PR suffers from getting stuck in singularities during cartesian control. At such times, it is possible to get it out of those singularities by using joint control, but that may not always be super intuitive. Using IK instead of the inverse jacobian -- and particularly pick_ik -- seems to be able to alleviate this issue. Another approach is to modify the MoveIt Servo source here to use dampened jacobians. There should be a follow-up PR to address that.

amalnanavati commented 11 months ago

@egordon this PR is ready to review. I'll make the IK investigation another PR so it isn't blocking your acquisition work. As of this PR, MoveIt Servo should work on both sim and real.