EtherCAT driver for a 6 axis robot
- ftree
 - Offline
 - Premium Member
 - 
				
			 
		Less
		More
		
			
	
		- Posts: 116
 - Thank you received: 10
 
			
	
						21 Jul 2022 15:52				#247956
		by ftree
	
	
		
			
	
			
			 		
													
	
				Replied by ftree on topic EtherCAT driver for a 6 axis robot			
			
				Nottingham, UK.			
					Please Log in or Create an account to join the conversation.
- ftree
 - Offline
 - Premium Member
 - 
				
			 
		Less
		More
		
			
	
		- Posts: 116
 - Thank you received: 10
 
			
	
						22 Jul 2022 00:11		 -  22 Jul 2022 00:22		#247997
		by ftree
	
	
		
			
	
	
			 		
													
	
				Replied by ftree on topic EtherCAT driver for a 6 axis robot			
			
				In the meantime I've tidied the folder and now attempting to get the vismach starting, at least. I have two versions of DH/DH(modified) to try for the kins. Working on the best way to orientate and save the obj links too and set up correct WRF/HOME placement.
github.com/djsftree/linuxcnc-ethercat/tree/master/wip-meca500
					github.com/djsftree/linuxcnc-ethercat/tree/master/wip-meca500
		Last edit: 22 Jul 2022 00:22  by ftree.			
			Please Log in or Create an account to join the conversation.
- andypugh
 - 
				
											 - Offline
 - Moderator
 - 
				
			 
		Less
		More
		
			
	
		- Posts: 19678
 - Thank you received: 4559
 
			
	
						22 Jul 2022 11:37				#248021
		by andypugh
	
	
		
			
	
	
			 		
													
	
				Replied by andypugh on topic EtherCAT driver for a 6 axis robot			
			
				To do a timed sequence in a HAL component, you use a state machine.
			
					{normal .comp headers, as you have}
pin out signed state;
pin out float timer;
...
FUNCTION(_){
...
switch (state){
case 0: // waiting
  if (! enable) return;
  output_1 = 1;
  timer = 1000;
  state = 1;
  break;
case 1:
  timer -= fperiod;
  if (timer > 0) return;
  output_2 = 1;
  timer =  1500;
  state = 2;
  break;
case 2:
  timer -= fperiod;
  if (timer > 0) return;
 output_3 = 1;
  timer = 500;
  state = 3;
. break;
case 3:
...
		The following user(s) said Thank You: tommylight 	
			Please Log in or Create an account to join the conversation.
- ftree
 - Offline
 - Premium Member
 - 
				
			 
		Less
		More
		
			
	
		- Posts: 116
 - Thank you received: 10
 
			
	
						22 Jul 2022 12:54		 -  22 Jul 2022 12:55		#248028
		by ftree
	
	
		
			
	
	
			 		
													
	
				Replied by ftree on topic EtherCAT driver for a 6 axis robot			
			
				Thanks Andy. This is very much out of comfort zone. If anyone can help on a contract basis for the underlying code work please do let me know.
I have managed to assemble the obj models within vismach. I'm now figuring out the correct XYZ orientation to export obj files out as as well as the correct translations.
github.com/djsftree/linuxcnc-ethercat/bl...eca500/meca500gui.py
					I have managed to assemble the obj models within vismach. I'm now figuring out the correct XYZ orientation to export obj files out as as well as the correct translations.
github.com/djsftree/linuxcnc-ethercat/bl...eca500/meca500gui.py
		Last edit: 22 Jul 2022 12:55  by ftree.			
			Please Log in or Create an account to join the conversation.
- ftree
 - Offline
 - Premium Member
 - 
				
			 
		Less
		More
		
			
	
		- Posts: 116
 - Thank you received: 10
 
			
	
						22 Jul 2022 15:50				#248049
		by ftree
	
	
		
			
	
			
			 		
													
	
				Replied by ftree on topic EtherCAT driver for a 6 axis robot			
			
				Made some good progress today starting the application with vismach.  I may not have the rotates and translates right yet but close.
github.com/djsftree/linuxcnc-ethercat/tree/master/wip-meca500
					github.com/djsftree/linuxcnc-ethercat/tree/master/wip-meca500
Please Log in or Create an account to join the conversation.
- ftree
 - Offline
 - Premium Member
 - 
				
			 
		Less
		More
		
			
	
		- Posts: 116
 - Thank you received: 10
 
			
	
						25 Jul 2022 12:00				#248247
		by ftree
	
	
		
			
	
	
			 		
													
	
				Replied by ftree on topic EtherCAT driver for a 6 axis robot			
			
				I've split the project into two repositories now
Meca500 LinuxCNC EtherCAT HAL Driver
github.com/djsftree/linuxcnc-ethercat
Meca500 LinuxCNC (currently using generic EtherCAT driver xml)
github.com/djsftree/linuxcnc_meca500
					Meca500 LinuxCNC EtherCAT HAL Driver
github.com/djsftree/linuxcnc-ethercat
Meca500 LinuxCNC (currently using generic EtherCAT driver xml)
github.com/djsftree/linuxcnc_meca500
		The following user(s) said Thank You: rodw 	
			Please Log in or Create an account to join the conversation.
- ftree
 - Offline
 - Premium Member
 - 
				
			 
		Less
		More
		
			
	
		- Posts: 116
 - Thank you received: 10
 
			
	
						26 Jul 2022 15:46				#248341
		by ftree
	
	
		
			
	
			
			 		
													
	
				Replied by ftree on topic EtherCAT driver for a 6 axis robot			
			
				Hi @db1981.  Are you available to assist?  Are you on the Discord server?			
					Please Log in or Create an account to join the conversation.
- db1981
 - Offline
 - Platinum Member
 - 
				
			 
		Less
		More
		
			
	
		- Posts: 790
 - Thank you received: 275
 
			
	
						27 Jul 2022 16:30				#248431
		by db1981
	
	
		
			
	
	
			 		
													
	
				Replied by db1981 on topic EtherCAT driver for a 6 axis robot			
			
				hi,
i am very out of time at the moment.
I'm involved in two bigger projects, which have to produce asap.
But now we do redesign/recoding on the construction site, caused by parts availibility.
Maybe i will get a few hours the next week....
					i am very out of time at the moment.
I'm involved in two bigger projects, which have to produce asap.
But now we do redesign/recoding on the construction site, caused by parts availibility.
Maybe i will get a few hours the next week....
		The following user(s) said Thank You: ftree 	
			Please Log in or Create an account to join the conversation.
- ftree
 - Offline
 - Premium Member
 - 
				
			 
		Less
		More
		
			
	
		- Posts: 116
 - Thank you received: 10
 
			
	
						29 Jul 2022 16:51				#248624
		by ftree
	
	
		
			
	
			
			 		
													
	
				Replied by ftree on topic EtherCAT driver for a 6 axis robot			
			
				Thanks!  if you have the time it would be greatly appreciated.
To recap. I’m working on an internal project involving the Mecademic Meca500 6 axis robot
www.mecademic.com/en/meca500-robot-arm
Here’s some useful links so far
Cyclic data that can be sent to the robot
cdn.mecademic.com/uploads/docs/meca500-r...4.pdf#subsection.3.4
Cyclic data received from the robot
cdn.mecademic.com/uploads/docs/meca500-r...4.pdf#subsection.3.5
Communicating over ethercat
cdn.mecademic.com/uploads/docs/meca500-r...al-8-4.pdf#section.4
ethercat XML file
github.com/djsftree/linuxcnc_meca500/blo...meca500-ethercat.xml
custom homing comp skeleton
github.com/djsftree/linuxcnc_meca500/blo.../meca500_homing.comp
I would welcome a review of the initial skeleton code and any suggestions to the potential homing architecture for this particular robot.
The robot has its own internal mechanism for homing once the robot is activated.
-- set
ctrl.activate 1
ctrl.deactivate 0
-- wait for
status.activated 1
status.busy 0
-- set
ctrl.home 1
j0, j1, j2 rotate 3.6deg
j3, j4 rotate 7.2deg
j5 rotates 12deg
above joints rotate back the same amout
this procedures takes 3 seconds to complete
joint position during homing is available on ethercat encoder.a1 thru a6
-- wait for
status.homed 1
status.busy 0
-- homed and ready to accept motion commands
Best regards,
David
					To recap. I’m working on an internal project involving the Mecademic Meca500 6 axis robot
www.mecademic.com/en/meca500-robot-arm
Here’s some useful links so far
Cyclic data that can be sent to the robot
cdn.mecademic.com/uploads/docs/meca500-r...4.pdf#subsection.3.4
Cyclic data received from the robot
cdn.mecademic.com/uploads/docs/meca500-r...4.pdf#subsection.3.5
Communicating over ethercat
cdn.mecademic.com/uploads/docs/meca500-r...al-8-4.pdf#section.4
ethercat XML file
github.com/djsftree/linuxcnc_meca500/blo...meca500-ethercat.xml
custom homing comp skeleton
github.com/djsftree/linuxcnc_meca500/blo.../meca500_homing.comp
I would welcome a review of the initial skeleton code and any suggestions to the potential homing architecture for this particular robot.
The robot has its own internal mechanism for homing once the robot is activated.
-- set
ctrl.activate 1
ctrl.deactivate 0
-- wait for
status.activated 1
status.busy 0
-- set
ctrl.home 1
j0, j1, j2 rotate 3.6deg
j3, j4 rotate 7.2deg
j5 rotates 12deg
above joints rotate back the same amout
this procedures takes 3 seconds to complete
joint position during homing is available on ethercat encoder.a1 thru a6
-- wait for
status.homed 1
status.busy 0
-- homed and ready to accept motion commands
Best regards,
David
Please Log in or Create an account to join the conversation.
		Time to create page: 0.087 seconds