Control of end_effector
I can carry out the forward kinetic of my robot, and move also the end effector. I am using the scrip of [Move Group Python Interface] (http://docs.ros.org/en/kinetic/api/mo...), the Planning to a Joint Goal funtion, but it is not reognaising the end effector. I used Ubuntu 16.04 and Ros Kinetic
This is the output of script is:
[ INFO] [1657221601.922545523]: Loading robot model 'robotic_arm'...
[ WARN] [1657221601.922747923]: Could not identify parent group for end-effector 'robot_eef'
[ INFO] [1657221601.969660073]: Loading robot model 'robotic_arm'...
[ WARN] [1657221601.969857450]: Could not identify parent group for end-effector 'robot_eef'
[ INFO] [1657221603.055365548]: Ready to take commands for planning group arm.
============ Reference frame: /bottom_link
============ End effector: grasping_frame
============ Robot Groups: ['arm']
============ Printing robot state
[ WARN] [1657221604.061307569]: Joint values for monitored state are requested but the full state is not known
joint_state:
header:
seq: 0
stamp:
secs: 0
nsecs: 0
frame_id: "/bottom_link"
name: [shoulder_pan_joint, shoulder_pitch_joint, elbow_pitch_joint, wrist_pitch_joint, wrist_joint,
finger_joint1]
position: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
velocity: []
effort: []
multi_dof_joint_state:
header:
seq: 0
stamp:
secs: 0
nsecs: 0
frame_id: "/bottom_link"
joint_names: []
transforms: []
twist: []
wrench: []
attached_collision_objects: []
is_diff: False
============ Press `Enter` to execute a movement using a joint state goal ...
Traceback (most recent call last):
File "/home/frauas/ws_moveit/src/dxl_tutorial/scripts/motion.py", line 443, in <module>
main()
File "/home/frauas/ws_moveit/src/dxl_tutorial/scripts/motion.py", line 417, in main
tutorial.go_to_joint_state()
File "/home/frauas/ws_moveit/src/dxl_tutorial/scripts/motion.py", line 168, in go_to_joint_state
joint_goal[5] = -0.0002
IndexError: list assignment index out of range
Segmentation fault (core dumped)
So on [shoulder_pan_joint, shoulder_pitch_joint, elbow_pitch_joint, wrist_pitch_joint, wrist_joint, finger_joint1]
It is recognizing the ed-effector joint finger_joint1
, but even wirting on the code joint_goal[5] = 0.0, It keeps with the same error. This is code:
def go_to_joint_state(self):
group = self.group
joint_goal = group.get_current_joint_values()
joint_goal[0] = 0.0 # C-2x4 good set point
joint_goal[1] = -0.3
joint_goal[2] = 0.15
joint_goal[3] = 1.3
joint_goal[4] = 1.4
joint_goal[5] = -0.0002
# The go command can be called with joint values, poses, or without any
# parameters if you have already set the pose or joint target for the group
group.go(joint_goal, wait=True)
# Calling ``stop()`` ensures that there is no residual movement
group.stop()
current_joints = self.group.get_current_joint_values()
return all_close(joint_goal, current_joints, 0.01)
And this is the srdf file
<!--
This does not replace URDF, and is not an extension of URDF.
This is a format for representing semantic information about the robot structure.
A URDF file must exist for this robot as well, where the joints and the links that are referenced are defined
-->
<robot name="robotic_arm">
<!--
GROUPS: Representation of a set of joints and links. This can be useful for specifying DOF to plan for, defining arms, end effectors, etc
-->
<!--
LINKS: When a link is specified, the parent joint of that link (if it exists) is automatically included
-->
<!--
JOINTS: When a joint is specified, the child ...