ros-industrial / reach_ros2

ROS2 packages for REACH
Apache License 2.0
19 stars 5 forks source link

Add Python interface for ROS features #17

Closed SammyRamone closed 1 year ago

SammyRamone commented 1 year ago

Closes https://github.com/ros-industrial/reach_ros2/issues/16

I did not implement any method for declaring parameters, as the node is accepting undeclared parameters anyway. Otherwise, I implemented the interface straight forward. Maybe there is a better method for defining the different set_parameter() methods. I tried using boost::variant but did not get it to work and settled for the pragmatic solution. Any suggestions for doing this more cleverly are, of course, welcome.

I included a demo script which shows how the user can manually set parameters and call execute a reach study. In this case we just drastically decrease solving time to show that this leads to different (worse) results. @sea-bass: You mentioned that you are interested in using REACH for benchmarking IKs. Maybe this could be a basis for building a Python benchmarking script.

The documentation is currently a bit limited. If you have further ideas on things that should be added, I will extend it.

marip8 commented 1 year ago

Thanks for addressing this. I'll take a look at it soon

SammyRamone commented 1 year ago

I added one more commit to the PR which introduces a small helper method to set the logger level of C++ ROS loggers. Otherwise some plugins (especially those based on MoveIt) will generate a lot of spam info message which can be annoying.

SammyRamone commented 1 year ago

I changed the setting of parameters due to an issue similar to https://github.com/ros-industrial/reach/pull/59

marip8 commented 1 year ago

Per this comment the rolling build is broken because the ros:rolling docker image is not up-to-date. I'm going to merge as-is and let the rolling build get fixed when the rolling docker image is updated