clubcapra / ovis

Ovis robotic arm control package
0 stars 1 forks source link

Investigate using moveit_servo package #25

Open lit-af opened 3 years ago

lit-af commented 3 years ago

The Realtime Arm Servoing algorithm provided by MoveIt Noetic (maintained) is probably faster and more stable than our current solution.

If migrating the whole robot base to Noetic isn't an option, the algorithm could run inside a docker container.

The kinova_ros driver might need to be modified to support the following type of controllers JointGroupVelocityController or JointGroupPositionController.

lit-af commented 3 years ago

I've had a programming itch about this for a while now. I just had to lay it out for posterity.

Might work on this eventually, might not.. we'll see...

lvanasse commented 3 years ago

Hi Alexandre,

That's actually a good idea, although I don't know how much improvement that would be, since the last person that worked on the arm was you 😅. But knowing you, I'll sure look into it!

Also, we might skip Noetic and the next migration would be the next LTS release of ROS2, but that's still to be confirmed. And looking at the documentation, it seems that the Realtime Arm Servoing http://moveit2_tutorials.picknik.ai/doc/realtime_servo/realtime_servo_tutorial.html is available in ROS2 Foxy, so we might not need a docker container, but that's our fall back in case it doesn't work.

Thank you and I hope you're doing well ☺.

Ludovic Vanasse @.***

On Thu, Jul 29, 2021 at 10:57 AM Alexandre Francoeur < @.***> wrote:

The Realtime Arm Servoing https://ros-planning.github.io/moveit_tutorials/doc/realtime_servo/realtime_servo_tutorial.html algorithm provided by MoveIt Noetic (maintained) is probably faster and more stable than our current solution.

If migrating the whole robot base to Noetic isn't an option, the algorithm could run inside a docker container.

- https://picknik.ai/ros/robotics/docker/2021/07/20/Vatan-Aksoy-Tezer-Docker.html

The kinova_ros driver will need to be modified to support the following type of controllers JointGroupVelocityController or JointGroupPositionController.

  • Implement the required controllers in the kinova_ros driver
  • Install MoveIt Noetic and test the realtime arm servoing algorithm with Ovis over USB on x86
  • Test the realtime arm servoing algorithm with Ovis over Ethernet on x86
  • Configure a docker container with MoveIt Noetic installed, folder, network and USB access
  • Test controlling Ovis over USB while running the realtime arm servoing algorithm inside the docker container on x86
  • Test controlling Ovis over ethernet while running the realtime arm servoing algorithm inside the docker container on x86
  • Test controlling Ovis over USB while running the realtime arm servoing algorithm inside the docker container on aarch64
  • Test controlling Ovis over ethernet while running the realtime arm servoing algorithm inside the docker container on aarch64

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/clubcapra/ovis/issues/25, or unsubscribe https://github.com/notifications/unsubscribe-auth/ADB6EAHXLQR6FDRMEODXIP3T2FT7BANCNFSM5BGUWQOQ .

lit-af commented 3 years ago

Update: Since I should be studying for the finals right now. I decided to dig deeper on this. It turns out that the moveit_servo package was included in melodic-devel/moveit_servo.

I ran a test using the current gazebo and moveit launch files. I then adapted the moveit_servo launch and config file to run a first test. I saw the robot moving when sending twist commands on the input topic. The robot is behaving weirdly, no matter on which axis I send a value, it moves in the same direction.

I think we might need to port some logic from twist_to_jog_frame.cpp to spacenav_to_twist.cpp.