mfueller / vrep_youbot_plugin

12 stars 16 forks source link

Launch hello_world_demo with V-Rep #2

Open Liiila0205 opened 10 years ago

Liiila0205 commented 10 years ago

Thank you for the plugin! Is there a way to load a .cpp file (based on the youbot API) and simulate that in V-Rep? With your plugin I can send rostopics to the simulation in V-Rep, and the robot executes them. I can also launch .py files, e.g. by $rosrun youbot_driver_ros_interface youbot_keyboard_teleop.py and everything works fine.

But my question is: How can I load .cpp-files based on the KUKA youbot API (http://www.youbot-store.com/youbot-developers/software/libraries/kuka-youbot-api), e.g. the hello_world_demo (https://github.com/youbot/youbot_applications)?

mfueller commented 10 years ago

Hi!

the plugin concentrates on the ROS framework and not on the youBot API.

However, you could write your own youBot API Interface for V-Rep. Have a look on the repository https://github.com/mfueller/RobotManipulation_WS2013 There you have a quite simple interface for the youBot Arm in V-Rep for c++ - you could use this as a basis your your own implementation.

Unfortunately, the youBot API does not provide "defined interfaces" and implement the stuff directly in the code e.g. YouBotBase.cpp and YouBotManipulator.cpp. Thus, you would need to define a similar class with the same method definition and switch the #include directive to either load the youBot API or your own API. (just as an idea)

BR, Matthias

Liiila0205 commented 10 years ago

Hi Matthias,

thank you for your fast reply! That is a really good advice! I've just downloaded your repository and wanted to try the example and take a look at your interface. But unfortunately when I try to run cmake as you suggest in your readme-file, I get the following error:

$ cmake /home/lena/catkin_ws/src/RobotManipulation_WS2013 -DVREP_DIR:PATH=/home/lena/v-rep make: v_repExtRemoteApi_Makefile: No such file or directory make: *\ No rule to make target `v_repExtRemoteApi_Makefile'. Stop.

Do you have any idea what's wrong here?

Best wishes, Lena

On 02.06.2014 14:28, MFueller wrote:

Hi!

the plugin concentrates on the ROS framework and not on the youBot API.

However, you could write your own youBot API Interface for V-Rep. Have a look on the repository https://github.com/mfueller/RobotManipulation_WS2013 There you have a quite simple interface for the youBot Arm in V-Rep for c++ - you could use this as a basis your your own implementation.

Unfortunately, the youBot API does not provide "defined interfaces" and implement the stuff directly in the code e.g. YouBotBase.cpp and YouBotManipulator.cpp. Thus, you would need to define a similar class with the same method definition and switch the #include directive to either load the youBot API or your own API. (just as an idea)

BR, Matthias

— Reply to this email directly or view it on GitHub https://github.com/mfueller/vrep_youbot_plugin/issues/2#issuecomment-44831069.

mfueller commented 10 years ago

it seems that v-rep has changed the compilation folders for their remoteAPI. I fixed some path in the CMakeLists and pushed the changed. The library is now compiling. However, I can not check the full example since I do not have the youBot OODL on my computer.

Please check if it is working and let me know if you have any further problems.

Liiila0205 commented 10 years ago

thank you for your nice help! now the compiling was successful. But when I start V-rep, load the scene with the youbot am and try to start the example by

lena@lena-MacBookPro:~/catkin_ws/src/RobotManipulation_WS2013/build$ ./example

I got the error:

terminate called after throwing an instance of 'youbot::FileNotFoundException' what(): ../config/youbot-ethercat.cfg file not found

do you know what's going on here?

Best regards, Lena

On 02.06.2014 20:51, MFueller wrote:

it seems that v-rep has changed the compilation folders for their remoteAPI. I fixed some path in the CMakeLists and pushed the changed. The library is now compiling. However, I can not check the full example since I do not have the youBot OODL on my computer.

Please check if it is working and let me know if you have any further problems.

— Reply to this email directly or view it on GitHub https://github.com/mfueller/vrep_youbot_plugin/issues/2#issuecomment-44876192.

mfueller commented 10 years ago

found the problem. The YOUBOT_CONFIGURATIONS_DIR was not given as a parameter in the example.cpp - I fixed it and pushed the changes. If it is complaining about the wrong path, you need to change the YOUBOT_CONFIGURATIONS_DIR the the cmake configuration.

Liiila0205 commented 10 years ago

thank you Matthias! I modified the example.cpp as you suggested and compiled it. But unfortunately I still got the same error:

lena@lena-PC:~/catkin_ws/src/RobotManipulation_WS2013$ sudo ./example Info: Initializing EtherCAT on eth0 with communication thread terminate called after throwing an instance of 'std::runtime_error' what(): No EtherCAT slaves found!

Is it possible that something is wrong in my .cfg files (see attached)?

Best wishes, Lena

On 06/03/2014 01:20 PM, MFueller wrote:

found the problem. The YOUBOT_CONFIGURATIONS_DIR was not given as a parameter in the example.cpp - I fixed it and pushed the changes. If it is complaining about the wrong path, you need to change the YOUBOT_CONFIGURATIONS_DIR the the cmake configuration.

  • Matthias

— Reply to this email directly or view it on GitHub https://github.com/mfueller/vrep_youbot_plugin/issues/2#issuecomment-44951697.

[EtherCAT] EthernetDevice = eth0 EtherCATUpdateRate[usec] = 1000 EtherCATTimeout[usec] = 500 #timeout value in us for tx frame to return to rx MaximumNumberOfEtherCATErrors = 100 MailboxTimeout_[usec] = 200 BaseJointControllerName = TMCM-174 BaseJointControllerNameAlternative = TMCM-1632 ManipulatorJointControllerName = TMCM-KR-841 ManipulatorJointControllerNameAlternative = TMCM-1610

[JointTopology] ManipulatorJoint1 = 0 ManipulatorJoint2 = 1 ManipulatorJoint3 = 2 ManipulatorJoint4 = 3 ManipulatorJoint5 = 4

[Gripper] EnableGripper = true DoCalibration = true

[GripperBar1] BarName = gripper_finger_jointl BarSpacingOffset[meter] = 0.0 MaxTravelDistance_[meter] = 0.0115 MaxEncoderValue = 66000 StallGuard2Threshold = 50 StallGuard2FilterEnable = true

[GripperBar2] BarName = gripper_finger_jointr BarSpacingOffset[meter] = 0.0 MaxTravelDistance_[meter] = 0.0115 MaxEncoderValue = 66000 StallGuard2Threshold = 50 StallGuard2FilterEnable = true

[Joint_1] JointName = arm_joint_1 GearRatio_numerator = 1 GearRatiodenominator = 156 EncoderTicksPerRound = 4000 TorqueConstant[newton_meter_divided_byampere] = 0.0335 InverseMovementDirection = true DoCalibration = true CalibrationDirection = NEGATIV CalibrationMaxCurrent[ampere] = 2.0 UpperLimit[encoderTicks] = -1000 LowerLimit[encoderTicks] = -580000 trajectory_controller_P = 20 trajectory_controller_I = 1 trajectory_controller_D = 0 trajectory_controller_I_max = 1000 trajectory_controller_I_min = -1000

[Joint_2] JointName = arm_joint_2 GearRatio_numerator = 1 GearRatiodenominator = 156 EncoderTicksPerRound = 4000 TorqueConstant[newton_meter_divided_byampere] = 0.0335 InverseMovementDirection = true DoCalibration = true CalibrationDirection = NEGATIV CalibrationMaxCurrent[ampere] = 0.5 UpperLimit[encoderTicks] = -1000 LowerLimit[encoderTicks] = -260000 trajectory_controller_P = 20 trajectory_controller_I = 1 trajectory_controller_D = 0 trajectory_controller_I_max = 1000 trajectory_controller_I_min = -1000

[Joint_3] JointName = arm_joint_3 GearRatio_numerator = 1 GearRatiodenominator = 100 EncoderTicksPerRound = 4000 TorqueConstant[newton_meter_divided_byampere] = 0.0335 InverseMovementDirection = false DoCalibration = true CalibrationDirection = POSITIV CalibrationMaxCurrent[ampere] = 1.0 UpperLimit[encoderTicks] = -1000 LowerLimit[encoderTicks] = -320000 trajectory_controller_P = 20 trajectory_controller_I = 1 trajectory_controller_D = 0 trajectory_controller_I_max = 1000 trajectory_controller_I_min = -1000

[Joint_4] JointName = arm_joint_4 GearRatio_numerator = 1 GearRatiodenominator = 71 EncoderTicksPerRound = 4000 TorqueConstant[newton_meter_divided_byampere] = 0.051 InverseMovementDirection = true DoCalibration = true CalibrationDirection = NEGATIV CalibrationMaxCurrent[ampere] = 0.5 UpperLimit[encoderTicks] = -1000 LowerLimit[encoderTicks] = -155000 trajectory_controller_P = 20 trajectory_controller_I = 10 trajectory_controller_D = 0 trajectory_controller_I_max = 1000 trajectory_controller_I_min = -1000

[Joint_5] JointName = arm_joint_5 GearRatio_numerator = 1 GearRatiodenominator = 71 EncoderTicksPerRound = 4000 TorqueConstant[newton_meter_divided_byampere] = 0.049 InverseMovementDirection = true DoCalibration = true CalibrationDirection = NEGATIV CalibrationMaxCurrent[ampere] = 0.5 UpperLimit[encoderTicks] = -5000 LowerLimit[encoderTicks] = -255000 trajectory_controller_P = 20 trajectory_controller_I = 1 trajectory_controller_D = 0 trajectory_controller_I_max = 1000 trajectory_controller_I_min = -1000

mfueller commented 10 years ago

I would say that you are not connected to a youBot. The example program controls the simulated arm and real arm simultaneously. Just remove the youbot oodl code from the example.cpp and it shouldnt complain about the connection problem.

Liiila0205 commented 10 years ago

Hi Matthias,

oh I see, now I understand. I didn't consider that your application is for the real robot, too. I removed the code regarding the real youbot and now it works fine! Thank you very much! Maybe next time I can help you, too :).

Best wishes, Lena

On 06/03/2014 04:13 PM, MFueller wrote:

I would say that you are not connected to a youBot. The example program controls the simulated arm and real arm simultaneously. Just remove the youbot oodl code from the example.cpp and it shouldnt complain about the connection problem.

— Reply to this email directly or view it on GitHub https://github.com/mfueller/vrep_youbot_plugin/issues/2#issuecomment-44969409.

Liiila0205 commented 10 years ago

Hi Matthias,

thanks again for your nice help last time. At the moment I'm trying to get the forward kinematics for the youBot (based on your RobotManipulation2013-gitrepository) working with KDL (no ROS, only based on the youBotAPI). After getting a good solution for the forward kinematics, I will try to implement the inverse Kinematics. My goal to move the youbot to a cartestian 3D position with it’s endeffector (inverse kinematics). It is important, that the solution is without ROS.

Regarding the Forward-Kinematics: If I pass the axis parameter for the position when the youbot has an unfolded Arm:

KDL::ChainFkSolverPos_recursive fksolver(chain);

KDL::JntArray q(chain.getNrOfJoints());

q(0)=2.56; q(1)=1.04; q(2)=-2.43; q(3)=1.73; q(4)=0;

...I get the following result:

[[ 0.891498, -0.379824, -0.246909; 0.366045, 0.925059, -0.101379; 0.266911, 6.95623e-18, 0.963721] [0.0229922, 0.00944049, 0.225387]]

But when I look at the simulation in V-Rep, the tooltip is on the position: X=0.0237, y=-0.0280, z= 0.6535. I assume the robot actually has to be on position:

(-0.0430236,-0.00324, 0.2256)

Why is the position in V-Rep different? Where did you get the values for building the chains (DH Notation) from? Did the KDL Solver worked in your case?

Best wishes, Lena

mfueller commented 10 years ago

Hi Lena,

On Wed, Jul 23, 2014 at 3:19 PM, Lena notifications@github.com wrote:

Hi Matthias,

thanks again for your nice help last time. At the moment I'm trying to get the forward kinematics for the youBot (based on your RobotManipulation2013-gitrepository) working with KDL (no ROS, only based on the youBotAPI). After getting a good solution for the forward kinematics, I will try to implement the inverse Kinematics. My goal to move the youbot to a cartestian 3D position with it’s endeffector (inverse kinematics). It is important, that the solution is without ROS.

Regarding the Forward-Kinematics: If I pass the axis parameter for the position when the youbot has an unfolded Arm:

KDL::ChainFkSolverPos_recursive fksolver(chain);

KDL::JntArray q(chain.getNrOfJoints());

q(0)=2.56; q(1)=1.04; q(2)=-2.43; q(3)=1.73; q(4)=0;

...I get the following result:

[[ 0.891498, -0.379824, -0.246909; 0.366045, 0.925059, -0.101379; 0.266911, 6.95623e-18, 0.963721] [0.0229922, 0.00944049, 0.225387]]

But when I look at the simulation in V-Rep, the tooltip is on the position: X=0.0237, y=-0.0280, z= 0.6535. I assume the robot actually has to be on position:

(-0.0430236,-0.00324, 0.2256)

Why is the position in V-Rep different?

There might be still a difference between the simulated youBot and the real one. Although I thought that it matches. I have not time to look into that in detail, but if you find any bugs in the model, please let me know!

Where did you get the values for building the chains (DH Notation) from? Did the KDL Solver worked in your case?

Please find attached some peace of source code that one of our student used to control the robot. It should work on the real robot (as far as I know) Again, please let me know if it works and I will upload it to the repository (or send me a patch or pull request)

Regards, Matthias

Best wishes, Lena

— Reply to this email directly or view it on GitHub https://github.com/mfueller/vrep_youbot_plugin/issues/2#issuecomment-49871823 .

Liiila0205 commented 10 years ago

Hi Matthias,

thank you for your mail. I'll take a look at the version of you student.

Did you forget to add the attachements?

Best wishes, Lena

On 07/24/2014 04:08 PM, MFueller wrote:

Hi Lena,

On Wed, Jul 23, 2014 at 3:19 PM, Lena notifications@github.com wrote:

Hi Matthias,

thanks again for your nice help last time. At the moment I'm trying to get the forward kinematics for the youBot (based on your RobotManipulation2013-gitrepository) working with KDL (no ROS, only based on the youBotAPI). After getting a good solution for the forward kinematics, I will try to implement the inverse Kinematics. My goal to move the youbot to a cartestian 3D position with it’s endeffector (inverse kinematics). It is important, that the solution is without ROS.

Regarding the Forward-Kinematics: If I pass the axis parameter for the position when the youbot has an unfolded Arm:

KDL::ChainFkSolverPos_recursive fksolver(chain);

KDL::JntArray q(chain.getNrOfJoints());

q(0)=2.56; q(1)=1.04; q(2)=-2.43; q(3)=1.73; q(4)=0;

...I get the following result:

[[ 0.891498, -0.379824, -0.246909; 0.366045, 0.925059, -0.101379; 0.266911, 6.95623e-18, 0.963721] [0.0229922, 0.00944049, 0.225387]]

But when I look at the simulation in V-Rep, the tooltip is on the position: X=0.0237, y=-0.0280, z= 0.6535. I assume the robot actually has to be on position:

(-0.0430236,-0.00324, 0.2256)

Why is the position in V-Rep different?

There might be still a difference between the simulated youBot and the real one. Although I thought that it matches. I have not time to look into that in detail, but if you find any bugs in the model, please let me know!

Where did you get the values for building the chains (DH Notation) from? Did the KDL Solver worked in your case?

Please find attached some peace of source code that one of our student used to control the robot. It should work on the real robot (as far as I know) Again, please let me know if it works and I will upload it to the repository (or send me a patch or pull request)

Regards, Matthias

Best wishes, Lena

— Reply to this email directly or view it on GitHub

https://github.com/mfueller/vrep_youbot_plugin/issues/2#issuecomment-49871823 .

— Reply to this email directly or view it on GitHub https://github.com/mfueller/vrep_youbot_plugin/issues/2#issuecomment-50022544.

mfueller commented 10 years ago

Hi Lena,

On Mon, Jul 28, 2014 at 4:03 PM, Lena notifications@github.com wrote:

Hi Matthias,

thank you for your mail. I'll take a look at the version of you student.

Did you forget to add the attachements?

The attachment was there. Anyway, I added it again.

Regards, Matthias

Best wishes, Lena

On 07/24/2014 04:08 PM, MFueller wrote:

Hi Lena,

On Wed, Jul 23, 2014 at 3:19 PM, Lena notifications@github.com wrote:

Hi Matthias,

thanks again for your nice help last time. At the moment I'm trying to get the forward kinematics for the youBot (based on your RobotManipulation2013-gitrepository) working with KDL (no ROS, only based on the youBotAPI). After getting a good solution for the forward kinematics, I will try to implement the inverse Kinematics. My goal to move the youbot to a cartestian 3D position with it’s endeffector (inverse kinematics). It is important, that the solution is without ROS.

Regarding the Forward-Kinematics: If I pass the axis parameter for the position when the youbot has an unfolded Arm:

KDL::ChainFkSolverPos_recursive fksolver(chain);

KDL::JntArray q(chain.getNrOfJoints());

q(0)=2.56; q(1)=1.04; q(2)=-2.43; q(3)=1.73; q(4)=0;

...I get the following result:

[[ 0.891498, -0.379824, -0.246909; 0.366045, 0.925059, -0.101379; 0.266911, 6.95623e-18, 0.963721] [0.0229922, 0.00944049, 0.225387]]

But when I look at the simulation in V-Rep, the tooltip is on the position: X=0.0237, y=-0.0280, z= 0.6535. I assume the robot actually has to be on position:

(-0.0430236,-0.00324, 0.2256)

Why is the position in V-Rep different?

There might be still a difference between the simulated youBot and the real one. Although I thought that it matches. I have not time to look into that in detail, but if you find any bugs in the model, please let me know!

Where did you get the values for building the chains (DH Notation) from? Did the KDL Solver worked in your case?

Please find attached some peace of source code that one of our student used to control the robot. It should work on the real robot (as far as I know) Again, please let me know if it works and I will upload it to the repository (or send me a patch or pull request)

Regards, Matthias

Best wishes, Lena

— Reply to this email directly or view it on GitHub

< https://github.com/mfueller/vrep_youbot_plugin/issues/2#issuecomment-49871823

.

— Reply to this email directly or view it on GitHub < https://github.com/mfueller/vrep_youbot_plugin/issues/2#issuecomment-50022544 .

— Reply to this email directly or view it on GitHub https://github.com/mfueller/vrep_youbot_plugin/issues/2#issuecomment-50341952 .

Liiila0205 commented 10 years ago

I'm sorry, but I can't find the attachment :/. Where can I see it?

mfueller commented 10 years ago

it seems that github is removing the attachments.

I have commited it to the github repository https://github.com/mfueller/RobotManipulation_WS2013/blob/master/src/kdl_kinematic_solver_test.cpp

Regards, Matthias

On Mon, Jul 28, 2014 at 9:55 PM, Lena notifications@github.com wrote:

I'm sorry, but I can't find the attachment :/. Where can I see it?

— Reply to this email directly or view it on GitHub https://github.com/mfueller/vrep_youbot_plugin/issues/2#issuecomment-50390096 .

Liiila0205 commented 10 years ago

thank you! I've tested it today and as far as I see the forward kinematic calculations work and fit together with the model in V-REP. Tomorrow I'm going to continue testing and keep you up to date.

Best wishes, Lena

Am 28.07.2014 um 22:58 schrieb MFueller notifications@github.com:

it seems that github is removing the attachments.

I have commited it to the github repository https://github.com/mfueller/RobotManipulation_WS2013/blob/master/src/kdl_kinematic_solver_test.cpp

Regards, Matthias

On Mon, Jul 28, 2014 at 9:55 PM, Lena notifications@github.com wrote:

I'm sorry, but I can't find the attachment :/. Where can I see it?

— Reply to this email directly or view it on GitHub https://github.com/mfueller/vrep_youbot_plugin/issues/2#issuecomment-50390096 .

— Reply to this email directly or view it on GitHub.

mfueller commented 10 years ago

Hi!

On Mon, Sep 22, 2014 at 9:06 AM, sepehr2oo8 notifications@github.com wrote:

Hi,

First of all, thanks for the package. Second, I have an issue with the installation. I did all the steps in the tutorial and everything went smoothly then, I ran the vrep. It came up and the external console appeared. I thought that's it but when I ran the test.ttt scene, it was super slow and with no output on the external console. I checked the vrep's terminal and I saw these errors.

[ERROR] [1411369264.868011558]: The plugin CameraHandler failed to load for some reason. Error: Could not find library corresponding to plugin CameraHandler. Make sure the plugin description XML file has the correct name of the library and that the library actually exists.

[ERROR] [1411369264.926086759]: The plugin Force_sensorHandler failed to load for some reason. Error: Could not find library corresponding to plugin Force_sensorHandler. Make sure the plugin description XML file has the correct name of the library and that the library actually exists.

[ERROR] [1411369264.986522503]: The plugin GetPoseHandler failed to load for some reason. Error: Could not find library corresponding to plugin GetPoseHandler. Make sure the plugin description XML file has the correct name of the library and that the library actually exists.

[ERROR] [1411369265.046465667]: The plugin GetTwistHandler failed to load for some reason. Error: Could not find library corresponding to plugin GetTwistHandler. Make sure the plugin description XML file has the correct name of the library and that the library actually exists.

[ERROR] [1411369265.107571397]: The plugin ImuHandler failed to load for some reason. Error: Could not find library corresponding to plugin ImuHandler. Make sure the plugin description XML file has the correct name of the library and that the library actually exists.

[ERROR] [1411369265.175702433]: The plugin ManipulatorHandler failed to load for some reason. Error: Could not find library corresponding to plugin ManipulatorHandler. Make sure the plugin description XML file has the correct name of the library and that the library actually exists.

[ERROR] [1411369265.236859849]: The plugin QuadrotorHandler failed to load for some reason. Error: Could not find library corresponding to plugin QuadrotorHandler. Make sure the plugin description XML file has the correct name of the library and that the library actually exists.

[ERROR] [1411369265.296967610]: The plugin SetTwistHandler failed to load for some reason. Error: Could not find library corresponding to plugin SetTwistHandler. Make sure the plugin description XML file has the correct name of the library and that the library actually exists.

Could you please help with that?

I am on ununto 13.04 and hydro.

It looks more like a v-rep problem. Could you please remote this plugin and try to start v-rep as it is. In a second step, copy the plugin to the v-rep folder and check if v-rep crashes.

Let me know the results.

Regards, Matthias

PS: I'm using Ubuntu 12.04, and I would suggest that you use either 12.04 or 14.04 (both LTS versions).

— Reply to this email directly or view it on GitHub https://github.com/mfueller/vrep_youbot_plugin/issues/2#issuecomment-56335853 .

sandeep1246 commented 9 years ago

hii friends, when i make the file using cmake command for hello world program system says could not find OODL_YOUBOT (missing : OODL_YOUBOT_LIBRARIES) how to solve this error any suggestions.