ROBOTIS-GIT / open_manipulator_p

OpenManipulator-P for controlling in Gazebo and Moveit with ROS
Apache License 2.0
41 stars 21 forks source link

[ERROR] [checkJointLimit] Goal value exceeded limit at joint2. #58

Open ysh-ai opened 3 years ago

ysh-ai commented 3 years ago

The angle value of manipulator obtained in GUI program exceeds the limit, which leads to the error of controlling manipulator movement,GUI demo program is not a problem, there is a problem with the Angle value

ROBOTIS-Will commented 3 years ago

@ysh-ai Hi, could you confirm which version of ROS and Ubuntu you use? Please also let us know which commands did you use so that we can try them with our test platform. Thank you.

ysh-ai commented 3 years ago

We manually moved the robot arm, and found that there was feedback in the software, but the value was wrong. We manually rotated the 2 axis of the robot arm 10 degrees, and the software showed a deviation of tens of radians. Is there any parameter that needs to be modified in the software configuration file

ROBOTIS-Will commented 3 years ago

The software defines the MIN / MAX range of most joints by -PI ~ +PI from the origin, and exceeding this limit may result in unexpected data in return. https://github.com/ROBOTIS-GIT/open_manipulator_p/blob/master/open_manipulator_p_libs/src/open_manipulator_p.cpp#L47 Please make sure to operate within the limited range or you'll need to modify the source code properly.

ysh-ai commented 3 years ago

Now it is not a matter of setting the Angle range, but the problem is that the manipulator's 2, 3 and 5 axes are moving at a small Angle, and the feedback value is large, that is, the actual motion Angle and the feedback Angle are not consistent

ROBOTIS-Will commented 3 years ago

Once again, please give us more information about your development environment. ROS & Ubuntu version, list of command typed in to run the example... etc

ysh-ai commented 3 years ago

Ubuntu18.04 Rosversion: 1.14.9 We are according to the installation and use of https://emanual.robotis.com/docs/en/platform/openmanipulator_p/ros_operation/#gui-program

ysh-ai commented 3 years ago

addJoint("joint1", // my name "world", // parent name "joint2", // child name math::vector3(0.0, 0.0, 0.126), // relative position math::convertRPYToRotationMatrix(0.0, 0.0, 0.0), // relative orientation Z_AXIS, // axis of rotation 1, // actuator id M_PI, // max joint limit (3.14 rad) -M_PI, // min joint limit (-3.14 rad) ---- -> 1.0, // coefficient 9.8406837e-02, // mass math::inertiaMatrix(3.4543422e-05, -1.6031095e-08, -3.8375155e-07, 3.2689329e-05, 2.8511935e-08, 1.8850320e-05), // inertial tensor math::vector3(-3.0184870e-04, 5.4043684e-04, 0.018 + 2.9433464e-02) // COM );

Does the coefficient pointed by the arrow need to be modified

ROBOTIS-Will commented 3 years ago

The coefficient doesn't have to do with the angle read from the manipulator. Turn off the power and pose the manipulator like the image below and start launching programs. image After launching the GUI, please check the Joint 1 ~ 6 values to see if they are inbetween -1.571 rad to 1.571

ysh-ai commented 3 years ago

I can't see this picture

ysh-ai commented 3 years ago

Do you have wechat? Let's add a friend

ROBOTIS-Will commented 3 years ago

The image can be seen in the eManual below. https://emanual.robotis.com/docs/en/platform/openmanipulator_p/ros_controller_package/#launch-controller It looks like the character eight("八") in Chinese.

ysh-ai commented 3 years ago

According to your method, it still doesn't work. Let's go here. After the coefficient I mentioned above is reduced, it feels almost OK, but the angle of motion is still wrong. Is that coefficient related to the number of wires of reducer and motor? Is it necessary to modify it

ROBOTIS-Will commented 3 years ago

@ysh-ai Hi, there was a bug in the DYNAMIXEL Workbench code that use a wrong DYNAMIXEL for P series Please update the DYNAMIXEL Workbench to the latest code by $ git pull command. This will fix the issue. Thank you.

ysh-ai commented 3 years ago

Are there specific update instructions? I need to update the action steps

ROBOTIS-Will commented 3 years ago

In order to update the source code, use the command below.

$ cd ~/catkin_ws/src/dynamixel-workbench
$ git pull

What do you mean by the "update the action steps"?

ysh-ai commented 3 years ago

After I modify the motor deceleration ratio, the motion angle of the manipulator joint is OK, but the motion direction is not correct when moving x, y and Z. do you need to modify the DH model parameters in the program

ysh-ai commented 3 years ago

Can you give me your successful case procedure? Now the joint angle motion is normal, but the motion XYZ in Cartesian coordinate system is not correct, it is not linear motion, but oblique motion

ROBOTIS-Will commented 3 years ago

Could you elaborate more on this issue? Are you saying that the manipulator is moving to the opposite X, Y, Z direction? https://www.ros.org/reps/rep-0103.html#coordinate-frame-conventions Task space control(Cartesian) uses the end effector's XYZ coordinate to create a motion trajectory. I'm not sure what you mean by the "oblique motion".

ysh-ai commented 3 years ago

Oblique motion values refer to, for example, moving in the positive x direction, resulting in an oblique curve of the real manipulator trajectory

ysh-ai commented 3 years ago

I was wrong. At the moment each joint movement command sends 45 degrees and the actual movement is 90 degrees

ROBOTIS-Will commented 3 years ago

I'm sorry but could you give us detailed step by step instructions so that we can reproduce what you are seeing?

ysh-ai commented 3 years ago

First, we installed Ubuntu 18.04 and installed the robot related packages according to the operation documents. Then we found that the position of joint 2 exceeded the limit because the angle read in GUI program was more than 900 radians. We modified the deceleration ratio coefficient (1.0 in addjoint) in the configuration file, //After the modification, the manipulator moves 90 degrees, but in the GUI program, the feedback is 45 degrees. Is there any other parameter in the configuration file that needs to be modified

GUI program connection: https://emanual.robotis.com/docs/en/platform/openmanipulator_ p/ros_ operation/#gui-program

Modify the program is under the installation Road: Home / catkin ws/src/open manipulator/open manipulator P libs/src/open manipulator_ p.cpp

ROBOTIS-Will commented 3 years ago

It looks like you have modified the source code that is not necessary after updating the DYNAMIXEL Workbench bug fix. We've tested our OpenMANIPULATOR-P with the latest packages without any modification and confirmed it works fine without a problem, so please delete the packages installed in the catkin_ws/src folder and install ROS pacakges again with below commands.

$ cd ~/catkin_ws/src/
$ git clone https://github.com/ROBOTIS-GIT/DynamixelSDK.git
$ git clone https://github.com/ROBOTIS-GIT/dynamixel-workbench.git
$ git clone https://github.com/ROBOTIS-GIT/dynamixel-workbench-msgs.git
$ git clone https://github.com/ROBOTIS-GIT/open_manipulator_p.git
$ git clone https://github.com/ROBOTIS-GIT/open_manipulator_msgs.git
$ git clone https://github.com/ROBOTIS-GIT/open_manipulator_p_simulations.git
$ git clone https://github.com/ROBOTIS-GIT/robotis_manipulator.git
$ cd ~/catkin_ws && catkin_make

If this does not work for you, please let us know so we can set up a schedule a conference call. Thank you.

ysh-ai commented 3 years ago

[ERROR] [TxRxResult] Incorrect status packet! [ERROR] groupSyncRead getdata failed [ERROR] groupSyncRead getdata failed [ERROR] groupSyncRead getdata failed

ysh-ai commented 3 years ago

It's totally wrong. I want to move the 6-axis motor. As a result, many axes are moving together. The movement is completely disordered. If the controller is opened, an error will be reported [ERROR] [TxRxResult] There is no status packet! [ERROR] groupSyncRead getdata failed [ERROR] groupSyncRead getdata failed [ERROR] groupSyncRead getdata failed

ROBOTIS-Will commented 3 years ago

@ysh-ai Hi, our sales team will contact you to schedule a conference call. In the meantime, could you give us ID and Baudrate setting of each DYNAMIXEL using DYNAMIXEL Wizard 2.0? Thank you.