Skip to content
Vasily edited this page Apr 25, 2024 · 53 revisions

Common usage plan

PartDesign

  1. Create robot Parts (Std_Part) with body (PartDesign_Body) and LCS (local coordinate system) of joint places. Like this - parts

OVERCROSS

  1. Create Robot
  2. Create Links and Joints. Tip: enable "show all" in links properties and fill Label and Label2 (Label 2 used as name of link in joint and as fixed_frame in RViz if link is root).
  3. Create Collisions based on tool - bounded box (or sphere, cylinder) of Real object wrapped by Part (Std_Part) (name part like - collision_element_name).
  4. Fill Links properties: Real, Visual, Collision Tip: Real and Visual can be same object.
  5. Fill Joints with Links (parent, child)
  6. Do "Set placement" of joint.
  7. Do "Set placement" of "Mounted placement" of child link (optional).
  8. Correct orientation of joint Origin (optional).
  9. Choose material of whole robot or individual links
  10. Use mass and inertia auto calculation tool. Tip: Do it before export (because project changes can influence to inertia).
  11. Export URDF (it will create ROS 2 package with launchers for RViz and Gazebo).

You can see an example of made project by using robot_5r from Example

"Set placement" tool.

Upstream docs

Command-SetPlacement - should to read and also my tips below.

It is better to use centered bodies (parent LCS at 0.0 coordinate of axis). Using of not centered links forces you to use "Set mounted placement", it is ok but more actions.

If you use face for reference for LCS - Inertia attachment type with same direction (as LCS of parent link) works well for me.

This tips will let you do less actions of setting Set placement of Joints, links.

Worked ways to use "Set Placement" tool:

1 way

Set joint placement.

Select: join, parent LCS of parent link, child LCS of parent link (where parent must be connected to child link). Click to Set placement tool.

Set mounted placement.

You can directly change MountedPlacement of links (click to ellipsis at property, change and click to apply).

Also with "Set placement" - select link, select LCS (point where joint must be connected to link with needed orientation), any with zero placement (it can be LCS at same object but in zero placement). Click to Set placement tool.

setting the mountedplacement property of links

2 way

Set joint placement.

Select: join, parent LCS of child link, child LCS of parent link (where parent must be connected to child link). Click to Set placement tool.

Set mounted placement

Same as in first way.

Tip: If you did not choose right oriented LCS for joint placement you can directly change origin orientation after "Set joint placement". But better to use well orinted LCS.

Rules of making correct collisions:

  1. Collision object must be built from origin object of Real not from link of Real.
  2. Placement of collision object must not be changed. OVERCROSS will create collision link with correct placement if you enable - "Show Collision" of robot.
  3. Collision object must be wraped by Part and therefore collision link should targets to Part. Direct linking to collision object lead to generating wrong placement of collision.

Like this. Correct collision making

Tip: you can enable or disable display of generated collisions in FreeCAD by changing "Show Collisions" option in Robot element (disabled by default). After linking collisions enable "Show Collisions" for checking correctness of collisions in FreeCAD.

If you clear Collision property of Link and want to see what collision link also deleted turn off/turn on "Show Collisions" of Robot. It will deleted and recreated collision links by filled Collision properties (just for visual control).

Auto calculation mass and inertia

  1. Choose material of whole robot or individual link by tool - "Set material to whole robot or link".
  2. Press tool - "Calculate mass and inertia".

It is all you need to do for calculating mass and inertia.

Tip:: Setted inertia can be very small and you will not see it in link properties (because of limit on the number of decimal places), but you must see mass after successed inertia calculation. Also command will throw red messages if something wend wrong.

Big instruction with a lot of screenshots about making 4 wheels robot (russian language, available only to donors)

Although the screenshots highlight the places where you need to click.

OVERCROSS - инструкция - по шагам до ROS 2 пакета.