Robotics StackExchange | Archived questions

Maxon Motor EPOS 4 - Cyclic Synchronous Modes - EtherCAT in ROS

Hello everyone,

I am working on a 5-joint motorized robotic arm, where each joint has to be controlled in current, speed and position (feedback with optical encoders) in a cyclic synchronous mode, so that a higher-level controller performs the path planning (IK solvers) synchronized for multiple axes. The setpoints for position, speed and current are constantly updated.

Higher-level controller has to perform 1-to-1 cyclic set/read values operations to all motor drivers. Typical update rates are in the range of a few milliseconds - up to 100Hz.

I am thinking to use MAXON EPOS 4 Positioning Drivers and I was wondering which is the best option to connect Maxon EPOS 4 to a linux-based higher level controller to operate in Cyclic Synchronous Modes.

I believe that Maxon only provides CANopen c++ libraries to work with SDO, while for cyclic modes PDO is needed and a CANopen master needs to be programmed, so I decided to try with EtherCAT.

According to EtherCAT I was not able to find a solid and robust library that could directly interface the EPOS 4. Given that I need to develop my own library (according to Maxon datasheets) I was wondering what you suggest, rosEthercat/roscontrol or SOEM approach? Is there any example to interface etherCAT in ROS? Is there anyone who tried it?

Thank you Stex

Asked by stex2005 on 2018-10-31 05:12:27 UTC

Comments

Can you clarify how this is related to ROS? This is not a generic robotics support forum, so we try to keep everything as much as possible on topic.

Asked by gvdhoorn on 2018-10-31 05:17:55 UTC

Sorry, I was not clear, I am looking for a ROS-based library like SOEM to interface with Maxon Motor Driver through etherCAT, if anyone tried it.

Asked by stex2005 on 2018-10-31 05:25:11 UTC

Hi Stex,

I am trying to do exactly what you mentioned here in your post. Were you able to develop what you set about to do? Could you guide me on how to do this, and if you could share the files of the project.

Thank you,

Regards,

Asked by Rejin on 2019-04-25 11:56:04 UTC

@stex2005 @Rejin , What do you have reached for that? I'm making an Articulated Robot that will be used in industry, it has delta drivers that can communicate through EtherCAT protocol. I want to control it using ROS. I have found a lot of ways that made me confused such as SOEM package, Hardware_ethercat package, and connecting EtherCAT master devices What should I do? And what are the hardware components that I will need to buy? what I have are a PC with ROS installed (or a Jetson controller), industrial drivers with EtherCAT protocol, and motors

Asked by Omar_Alkassas on 2023-06-22 03:47:33 UTC

Answers

Well, you already mention the examples yourself.

Interfacing SOEM with ROS is possible, as it is only C++. So this all depends on your implementation. The hardest part will most probably be to set up/implement your driver correctly. But afair there are non already available. You'd have to implement this yourself.

I integrated a Elmo Gold DC Whistle with ROS using SOEM. Here is an example script which shows the interfacing of SOEM and Elmo. The rest was really just putting this into a proper ROS package, adding ROS interfaces and making it nice :)

Asked by mgruhler on 2019-03-12 02:22:25 UTC

Comments