4
$\begingroup$

I am designing a new mechanism similar to robot arm. It would be a 6 or 7 axis with arms but not the same with traditional articulated arms. As a result, new DH matrix,and inverse kinematics involve. I would like to consult the robot professionals in this forum that do you suggest any simulation tool of this mechanism?

I plan to start with start and end points. Then I will do a trapezoid velocity plan and take sample points with sampling time along the path. After that, I would like to transfer these sampling points to motor joints by DH matrix and inverse kinematics. Finally I would do some basic 3D animation to visualize the movement temporally. I do not plan to simulate controller behavior because in my application motor drivers deal with it. I only need to focus on sending reasonable commands to motor drivers.

In my opinion, Matlab, octave, VC++, and some third-party tools are candidates. Starting from ground zero would be a time-consuming work. I would appreciate if any experts can share a tool or open source code from his or her experience. I did some search on Matlab robotics toolbox but I am not sure if it fits my need because it is expensive and optimized for ROS. In Octave there are also some robotics toolbox but I am not sure about what it can do and what it cannot.

$\endgroup$
  • 2
    $\begingroup$ what questions are you trying to answer with the simulation? Do you only want to visualize the mechanism or are you trying to predict something? $\endgroup$ – hauptmech Feb 25 '16 at 3:13
  • $\begingroup$ I try to optimize the arm length and volecity of each axis. If the design has some problem, I would like to find it out before I make it. $\endgroup$ – Superuser Feb 25 '16 at 5:27
  • $\begingroup$ If there movement is not reasonable, then I have to fix it. That's why I need to visualize the movement with animation. Thank you! $\endgroup$ – Superuser Feb 25 '16 at 5:37
  • $\begingroup$ I've seen a video on the net doing a robotic arm from scratch for his PhD. He used a program called Rhinoceros to simulate his work with animations. I tried to look up the video but could no longer find it. He machined the parts himself using Arduino Due as the controller board with I think a PC for image processing $\endgroup$ – user123456098 Feb 25 '16 at 5:52
  • $\begingroup$ I found it! XD youtube.com/watch?v=cod_SNq-d6c $\endgroup$ – user123456098 Feb 25 '16 at 5:56
2
$\begingroup$

For visualization and kinematics, Gazebo works fine. You can use C++ or Python to work with it. There is lots of integration with ROS as well if you like that sort of thing.

If you want a clean and simple rigid body dynamics library, I really like RBDL, but you'll need to add your own integrator for simulation and graphics for visualization. odeint works well. For visualization, OSG has a really clean and nice design, and OGRE is what the Gazebo/ROS guys use.

If you are familiar with a CAD software such as Creo, Solidworks, Onshape, etc then it can be quick to set up your links and joints and move them around by hand to get a feel for things. Onshape is from the guys that created Solidworks and it's free github style (private data costs money).

A physical mockup, using cardboard, posterboard, particle board and tape, glue, brads, nails, screws and whatever else you need can be a quick way to understand a new mechanism. You can print out 2D sections from your favorite CAD software to scale as a template to help get complex shapes right.

The last open source automated mechanism synthesis software I kept track of and liked was Darwin2K, but that might be more hardcore optimization than you are looking for.

If you are comfortable with C++ I'd favor that over Octave. You're more likely to find C++ libraries that help you than Matlab/octave ones. (I know lots of guys that really like matlab/simulink for robotics work, but you mentioned the cost as an issue). If you are comfortable with Linux, I'd also favor that over windows; lots of open source code has a Posix base and can be a little clunky to work with on windows.

|improve this answer|||||
$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.