I've been seeing a lot of these diagrams online and wondering how can I replicate this myself. Is there any easy-to-use software package that will allow me to draw these diagrams quickly and accurately? Ideally, I would be able to draw joints, links and label, angles and lengths of the robot manipulator.
-
$\begingroup$ Maybe ROS or you wanna look at my answer robotics.stackexchange.com/questions/20602/… might helpful $\endgroup$– Albert H MMay 3, 2021 at 13:58
-
$\begingroup$ @AlbertHM hi thanks for the comment, I am looking more for a schematic type drawing indicating the bodies and rotation rather than visualization. Most importantly the annotation and markings. I don't think the robotic toolbox does that.... (correct me if I'm wrong) $\endgroup$– trex98May 3, 2021 at 16:09
4 Answers
There is no specialized tool to draw it, but you can draw these with generic software.
You can get very similar diagrams from PowerPoint or Inkscape. Furthermore if you use Latex, here you can find an example using Tikz.
-
$\begingroup$ Thanks! I was also suspecting these were created with Latex. But I was wondering if there was some GUI tool I can quickly and accurately recreate these drawing annotations where the markings would snap to the shapes. Drawing tools in PowerPoint is limited in this sense. $\endgroup$– trex98May 9, 2021 at 18:06
If you know how to use plot3 and scatter3 from matlab, by extension you can use plot and scatter with matplotlib and matrices with numpy. You can easily create serial linkages from FK matrices generated by numpy and then plot with matplotlib.
Interesting question. Those drawings are so stylized and so similar, it seems unlikely that they were done with a generic drawing program. Next time somebody encounters one online -- if it wasn't just copied from a textbook -- try to locate contact info for the author, and ask him or her what tools were used to do it. Let's hope the answer isn't always "Dunno, it was our graphic arts people".
When I used to make these types of figures, I would just use PowerPoint (for Windows) or XDraw (for Unix or Solaris), as @504k mentions. First I would make an ellipse with the desired perspective for the front (or top) face. Then I’d copy that ellipse and move it to the back of the viewing plane for the back face. Next I’d draw two lines tangent to those faces for the top and bottom (or left and right) boundaries. Then I would zoom in and, using shapes with no visible borders, create blobs that hide the lines which should not be visible. Finally I’d make that set of shapes into a group so the entire joint could be copied, rotated, and mirrored to create the remaining joints. It was not elegant but it was effective.
If you have access to a mechanical design package such as SolidWorks, you could extrude a cylinder to create this more accurately. However, for the purpose of creating a kinematic model, the brute force method was effective.