- Posts: 104
- Thank you received: 4
Trajectory Planner using Ruckig Lib
- akg1904
- Offline
- Premium Member
-
Less
More
2 years 4 months ago #302816
by akg1904
Replied by akg1904 on topic Trajectory Planner using Ruckig Lib
Hi,
Greetings to all.
I installed Grotius Repo and tried to run TpMod_Scurve in "axis_mm INI" but I keep getting error:
LINUXCNC - 2.10.0~pre0
Machine configuration directory is '/home/ethereal-abhi/linuxcnc/configs/sim/axis'
Machine configuration file is 'axis_mm.ini'
Starting LinuxCNC...
(time=1718094964.010793,pid=40867): Registering server on TCP port 5005.
(time=1718094964.011063,pid=40867): running server for TCP port 5005 (connection_socket = 3).
linuxcnc TPMOD=tpmod_scurve HOMEMOD=homemod EMCMOT=motmod_scurve
Note: Using POSIX realtime
tpmod_scurve: dlopen: /home/ethereal-abhi/linuxcnc/rtlib/tpmod_scurve.so: cannot open shared object file: No such file or directory
<commandline>:0: waitpid failed /home/ethereal-abhi/linuxcnc/bin/rtapi_app tpmod_scurve
<commandline>:0: /home/ethereal-abhi/linuxcnc/bin/rtapi_app exited without becoming ready
<commandline>:0: insmod for tpmod_scurve failed, returned -1
Note: Using POSIX realtime
task: machine: 'LinuxCNC-HAL-SIM-AXIS' version 'unknown'
Found file(lib): /home/ethereal-abhi/linuxcnc/lib/hallib/core_sim.hal
motmod_scurve: dlopen: /home/ethereal-abhi/linuxcnc/rtlib/motmod_scurve.so: cannot open shared object file: No such file or directory
/home/ethereal-abhi/linuxcnc/lib/hallib/core_sim.hal:7: waitpid failed /home/ethereal-abhi/linuxcnc/bin/rtapi_app motmod_scurve
/home/ethereal-abhi/linuxcnc/lib/hallib/core_sim.hal:7: /home/ethereal-abhi/linuxcnc/bin/rtapi_app exited without becoming ready
/home/ethereal-abhi/linuxcnc/lib/hallib/core_sim.hal:7: insmod for motmod_scurve failed, returned -1
Shutting down and cleaning up LinuxCNC...
/home/ethereal-abhi/linuxcnc/scripts/linuxcnc: line 668: /home/ethereal-abhi/linuxcnc/scripts/axis-remote: cannot execute: required file not found
(time=1718094964.421738,pid=40867): Deleting 3 channels from the NML_Main_Channel_List.
(time=1718094964.421764,pid=40867): Deleting emcCommand NML channel from NML_Main_Channel_List.
(time=1718094964.421785,pid=40867): deleting NML (1)
(time=1718094964.421801,pid=40867): delete (CMS *) 0x5597399a3300;
(time=1718094964.421829,pid=40867): rcs_shm_close(shm->key=1001(0x3E9),shm->size=8192(0x2000),shm->addr=0x7f246a56e000)
(time=1718094964.421859,pid=40867): deleting CMS (emcCommand)
(time=1718094964.421888,pid=40867): free( data = 0x5597399a4030);
(time=1718094964.421913,pid=40867): Leaving ~CMS()
(time=1718094964.421922,pid=40867): CMS::delete(0x5597399a3300)
(time=1718094964.421934,pid=40867): CMS::delete successful.
(time=1718094964.421967,pid=40867): Leaving ~NML()
(time=1718094964.421976,pid=40867): NML channel deleted from NML_Main_Channel_List
(time=1718094964.421986,pid=40867): Deleting emcStatus NML channel from NML_Main_Channel_List.
(time=1718094964.421993,pid=40867): deleting NML (2)
(time=1718094964.422001,pid=40867): delete (CMS *) 0x5597399a9510;
(time=1718094964.422011,pid=40867): rcs_shm_close(shm->key=1002(0x3EA),shm->size=20480(0x5000),shm->addr=0x7f246a569000)
(time=1718094964.422035,pid=40867): deleting CMS (emcStatus)
(time=1718094964.422043,pid=40867): free( data = 0x5597399aa220);
(time=1718094964.422054,pid=40867): Leaving ~CMS()
(time=1718094964.422064,pid=40867): CMS::delete(0x5597399a9510)
(time=1718094964.422073,pid=40867): CMS::delete successful.
(time=1718094964.422089,pid=40867): Leaving ~NML()
(time=1718094964.422096,pid=40867): NML channel deleted from NML_Main_Channel_List
(time=1718094964.422113,pid=40867): Deleting emcError NML channel from NML_Main_Channel_List.
(time=1718094964.422118,pid=40867): deleting NML (3)
(time=1718094964.422123,pid=40867): delete (CMS *) 0x5597399af900;
(time=1718094964.422144,pid=40867): rcs_shm_close(shm->key=1003(0x3EB),shm->size=8192(0x2000),shm->addr=0x7f246a567000)
(time=1718094964.422177,pid=40867): deleting CMS (emcError)
(time=1718094964.422188,pid=40867): free( data = 0x5597399b0620);
(time=1718094964.422198,pid=40867): Leaving ~CMS()
(time=1718094964.422204,pid=40867): CMS::delete(0x5597399af900)
(time=1718094964.422210,pid=40867): CMS::delete successful.
(time=1718094964.422217,pid=40867): Leaving ~NML()
(time=1718094964.422227,pid=40867): NML channel deleted from NML_Main_Channel_List
(time=1718094964.422240,pid=40867): deleting NML (1)
(time=1718094964.422248,pid=40867): Leaving ~NML()
(time=1718094964.422256,pid=40867): NML::operator delete(0x5597399a3090)
(time=1718094964.422263,pid=40867): NML channel deleted from Dynamically_Allocated_NML_Objects
(time=1718094964.422278,pid=40867): deleting NML (2)
(time=1718094964.422287,pid=40867): Leaving ~NML()
(time=1718094964.422293,pid=40867): NML::operator delete(0x5597399a9340)
(time=1718094964.422317,pid=40867): NML channel deleted from Dynamically_Allocated_NML_Objects
(time=1718094964.422326,pid=40867): deleting NML (3)
(time=1718094964.422339,pid=40867): Leaving ~NML()
(time=1718094964.422347,pid=40867): NML::operator delete(0x5597399af6d0)
(time=1718094964.422355,pid=40867): NML channel deleted from Dynamically_Allocated_NML_Objects
USRMOT: ERROR: command 31 timeout
emcTrajSetJoints(3) returned -2
emcMotionInit: emcTrajInit failed
Note: Using POSIX realtime
LinuxCNC terminated with an error. You can find more information in the log:
/home/ethereal-abhi/linuxcnc_debug.txt
and
/home/ethereal-abhi/linuxcnc_print.txt
as well as in the output of the shell command 'dmesg' and in the terminal
Can anyone help me out with this.
I really want to try this TP on my machine
Regards
Abhishek
Greetings to all.
I installed Grotius Repo and tried to run TpMod_Scurve in "axis_mm INI" but I keep getting error:
LINUXCNC - 2.10.0~pre0
Machine configuration directory is '/home/ethereal-abhi/linuxcnc/configs/sim/axis'
Machine configuration file is 'axis_mm.ini'
Starting LinuxCNC...
(time=1718094964.010793,pid=40867): Registering server on TCP port 5005.
(time=1718094964.011063,pid=40867): running server for TCP port 5005 (connection_socket = 3).
linuxcnc TPMOD=tpmod_scurve HOMEMOD=homemod EMCMOT=motmod_scurve
Note: Using POSIX realtime
tpmod_scurve: dlopen: /home/ethereal-abhi/linuxcnc/rtlib/tpmod_scurve.so: cannot open shared object file: No such file or directory
<commandline>:0: waitpid failed /home/ethereal-abhi/linuxcnc/bin/rtapi_app tpmod_scurve
<commandline>:0: /home/ethereal-abhi/linuxcnc/bin/rtapi_app exited without becoming ready
<commandline>:0: insmod for tpmod_scurve failed, returned -1
Note: Using POSIX realtime
task: machine: 'LinuxCNC-HAL-SIM-AXIS' version 'unknown'
Found file(lib): /home/ethereal-abhi/linuxcnc/lib/hallib/core_sim.hal
motmod_scurve: dlopen: /home/ethereal-abhi/linuxcnc/rtlib/motmod_scurve.so: cannot open shared object file: No such file or directory
/home/ethereal-abhi/linuxcnc/lib/hallib/core_sim.hal:7: waitpid failed /home/ethereal-abhi/linuxcnc/bin/rtapi_app motmod_scurve
/home/ethereal-abhi/linuxcnc/lib/hallib/core_sim.hal:7: /home/ethereal-abhi/linuxcnc/bin/rtapi_app exited without becoming ready
/home/ethereal-abhi/linuxcnc/lib/hallib/core_sim.hal:7: insmod for motmod_scurve failed, returned -1
Shutting down and cleaning up LinuxCNC...
/home/ethereal-abhi/linuxcnc/scripts/linuxcnc: line 668: /home/ethereal-abhi/linuxcnc/scripts/axis-remote: cannot execute: required file not found
(time=1718094964.421738,pid=40867): Deleting 3 channels from the NML_Main_Channel_List.
(time=1718094964.421764,pid=40867): Deleting emcCommand NML channel from NML_Main_Channel_List.
(time=1718094964.421785,pid=40867): deleting NML (1)
(time=1718094964.421801,pid=40867): delete (CMS *) 0x5597399a3300;
(time=1718094964.421829,pid=40867): rcs_shm_close(shm->key=1001(0x3E9),shm->size=8192(0x2000),shm->addr=0x7f246a56e000)
(time=1718094964.421859,pid=40867): deleting CMS (emcCommand)
(time=1718094964.421888,pid=40867): free( data = 0x5597399a4030);
(time=1718094964.421913,pid=40867): Leaving ~CMS()
(time=1718094964.421922,pid=40867): CMS::delete(0x5597399a3300)
(time=1718094964.421934,pid=40867): CMS::delete successful.
(time=1718094964.421967,pid=40867): Leaving ~NML()
(time=1718094964.421976,pid=40867): NML channel deleted from NML_Main_Channel_List
(time=1718094964.421986,pid=40867): Deleting emcStatus NML channel from NML_Main_Channel_List.
(time=1718094964.421993,pid=40867): deleting NML (2)
(time=1718094964.422001,pid=40867): delete (CMS *) 0x5597399a9510;
(time=1718094964.422011,pid=40867): rcs_shm_close(shm->key=1002(0x3EA),shm->size=20480(0x5000),shm->addr=0x7f246a569000)
(time=1718094964.422035,pid=40867): deleting CMS (emcStatus)
(time=1718094964.422043,pid=40867): free( data = 0x5597399aa220);
(time=1718094964.422054,pid=40867): Leaving ~CMS()
(time=1718094964.422064,pid=40867): CMS::delete(0x5597399a9510)
(time=1718094964.422073,pid=40867): CMS::delete successful.
(time=1718094964.422089,pid=40867): Leaving ~NML()
(time=1718094964.422096,pid=40867): NML channel deleted from NML_Main_Channel_List
(time=1718094964.422113,pid=40867): Deleting emcError NML channel from NML_Main_Channel_List.
(time=1718094964.422118,pid=40867): deleting NML (3)
(time=1718094964.422123,pid=40867): delete (CMS *) 0x5597399af900;
(time=1718094964.422144,pid=40867): rcs_shm_close(shm->key=1003(0x3EB),shm->size=8192(0x2000),shm->addr=0x7f246a567000)
(time=1718094964.422177,pid=40867): deleting CMS (emcError)
(time=1718094964.422188,pid=40867): free( data = 0x5597399b0620);
(time=1718094964.422198,pid=40867): Leaving ~CMS()
(time=1718094964.422204,pid=40867): CMS::delete(0x5597399af900)
(time=1718094964.422210,pid=40867): CMS::delete successful.
(time=1718094964.422217,pid=40867): Leaving ~NML()
(time=1718094964.422227,pid=40867): NML channel deleted from NML_Main_Channel_List
(time=1718094964.422240,pid=40867): deleting NML (1)
(time=1718094964.422248,pid=40867): Leaving ~NML()
(time=1718094964.422256,pid=40867): NML::operator delete(0x5597399a3090)
(time=1718094964.422263,pid=40867): NML channel deleted from Dynamically_Allocated_NML_Objects
(time=1718094964.422278,pid=40867): deleting NML (2)
(time=1718094964.422287,pid=40867): Leaving ~NML()
(time=1718094964.422293,pid=40867): NML::operator delete(0x5597399a9340)
(time=1718094964.422317,pid=40867): NML channel deleted from Dynamically_Allocated_NML_Objects
(time=1718094964.422326,pid=40867): deleting NML (3)
(time=1718094964.422339,pid=40867): Leaving ~NML()
(time=1718094964.422347,pid=40867): NML::operator delete(0x5597399af6d0)
(time=1718094964.422355,pid=40867): NML channel deleted from Dynamically_Allocated_NML_Objects
USRMOT: ERROR: command 31 timeout
emcTrajSetJoints(3) returned -2
emcMotionInit: emcTrajInit failed
Note: Using POSIX realtime
LinuxCNC terminated with an error. You can find more information in the log:
/home/ethereal-abhi/linuxcnc_debug.txt
and
/home/ethereal-abhi/linuxcnc_print.txt
as well as in the output of the shell command 'dmesg' and in the terminal
Can anyone help me out with this.
I really want to try this TP on my machine
Regards
Abhishek
Please Log in or Create an account to join the conversation.
- Grotius
- Offline
- Platinum Member
-
Less
More
- Posts: 2419
- Thank you received: 2349
2 years 4 months ago #302818
by Grotius
Replied by Grotius on topic Trajectory Planner using Ruckig Lib
Hi Rod,
Milltask is compiled as executable. It's in the bin folder, the code has a main() function.
It does quite a lot.
- reading the interpreter rs274, turn them into canon commands, add them to a interp_list.
- is director of linuxcnc's program flow, is connected to nml server. (status channel, command channel)
- emcmot_command_t is the struct it uses to update the lcnc shared memory, the same is used by hal realtime motdot.so
Until now this is a valid G9 gcode :=9ptG9 X11 Y22 Z33 P0.1 Q0.2 R44.5 L321 E123.33 (L=integer type)
Where we could say G9 is a universal gcode where L stands for primitive-type.
Then primitive-type can be one of : line G0, line G1 , arc G2, arc G3, spline, nurb, clothoid etc, just a enum
that can accept all types of primitives. This would save us much coding work.
For a clothoid, we only need the endpoint xyz. The rest is done by the trajectory planner.
G9 L6 X10 Y10 Z0 (where L is the clothoid's enum)
G9 L0 X10 Y10 Z0 (where L is the line's G0 enum)
end so on.
Milltask is compiled as executable. It's in the bin folder, the code has a main() function.
It does quite a lot.
- reading the interpreter rs274, turn them into canon commands, add them to a interp_list.
- is director of linuxcnc's program flow, is connected to nml server. (status channel, command channel)
- emcmot_command_t is the struct it uses to update the lcnc shared memory, the same is used by hal realtime motdot.so
Until now this is a valid G9 gcode :=9ptG9 X11 Y22 Z33 P0.1 Q0.2 R44.5 L321 E123.33 (L=integer type)
Where we could say G9 is a universal gcode where L stands for primitive-type.
Then primitive-type can be one of : line G0, line G1 , arc G2, arc G3, spline, nurb, clothoid etc, just a enum
that can accept all types of primitives. This would save us much coding work.
For a clothoid, we only need the endpoint xyz. The rest is done by the trajectory planner.
G9 L6 X10 Y10 Z0 (where L is the clothoid's enum)
G9 L0 X10 Y10 Z0 (where L is the line's G0 enum)
end so on.
Please Log in or Create an account to join the conversation.
- Grotius
- Offline
- Platinum Member
-
Less
More
- Posts: 2419
- Thank you received: 2349
2 years 4 months ago #302822
by Grotius
Replied by Grotius on topic Trajectory Planner using Ruckig Lib
@Abhishek,
Currently you can not run it. You have to wait until i have tested new codebase.
This can take day's to weeks. We don't know at the moment.
Currently you can not run it. You have to wait until i have tested new codebase.
This can take day's to weeks. We don't know at the moment.
The following user(s) said Thank You: akg1904
Please Log in or Create an account to join the conversation.
- Grotius
- Offline
- Platinum Member
-
Less
More
- Posts: 2419
- Thank you received: 2349
2 years 4 months ago - 2 years 4 months ago #302848
by Grotius
Replied by Grotius on topic Trajectory Planner using Ruckig Lib
Hi,
Sample gcode :
Interpreter output:
Then tomorrow GENERAL_MOTION() will print values.
Now the interpreter part is almost done. The sai test program works ok finally.
Some notes to get this working :
This was a hard day off coding !! Hopely tomorrow straight to the finish line where we have to add code to the
realtime part of linuxcnc up to the trajectory planner.
Sample gcode :
Warning: Spoiler!
Code:
G0 X0 Y0 (rapid move)
F10 (set feed rate)
G9 X11 Y22 Z33 P0.1 Q0.2 R44.5 L321 E123.33 (L=integer type)
M30
Interpreter output:
Warning: Spoiler!
Code:
1 N..... USE_LENGTH_UNITS(CANON_UNITS_MM)
2 N..... SET_G5X_OFFSET(1, -nan, -nan, -nan, 0.0000, 0.0000, 0.0000)
3 N..... SET_G92_OFFSET(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
4 N..... SET_XY_ROTATION(0.0000)
5 N..... SET_FEED_REFERENCE(CANON_XYZ)
6 N..... ON_RESET()
Interp::read_g
Interp::execute_block
7 N..... COMMENT("rapid move")
Interp::convert_motion
8 N..... STRAIGHT_TRAVERSE(0.0000, 0.0000, -nan, 0.0000, 0.0000, 0.0000)
Interp::execute_block
9 N..... COMMENT("set feed rate")
10 N..... SET_FEED_RATE(10.0000)
Interp::read_g
G9 found.
x:11
y:22
z:33
p:0.1
q:0.2
r:44.5
l:321
e:123.33
gmodes i:-1
gmodes i:90
gmodes i:-1
gmodes i:-1
gmodes i:-1
gmodes i:-1
gmodes i:-1
gmodes i:-1
gmodes i:-1
gmodes i:-1
gmodes i:-1
gmodes i:-1
gmodes i:-1
gmodes i:-1
gmodes i:-1
gmodes i:-1
gmodes i:-1
Interp::execute_block
11 N..... COMMENT("L=integer type")
Interp::convert_motion
12 N..... GENERAL_MOTION()
Interp::execute_block
13 N..... SET_G5X_OFFSET(1, -nan, -nan, -nan, 0.0000, 0.0000, 0.0000)
14 N..... SET_XY_ROTATION(0.0000)
15 N..... SET_FEED_MODE(0, 0)
16 N..... SET_FEED_RATE(0.0000)
17 N..... STOP_SPINDLE_TURNING(0)
18 N..... SET_SPINDLE_MODE(0 0.0000)
19 N..... PALLET_SHUTTLE()
20 N..... PROGRAM_END()
interpreter ready.
Then tomorrow GENERAL_MOTION() will print values.
Now the interpreter part is almost done. The sai test program works ok finally.
Some notes to get this working :
This was a hard day off coding !! Hopely tomorrow straight to the finish line where we have to add code to the
realtime part of linuxcnc up to the trajectory planner.
Last edit: 2 years 4 months ago by Grotius.
The following user(s) said Thank You: robh, tommylight, Clive S, pommen, yrsiddhapura, Unlogic
Please Log in or Create an account to join the conversation.
- Becksvill
- Offline
- Elite Member
-
Less
More
- Posts: 224
- Thank you received: 115
2 years 4 months ago #302906
by Becksvill
Replied by Becksvill on topic Trajectory Planner using Ruckig Lib
Awesome can't wait to test it
The following user(s) said Thank You: Grotius
Please Log in or Create an account to join the conversation.
- Grotius
- Offline
- Platinum Member
-
Less
More
- Posts: 2419
- Thank you received: 2349
2 years 4 months ago #303009
by Grotius
Replied by Grotius on topic Trajectory Planner using Ruckig Lib
Hi,
The G9 is working. It is now running in the TPMOD from Rob Ellenberg.
It's showing a line, as i told the python part in lcnc to draw a line if it see's a G9.
Now the framework for a general motion is working!
Coding this, was not easy. But afterwards you can search for : GENERAL_MOTION and almost everything that
i coded into the source will appear.
To finalize it, i will also include I, J, K letters to pass into the G9. Extra variable letters already included are P,Q,R,L
The G9 is working. It is now running in the TPMOD from Rob Ellenberg.
It's showing a line, as i told the python part in lcnc to draw a line if it see's a G9.
Now the framework for a general motion is working!
Coding this, was not easy. But afterwards you can search for : GENERAL_MOTION and almost everything that
i coded into the source will appear.
To finalize it, i will also include I, J, K letters to pass into the G9. Extra variable letters already included are P,Q,R,L
The following user(s) said Thank You: tommylight, tivoi, Unlogic
Please Log in or Create an account to join the conversation.
Time to create page: 1.854 seconds