Ask Your Question

florian_v's profile - activity

2017-11-01 14:30:07 -0500 received badge  Famous Question (source)
2017-11-01 14:30:07 -0500 received badge  Notable Question (source)
2017-11-01 14:30:07 -0500 received badge  Popular Question (source)
2017-07-31 18:14:17 -0500 received badge  Famous Question (source)
2017-07-30 17:38:35 -0500 received badge  Student (source)
2017-03-13 13:31:28 -0500 received badge  Popular Question (source)
2017-03-13 13:31:28 -0500 received badge  Notable Question (source)
2016-11-24 08:35:03 -0500 received badge  Editor (source)
2016-11-24 08:33:46 -0500 asked a question Define correct move_group for using TracIK with python

Hello,

when I try to interact with a move_group via a python script called by a launch file, the default value for solve_type is used instead of the one defined in the kinematics.yaml.

This is what my kinematics.yaml file looks like:

arm:    
kinematics_solver: trac_ik_kinematics_plugin/TRAC_IKKinematicsPlugin 
kinematics_solver_timeout: 0.005    
solve_type: Manipulation1

When I start the robot system and moveit with a separate launch file, it seems to read the content of kinematics.yaml correctly:

PARAMETERS
...
 * /robot_description_kinematics/arm/kinematics_solver: trac_ik_kinematic...
 * /robot_description_kinematics/arm/kinematics_solver_timeout: 0.005
 * /robot_description_kinematics/arm/solve_type: Manipulation1
 ...

This is my script:

#!/usr/bin/env python
# import libs
# Initilaize

moveit_commander.roscpp_initialize(sys.argv)
robot = moveit_commander.RobotCommander()
group = moveit_commander.MoveGroupCommander("arm")

joint_pub_arm = rospy.Publisher('robot_arm/arm/joint_trajectory_controller/command',JointTrajectory , queue_size=1)
joint_pub_base= rospy.Publisher('robot_arm/base/joint_trajectory_controller/command',JointTrajectory , queue_size=1)

def callback(data_in): 

    #generate pose ...

    plan1= group.plan(p.pose)

    msg = plan1.joint_trajectory

    comb_msg = split_msg_base_arm (msg)
    base_msg = comb_msg[0]
    arm_msg = comb_msg[1]

    joint_pub_arm.publish(arm_msg)
    joint_pub_base.publish(base_msg)

# ============================================================================================
def listener(): 
    rospy.init_node("touch_listener", anonymous=True)
    rospy.Subscriber("touchscreen", touchscreen_data,  callback, queue_size=1)   
    rospy.spin()

if __name__ == "__main__":
    listener()

This is my launch file:

<launch>
  <group ns ="move_group">
    <rosparam command="load" file="$(find robotino_arm_6dof_moveit_config)/config/kinematics.yaml"/>
  </group>

  <node name="touch_listener" pkg="demo_1" type="fast_hack_touch_listener.py" respawn="false" output="screen">
  </node>  
</launch>

When i try to launch it the following happens:

started roslaunch server http://robotino:47211/

SUMMARY
========

PARAMETERS
 * /move_group/arm/kinematics_solver: trac_ik_kinematic...
 * /move_group/arm/kinematics_solver_timeout: 0.005
 * /move_group/arm/solve_type: Manipulation1
 * /rosdistro: indigo
 * /rosversion: 1.11.19

NODES
  /
    touch_listener (demo_1/fast_hack_touch_listener.py)

ROS_MASTER_URI=http://localhost:11311

core service [/rosout] found
process[touch_listener-1]: started with pid [8631]
[ INFO] [1479996271.812067758]: Loading robot model 'robotino_arm_6dof'...
[ INFO] [1479996272.162000297]: IK Using joint base_link -3.40282e+38 3.40282e+38
[ INFO] [1479996272.162113755]: IK Using joint link1 -1.8326 1.8326
[ INFO] [1479996272.162173560]: IK Using joint motor2 -2.44346 2.44346
[ INFO] [1479996272.162216309]: IK Using joint link3 -3.14159 3.14159
[ INFO] [1479996272.162276581]: IK Using joint link4 -3.14159 3.14159
[ INFO] [1479996272.162358474]: IK Using joint link5 -3.14159 3.14159
[ INFO] [1479996272.162430079]: Looking in private handle: /move_group_commander_wrappers_1479996271800514391 for param name: arm/position_only_ik
[ INFO] [1479996272.163764172]: Looking in private handle: /move_group_commander_wrappers_1479996271800514391 for param name: arm/solve_type
[ INFO] [1479996272.164922544]: Using solve type Speed
[ INFO] [1479996273.084825013]: Ready to take MoveGroup commands for group arm.

A new move_group_commander_wrapper_* is created instead of using the existing move_group to get the parameter from. I guess that this is a wrong usage of the move_group python interface.

How can I correct this?

Thank you very much!

2016-10-25 08:57:36 -0500 asked a question Generation of IKfast plugin for a 6DoF arm

Hello, I am currently trying to generate a ikfast moveit plugin for a custom 6DoF arm. I was following the tutorial: http://docs.ros.org/indigo/api/moveit...

As suggested in other questions, I wanted to start off with a well designed URDF-file to test my tool chain. I tried the abb repo from ros industrial ( https://github.com/ros-industrial/abb ).

With these files, I tried to generate the IK solver - and this is where I am stuck at the moment.


Here are the steps up to the error:

Installed everything

Checked the urdf with check_urdf irb2400.urdf

robot name is: abb_irb2400
---------- Successfully Parsed XML ---------------
root Link: base_link has 2 child(ren)
    child(1):  base
    child(2):  link_1
        child(1):  link_2
            child(1):  link_3
                child(1):  link_4
                    child(1):  link_5
                        child(1):  link_6
                            child(1):  tool0

Converted the urdf to dae with:

rosrun collada_urdf urdf_to_collada irb2400.urdf irb2400.dae

Checked the structure:

openrave-robot.py irb2400.dae --info links
name      index parents  
base_link 0              
base      1     base_link
link_1    2     base_link
link_2    3     link_1   
link_3    4     link_2   
link_4    5     link_3   
link_5    6     link_4   
link_6    7     link_5   
tool0     8     link_6   
name      index parents

Tried to generate the IK solver

python `openrave-config --python-dir`/openravepy/_openravepy_/ikfast.py --robot=irb2400.dae --iktype=transform6d --baselink=1 --eelink=8 --savefile=result.h

It fails with:

Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/openravepy/_openravepy_/ikfast.py", line 9535, in <module>
    chaintree = solver.generateIkSolver(options.baselink,options.eelink,options.freeindices,solvefn=solvefn)
  File "/usr/local/lib/python2.7/dist-packages/openravepy/_openravepy_/ikfast.py", line 2287, in generateIkSolver
    chaintree = solvefn(self, LinksRaw, jointvars, isolvejointvars)
  File "/usr/local/lib/python2.7/dist-packages/openravepy/_openravepy_/ikfast.py", line 2882, in solveFullIK_6D
    tree = self.TestIntersectingAxes(solvejointvars,Links, LinksInv,endbranchtree)
  File "/usr/local/lib/python2.7/dist-packages/openravepy/_openravepy_/ikfast.py", line 2970, in TestIntersectingAxes
    return self.solve6DIntersectingAxes(T0links,T1links,transvars,rotvars,solveRotationFirst=solveRotationFirst, endbranchtree=enbranchtree)
  File "/usr/local/lib/python2.7/dist-packages/openravepy/_openravepy_/ikfast.py", line 3143, in solve6DIntersectingAxes
    transtree = self.SolveAllEquations(AllEquations,curvars=curvars,othersolvedvars=othersolvedvars[:],solsubs=solsubs,endbranchtee=newendbranchtree)
  File "/usr/local/lib/python2.7/dist-packages/openravepy/_openravepy_/ikfast.py", line 6861, in SolveAllEquations
    return self.AddSolution(solutions,AllEquations,curvars,othersolvedvars,solsubs,endbranchtree,currentcases=currentcases, curretcasesubs=currentcasesubs, unknownvars=unknownvars)
  File "/usr/local/lib/python2.7/dist-packages/openravepy/_openravepy_/ikfast.py", line 7525, in AddSolution
    newtree = self.SolveAllEquations(NewEquationsClean,curvars,othersolvedvars,solsubs,endbranchtree,currentcases=newcases, curretcasesubs=newcasesubs, unknownvars=unknownvars)
  File "/usr/local/lib/python2.7/dist-packages/openravepy/_openravepy_/ikfast.py", line 6861, in SolveAllEquations
    return self.AddSolution(solutions,AllEquations,curvars,othersolvedvars,solsubs,endbranchtree,currentcases=currentcases, curretcasesubs=currentcasesubs, unknownvars=unknownvars)
  File "/usr/local/lib/python2.7/dist-packages/openravepy/_openravepy_/ikfast.py", line 6961, in AddSolution
    return [solution[0].subs(solsubs)]+self.SolveAllEquations(AllEquations,curvars=newvars,othersolvedvars=othersolvedvars+[var],olsubs=solsubs+self.Variable(var).subs,endbranchtree=endbranchtree,currentcases=currentcases, currentcasesubs=currentcasesubs, unnownvars=unknownvars)
  File "/usr/local/lib/python2.7/dist-packages/openravepy/_openravepy_/ikfast.py", line 6721, in SolveAllEquations
    return self.AddSolution(solutions,AllEquations,curvars,othersolvedvars,solsubs,endbranchtree ...
(more)