Conditional/3d Joint limits
- drose
- Offline
- New Member
Less
More
- Posts: 7
- Thank you received: 0
19 Mar 2023 04:58 #267061
by drose
Conditional/3d Joint limits was created by drose
Hi everyone,
I've got a robotic arm that I'm controlling via linux-cnc. In addition to having defined joint limits for each rotational axis, I'd like to be able to setup areas where the arm can't move into (invalid positions) since it will otherwise crash into itself. Is there a way to setup a 3D or even 2D set of limits that would prevent the arm to move into these kinds of positions? If this is not implemented yet, any pointers to how I could add this feature would be helpful.
Thanks!
I've got a robotic arm that I'm controlling via linux-cnc. In addition to having defined joint limits for each rotational axis, I'd like to be able to setup areas where the arm can't move into (invalid positions) since it will otherwise crash into itself. Is there a way to setup a 3D or even 2D set of limits that would prevent the arm to move into these kinds of positions? If this is not implemented yet, any pointers to how I could add this feature would be helpful.
Thanks!
Please Log in or Create an account to join the conversation.
- pippin88
- Offline
- Elite Member
Less
More
- Posts: 260
- Thank you received: 45
19 Mar 2023 08:03 #267065
by pippin88
Replied by pippin88 on topic Conditional/3d Joint limits
Another use for this sort of functionality:
Tool change position outside working area.
Certain machine designs (such as high wall gantry machine) could have a tool change position accessed with Z axis all the way up.
With Z down moving into that area would crash with the machine structure.
Tool change position outside working area.
Certain machine designs (such as high wall gantry machine) could have a tool change position accessed with Z axis all the way up.
With Z down moving into that area would crash with the machine structure.
The following user(s) said Thank You: drose
Please Log in or Create an account to join the conversation.
- Aciera
- Offline
- Administrator
Less
More
- Posts: 4001
- Thank you received: 1730
19 Mar 2023 08:42 #267069
by Aciera
Replied by Aciera on topic Conditional/3d Joint limits
Joint/Axis limit values are accessible from hal but need a queue buster operation that resets the motion planning. So one can change the limit values using an M code for example but limit violations are then only caught while actually running the code and not when loading the gcode because the motion planner cannot 'see' past a queue buster. This might be a solution for the scenario mentioned by pippin88.
Dynamic limits would require some sort of real time calculation of limit values depending on joint position preferably done already when loading the gcode into the preview. There is currently no provision for such functionality.
Collision detection for more complex machines like robot arms might be best achieved by running a simulation using an stl model and checking for interference in the model. ROS uses that if I remember correctly. Linuxcnc uses Opengl in it's vismach simulations but as far as I am aware OpenGL does not support 3D stl interference checking.
Dynamic limits would require some sort of real time calculation of limit values depending on joint position preferably done already when loading the gcode into the preview. There is currently no provision for such functionality.
Collision detection for more complex machines like robot arms might be best achieved by running a simulation using an stl model and checking for interference in the model. ROS uses that if I remember correctly. Linuxcnc uses Opengl in it's vismach simulations but as far as I am aware OpenGL does not support 3D stl interference checking.
The following user(s) said Thank You: drose, smarcom
Please Log in or Create an account to join the conversation.
- andypugh
- Offline
- Moderator
Less
More
- Posts: 23162
- Thank you received: 4860
19 Mar 2023 18:12 #267095
by andypugh
Replied by andypugh on topic Conditional/3d Joint limits
I can imagine a HAL component that took, as input, an STL file (for example) and set the feed-override to zero if the tool tip exceeded the defined volume.
But there would not be any warning, the machine would just stop.
But there would not be any warning, the machine would just stop.
The following user(s) said Thank You: drose
Please Log in or Create an account to join the conversation.
Time to create page: 0.052 seconds