Coder Social home page Coder Social logo

fusion360descriptor's Introduction

Hi there ๐Ÿ‘‹

fusion360descriptor's People

Contributors

apric0ts avatar cadop avatar jaredgonzales avatar simjeh avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

jaredgonzales

fusion360descriptor's Issues

Using isVisible

For some reason the bodies are all exporting even when they are not visible. It seems like the top level component can use the isLightBulbOn https://help.autodesk.com/view/fusion360/ENU/?guid=GUID-90B68AA9-EADE-4597-8201-1371CCA96E38 but that doesn't consider if its visible in the scene. IsVisible cares about visibility https://help.autodesk.com/view/fusion360/ENU/?guid=GUID-bc2399ce-a9b0-4247-9779-e4aae936abad

I can't remember why we did this and not isVisible I think it might have been because we turned off the lightbulb at some point, and was then just checking if it was on as well?

STL exporter should be upgraded.

  • Option 1. Normal version. Current output method with a single mesh file.

  • Option 2. Detail version. Separate meshes with each component, Export meshes by every component, and put it XML as visual attributes.
    EX)

    <?xml version="1.0" ?>
    <robot name="FullBody">
    <material name="silver">
    <color rgba="0.700 0.700 0.700 1.000"/>
    </material>
    <material name="red">
    <color rgba="1.0 0.0 0.0 1.000"/>
    </material>
    <link name="L_Pelvisv12_1">
    <inertial>
    <origin xyz="-0.00016823298939081687 0.07887151231400673 -0.22549351371810145" rpy="0 0 0"/>
    <mass value="12.545724119282553"/>
    <inertia ixx="0.05811" iyy="0.10775" izz="0.13684" ixy="0.000156" iyz="0.005835" ixz="-4.7e-05"/>
    </inertial>
    <visual>
    <origin xyz="0 0 0" rpy="0 0 0"/>
    <geometry>
    <mesh filename="package://meshes/L_Pelvisv12_1.stl" scale="0.001 0.001 0.001"/>
    </geometry>
    <material name="silver"/>
    </visual>
    <visual>
    <origin xyz="0 0 0" rpy="0 0 0"/>
    <geometry>
    <mesh filename="package://meshes/L_Pelvisv12_1.stl" scale="0.001 0.001 0.001"/>
    </geometry>
    <material name="silver"/>
    </visual>
    <visual>
    <origin xyz="0 0 0.01" rpy="0 0 0"/>
    <geometry>
    <mesh filename="package://meshes/L_Pelvisv12_1.stl" scale="0.001 0.001 0.001"/>
    </geometry>
    <material name="red"/>
    </visual>
    <collision>
    <origin xyz="0 0 0" rpy="0 0 0"/>
    <geometry>
    <mesh filename="package://meshes/L_Pelvisv12_1.stl" scale="0.001 0.001 0.001"/>
    </geometry>
    </collision>
    </link>

So multiple visual and collision attributes are ok. And we should not forget to put color info like this way at just below of robot name.

  • Option 3. Simplified version. Mathew did this job on another project. So we need to merge this after exporting STL files with normal version and make convex hull STL.

Maybe option 4. Simplified with a detailed version. If we separate mesh with components then it could be better to build convex hulls.
I am not sure if this makes the simulator slower or not. So this might need some test.

URDF does not generate properly when there is a component defined within another component in the Fusion 360 hierarchy

If there is a component within a component, get_flat_body() will not populate body_list with the bodies from that specific component that houses other bodies and the component.

For example, here is a hierarchy with components only having bodies within:
image

These are the bodies that are generated in body_list:
image

Then here is another hierarchy with a component within another component:
image

These are the bodies that are generated in body_list:
image

It is shown here that the bodies from the component that houses another component do not appear.

This is the URDF generated, no visual elements present
image

Planar Joint is not supported

This is what the planar joint model looks like in Fusion 360:
image

This is error that occurs from running the script with the planar joint.
image

As-Built Joint (gear) does not work as intended in physics simulator

The rod in the gear appears to "fall over" as there is no gear generated in the simulator to support it.

image
This is what the model should look like (displayed in Fusion 360)

image
This is the model in the physics simulator (pybullet), appears to be a rod that starts standing up and then falls over. No gear shown and only one rod in the simulator, however there should be two gears and two rods as shown in the first image.

Need to lock joint limits when joint is locked

Make sure that the joints will not move the components they are attached to if it is locked, not sure if problem, will test. If this is a problem:

if joint.isLocked:
     joint_dict['upper_limit'] = joint_angle
     joint_dict['lower_limit'] = joint_angle

or something along these lines

Add Joints for usd export

For omniverse in future.

file:///C:/Users/local%20user/AppData/Local/ov/pkg/create-2022.1.3/kit/extsPhysics/omni.physx.ui-1.4.13-5.1/docs/main/source/extensions/omni.physx/docs/index.html#joints

urdf exporter works well

I found that this parameter(document unit cm, and target unit m) is working very well for joints and inertia info. I don't know why but it might be default output of fusion might be cm. I checked it with another project. Could I share this with some people in the lab for more cases?

"Failed to read Python Script" error message occurs in VSCode debug console when trying to debug Descriptor.py

There seems to be some sort of issue (possibly on just my end), when the script is launched through Fusion 360 by pressing "Edit", I can't debug the Descriptor.py file.

This is the error message in the Debug Console:
image

I can debug the other Fusion 360 sample scripts such as Bolt.py and Bottle.py, however VSCode says it can't read this python script. I've uninstalled and reinstalled the Python extensions to have the correct versions by using Fusion 360 to install what's needed.
(The steps I've taken are in comment 17 of this autodesk forum post, part B: https://forums.autodesk.com/t5/fusion-360-api-and-scripts/not-able-to-debug-scripts-add-ins-in-visual-studio-code/td-p/9174815 )

However, issue persists.

Slider joint does not work.

There is an error when exporting urdf with slider joints.
Sliderjoint does not have rotationAxisVector as a property.

Cannot switch between parent/child easily

Currently it is extremely difficult to switch or change the link configuration. For example, if we put the ground joint in the middle and then switch to the end, the parent/child relationship is wrong for all of these joints. We should make either a tool or some checkbox that gets generated for each joint that can be set to switch them.

DH parameter friendly joint position option

https://en.wikipedia.org/wiki/Denavit%E2%80%93Hartenberg_parameters

The joint position is taken as the control point of numerous algorithms. And those algorithms have some function or parameters to put some offset from joint position to the control point. But many robotics people utilize DH parameter joint position decision because we learn this at lectures or in textbooks. And even DH does not guarantee a unique solution. Because the revolute joint can be placed at any point of the actuator axis. But this is quite a good feature for convenience. The joint position will be the same as with the instinctive point of the student who learns and solves the DH-parameter at school.

But this is not much matter stuff for now.

UI loses reference to buttons

When changing between units or setting the directory, the UI maintains its reference. However, when using the preview button, it seems that the UI is lost, and after it calculates the joint configuration, changing any of the other dropdowns does not get registered.

I suspect it could be a handler issue. The other possibility is that something is reloading the autodesk core which ends up overwriting its callbacks to the UI we implemented. At the moment not sure how to debug this as the program already terminates early from the callback.

ball joint is not supported by URDF

URDF does not support ball joints
Hack can be created by creating fake bodies in place with a hinge joint for each axis of the ball joint

image
This is an image of the ball joint model in Fusion 360.

image
Error displayed when pressing on "Preview Links" button in the UI. Nothing happens when pressing on "Preview"

image
Error displayed when pressing on "Generate" button in the UI.

"connect ECONNREFUSED 127.0.0.1:9000" error message pops in VSCode when trying to debug

error message: connect ECONNREFUSED 127.0.0.1:9000
image

Fix: (taken from https://forums.autodesk.com/t5/fusion-360-api-and-scripts/not-able-to-debug-scripts-add-ins-in-visual-studio-code/td-p/9174815 comment 17)

Clean install of python extensions using Fusion 360

  1. Close Fusion 360
  2. Uninstall python extensions from vs code
  3. Close vs code
  4. Go to '%homepath%.vscode\extensions'
  5. Clear any ms-python extension directories like ms-python.python-2019.###
  6. Delete .obsolete file
  7. Start fusion
  8. Go to addins and debug any sample addin script.
  9. You should able to debug it successfully.

Missing demo scene

There should be a demo scene for us to internally test and people to try out.

Perhaps it should also include different ways fusion can construct the joints so we can test particular issues?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.