Custom Trajectory Planner via ROS
My setup is an old industrial robot arm which I want to retrofit because the control is built in 1991. It has some issues and it is very hard to interface. So I want to use new servo motor controller plus a mesa 5i25. LinuxCNC should do the motion control and interpolation between the via points.
On top on this there is ROS running. Robot Operating System should do the trajectory planning because there are more advanced planning algorithms.
Now I want to know if it is possible to feed LinuxCNC with a list of trajectories. The trajectory list contains the target angles for each axis, timestamps, velocities etc... ROS is running on seperate servers. There should be one extra control server for the robot arm.
While looking through the documentation I saw that there is a "FREE" mode in which each angle of the axis can be set seperatly. Is there a mode where you can execute a list of trajectories, too?
Please Log in or Create an account to join the conversation.
Are you sure that is true?On top on this there is ROS running. Robot Operating System should do the trajectory planning because there are more advanced planning algorithms.
Now I want to know if it is possible to feed LinuxCNC with a list of trajectories. The trajectory list contains the target angles for each axis, timestamps, velocities etc... ROS is running on seperate servers. There should be one extra control server for the robot arm
This might be possible. You can probably use a HAL-only setup to use the LinuxCNC Mesa card drivers. Those create HAL pins that accept motor positions directly. (in length or angle units)
The drivers expect the updates to happen every mS exactly, though. So you need a real-time component to extract the positions from the ROS data. It is entrirely possible tha
www.linuxcnc.org/docs/html/man/man9/streamer.9.html
Can be configured to do this.
I am not 100% convinced that using ROS isn't making things more difficult rather than easier, though. That would depend on what your aims are.
Please Log in or Create an account to join the conversation.
This depends which use case is dealt.
Are you sure that is true?On top on this there is ROS running. Robot Operating System should do the trajectory planning because there are more advanced planning algorithms.
For milling CAM and LinuxCNC is clearly the best solution. I want to use a 6 axis robot arm in a pick and place application with a lot of dynamic obstacles. The motion planning module in ROS is aware of obstacles and can consider them during path planing.
I think this is not possible with LinuxCNC. But maybe I am wrong?
This might be possible. You can probably use a HAL-only setup to use the LinuxCNC Mesa card drivers. Those create HAL pins that accept motor positions directly. (in length or angle units)
The drivers expect the updates to happen every mS exactly, though. So you need a real-time component to extract the positions from the ROS data. It is entrirely possible tha
www.linuxcnc.org/docs/html/man/man9/streamer.9.html
Can be configured to do this.
Might there be a G-Code which just sets the angles of each axis? Ìf there was such a command I could simply write file down and execute this file.
Please Log in or Create an account to join the conversation.
Might there be a G-Code which just sets the angles of each axis? Ìf there was such a command I could simply write file down and execute this file.
You could use no kinematics and operate joint 0 with the X word, joint 1 with the Y etc.
Or you could use kinematics and G-code moves in cartesian space.
But I thought you wanted to stream live motion from ROS?
Please Log in or Create an account to join the conversation.
But I thought you wanted to stream live motion from ROS?
No, i didn't want to use a trajectory stream. The trajectories are precalculated by MoveIt and should be downloaded to the robot before execution.
Moving in the cartesian space could be problematic because often there is more than one result of the IK solver.
Thank you!
Please Log in or Create an account to join the conversation.
But I thought you wanted to stream live motion from ROS?
No, i didn't want to use a trajectory stream. The trajectories are precalculated by MoveIt and should be downloaded to the robot before execution.
In that case you might as well just generate a G-code file per job, then it doesn't matter where the path comes from.
I think you can probably configure the machine as a trivial-kinematics system and let the G-code generator handle the kinematics, but LinuxCNC is entirely capable of handling robot arm kinematics.
Try starting LinuxCNC and have a play with the Puma560 sample config.
(Note that after homing you can switch to cartesian space with the $ key, or from the menu)
Please Log in or Create an account to join the conversation.