Skip to content

Conversation

simjeh
Copy link
Collaborator

@simjeh simjeh commented Jul 31, 2023

I think we missed the slider joint because it does not belong to the demo scenes.
#43
I found the proper property name for the slider joint.
It works for me with a mixed joint structure.

@simjeh simjeh linked an issue Jul 31, 2023 that may be closed by this pull request
@simjeh simjeh added the bug Something isn't working label Jul 31, 2023
jaredgonzales added a commit to jaredgonzales/fusion360descriptor that referenced this pull request Mar 28, 2024
ANogin pushed a commit to jaredgonzales/fusion360descriptor that referenced this pull request Apr 28, 2025
apric0ts pushed a commit that referenced this pull request Aug 18, 2025
…le, attached joints, sliders, rotated origins, etc. (#49)

* Remove unused imports and add utils for consistency with naming

* Add utils.py with format_name

* Close the temporary doc after exporting

* Add simple option to export to gazebo with ROS2

* Add template ros2 package

* Add nested components to inertia_dict

* Go through each component to add a joint

* Add Slider joint, similar to PR #44

* Add parsing for root.allJoints

* Rename duplicate joint names

* Switch to entityTokens for joint_dict and add root occurrences

* WIP: Moving to inertial dict for links

* Fix children and parents for joints to not be top-level

* Exporting all links and joints

* Export each occurrence body and skip empty bodies

* Only export collision mesh if a body exists

* Only add bodies for collision if sub_mesh enabled

* Work directly with component_map, allows linked components

* Add better support for linked components

* Only add inertial, visual, collision information for link when it has a valid body

* Fix issue with slider joints not getting axis

* Fix bug with RigidGroups not needing to be renamed. Add XYZ information whenever child or parent is found

* Do not generate a link_xml if there is no associated body

* Add robot name to URDF mesh path

* Correct path to include full name

* Rename link and joint information for base_link

* Support base_link renaming for RigidGroup joints

* Rename stl file for base_link

* Exit script if no grounded component for base_link

* Clarify exit message for base_link not found

* Fix bug with RigidGroups using wrong variable for parent/child occurrences

* Swap parents and children to get the parents closer to base_link

* Swap the {child,parent}_token when child is swapped with parent, per Jared

* Check that joint has valid occurrences before interacting with it

* Add importing appearances

* Add material xacro

* Rename URDF file to .xacro to highlight new file capabilities

* Finish changing to .xacro file and add dummy link

* Complete using rviz

* WIP: Add Gazebo support but does not have entity xml working

* Remove unused file

* Add the robot to the gazebo model path automatically on launch

* Add initial moveit package as copy of gazebo

* Initial moveit launch file without other config files

* Do not export hidden components

* Export rviz launch file with Gazebo too

* Attempt to get coordinate transforms correct

* Finish coordinate transform fix

Do not try to rename a joint in Fusion, only do it for Python dict

* Ignore suppressed, rolled back and incomplete joints

Also adds a bunch of type annotations and other minor fixes

* Support rotations (untested) and add more type annotations

* Use `shutil.copytree` instead of deprecated `distutils.dir_util.copy_tree`

* Automatically install numpy

* Bugfix: use correct Point3D/Matrix3D constructors

* Simplify the code a bit

* WiP debugging the coordinate transforms

* Add some experiments to try

* Fix some of the coordinate transform errors

* Set document limits based on the document properties, not user input

* Correctly use cm for slider joint limits regardless of document units

* Do the correct coordinate transform for joint axes

* Attempting to deal with local assemblies, but something is wrong

* Try the `getMatrixFromRoot` approach to dealing with assembly contexts

* Add an extra hack to correctly install dependencies in more situations

* Include a customized `setup_assistant.launch.py` for MoveIt

* Ask for preferred robot name on the UI (untested)

* Minor cleanup (untested)

* Made sure the mesh file names are correct

* Continue catching invalid deleted joints

* Do not ask the user about the joint order; do not break links

Breaking links was causing things to have wrong locations because of an apparent Fusion bug!!!

* Correctly transform the joint axis - WiP

* Coordinate transforms are in cm, not design units; add a lot more debugs

* Despite the documentation, `.transform2` is in global frame, not w.r.t local assembly origin...

* Add support for a name mapping json

* Use OrderedDict to make the materials order consistent from run to run

* Ignore broken rigid groups

* Move all joints to 0 at the beginning of the export

* Add some further sanity checking

* Minor changes

* Do not insist on having joint origins coincide

* No need to name the grounded link as "base_link" given "dummy_link" exists

* Provide more information when the structure is broken

* Use xml.etree.ElementTree to format the URDF files

* Do not ignore the mesh resulution setting. Simplify code

* Support a Yaml configuration file.

* Start with the "Preview" tab unexpanded; expand when it is filled in.

* Update the `README.md`

* Clean up how the bodies/meshes are collected

* Make sure the temporary design is deleted on error

* Do not create a separate vision stl when there is only one body

* Implement support for merging multiple Fusion components into a single URDF link

* Joint axis in URDF is supposed to be in child frame, not parent

* Remove old debug code

* Improve sanity checking code

* Flip the joint axis when joint parent/child are swapped

* Round the numbers a bit

* Support naming the whole assembly in config file's MergeLinks

* Make an extra check to not duplicate bodies

* Use correct merged link name when it is the base link

* Support a more complex MergeLinks structure; support Extra links and Locanions generation

* Tweak the code to work more reliably

* Add an extra sanity check

* Support "Extras" links that are not connected to the rest of the system

* Allow using a MergedLink for subframe locations

* Update to allow specifying the root node of URDF in the config file

* bug fix

* Support wildcards and full path names in configuration

* Made order of things more consistent (hopefully)

* Add git rev to the .txt output

* Add a sanity check

* Small cleanup and bug fixes

* Preserve the order of things from one export to the next

* Add a sample configuration file

* Delete unused Hierarchy.parent

* Move `*_to_str` functions to utils

* Remove unnecessary iterations

* Delete obsolete commented code.

* Make the code a little more robust

* Print more detailed error message when joints are in a weird state

---------

Co-authored-by: jared <jared@redballoonsecurity.com>
Co-authored-by: Jake Jepson <55201008+Jepson2k@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Slider joint does not work.
1 participant