ROS LinuxCNC Link
- thefabricator03
- Offline
- Platinum Member
Less
More
- Posts: 1130
- Thank you received: 533
29 Mar 2021 08:00 #203989
by thefabricator03
Replied by thefabricator03 on topic ROS LinuxCNC Link
When I get a minute next weekend I plan to start up one of my Motoman robots and document the whole teach pendant operations. It might help somewhat.
Also I have a copy of RoboDK that might be able to help us generate test robot programs.
Also I have a copy of RoboDK that might be able to help us generate test robot programs.
Please Log in or Create an account to join the conversation.
- thefabricator03
- Offline
- Platinum Member
Less
More
- Posts: 1130
- Thank you received: 533
29 Mar 2021 08:12 #203992
by thefabricator03
The attached ROS industrial PDF might be helpful in regards to safety standards. I think what you are proposing is a very good idea.
Replied by thefabricator03 on topic ROS LinuxCNC Link
Maybe something to think about :
I would like to start with a sps channel (safety channel) that start's when pc boots. Just like the ethercat starts at boot
and the mac adress is configured at boot time.
The attached ROS industrial PDF might be helpful in regards to safety standards. I think what you are proposing is a very good idea.
Please Log in or Create an account to join the conversation.
29 Mar 2021 17:45 #204081
by andypugh
xkcd.com/353/
Replied by andypugh on topic ROS LinuxCNC Link
Grotius, I think you should devote 3-5 days learning Python by following the Google Python tutorials. I find I don't use it enough so its hard for me but when I do get it, I can write in 100 lines of Python what would take 1000 lines in C.
xkcd.com/353/
Please Log in or Create an account to join the conversation.
29 Mar 2021 18:16 - 29 Mar 2021 18:17 #204088
by rodw
I know I don't know anything about robots but...
Somewhere there is a program executing the script surely? Does the same environment run the robot program? If thats the case, linuxcnc with seperate threads should satisfy requirements. If you need to worry about Linuxcnc freezing, you should not be trusting it with any motion project. The Linuxcnc architecture is very robust and each component is essentially firewalled from all the other ones. Seperate threads takes this to another level again. Does the ethercat environment generate a watchdog in the same way the mesa cards do?
At some point control needs to be passed from the operating system to an executing program.
I would have thought safety starts well before a computer boots. I know we don't discuss safety circuits much here but a ISO 13849-1 compliant safety relay appears mandatory. I bought a couple of these www.tro-pacific.com/collections/safety-r...ock-switches-enablin but I have not started to play with them yet. I would think this circuit would manage all the interlocks and guards. I also purchased a 24V DC 3 phase contactor which also has a set of auxiliary contacts for logic control. I eventually got the right one on their third attempt.. Somwhere, Linuxcnc needs to tell the Safety circuit that all is good on startup. This could be dropped if a watchdog event ocurred.
Replied by rodw on topic ROS LinuxCNC Link
Hi Rod,
Just pointing to the fact that the linuxcnc emergency button is not enough. In software design state,
it's maybe just important that software works. It's a quite early state to talk about this.
A file called sps.sub is a file wich run's separate from the program. It locks the safety magnet on door etc.
This is done outside the robot program. If linuxcnc would freeze or something would happen.
This would be not involved. The safety door would unlock when emergency is triggered.
This is how Kuka robotics work.
I know I don't know anything about robots but...
Somewhere there is a program executing the script surely? Does the same environment run the robot program? If thats the case, linuxcnc with seperate threads should satisfy requirements. If you need to worry about Linuxcnc freezing, you should not be trusting it with any motion project. The Linuxcnc architecture is very robust and each component is essentially firewalled from all the other ones. Seperate threads takes this to another level again. Does the ethercat environment generate a watchdog in the same way the mesa cards do?
At some point control needs to be passed from the operating system to an executing program.
I would have thought safety starts well before a computer boots. I know we don't discuss safety circuits much here but a ISO 13849-1 compliant safety relay appears mandatory. I bought a couple of these www.tro-pacific.com/collections/safety-r...ock-switches-enablin but I have not started to play with them yet. I would think this circuit would manage all the interlocks and guards. I also purchased a 24V DC 3 phase contactor which also has a set of auxiliary contacts for logic control. I eventually got the right one on their third attempt.. Somwhere, Linuxcnc needs to tell the Safety circuit that all is good on startup. This could be dropped if a watchdog event ocurred.
Last edit: 29 Mar 2021 18:17 by rodw.
Please Log in or Create an account to join the conversation.
29 Mar 2021 21:53 #204100
by Grotius
Replied by Grotius on topic ROS LinuxCNC Link
Hi Rod,
Does the same environment run the robot program? If thats the case, linuxcnc with seperate threads should satisfy requirements
I think that would be oke, because twinsafe can be connected to hal.
Hi Andy,
Nice link. I don't understand it. You mean Python is hard to learn?
Maybe we first try to link Ros to Linuxcnc. And if that work's, see how the performance is.
Does the same environment run the robot program? If thats the case, linuxcnc with seperate threads should satisfy requirements
I think that would be oke, because twinsafe can be connected to hal.
Hi Andy,
Nice link. I don't understand it. You mean Python is hard to learn?
Maybe we first try to link Ros to Linuxcnc. And if that work's, see how the performance is.
Please Log in or Create an account to join the conversation.
- thefabricator03
- Offline
- Platinum Member
Less
More
- Posts: 1130
- Thank you received: 533
31 Mar 2021 02:47 - 31 Mar 2021 02:50 #204166
by thefabricator03
Replied by thefabricator03 on topic ROS LinuxCNC Link
So how do you see the ROS-LinuxCNC link working? The same way that MachineKit are doing it with two HAL components?
One thing I have been trying to work out is how we can do it with LinuxCNC without the HAL ring buffer. From my limited understanding, Machinekit sends and receives joint positions to ROS via the HAL ring buffer. Do you have an idea of a way to do this currently, or will we need to make some kind of ring buffer component?
One thing I have been trying to work out is how we can do it with LinuxCNC without the HAL ring buffer. From my limited understanding, Machinekit sends and receives joint positions to ROS via the HAL ring buffer. Do you have an idea of a way to do this currently, or will we need to make some kind of ring buffer component?
Last edit: 31 Mar 2021 02:50 by thefabricator03.
The following user(s) said Thank You: DPFlex
Please Log in or Create an account to join the conversation.
- thefabricator03
- Offline
- Platinum Member
Less
More
- Posts: 1130
- Thank you received: 533
31 Mar 2021 02:52 #204168
by thefabricator03
Replied by thefabricator03 on topic ROS LinuxCNC Link
This is the way that ROS will be controller from a low level,
github.com/PickNikRobotics/ros_control_boilerplate
wiki.ros.org/ros_control_boilerplate
github.com/PickNikRobotics/ros_control_boilerplate
wiki.ros.org/ros_control_boilerplate
Please Log in or Create an account to join the conversation.
15 Apr 2021 02:47 - 15 Apr 2021 02:48 #205976
by Bari
Replied by Bari on topic ROS LinuxCNC Link
I am looking into doing similar with ROS and LCNC. I will have four 5-axis mills that will operate on the same parts at the same time, just on different areas of the same part. LCNC will still run a separate program on a separate controllers, one controller for each mill. I'm considering using ROS to control the position of each mill as each mill is on a conveyor that can move each mill around the edge of the parts. ROS will also control when each mill starts and stops and prevent collisions between mills.
Last edit: 15 Apr 2021 02:48 by Bari. Reason: spelling
Please Log in or Create an account to join the conversation.
15 Apr 2021 06:55 #205981
by Grotius
Replied by Grotius on topic ROS LinuxCNC Link
Hi Bari,
Ambiguous project. Four 5 axis mill's off dmg mori would be a million's project.
Today i am starting to create a Linux embedded version. Just because i am interested in it. I have no goals.
Will take a bootstrap, a kernel and a qt program to run within a x window manager maybe sddm.
So no dekstop environment is loaded normally. It can be done by starting it manually as sys admin.
It should just boot up a qt program that display's a cnc program. For example it could display a robot teach pendant.
Let's find out. Have a nice day !
Ambiguous project. Four 5 axis mill's off dmg mori would be a million's project.
Today i am starting to create a Linux embedded version. Just because i am interested in it. I have no goals.
Will take a bootstrap, a kernel and a qt program to run within a x window manager maybe sddm.
So no dekstop environment is loaded normally. It can be done by starting it manually as sys admin.
It should just boot up a qt program that display's a cnc program. For example it could display a robot teach pendant.
Let's find out. Have a nice day !
Please Log in or Create an account to join the conversation.
15 Apr 2021 23:39 - 16 Apr 2021 01:48 #206063
by Grotius
Replied by Grotius on topic ROS LinuxCNC Link
Hi,
After some reading, trail and error the principle works.
What we have is a embedded linux os starting a qt application. For the rest it does nothing at the moment.
To be clear, there is no desktop environment.
It's only one app that run's at the moment. Just like a apple phone. Everything is closed source.
It seem's closed source company's make big money.
Spec's :
1. It's booting into the qt app without login window. ( I bypassed this for now, login for user level can be activated. )
2. It's not using any window-manager like sddm etc. ( It uses a Xorg package and a libqt5widgets5 package from sid )
3. It uses systemd. Nothing is demolished after the debootstrap. So i coded in today's standard's.
4. Kernel : Linux debian10 5.10.0-6-rt-amd64 #1 SMP PREEMPT_RT Debian
5. Process documentation is hosted at : github.com/grotius-cnc/Linux-Embedded/releases/tag/1.0.0 -> howto.txt
6. First preview attached :
Wow... fckng hell.
7. Iso runtest ok.
I got a lot of idea's now.
Ok, next thing is to get some kind of hal layer working. Maybe strip down lcnc?
Maybe begin a lcnc module format. For the Ros we only need hal at the moment.
We need some kind of graphical artist.
If someone can build the teach pendant layout's in qt creator. That would be nice.
Only the layout with button's, labels, etc. is good. The signal and slot's will come later on.
Naming the buttons and labels following a coding style is important. I leave always the orginal name at the
beginning of the widget. A button begin's with "button-stop" for example. A label is "label-dro-xmax" for example.
Keep low letters to stay uniform. Use mid stripes to stay uniform. etc. Use color-template's for machine's.
We could add different types of pendant's. I suppose a mill is different then a robot.
Ok i have no goal. We will see how it goes. If there are helper's we can make progress.
Here is the iso to test out the software, just grab a old hard-drive and put it on. Check if your left over data usb's are removed for sure.
github.com/grotius-cnc/Linux-Embedded/re...0/Linux-Embedded.iso
The "normal install" is a auto installer. You don't have to do anything. It's using a preceeding technique.
After install it does a power down.
When you press the power button. The pc will boot straight into the embedded robot program. Ok have fun !!
After some reading, trail and error the principle works.
What we have is a embedded linux os starting a qt application. For the rest it does nothing at the moment.
To be clear, there is no desktop environment.
It's only one app that run's at the moment. Just like a apple phone. Everything is closed source.
It seem's closed source company's make big money.
Spec's :
1. It's booting into the qt app without login window. ( I bypassed this for now, login for user level can be activated. )
2. It's not using any window-manager like sddm etc. ( It uses a Xorg package and a libqt5widgets5 package from sid )
3. It uses systemd. Nothing is demolished after the debootstrap. So i coded in today's standard's.
4. Kernel : Linux debian10 5.10.0-6-rt-amd64 #1 SMP PREEMPT_RT Debian
5. Process documentation is hosted at : github.com/grotius-cnc/Linux-Embedded/releases/tag/1.0.0 -> howto.txt
6. First preview attached :
Wow... fckng hell.
7. Iso runtest ok.
I got a lot of idea's now.
Ok, next thing is to get some kind of hal layer working. Maybe strip down lcnc?
Maybe begin a lcnc module format. For the Ros we only need hal at the moment.
We need some kind of graphical artist.
If someone can build the teach pendant layout's in qt creator. That would be nice.
Only the layout with button's, labels, etc. is good. The signal and slot's will come later on.
Naming the buttons and labels following a coding style is important. I leave always the orginal name at the
beginning of the widget. A button begin's with "button-stop" for example. A label is "label-dro-xmax" for example.
Keep low letters to stay uniform. Use mid stripes to stay uniform. etc. Use color-template's for machine's.
We could add different types of pendant's. I suppose a mill is different then a robot.
Ok i have no goal. We will see how it goes. If there are helper's we can make progress.
Here is the iso to test out the software, just grab a old hard-drive and put it on. Check if your left over data usb's are removed for sure.
github.com/grotius-cnc/Linux-Embedded/re...0/Linux-Embedded.iso
The "normal install" is a auto installer. You don't have to do anything. It's using a preceeding technique.
After install it does a power down.
When you press the power button. The pc will boot straight into the embedded robot program. Ok have fun !!
Attachments:
Last edit: 16 Apr 2021 01:48 by Grotius.
Please Log in or Create an account to join the conversation.
Time to create page: 0.122 seconds