robot_calibration icon indicating copy to clipboard operation
robot_calibration copied to clipboard

ROS2 Port

Open mikeferguson opened this issue 2 years ago • 6 comments

  • [x] Convert messages package to ROS2
  • [x] Port robot_calibration library: base calibration
  • [x] Port robot_calibration library: optimization components
  • [x] Port robot_calibration library: refactor model/error parameters (we can't just store random XML-RPC like in ROS1)
  • [x] Port robot_calibration library: capture management
  • [x] Port finders library (mostly done - a few TODOs)
  • [x] Port magnetometer calibration
  • [x] Port calibration node
  • [x] Test individual finders on a real robot
  • [x] Update ubr1_calibration and test
  • [x] Test base_calibration
  • [ ] Test magnetometer calibration
  • [x] Update documentation
  • [x] Add documentation on porting from ROS1

Known Issues / Cleanup:

  • [x] Led finder doesn't wait for action to complete (need to implement the async part)
  • [x] Move Group interface doesn't wait for action to complete (need to implement the async part)
  • [x] Joint trajectory action interface doesn't wait for action to complete (need to implement the async part)

mikeferguson avatar Jun 13 '22 14:06 mikeferguson

https://github.com/mikeferguson/robot_calibration/pull/133

mikeferguson avatar Jun 14 '22 01:06 mikeferguson

Tested on UBR-1:

  • LED finder works
  • calibration_data is output properly
  • manual mode works properly (although launch files do not forward stdin to the node, so I had to launch via bash script)
  • have not yet tested full calibration since I don't have a bagfile to load
  • have not yet tested moveit interface

mikeferguson avatar Jun 15 '22 03:06 mikeferguson

Further testing on UBR-1:

  • Full capture works (in YAML mode)

mikeferguson avatar Jun 15 '22 17:06 mikeferguson

Hi @mikeferguson,

Thanks for open sourcing this library. I am currently looking to use it in order to perform Hand-Eye calibration.

Full capture works (in YAML mode)

I have setup my configuration according to your README.md and the UBR-1 example you provided. I plan to manually move my robot using MoveIt rather than specifying poses (although if for some reason this shouldn't work I will look to specify poses in a yaml file). I have been able to spin the calibrate node and I get so far as the prompt for collecting samples, with this being said I observe a few warnings and issues that I am still debugging. Should I expect the checkerboard_finder and manual capturing of samples to work on the ROS 2 branch?

I believe the answer is yes based on the below but I wished to verify if this was the case (since "in YAML mode" might imply otherwise):

[x] Test individual finders on a real robot

I am happy to provide further details of the output I am seeing and my overall setup. I am also happy to contribute if there are things that need to be implemented to get this to work. Finally I'll continue reading through the code so that I am more informed on what might not be working in my setup.

peterdavidfagan avatar Apr 26 '23 16:04 peterdavidfagan

Should I expect the checkerboard_finder and manual capturing of samples to work on the ROS 2 branch?

Yes I would expect it to work - manual mode definitely works (here is how I use it on UBR1) - and checkerboard finder has been tested on ROS2 as well.

If you're having specific issues with your setup, I'd recommend opening a new ticket with details and we can debug it there.

mikeferguson avatar Apr 26 '23 16:04 mikeferguson

Thanks so much @mikeferguson for the confirmation on this.

I'll spend further time tomorrow debugging to see if I can get to the bottom of what is going wrong in my setup. If I resolve it myself and I think it would be informative for others I'll post a follow up here. If I struggle to get it to work I'll open an issue as you suggested above.

peterdavidfagan avatar Apr 26 '23 16:04 peterdavidfagan