svenschneider / youbot-manipulation

38 stars 41 forks source link

problem with youbot_manipulation #14

Open ChefOtter opened 8 years ago

ChefOtter commented 8 years ago

Hi Sven, I am using ROS Indigo and try to work youbot and have got some issues with youbot-manipulation files. I followed install instructions in your github page and have got following problems. if i use following command in my workspace: /catkin_ws/src$ wstool set youbot_manipulation --git git@github.com:svenschneider/youbot-manipulation.git --version=indigo I have got this error: ERROR in config: Command requires a target workspace. to solve this problem : _/ catkin_ws/src$ wstool init _ wstool init is missing in you instructions. then it will work.

After this i tried to execute roslaunch youbot_moveit move_group.launch but i am getting following error:

setting /run_id to 887e71fc-e3a6-11e5-97b3-000c2988e8a9 process[rosout-1]: started with pid [15798] started core service [/rosout] process[movegroup-2]: started with pid [15815] [ERROR] [1457274011.307530173]: Robot model not loaded terminate called after throwing an instance of 'ros::InvalidNameException' what(): Character [] is not valid as the first character in Graph Resource Name [_planning/shape_transform_cache_lookup_wait_time]. Valid characters are a-z, A-Z, / and in some cases ~. [move_group-2] process has died [pid 15815, exit code -6, cmd /opt/ros/indigo/lib/moveit_ros_move_group/move_group __name:=move_group __log:=/home/chef/.ros/log/887e71fc-e3a6-11e5-97b3-000c2988e8a9/move_group-2.log]. log file: /home/chef/.ros/log/887e71fc-e3a6-11e5-97b3-000c2988e8a9/move_group-2*.log

Do you know why am i getting this error? I have another question, how can i program inverse kinematik on kuka youbot? Or your files is enough to program IK? Or any good tutorials about IK with moveit or other libraries? regards

svenschneider commented 8 years ago

Hi ChefOtter,

while the hydro branch is clearer with the setup instructions, even in the indigo branch it says in the installation section "First, create a Catkin workspace [...]". Anyway, I will probably merge some of the changes from the hydro to the indigo branch.

Regarding the error you receive: It looks to me as if you didn't bringup the robot (simulation or real) which requires the youbot_driver_ros_interface [1] or youbot_simulation [2] repository and their dependencies. Alternatively, you can just start the standalone demo (see instructions in the README file).

I'm not sure what you mean by "programming inverse kinematics"? You find the analytical inverse position kinematics solver for the youBot arm in the following file [3]. The MoveIt! website [4] has further information and documentation about MoveIt!.

Best regards Sven

[1] https://github.com/youbot/youbot_driver_ros_interface [2] https://github.com/youbot/youbot_simulation [3] https://github.com/svenschneider/youbot-manipulation/blob/indigo/youbot_arm_kinematics/common/src/inverse_kinematics.cpp [4] http://moveit.ros.org/

ChefOtter commented 8 years ago

@svenschneider , Thank you for your answer. here is what I did step by step:

cd catkin_ws/src
wstool set youbot_manipulation --git git@github.com:svenschneider/youbot-manipulation.git --version=hydro
wstool update youbot_manipulation

I build the catkin_ws

cd catkin_ws
catkin_make

I found out something. It is like this. If I take out youbot_arm_kinematics_moveit folder from youbot_manipulation folder, i can execute catkin_make without any error. But if I put back youbot_arm_kinematics_moveit folder in youbot_manipulation folder again, i am getting error again. Error:

/catkin_ws/src/youbot_manipulation/youbot_arm_kinematics_moveit/ros/src/kinematics_logger.cpp: In member function ‘virtual void KinematicsLogger::write(const string&, const char*, int)’:
/catkin_ws/src/youbot_manipulation/youbot_arm_kinematics_moveit/ros/src/kinematics_logger.cpp:16:9: error: ‘enabled’ was not declared in this scope
     if (enabled) {
         ^
/catkin_ws/src/youbot_manipulation/youbot_arm_kinematics_moveit/ros/src/kinematics_logger.cpp:17:32: error: ‘loc’ was not declared in this scope
         ros::console::print(0, loc.logger_, ros::console::levels::Debug,
                                ^
make[2]: *** [youbot_manipulation/youbot_arm_kinematics_moveit/CMakeFiles/youbot_arm_kinematics_moveit.dir/ros/src/kinematics_logger.cpp.o] Error 1
make[1]: *** [youbot_manipulation/youbot_arm_kinematics_moveit/CMakeFiles/youbot_arm_kinematics_moveit.dir/all] Error 2
make: *** [all] Error 2
Invoking "make -j4 -l4" failed

I changed also following command into. wstool set youbot_manipulation --git git@github.com:svenschneider/youbot-manipulation.git --version=indigo instead of hydro and did from the beginning same process.It didn't work again. same error.

If i execute this command roslaunch youbot_moveit move_group.launch i have got my error again. [ERROR] [1457379892.652884807]: Robot model not loaded terminate called after throwing an instance of 'ros::InvalidNameException' what(): Character [_] is not valid as the first character in Graph Resource Name [_planning/shape_transform_cache_lookup_wait_time]. Valid characters are a-z, A-Z, / and in some cases ~. [move_group-2] process has died [pid 40880, exit code -6, cmd /opt/ros/indigo/lib/moveit_ros_move_group/move_group __name:=move_group __log:=/home/user/.ros/log/0edbe5bc-e49d-11e5-a005-000c29fed1c5/move_group-2.log]. log file: /home/user/.ros/log/0edbe5bc-e49d-11e5-a005-000c29fed1c5/move_group-2*.log

But if i execute following commands, it works with simulation but not with real robot.

roslaunch youbot_moveit demo.launch
rosrun moveit_commander moveit_commander_cmdline.py
use arm_1
arm_1>go candle

What causes those errors? I try to fix it, at the end i got same errors again again.

Last time I asked you, how can I program inverse kinematics? Which means, can I compile inverse_kinematics.cpp as executable file? That i can use just this youbot_arm_kinematics package. Or all packages in youbot_manipulation folder are interdependent? Or each package can compile possible alone? I created a new catkin_package with those files, I changed CMakeLists, added add_executable(..) in CMakeLists.txt. I got error again. thank you in advance Regards

svenschneider commented 8 years ago

Hi @ChefOtter,

if you are working with ROS Indigo, you also need the indigo branch (the hydro branch does not work, as you also noticed). The rest of the compiliation/build steps seems fine. However, I think that you still don't have brought up the robot itself. Currently, this should be possible in simulation via

roslaunch youbot_simulation robot.launch

or on the real robot via

roslaunch youbot_driver_ros_interface youbot_driver.launch

It's not directly supported to use the inverse_kinematics.cpp stand-alone, but it should be fairly easy to extract this file and its header to build a shared library out of it, so that you can use it without ROS. The only real dependency is KDL.

If you want to stay within the ROS ecosystem, you can simply specify a Catkin dependency on the youbot_arm_kinematics and then access the headers and the library (see youbot_arm_kinematics_moveit for a complete example):

find_package(catkin REQUIRED COMPONENTS youbot_arm_kinematics)
include_directories(${catkin_INCLUDE_DIRS})
...
target_link_libraries(my_target ${catkin_LIBRARIES})

Best regards Sven

arafatsh commented 4 years ago

are you going to make a kinetic branch ??