Closed progettista6 closed 2 years ago
Regarding these two questions, I am very sorry. The configuration files of ec66 and ec612 are different, corresponding to two different interfaces of the robot SDK. It is recommended to use the configuration of EC66. We will update this question.
So if I understood correctly, I have to set "joint_trajectory_movel" also in the "ec612.yaml" file, can you confirm that?
Thank you
Yes
Thank you very much, now the EC612 robot works correctly. What about the EC66? When I command a movement at full speed via ROS driver the robot moves much slower than commanding a movement at full speed via teach pendant. I used the provided "joint_limits.yaml" file without changes in velocity and acceleration values. Thank you
If you want to achieve the same operation as the teach pendant, you may need to use cart_move_serve or joint_move in elite_drive, these two services are suitable for moving between two points
Hello,
I tried to use the "/joint_move" service as you suggested, but the robot moves very slowly even when setting very high acceleration and velocity values.
I leave you below the code I used for the service:
//-----elite-----
ros::ServiceClient elite_move_client = nh.serviceClient
elite_move_srv.request.target_joint = {180.0,-90.0,90.0,-90.0,90.0,-90.0,0.0,0.0};
elite_move_srv.request.speed = 1.0;
elite_move_srv.request.acc = 80;
elite_move_srv.request.dec = 40;
elite_move_srv.request.is_blocking = true;
if(!(elite_move_client.call(elite_move_srv)))
{
ros::shutdown();
}
usleep(2000000);
Do you have any suggestions?
Thank you
Have you set the global speed percentage for auto mode or remote mode?These two speed percentages are modified synchronously.
Do you mean the "speed" and "acc" service arguments values, or something else? What is the procedure to follow?
Thank you
You first need to set the speed to 100% in automatic mode, then go to remote mode and run the program to see if the speed increases. for the aforementioned el.setMaxAccelerationScalingFactor(0.01); el.setMaxVelocityScalingFactor(0.05); You can set the parameter to 1 to see if the robotic arm can achieve a satisfactory speed
Do you mean the "speed" and "acc" service arguments values, or something else? What is the procedure to follow?
Thank you
For the speed parameter of joint_move, it can be set to: elite_move_srv.request.speed = 100; elite_move_srv.request.acc = 100; elite_move_srv.request.dec = 100; I have tested with significant speed changes, be careful during testing
I set the velocity as you indicated:
For now, I can use the first mode, but I'd like to use also the second one.
Thank you
did you check the speed percentage on the teach pendant?
Yes, in "Remote" mode and in "Play" mode it shows "100%".
Can you provide the service sample code of joint_move, if it is convenient for me to test it, the running speed of the sample code of joint_move has changed obviously. You can look at test_joint_move.py in the test file
you can also test in terminal like this: rosservice call /joint_move "target_joint: [0,-60,33,-80,90,0] speed: 100 acc: 10 dec: 10 is_blocking: False"
Hello,
I tried again to use "joint_move" service, I had set the speed parameter too low. Now it works correctly.
Thank you
Hello,
I cloned this repository in a Kontron industrial PC with Ubuntu 20.04.5 LTS and ROS Noetic installed. I tried to command an EC612 robot with the following firmware and software versions:
Controller software V3.5.2.2022090 Servo software V11.41
I launched the EC612 controllers and the related elite_moveit.launch file, and everything works: in fact Rviz panel showed the correct configuration for the robot.
I use the
joint_limits.yaml
file provided, without changes in velocities and accelerations values.In my node I used the
MoveGroupInterface
ROS library, setting the following values://-----elite----- moveit::planning_interface::MoveGroupInterface el ("manipulator"); ros::ServiceClient client = nh.serviceClient("/set_digital_io_server");
elite_msgs::SetIO srv;
el.setPlanningTime( 15.0 ); //sec
el.setGoalTolerance( 0.01 ); //m
el.setGoalOrientationTolerance( 0.05);//rad
el.setMaxAccelerationScalingFactor(0.01);
el.setMaxVelocityScalingFactor(0.05);
I noticed that the robot moved only by setting el.setMaxVelocityScalingFactor(0.01) and el.setMaxAccelerationScalingFactor(0.01), but the movement was logically very slow. Trying to command a movement with el.setMaxAccelerationScalingFactor(0.25) and el.setMaxVelocityScalingFactor(0.5), the robot moved very sharply and this caused an overspeed error.
Using the same workspace to command an EC66 robot, with the same controller and servo software versions, and the same workspace, I noticed a completely different behaviour.
In fact, setting el.setMaxAccelerationScalingFactor(0.25) and el.setMaxVelocityScalingFactor(0.5), the robot moved better. The only note I would make is that when I commanded a movement at full speed, the robot moved slower than commanding a movement at full speed via teach pendant.
Could you check and help me to move correctly both EC612 and EC66, please?
Waiting for your reply,
Thank you