Coder Social home page Coder Social logo

Comments (8)

penglongxiang avatar penglongxiang commented on August 16, 2024 1

Hi, thanks for the log.

We think the cause would be the combination of radius-blending joint motion with GPIO operation inbetween. Our current design actually does not support this combination, the IO between blending motions will cause a C25 planning error. We will re-evaluate the logic to see if there is any chance for imporvement. It will be hard to decide which point to trigger the IO since it is between a continuous motion and the target before it will not actually be reached.

For now, you may either use radius = -1 (no blending, will decelerate to 0 velocity) if a following IO operation is needed. Or consider the position triggered IO operations (within tolerance radius) if contiouous motion with IO is a must.

Thanks.

from xarm-python-sdk.

penglongxiang avatar penglongxiang commented on August 16, 2024

Hi @joshuafishman , for further diagnosis, please download the log package through xArm studio and send it to [email protected], please also describe your issue briefly and specify the rough time spot of the situation occurrence. Thanks.

from xarm-python-sdk.

joshuafishman avatar joshuafishman commented on August 16, 2024

I'll do that, but what does this error code mean in general?
We've only seen it when using DI/O port 4 or when using get_vacuum_gripper in the SDK (although we've never been able to narrow down the exact circumstances, the error doesn't appear when these calls are removed), neither of which obviously has to do with planning.

from xarm-python-sdk.

penglongxiang avatar penglongxiang commented on August 16, 2024

Hi @joshuafishman , usually this Error would apprear when a path planning calculation is in process. If there is only I/O operation without any motion process in parallel, it is abnormal to me. So it is crutial to send us the log [with rough time spot] for analysis. Would you please briefly describe the program context when this happens? What the program is doing before, after or executing in parallel with the problematic IO operations.

from xarm-python-sdk.

joshuafishman avatar joshuafishman commented on August 16, 2024

I've sent the log file to the support email, so hopefully that's helpful.
The error happens only when we call:
code = XArmAPI.set_cgpio_digital(gpio_port + 8, True) #gpio_port = 4
when that port is already set to True, but just doing that in a script is not sufficient to reproduce it.
We're also streaming motion commands of the form:
XArmAPI.set_servo_angle(angle=target_joints, wait=False, speed=spd, mvacc=acc, radius=50),
querying joints and velocities with get_servo_angle(is_radian=True) and realtime_joint_speeds and checking for errors with get_xarm_controller_error_state.

from xarm-python-sdk.

joshuafishman avatar joshuafishman commented on August 16, 2024

That's really interesting, and makes a lot of sense -- thanks for the explanation!
On our side, when we send an IO (or similar) command with blended motions, we don't expect any guarantees about when that command will execute within the motion series -- before any motions, after all motions or anywhere in the middle would work. We're basically just trying to maximize rate e.g. turning the vacuum gripper on en route to a pick location through a series of waypoints, so it's possible we can make something work for position-triggered IO as well.

from xarm-python-sdk.

joshuafishman avatar joshuafishman commented on August 16, 2024

Would you expect a position-triggered IO command with an xyz target of the end of a blended motion segment and a fault_tolerance_radius of the radius for the blended motion to work?

from xarm-python-sdk.

alonks1234 avatar alonks1234 commented on August 16, 2024

Hi, I just triggered this in ServoJ mode. I spoke with @joshuafishman and this seems to contradict the advice given here. Please advise

from xarm-python-sdk.

Related Issues (20)

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.