soem package from soem repo

soem

Package Summary

Tags No category tags.
Version 1.4.1003
License GPLv2 with linking exception
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/mgruhler/soem.git
VCS Type git
VCS Version melodic
Last Updated 2020-08-03
Dev Status MAINTAINED
CI status Continuous Integration : 0 / 0
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

ROS wrapper for the Simple Open EtherCAT Master SOEM. This is an updated version of the original SOEM wrapper released into ROS now including the upstream Repo as a git subtree.

Additional Links

Maintainers

  • Matthias Gruhler

Authors

  • Arthur Ketels and M.J.G. van den Molengraft

SOEM for ROS

Table of Contents

A Note On The Version Number

This package tracks the upstream Open Ethercat Master Repo and thus should directly reference the respective version number of the upstream. As this does not allow for intermediate releases that only change ROS specific parts, like the CMake plumbing, it has been decided to deviate from the upstream version by adding an arbitrary number (100) to the patch part of the version, and then multiplying by ten (i.e. (patch of upstream + 100) * 10). This allows for intermediate releases in between integrations of upstream releases.

Thus, the version numbers relate to each other as follows:

1.4.1000 -> upstream 1.4.0
1.4.1010 -> upstream 1.4.1
1.4.1011 -> upstream 1.4.1 + ROS specific changes 1

The idea for this approach was taken from the cartographer_ros package.

Package Description

SOEM is an open source EtherCAT master library written in C. Its primary target is Linux but can be adapted to other OS and embedded systems.

SOEM has originally been hosted at http://developer.berlios.de/projects/soem/ but has been moved to GitHub and the OpenEtherCATsociety organisation.

This package contains the upstream SOEM repository as a git subtree and wraps it to be easily used within ROS.

Disclaimer: This package is not a development package for SOEM, but rather a wrapper to provide SOEM to ROS. In the end, this just provides the CMake quirks that allows releasing SOEM as a ROS package.

All bug reports regarding the original SOEM source code should go to the bugtracker at https://github.com/OpenEtherCATsociety/SOEM/issues.

All ROS related issues should target the bug tracker on GitHub (but might be redirected ;-)).

Obviously, any support, being it bug reports or pull requests (obviously preferred) are highly welcome!

Installation

If soem has been released for your respective ROS distribution, you can simply install it using

sudo apt install ros-<DISTRO>-soem

Currently, soem has been released for ROS indigo, kinetic and melodic. If you want to use soem from source, please check out the section about Development.

Usage

To use soem in your ROS package add the following to your package.xmland CMakeLists.txt, respectively.

In your package.xml add:

  <build_depend>soem</build_depend>
  <exec_depend>soem</exec_depend>

and in your CMakeLists.txt, add it to find_package and adapt the include_directories as shown:

find_package(catkin REQUIRED COMPONENTS
  ...
  soem
  ...
)

include_directories(
  ...
  ${catkin_INCLUDE_DIRS}
)

Running without sudo/root

SOEM requires access to certain network capabilities as it is using raw sockets, and as such any executable linking against SOEM needs to be run with certain privileges. Typically, you run any SOEM executables with sudo or as root. Tis is impractical for any ROS system, and as such there exists a tool called ethercat_grant that helps with that.

Install with

sudo apt install ros-<DISTRO>-ethercat-ethercat_grant

and add the following to your your node tag in your launchfile

launch-prefix="ethercat_grant

Development

With the integration of the upstream SOEM repo as a git subtree, and a major overhaul of the build system, it is now possible to use the soem ROS package easily from your regular ROS workspace.

Simply clone this repository into your workspace

git clone git@github.com:mgruhler/soem.git

Note that if you want to update or patch the subtree which includes the SOEM upstream repository, you need to be sure to do this properly. When creating this, I followed the instructions in this Atlassian blog post. This covers all the things you need.

This package has been tested using both, catkin_make and catkin build.

CHANGELOG

Changelog for package soem

1.4.1003 (2020-08-03)

  • fixes #40: export include directories properly
  • Contributors: Matthias Gruhler

1.4.1002 (2020-06-24)

  • Merge pull request #39 from mgruhler/fix/warnings_as_errors_focal remove -Werror flag for linux
  • remove -Werror flag for linux
  • Contributors: Matthias Gruhler

1.4.1001 (2020-06-19)

  • remove package upgrade message
  • Contributors: Matthias Gruhler

1.4.1000 (2020-06-19)

  • fix formatting of README
  • remove stale bot
  • change version number policy and bump to 1.4.1000
  • bump cmake_minimum to 3.0.2
  • Merge pull request #33 from seanyen/windows [master] Enable Windows build.
  • undef WIN32_LEAN_AND_MEAN instead of touching SOEM code.
  • Enable Windows build.
  • Contributors: Matthias Gruhler, seanyen

1.4.0 (2019-09-19)

  • Merge pull request #24 from mgruhler/upstream_soem_via_subtree Upstream soem release 1.4.0 via subtree
  • explicitely export pthread dependency, reported in #30
  • install all headers in osal and oshw
  • fixes #29: provides issue templates provides three templates
    • bug report
    • feature request
    • question
  • fixes #28: adds note about ethercat_grant to README
  • fix readme justification
  • Merge branch \'master\' into upstream_soem_via_subtree
  • Merge pull request #25 from mgruhler/upgrade_announcement add upgrade announcement
  • add upgrade announcement
  • change deprecation message
    • switch from type DEPRECATION to type <none>
    • minor formatting and typo fixes
  • make new integration backwards compatible
    • add deprecation warning of workaround to CMakeLists.txt
    • change order of include directories in cfg extras file
  • restore version number and relevant package.xml contents
  • update docs
    • fix description in package.xml
    • update README
  • setup ROS build instructions for upstream SOEM as subtree
    • add new package.xml and CMakeLists.txt
    • add -fPIC definition and comment ROS specific \"hacks\"
    • copy headers to develspace instead of src space
    • provide cmake extras file to set include directories
    • fix cmake_minimum_required for using add_compile_options
    • ignore catkin_lint errors for SOEM CMakeLists.txt
  • Merge commit \'d471a3878b20d650a6d80a487625324392a23906\' as \'SOEM\'
  • Squashed \'SOEM/\' content from commit abbf0d4 git-subtree-dir: SOEM git-subtree-split: abbf0d42e38d6cfbaa4c1e9e8e07ace651c386fd
  • remove old SOEM state
  • State release into ROS melodic in README.md
  • Add close comment and extend daysUntilClose in stale.yaml
  • Update README.md: clarify Usage section add note to either use from apt or followed development section
  • add stale.yml for Stale Probot
  • add README.md:
    • clarifying what this package is about
    • adding sections about installation, usage and development
  • update description in package.xml
    • more explicitely explain what this package is about
    • link more directly to upstream by noting what this is actually based upon
  • update description and URLs in package.xml
  • update maintainer

1.3.0 (2015-01-26)

1.2.5 (2013-03-06)

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Package Dependencies

Deps Name
1 catkin

System Dependencies

No direct system dependencies.

Dependant Packages

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged soem at Robotics Stack Exchange

soem package from soem repo

soem

Package Summary

Tags No category tags.
Version 1.4.1000
License GPLv2 with linking exception
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/mgruhler/soem.git
VCS Type git
VCS Version kinetic
Last Updated 2020-06-19
Dev Status MAINTAINED
CI status Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

ROS wrapper for the Simple Open EtherCAT Master SOEM. This is an updated version of the original SOEM wrapper released into ROS now including the upstream Repo as a git subtree.

Additional Links

Maintainers

  • Matthias Gruhler

Authors

  • Arthur Ketels and M.J.G. van den Molengraft

SOEM for ROS

Table of Contents

SOEM ROS Package Upgrade

This package has been upgraded to the new Release of the upstream SOEM repo v1.4.0. This upgrade brings not only the new release, but also changes to the catkin plumbing. This allows you to use soem from within your regular ROS workspace. So you don't need to specify ${soem_INCLUDE_DIRS}/soem in the include_directories section of your package anymore. The changes to the build system are backwards compatible.

If you experience problems with the new version, please try to revert to tag v1.3.0 and test if this solves your issues.

A Note On The Version Number

This package tracks the upstream Open Ethercat Master Repo and thus should directly reference the respective version number of the upstream. As this does not allow for intermediate releases that only change ROS specific parts, like the CMake plumbing, it has been decided to deviate from the upstream version by adding an arbitrary number (100) to the patch part of the version, and then multiplying by ten (i.e. (patch of upstream + 100) * 10). This allows for intermediate releases in between integrations of upstream releases.

Thus, the version numbers relate to each other as follows:

1.4.1000 -> upstream 1.4.0
1.4.1010 -> upstream 1.4.1
1.4.1011 -> upstream 1.4.1 + ROS specific changes 1

The idea for this approach was taken from the cartographer_ros package.

Package Description

SOEM is an open source EtherCAT master library written in C. Its primary target is Linux but can be adapted to other OS and embedded systems.

SOEM has originally been hosted at http://developer.berlios.de/projects/soem/ but has been moved to GitHub and the OpenEtherCATsociety organisation.

This package contains the upstream SOEM repository as a git subtree and wraps it to be easily used within ROS.

Disclaimer: This package is not a development package for SOEM, but rather a wrapper to provide SOEM to ROS. In the end, this just provides the CMake quirks that allows releasing SOEM as a ROS package.

All bug reports regarding the original SOEM source code should go to the bugtracker at https://github.com/OpenEtherCATsociety/SOEM/issues.

All ROS related issues should target the bug tracker on GitHub (but might be redirected ;-)).

Obviously, any support, being it bug reports or pull requests (obviously preferred) are highly welcome!

Installation

If soem has been released for your respective ROS distribution, you can simply install it using

sudo apt install ros-<DISTRO>-soem

Currently, soem has been released for ROS indigo, kinetic and melodic. If you want to use soem from source, please check out the section about Development.

Usage

To use soem in your ROS package add the following to your package.xmland CMakeLists.txt, respectively.

In your package.xml add:

  <build_depend>soem</build_depend>
  <exec_depend>soem</exec_depend>

and in your CMakeLists.txt, add it to find_package and adapt the include_directories as shown:

find_package(catkin REQUIRED COMPONENTS
  ...
  soem
  ...
)

include_directories(
  ...
  ${catkin_INCLUDE_DIRS}
)

Running without sudo/root

SOEM requires access to certain network capabilities as it is using raw sockets, and as such any executable linking against SOEM needs to be run with certain privileges. Typically, you run any SOEM executables with sudo or as root. Tis is impractical for any ROS system, and as such there exists a tool called ethercat_grant that helps with that.

Install with

sudo apt install ros-<DISTRO>-ethercat-ethercat_grant

and add the following to your your node tag in your launchfile

launch-prefix="ethercat_grant

Development

With the integration of the upstream SOEM repo as a git subtree, and a major overhaul of the build system, it is now possible to use the soem ROS package easily from your regular ROS workspace.

Simply clone this repository into your workspace

git clone git@github.com:mgruhler/soem.git

Note that if you want to update or patch the subtree which includes the SOEM upstream repository, you need to be sure to do this properly. When creating this, I followed the instructions in this Atlassian blog post. This covers all the things you need.

This package has been tested using both, catkin_make and catkin build.

CHANGELOG

Changelog for package soem

1.4.1000 (2020-06-19)

  • fix formatting of README
  • remove stale bot
  • change version number policy and bump to 1.4.1000
  • bump cmake_minimum to 3.0.2
  • Merge pull request #33 from seanyen/windows [master] Enable Windows build.
  • undef WIN32_LEAN_AND_MEAN instead of touching SOEM code.
  • Enable Windows build.
  • Contributors: Matthias Gruhler, seanyen

1.4.0 (2019-09-19)

  • Merge pull request #24 from mgruhler/upstream_soem_via_subtree Upstream soem release 1.4.0 via subtree
  • explicitely export pthread dependency, reported in #30
  • install all headers in osal and oshw
  • fixes #29: provides issue templates provides three templates
    • bug report
    • feature request
    • question
  • fixes #28: adds note about ethercat_grant to README
  • fix readme justification
  • Merge branch \'master\' into upstream_soem_via_subtree
  • Merge pull request #25 from mgruhler/upgrade_announcement add upgrade announcement
  • add upgrade announcement
  • change deprecation message
    • switch from type DEPRECATION to type <none>
    • minor formatting and typo fixes
  • make new integration backwards compatible
    • add deprecation warning of workaround to CMakeLists.txt
    • change order of include directories in cfg extras file
  • restore version number and relevant package.xml contents
  • update docs
    • fix description in package.xml
    • update README
  • setup ROS build instructions for upstream SOEM as subtree
    • add new package.xml and CMakeLists.txt
    • add -fPIC definition and comment ROS specific \"hacks\"
    • copy headers to develspace instead of src space
    • provide cmake extras file to set include directories
    • fix cmake_minimum_required for using add_compile_options
    • ignore catkin_lint errors for SOEM CMakeLists.txt
  • Merge commit \'d471a3878b20d650a6d80a487625324392a23906\' as \'SOEM\'
  • Squashed \'SOEM/\' content from commit abbf0d4 git-subtree-dir: SOEM git-subtree-split: abbf0d42e38d6cfbaa4c1e9e8e07ace651c386fd
  • remove old SOEM state
  • State release into ROS melodic in README.md
  • Add close comment and extend daysUntilClose in stale.yaml
  • Update README.md: clarify Usage section add note to either use from apt or followed development section
  • add stale.yml for Stale Probot
  • add README.md:
    • clarifying what this package is about
    • adding sections about installation, usage and development
  • update description in package.xml
    • more explicitely explain what this package is about
    • link more directly to upstream by noting what this is actually based upon
  • update description and URLs in package.xml
  • update maintainer

1.3.0 (2015-01-26)

1.2.5 (2013-03-06)

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Package Dependencies

Deps Name
1 catkin

System Dependencies

No direct system dependencies.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged soem at Robotics Stack Exchange

soem package from soem repo

soem

Package Summary

Tags No category tags.
Version 1.4.1003
License GPLv2 with linking exception
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/mgruhler/soem.git
VCS Type git
VCS Version melodic
Last Updated 2020-08-03
Dev Status MAINTAINED
CI status Continuous Integration : 0 / 0
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

ROS wrapper for the Simple Open EtherCAT Master SOEM. This is an updated version of the original SOEM wrapper released into ROS now including the upstream Repo as a git subtree.

Additional Links

Maintainers

  • Matthias Gruhler

Authors

  • Arthur Ketels and M.J.G. van den Molengraft

SOEM for ROS

Table of Contents

A Note On The Version Number

This package tracks the upstream Open Ethercat Master Repo and thus should directly reference the respective version number of the upstream. As this does not allow for intermediate releases that only change ROS specific parts, like the CMake plumbing, it has been decided to deviate from the upstream version by adding an arbitrary number (100) to the patch part of the version, and then multiplying by ten (i.e. (patch of upstream + 100) * 10). This allows for intermediate releases in between integrations of upstream releases.

Thus, the version numbers relate to each other as follows:

1.4.1000 -> upstream 1.4.0
1.4.1010 -> upstream 1.4.1
1.4.1011 -> upstream 1.4.1 + ROS specific changes 1

The idea for this approach was taken from the cartographer_ros package.

Package Description

SOEM is an open source EtherCAT master library written in C. Its primary target is Linux but can be adapted to other OS and embedded systems.

SOEM has originally been hosted at http://developer.berlios.de/projects/soem/ but has been moved to GitHub and the OpenEtherCATsociety organisation.

This package contains the upstream SOEM repository as a git subtree and wraps it to be easily used within ROS.

Disclaimer: This package is not a development package for SOEM, but rather a wrapper to provide SOEM to ROS. In the end, this just provides the CMake quirks that allows releasing SOEM as a ROS package.

All bug reports regarding the original SOEM source code should go to the bugtracker at https://github.com/OpenEtherCATsociety/SOEM/issues.

All ROS related issues should target the bug tracker on GitHub (but might be redirected ;-)).

Obviously, any support, being it bug reports or pull requests (obviously preferred) are highly welcome!

Installation

If soem has been released for your respective ROS distribution, you can simply install it using

sudo apt install ros-<DISTRO>-soem

Currently, soem has been released for ROS indigo, kinetic and melodic. If you want to use soem from source, please check out the section about Development.

Usage

To use soem in your ROS package add the following to your package.xmland CMakeLists.txt, respectively.

In your package.xml add:

  <build_depend>soem</build_depend>
  <exec_depend>soem</exec_depend>

and in your CMakeLists.txt, add it to find_package and adapt the include_directories as shown:

find_package(catkin REQUIRED COMPONENTS
  ...
  soem
  ...
)

include_directories(
  ...
  ${catkin_INCLUDE_DIRS}
)

Running without sudo/root

SOEM requires access to certain network capabilities as it is using raw sockets, and as such any executable linking against SOEM needs to be run with certain privileges. Typically, you run any SOEM executables with sudo or as root. Tis is impractical for any ROS system, and as such there exists a tool called ethercat_grant that helps with that.

Install with

sudo apt install ros-<DISTRO>-ethercat-ethercat_grant

and add the following to your your node tag in your launchfile

launch-prefix="ethercat_grant

Development

With the integration of the upstream SOEM repo as a git subtree, and a major overhaul of the build system, it is now possible to use the soem ROS package easily from your regular ROS workspace.

Simply clone this repository into your workspace

git clone git@github.com:mgruhler/soem.git

Note that if you want to update or patch the subtree which includes the SOEM upstream repository, you need to be sure to do this properly. When creating this, I followed the instructions in this Atlassian blog post. This covers all the things you need.

This package has been tested using both, catkin_make and catkin build.

CHANGELOG

Changelog for package soem

1.4.1003 (2020-08-03)

  • fixes #40: export include directories properly
  • Contributors: Matthias Gruhler

1.4.1002 (2020-06-24)

  • Merge pull request #39 from mgruhler/fix/warnings_as_errors_focal remove -Werror flag for linux
  • remove -Werror flag for linux
  • Contributors: Matthias Gruhler

1.4.1001 (2020-06-19)

  • remove package upgrade message
  • Contributors: Matthias Gruhler

1.4.1000 (2020-06-19)

  • fix formatting of README
  • remove stale bot
  • change version number policy and bump to 1.4.1000
  • bump cmake_minimum to 3.0.2
  • Merge pull request #33 from seanyen/windows [master] Enable Windows build.
  • undef WIN32_LEAN_AND_MEAN instead of touching SOEM code.
  • Enable Windows build.
  • Contributors: Matthias Gruhler, seanyen

1.4.0 (2019-09-19)

  • Merge pull request #24 from mgruhler/upstream_soem_via_subtree Upstream soem release 1.4.0 via subtree
  • explicitely export pthread dependency, reported in #30
  • install all headers in osal and oshw
  • fixes #29: provides issue templates provides three templates
    • bug report
    • feature request
    • question
  • fixes #28: adds note about ethercat_grant to README
  • fix readme justification
  • Merge branch \'master\' into upstream_soem_via_subtree
  • Merge pull request #25 from mgruhler/upgrade_announcement add upgrade announcement
  • add upgrade announcement
  • change deprecation message
    • switch from type DEPRECATION to type <none>
    • minor formatting and typo fixes
  • make new integration backwards compatible
    • add deprecation warning of workaround to CMakeLists.txt
    • change order of include directories in cfg extras file
  • restore version number and relevant package.xml contents
  • update docs
    • fix description in package.xml
    • update README
  • setup ROS build instructions for upstream SOEM as subtree
    • add new package.xml and CMakeLists.txt
    • add -fPIC definition and comment ROS specific \"hacks\"
    • copy headers to develspace instead of src space
    • provide cmake extras file to set include directories
    • fix cmake_minimum_required for using add_compile_options
    • ignore catkin_lint errors for SOEM CMakeLists.txt
  • Merge commit \'d471a3878b20d650a6d80a487625324392a23906\' as \'SOEM\'
  • Squashed \'SOEM/\' content from commit abbf0d4 git-subtree-dir: SOEM git-subtree-split: abbf0d42e38d6cfbaa4c1e9e8e07ace651c386fd
  • remove old SOEM state
  • State release into ROS melodic in README.md
  • Add close comment and extend daysUntilClose in stale.yaml
  • Update README.md: clarify Usage section add note to either use from apt or followed development section
  • add stale.yml for Stale Probot
  • add README.md:
    • clarifying what this package is about
    • adding sections about installation, usage and development
  • update description in package.xml
    • more explicitely explain what this package is about
    • link more directly to upstream by noting what this is actually based upon
  • update description and URLs in package.xml
  • update maintainer

1.3.0 (2015-01-26)

1.2.5 (2013-03-06)

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Package Dependencies

Deps Name
1 catkin

System Dependencies

No direct system dependencies.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged soem at Robotics Stack Exchange