mahaarbo / arbench_part_publisher

ROS node for publishing feature frames annotated using ARBench.
Apache License 2.0
0 stars 1 forks source link

ARBench & part publisher use cases #1

Closed movefasta closed 2 months ago

movefasta commented 2 years ago

Hello, mahaarbo

Thanks for your work! Our team consider to use ARBench and part_publisher for automated transfering data from CAD to ROS2 for robotic assembly operations. We are started to adapt ARBench for FreeCAD 0.19 and part_publisher for ROS2.

Can you share your experience about use case, that forwarded you to develope this tools 4 years ago and why you choose such node API design? (maybe we shouldn't use ARBench, because better tools exists and we dont know about it)

Thanks

mahaarbo commented 2 years ago

Hi Igor,

FreeCAD was used in ARBench as it was an easily extendible CAD implementation. From FreeCAD, it was possible to define relevant feature frames, and through arbench_part_publisher we got these available to controllers in ROS. So arbench_part_publisher is just an easy tool to get the relevant frames into tf2 in ROS. The task annotations that we made in ARBench were used to infer the tasks we could define for the motion controller for the robot, but creating a general purpose software solution from CAD model to robot motion is difficult and we only got two use cases down, both with the same cylinder insertion task. I still think FreeCAD is a good entry point to extract CAD information for robotics, but I haven't had the opportunity to work with it in some time. Inferring the robot motion required to assemble parts from CAD constrains between the representation of objects is also difficult, e.g. due to disjointed sets of contact surfaces that aren't necessary when simply "assembling" the parts in CAD. ARBench may be a starting point, but a true solution would have to go beyond the architecture we defined.

Looked through the Robossembler project your group has on gitlab, and it looks like you have come across a lot of interesting literature on automatic assembly systems, I'd also recommend looking at SMERobotics and the work of Alexander Perzylo, and some of the older work of Ulrike Thomas. They discuss the concept of robot task definition, have an early prototype of automatic assembly system called HighLap, and Perzylo et al. have done great work in constraint-based robot programming and planning.

Hopefully this clarified a little bit about what was done and why, and good luck with the robossembler! Looks like an interesting project.

movefasta commented 2 years ago

Thank you for the very valuable links to new knowledge about scientific research that I have not heard before. This opened up a whole layer of publications for me!

The issue of adapting ARBench to FreeCAD 0.19 and ROS2 is still on the agenda of our project, so let me ask a few more questions concerning the technical nuances of your software components:

mahaarbo commented 2 years ago
movefasta commented 2 years ago

Is there a way to reproduce the errors/distortions in exporting data from FreeCAD that forced you to switch to Fusion 360? I would like to check if they are observed in new versions of FreeCAD (Maybe these bugs have been fixed in new versions of FreeCAD or OCCT).

Meanwhile I have already forked both projects and ported ARBench to FreeCAD0.19: https://github.com/movefasta/ARBench/tree/freecad0.19 and arbench_part_publisher to ROS 2-Foxy https://github.com/movefasta/arbench_part_publisher/tree/foxy-devel

I can create a pull request on them in order to maintain continuity and not do parallel projects.