easy_handeye icon indicating copy to clipboard operation
easy_handeye copied to clipboard

"Cannot calibrate from current position", how solve this problem ?

Open makangzhe opened this issue 4 years ago • 9 comments

In the gui rqt_easy_hand_eye,when i click "check starting pose " ,it return "Cannot calibrate from current position " . i try alter my origanal pose ,but it not work . help me please!!!

makangzhe avatar Oct 21 '20 15:10 makangzhe

i am using old version .

makangzhe avatar Oct 21 '20 15:10 makangzhe

this is my launch file

<arg name="robot_ip" doc="The IP address of the UR5 robot" default="192.168.0.100" />

<arg name="marker_size" doc="Size of the ArUco marker used, in meters" default="0.08"/>

<arg name="marker_id" doc="The ID of the ArUco marker used" default="100"/>



<!-- start ArUco -->
<node name="aruco_tracker" pkg="aruco_ros" type="single">
    <remap from="/camera_info" to="/camera/color/camera_info" />
    <remap from="/image" to="/camera/color/image_raw" />
    <param name="image_is_rectified" value="true"/>
    <param name="marker_size"        value="$(arg marker_size)"/>
    <param name="marker_id"          value="$(arg marker_id)"/>
    <param name="reference_frame"    value="camera_link"/>
    <param name="camera_frame"       value="camera_color_optical_frame"/>
    <param name="marker_frame"       value="camera_marker" />
</node>

<!-- start the robot -->
<include file="$(find aubo_i5_moveit_config)/launch/moveit_planning_execution.launch">
    <arg name="sim" value="false" />
    <arg name="robot_ip" value="192.168.0.100" />
</include>

<!-- start easy_handeye -->
<include file="$(find easy_handeye)/launch/calibrate.launch" >
    <arg name="namespace_prefix" value="$(arg namespace_prefix)" />
    <arg name="eye_on_hand" value="true" />

    <arg name="tracking_base_frame" value="camera_link" />
    <arg name="tracking_marker_frame" value="camera_marker" />
    <arg name="robot_base_frame" value="base_link" />
    <arg name="robot_effector_frame" value="wrist3_Link" />

    <arg name="freehand_robot_movement" value="false" />
    <arg name="robot_velocity_scaling" value="0.5" />
    <arg name="robot_acceleration_scaling" value="0.2" />
</include>

makangzhe avatar Oct 21 '20 15:10 makangzhe

@marcoesposito1988

makangzhe avatar Oct 22 '20 09:10 makangzhe

Hello @makangzhe,

I added a configuration for the aubo i5 robot to easy_handeye_demo; you can find it here.

I did not have any problems calibrating with the simulator. Can you also try it? (I used the latest master of easy_handeye)

If you have problems with the simulator as well, please try another starting position for the robot.

Otherwise, please check that you can move the robot with MoveIt and pay attention to the easy_handeye logs, to see if there are problems in the connection between easy_handeye and MoveIt.

marcoesposito1988 avatar Oct 23 '20 22:10 marcoesposito1988

Hi everyone, I am experiencing the same problem. Basically, I have launched all the needed files to perform calibration, according to the step you described. However, when I click on the 'check starting pose' button, it returns "Cannot calibrate from current position". For sure, I am skipping some important steps but I don't know which one. In addition, I am able to successfully move the robot within RViZ. Below, you can find the launch file and a photo of the result.

Photo: forum_easyendeye

Launch file: forum_launch

lucamarchionna avatar Jul 06 '21 12:07 lucamarchionna

Sorry, just saw this; the answer is here

marcoesposito1988 avatar Jul 06 '21 15:07 marcoesposito1988

Thank you for the reply @marcoesposito1988 . I have just checked different random positions in MoveIT and the check starting pose always fails.

I am performing the setup in simulation moving the camera by hand- not together with robot end-effector- just to see if a starting pose is available. By the way, what is the argument to reduce the rotations and translation?

In addition, I saw that 'freehand_robot_movement' is present, but I don't know how it works. Can you explain what this is, please? Thank you in advance.

lucamarchionna avatar Jul 06 '21 15:07 lucamarchionna

You can find the arguments related to the automatic robot movement here

freehand_robot_movement will disable the robot movements GUI, so it won't try to connect to an existing MoveIt group and it won't clutter your logs with errors if it doesn't succeed. You still need a robot_state_publisher running to have the pose of the base and effector frames in tf for the whole thing to work though.

rotation_delta_degrees and translation_delta_meters specify how far apart the calibration poses should be from the starting pose.

Is the description of your robot public? If so, I can maybe take a look at it and try to figure out why the IK is failing

marcoesposito1988 avatar Jul 07 '21 07:07 marcoesposito1988

Great documentation for this package, congrats. Thus, the /joint_states publishes its pose and seems to work. I cannot detect which could be the error although it is still present. It would be great if you can check. I am using e.Do robot, here the robot description package: https://github.com/Pro/edo_gripper_moveit

Thanks again for your support.

lucamarchionna avatar Jul 07 '21 10:07 lucamarchionna