orocos-toolchain / ocl

Orocos Component Library
Other
16 stars 33 forks source link

ocl/deployer-gnulinux missing #79

Closed schwarzp93 closed 5 years ago

schwarzp93 commented 5 years ago

Hi guys :)

sorry, if my question may be a bit silly, but I'm pretty new th the world of orocos ...

I want to use SOEM to communicate via EtherCAT between a Festo CPX-FB37 bus node an an Ubuntu 16.04 system.

I followed the instructions here (https://github.com/orocos/rtt_ros_integration) to install orocos-toolchain and rtt_integration. Both times, I used "-b toolchain-2.9" when cloning. After that, I cloned this repository https://github.com/orocos/rtt_soem (also tried this one https://github.com/keivanzavari/rtt_soem). When I want to use the soem_master_test.launch file, I get the following Error:

ERROR: cannot launch node of type [ocl/deployer-gnulinux]: can't locate node [deployer-gnulinux] in package [ocl]

What could be the problem here?

Thanks in advance!

Regards, Philipp

meyerj commented 5 years ago

rtt and ocl are not ROS packages and most traces of ROS have been removed in version 2.7 (with the transition to catkin as a build-tool), or even earlier. The OCL binaries, like deployer-gnulinux, are installed to the global bin directory, where they cannot be found directly by ROS tools like rosrun or roslaunch. Only package rtt_ros provides script wrappers that are installed to the package binary destination lib/rtt_ros, where they will be found (formerly ${PROJECT_SOURCE_DIR}/bin).

I assume the launch files in rtt_soem date back to the time before these commits and have never been updated. Please try to replace <node pkg="ocl" type="deployer-gnulinux" ... by <node pkg="ocl" pkg="rtt_ros" type="deployer" ... (without -gnulinux), and ideally add rtt_ros as a <run_depend> to package.xml.

It would be possible to additionally install the utility scripts or wrappers in ocl to the lib/ocl destination, which would fix the backwards-compatibility issue at the minimal cost of installing some additional scripts for non-ROS users. But because other functionality like the recursive import of ROS packages that provide component or plugin libraries has also been moved to rtt_ros, you might have to depend on and use that package anyway in more complex deployments using ROS tools.

Related commits:

schwarzp93 commented 5 years ago

perfect answer, thanks a lot! :)