Custom Trajectory Planner via ROS

More
12 May 2015 13:36 #58585 by Timm
Before I start the project, I want check if LinuxCNC is the right choice.

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.

More
12 May 2015 21:34 #58601 by andypugh

On top on this there is ROS running. Robot Operating System should do the trajectory planning because there are more advanced planning algorithms.

Are you sure that is true?

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.
The following user(s) said Thank You: Timm

Please Log in or Create an account to join the conversation.

More
13 May 2015 01:40 #58606 by Timm

On top on this there is ROS running. Robot Operating System should do the trajectory planning because there are more advanced planning algorithms.

Are you sure that is true?

This depends which use case is dealt.

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.

More
13 May 2015 01:59 #58607 by andypugh

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.

More
13 May 2015 02:18 #58608 by Timm

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.

More
13 May 2015 17:02 #58622 by andypugh

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.

Time to create page: 0.228 seconds
Powered by Kunena Forum