Ask Your Question
0

set free_index for 7-dof robot's IKFast moveit plugin generation

asked 2018-03-16 00:03:37 -0600

Hi everyone,

I writing to ask a question about setting free joint index for a 7-dof robot's ikfast moveit plugin generation. I am running ROS kinetic on Ubuntu 16.04 and openrave master branch (commit). The sympy version I am using is 0.7.1 (matching openrave;s requirement).

The 7 dof robot I am working on consists of one standard 6 dof industrial robotic arm and a horizontal linear axis. Take the following 6-axis IRB6640 + linear axis for an example, the links info is:

name                    index parents                
-----------------------------------------------------
base_link               0                            
linear_axis_base_link   1     base_link              
linear_axis_zero        2     linear_axis_base_link  
linear_axis_carriage    3     linear_axis_zero       
linear_axis_robot_mount 4     linear_axis_carriage   
robot_base_link         5     linear_axis_robot_mount
robot_base              6     robot_base_link        
robot_link_1            7     robot_base_link        
robot_link_2            8     robot_link_1           
robot_link_3            9     robot_link_2           
robot_link_4            10    robot_link_3           
robot_link_5            11    robot_link_4           
robot_link_6            12    robot_link_5           
robot_tool0             13    robot_link_6           
eef_base_link           14    robot_tool0            
eef_tcp_frame           15    eef_base_link          
robot_link_cylinder     16    robot_link_1           
robot_link_piston       17    robot_link_cylinder    
-----------------------------------------------------
name                    index parents

A snapshot of the dae visualization:

However, I've tried setting free_index to each of the indices, but the ikfast either popped up the following error (and I've tried running round_collada_numbers) or it takes 8 minutes or so to compute and then end with some errors:

__main__.CannotSolveError: CannotSolveError: need 6 joints

My question is: What would be the role of thumb in setting up this free index in ikfast generation for our 6-index industrial robot + linear axis setup, which is quite common in many real-world industrial applications?

FYI, I have documented a lot of details in my trial-and-error in an updated ikfast tutorial dedicated to Kinetic here [1], in the hope that it can help others.

[1] https://github.com/yijiangh/framefab_...

edit retag flag offensive close merge delete

Comments

This is not an answer, but see if the procedure in #q263925 makes any difference. It's written for 4dof, but just replace with the appropriate solver type. Using the inversekinematics database has helped me get past weird IKFast errors before. Can't guarantee anything, but it's worth a try.

gvdhoorn gravatar imagegvdhoorn ( 2018-03-16 02:28:47 -0600 )edit

1 Answer

Sort by ยป oldest newest most voted
0

answered 2018-03-17 13:15:45 -0600

Following the link in @gvdhoorn's comment above, I've successfully created ikfast plugin for my 6+1dof case, using ikfast's inversekinematics database.

I've documented the resolution in an updated moveit-ikfast tutorial here if anyone is interested in this.

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

2 followers

Stats

Asked: 2018-03-16 00:03:37 -0600

Seen: 279 times

Last updated: Mar 17 '18