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$
6
  • 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, 2016 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, 2016 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, 2016 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$ Feb 25, 2016 at 5:52
  • $\begingroup$ I found it! XD youtube.com/watch?v=cod_SNq-d6c $\endgroup$ Feb 25, 2016 at 5:56

1 Answer 1

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.

$\endgroup$

This site is temporarily in read-only mode and not accepting new answers.

Not the answer you're looking for? Browse other questions tagged .