Comments (8)
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.
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.
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.
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.
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.
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.
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.
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)
- Regarding impedance-control frame rates HOT 4
- Persistant balancing/vibration issue. HOT 1
- Linear track does not working when the arm is at mode 6 HOT 1
- [SDK][ERROR][base.py:374] - - API -> set_servo_angle -> code=1 HOT 4
- Not able to move the 7th joint of xArm7 using set_servo_angle HOT 2
- Strange Torque Sensor Manual Mode Movements HOT 2
- xArm Lite 6 motor temperature overheating HOT 5
- Question: Understanding swapping modes and states HOT 3
- Does the impedance control support robot movements? HOT 1
- How to clear/overwrite previously sent commands? HOT 4
- Release notes for version 1.13.19
- Running gcode in Studio and with Python run_gcode_file() is not the same (Lite6) HOT 1
- Gripper is not working using official example HOT 4
- Wrong forward kinematics? HOT 5
- Speed argument ignored by `set_servo_angle_j` HOT 2
- ServoJ speed limit errors HOT 4
- Updating Release Tags HOT 1
- set_only_check_type Lite6 not working
- Trouble Recovering from Collision HOT 6
- xARM 6 Lite Python SDK change of initial joint position HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from xarm-python-sdk.