Drivers implementation for ROS - rtt_soem
02 Aug 2021 07:39 #216670
by juniorfi
Drivers implementation for ROS - rtt_soem was created by juniorfi
Hello,
I'm looking forward to implement few of the drivers you have made for LinuxCNC to work with ROS.
Actually I got working many of the Beckhoff EtherCAT terminals, but I have some issues to get working the x9xx (TwinSAFE).
I'm working based on this rtt_soem . I know that the drivers aren't made in same way. But looking to try to get the information needed to get working: EL6900 and EL2904.
Maybe @sittner know about it?.
Regards
I'm looking forward to implement few of the drivers you have made for LinuxCNC to work with ROS.
Actually I got working many of the Beckhoff EtherCAT terminals, but I have some issues to get working the x9xx (TwinSAFE).
I'm working based on this rtt_soem . I know that the drivers aren't made in same way. But looking to try to get the information needed to get working: EL6900 and EL2904.
Maybe @sittner know about it?.
Regards
Please Log in or Create an account to join the conversation.
03 Aug 2021 07:17 #216788
by andypugh
Replied by andypugh on topic Drivers implementation for ROS - rtt_soem
You might need to make your question more obviously about EtherCAT, and ask it in the EtherCAT section.
Please Log in or Create an account to join the conversation.
03 Aug 2021 07:40 #216793
by juniorfi
Replied by juniorfi on topic Drivers implementation for ROS - rtt_soem
I had not seen that section. I will put the message there.
Thanks
Thanks
Please Log in or Create an account to join the conversation.
03 Aug 2021 10:00 #216799
by andypugh
There are EtherCAT threads in "Driver Boards", "HAL" and "Advanced Configuration".
I think that there probably should be an EtherCAT section, but I am not sure where to put it.
Replied by andypugh on topic Drivers implementation for ROS - rtt_soem
I just looked, and there isn't an EtherCAT section. Sorry about that.I had not seen that section. I will put the message there.
There are EtherCAT threads in "Driver Boards", "HAL" and "Advanced Configuration".
I think that there probably should be an EtherCAT section, but I am not sure where to put it.
Please Log in or Create an account to join the conversation.
- tommylight
- Away
- Moderator
Less
More
- Posts: 19188
- Thank you received: 6430
03 Aug 2021 12:28 #216805
by tommylight
Replied by tommylight on topic Drivers implementation for ROS - rtt_soem
Probably in "Configuring LinuxCNC" or in "Hardware and Machines".
I am partial to first.
I am partial to first.
Please Log in or Create an account to join the conversation.
03 Aug 2021 12:46 #216809
by andypugh
Replied by andypugh on topic Drivers implementation for ROS - rtt_soem
Done. In fact we are there.
Please Log in or Create an account to join the conversation.
03 Aug 2021 17:18 #216854
by db1981
Replied by db1981 on topic Drivers implementation for ROS - rtt_soem
Hello,
i don't know if the soem already supports FSOE communication, i can't find anything about that... (Fail Safe Over Ethernet).
In an Fsoe System the FSOE Master of the Twinsafe Group (EL69XX) talks directly to the other TwinSafe Cards which are added to this group. (FSOE StateMachine, CRCs etc.) Your Master or your driver implementation has to do this packet routing. You can find the implementation of this in linuxcnc-ethercat in lcec.c and el6900.c .
A Twinsafe configuration has to be done in Twincat, and you can map external Bits to the status and control bits of the Twinsafe Group (run, error, reset ...)
Have a look at the pdo configuration in twincat to get an overview of this.
i don't know if the soem already supports FSOE communication, i can't find anything about that... (Fail Safe Over Ethernet).
In an Fsoe System the FSOE Master of the Twinsafe Group (EL69XX) talks directly to the other TwinSafe Cards which are added to this group. (FSOE StateMachine, CRCs etc.) Your Master or your driver implementation has to do this packet routing. You can find the implementation of this in linuxcnc-ethercat in lcec.c and el6900.c .
A Twinsafe configuration has to be done in Twincat, and you can map external Bits to the status and control bits of the Twinsafe Group (run, error, reset ...)
Have a look at the pdo configuration in twincat to get an overview of this.
Please Log in or Create an account to join the conversation.
11 Aug 2021 09:41 - 11 Aug 2021 09:45 #217497
by juniorfi
Replied by juniorfi on topic Drivers implementation for ROS - rtt_soem
Hello thanks for the reply.
I already saw a company that provides the FSOE implementation at some cost. But that will be not the way to go.
We turn a bit our research and we are looking forward to implement ROS with LinuxCNC.
I'm now trying to understand the code, see how HAL works to implement it with Orocos.
I put here the link in case someone want to have a look: github.com/orocos/rtt_ros_integration
I case someone knows about HAL code and how implementation can be done. I will glad to see those messages or hints.
I'm looking to interact right now, with the HAL configuration like in this example with ROS topics: github.com/grotius-cnc/hal-kinematics/blob/main/README.md
Any information is more than welcome.
Edit: With the last GitHub example I wanted to show the image. That process will be a good start point.
Regards
I already saw a company that provides the FSOE implementation at some cost. But that will be not the way to go.
We turn a bit our research and we are looking forward to implement ROS with LinuxCNC.
I'm now trying to understand the code, see how HAL works to implement it with Orocos.
I put here the link in case someone want to have a look: github.com/orocos/rtt_ros_integration
I case someone knows about HAL code and how implementation can be done. I will glad to see those messages or hints.
I'm looking to interact right now, with the HAL configuration like in this example with ROS topics: github.com/grotius-cnc/hal-kinematics/blob/main/README.md
Any information is more than welcome.
Edit: With the last GitHub example I wanted to show the image. That process will be a good start point.
Regards
Last edit: 11 Aug 2021 09:45 by juniorfi.
Please Log in or Create an account to join the conversation.
11 Aug 2021 11:26 #217521
by andypugh
It might be easiest to start with the .comp preprocessing language.
linuxcnc.org/docs/2.8/html/hal/comp.html
It is probable that with a complex driver you will run up against the limits of Halcompile, but it's a decent starting point.
There are complete drivers written in .comp too, here is one for an ISA card:
github.com/LinuxCNC/linuxcnc/blob/master.../drivers/pcl720.comp
Replied by andypugh on topic Drivers implementation for ROS - rtt_soem
Basically your HAL driver needs to export pins to exchange data (in effect these are simply shared memory locations that map to different internal variables in more than one software module) and at least one function that will be polled every servo thread cycle.I case someone knows about HAL code and how implementation can be done. I will glad to see those messages or hints.
It might be easiest to start with the .comp preprocessing language.
linuxcnc.org/docs/2.8/html/hal/comp.html
It is probable that with a complex driver you will run up against the limits of Halcompile, but it's a decent starting point.
There are complete drivers written in .comp too, here is one for an ISA card:
github.com/LinuxCNC/linuxcnc/blob/master.../drivers/pcl720.comp
Please Log in or Create an account to join the conversation.
11 Aug 2021 12:43 #217537
by Roiki
Replied by Roiki on topic Drivers implementation for ROS - rtt_soem
You need to use a message buffer like hal_streamer to communicate from the userspace to rt space and back. So you would use hal_streamer to create a shared memory queue and then write a program that writes messages to that queue. C and python can be used.
Please Log in or Create an account to join the conversation.
Time to create page: 0.104 seconds