Advanced Search

Search Results (Searched for: )

  • andypugh
  • andypugh's Avatar
22 Jun 2025 18:36

Issue with Inverse Kinematics Failing During Homing – 3-Axis Robot with LinuxCNC

Category: HAL

Note that all that I know about kinematics is that it confuses me...

Forward kinematics takes the joint positions and calculates the end effector position. This will always work and will always return exactly one solution.

Inverse kins takes the required end effector position and calculates the joint positions to achieve that. Sometimes there is no solution (because the arm simply can't reach that point). Sometimes there are multiple solutions (in fact there _generaly_ are.
So, the kins has to choose a solution. And sometimes it can lock itself in a corner, where there are solutions for the current position, and for the next position, but it would have to pass through a "wrong" position to get there.
This isn't just robots. I am sure you have been in this position with your own arms.... The difference is that you have a brain and are not blindly following what is basically a relatively simple mathematical equation which has no predictive capability.

So, back to your questiion: Homing happens in joint space, using forward kinematics. So presumably you only see the error after homing is completed, and the system switches to "world mode" and inverse kins.
Maybe your home position (in XYZABC rather than joint angles) simply isn't reachable? (or, doesn't _actually_ correspond to the joints-homed position?)
  • Aciera
  • Aciera's Avatar
22 Jun 2025 18:34 - 22 Jun 2025 18:38

Axis view options are not persistant between sessions. Any thoughts?

Category: AXIS

I see.
Looking at line 2968 makes me think that 'hide pyvcp' was simply not intended to be persistent by the original author:
github.com/LinuxCNC/linuxcnc/commit/6948...6d967654a7R250-R2968
  • wm56
  • wm56
22 Jun 2025 17:56 - 22 Jun 2025 17:58

Probe Basic Not Remembering Current Pocket Number

Category: QtPyVCP

Cześć.
Jak udało Ci się wyświetlić paski obciążenia servo w Probe Basic? Czy zrezygnowałeś z nich? Ja również używam tej karty od Dmitry'ego i jestem ciekaw, jak to rozwiązałeś.
  • lex200
  • lex200
22 Jun 2025 17:50

Issue with Inverse Kinematics Failing During Homing – 3-Axis Robot with LinuxCNC

Category: HAL

Hi,I am currently developing control software for a 3-axis robotic arm using LinuxCNC together with a Mesa 7i96S motion controller. Everything has worked well so far, until I ran into issues related to the Denavit-Hartenberg (DH) parameters defined in the HAL file.As a base, I used the Puma560 example, which worked correctly with the default DH parameters. However, after replacing them with my own DH values, I started encountering problems. Specifically, I’m unsure how to properly handle fixed theta values within LinuxCNC’s DH parameter structure, since there seems to be no direct way to set them.I have created a precise mechanical model of the robot and derived the necessary DH parameters accordingly. Despite this, I consistently receive an "Inverse Kinematics Failed" error whenever I attempt to run the "Home All" sequence for the joints.I’ve attached both the DH parameter values and a visual representation of the robot. The actual robot has 5 axes, but for the purposes of this project, I am controlling only 3 of them using stepper motors to keep the setup simple. I would be very grateful for any advice or guidance on how to resolve this issue.Best regards,
Lex 
  • endian
  • endian's Avatar
22 Jun 2025 17:48

Problems switching PDO assignments (EP5101-0011)

Category: EtherCAT

in the lower left corner you has the 2 check boxes ... check both and do the restart solution and activate solution ... 

everything should be written in the local memory ... but maybe you will probably need the initCmds file 

do not forget to activate DC .. because it is not active from default .. just SM synchro

if you are lazy, just use the console   to generate right configuration ... double click on the .exe ... then "c -i" enter .. then drag and drop your full master config export... 
  • cakeslob
  • cakeslob
22 Jun 2025 17:20

Axis view options are not persistant between sessions. Any thoughts?

Category: AXIS

hes talking about some of the options in view menu are persistent across reboots and save settings with .axis_preference , but some options , like " Hide PYVCP" are not persistent, and pyvcp needs to be hidden every boot.

The inches/mm one should be something in ini file thought. there are default configs that load with inches, and some mm.
  • kubes
  • kubes
22 Jun 2025 16:32
Replied by kubes on topic Probing alert on missing parameters

Probing alert on missing parameters

Category: QtPyVCP

Yes as stated they are being saved to the .var file.

How do I know what release of Probe Basic I am running, the about does not have any release versions listed. I installed via the repositories. I did upgrade via apt....

python3-qtpyvcp/develop,now 5.0.2-19.dev amd64 [installed]
python3-probe-basic/develop,now 0.6.0-118.dev amd64 [installed]

The github pages shows 0.4.0, so not sure if I have the correct release.
  • Hakan
  • Hakan
22 Jun 2025 16:26

Problems switching PDO assignments (EP5101-0011)

Category: EtherCAT

I don't know anything about this device, but it doesn't hurt do a "ethercat rescan" after you made changes to the device.
  • meister
  • meister
22 Jun 2025 16:15

LinuxCNC-RIO - RealtimeIO for LinuxCNC based on FPGA (ICE40 / ECP5)

Category: Computers and Hardware

in general, FPGAs and microcontrollers also have undefined outputs at startup, so there should be a pullup or donw resistor on each one (all are floating by default).

in the case of the shift register, i'm not sure right now :(
they are always set to output and i thought that they are always set to 0 at first.

you can use as many of the same plugins next to each other as you want and as much space as you have :)

for modbus (frame IO), it should always be on the master FPGA,
I'm not sure if it works properly on a slave.
For encoders with index I have to check again, because there is an inout pin.

the uart plugin for connecting several FPGAs doesn't have much to do with modbus, it can simply use RS485, so that's not a problem either.
  • workshop54
  • workshop54
22 Jun 2025 16:13 - 22 Jun 2025 16:14

7i77 +-10V outputs: unexpected voltage with analogena, no output with analogout

Category: Driver Boards

Ah, yes. ping (3,4) indeed do show the correct voltage. But now I'm completely confused where the ground from the drive and the cable shielding should be connected. 

If I understand the manual correctly:

  1. The twisted pair wiring shield should be connected to the 7i77 GNDN (pin 3), which is now used for the +-10V signal
  2. The drives common or GND signal should be connected to the 7I77 power GND with a separate wire. Where is the power GND on the 7i77? 

    Perhaps I'm miisreading something but that's what I got out of it.

     

     
  • PedPEx
  • PedPEx
22 Jun 2025 16:09

Problems switching PDO assignments (EP5101-0011)

Category: EtherCAT

Hello all :D

i'm trying to implement a Beckhoff EP5101-0011 incremental encoder input into LinuxCNC with its 32bit counter. I need to read glass scale inputs with around 520 mm in length and a resolution of 1 µm. For that i need atleast 19 bit, and its standard PDO assignment with the "compact" 16bit encoder-value doesn't cut it. 

I can easily change the PDO assignment in the EtherCAT-Configurator application and the EP5101 activates the 32bit counter, after reconnecting the LinuxCNC machine it is also able to use the bigger counter, but after power cycling the device, it defaults back to the 16bit counter. So i tried to set the correct PDO assignments via SDO uploads, but that did also not work, it doesn't want to change in the "big counter mode" via LinuxCNC. 

It also complained about the other SDO uploads (settings), but that's a problem for later.
What exactly do i have to change, to initialize the encoder input to its 32bit PDO setting?

Thank you in advance for your help :)
<!-- EP5101 - Incr. Encoder Input -->
        <slave idx="9" type="generic" vid="0x00000002" pid="0x13ed4052" name="0571_EP5101">
            <!-- configure counter for 32bit -->
                <sdoConfig idx="1C12" subIdx="1"><sdoDataRaw data ="00 16"/></sdoConfig>  <!-- switch to 32bit RxPDO assign-->
                <sdoConfig idx="1C13" subIdx="1"><sdoDataRaw data ="00 1A"/></sdoConfig>  <!-- switch to 32bit TxPDO assign-->
            <!-- overall configuration -->
                <!-- Enable C reset -->
                <sdoConfig idx="8000" subIdx="01"><sdoDataRaw data ="01"/></sdoConfig>
                <!-- Enable extern reset -->
                <sdoConfig idx="8000" subIdx="02"><sdoDataRaw data ="01"/></sdoConfig>
                <!-- Enable up/down counter -->
                <sdoConfig idx="8000" subIdx="03"><sdoDataRaw data ="01"/></sdoConfig>
                <!-- Gate polarity -->
                <sdoConfig idx="8000" subIdx="04"><sdoDataRaw data ="01 00 00 00"/></sdoConfig>
                <!-- Disable filter -->
                <sdoConfig idx="8000" subIdx="08"><sdoDataRaw data ="01"/></sdoConfig>
                <!-- Enable micro increments -->
                <sdoConfig idx="8000" subIdx="0A"><sdoDataRaw data ="00"/></sdoConfig>
                <!-- Open cicruit detection A -->
                <sdoConfig idx="8000" subIdx="0B"><sdoDataRaw data ="01"/></sdoConfig>
                <!-- Open cicruit detection B -->
                <sdoConfig idx="8000" subIdx="0C"><sdoDataRaw data ="01"/></sdoConfig>
                <!-- Open cicruit detection C -->
                <sdoConfig idx="8000" subIdx="0D"><sdoDataRaw data ="00"/></sdoConfig>
                <!-- Reversion of rotation -->
                <sdoConfig idx="8000" subIdx="0E"><sdoDataRaw data ="00"/></sdoConfig>
                <!-- Extern reset polarity -->
                <sdoConfig idx="8000" subIdx="10"><sdoDataRaw data ="01 00 00 00"/></sdoConfig>
                <!-- Frequency window -->
                <sdoConfig idx="8000" subIdx="11"><sdoDataRaw data ="10 27"/></sdoConfig>
                <!-- Frequency scaling -->
                <sdoConfig idx="8000" subIdx="13"><sdoDataRaw data ="64 00 00 00"/></sdoConfig>
                <!-- Period scaling -->
                <sdoConfig idx="8000" subIdx="14"><sdoDataRaw data ="64 00 00 00"/></sdoConfig>
                <!-- Frequency resolution -->
                <sdoConfig idx="8000" subIdx="15"><sdoDataRaw data ="64 00 00 00"/></sdoConfig>
                <!-- Period resolution -->
                <sdoConfig idx="8000" subIdx="16"><sdoDataRaw data ="64 00 00 00"/></sdoConfig>
                <!-- Frequency wait time -->
                <sdoConfig idx="8000" subIdx="17"><sdoDataRaw data ="40 06"/></sdoConfig>
            <!-- configure SyncManagers -->
            <syncManager idx="0" dir="in"/>
            <syncManager idx="1" dir="out"/>
            <syncManager idx="2" dir="out">
                <!-- ENC RxPDO-Map Control -->
                <pdo idx="1601">
                    <!-- Enable latch C -->
                    <pdoEntry idx="7000" subIdx="01" bitLen="1" halPin="enable-latch-C" halType="bit"/>
                    <!-- Enable latch extern on positive edge -->
                    <pdoEntry idx="7000" subIdx="02" bitLen="1" halPin="ena-latch-ext-on-pos_edge" halType="bit"/>
                    <!-- Set counter -->
                    <pdoEntry idx="7000" subIdx="03" bitLen="1" halPin="set-counter" halType="bit"/>
                    <!-- Enable latch extern on negative edge -->
                    <pdoEntry idx="7000" subIdx="04" bitLen="1" halPin="ena-latch-ext-on-neg_edge" halType="bit"/>
                    <!-- Set counter value -->
                    <pdoEntry idx="7000" subIdx="11" bitLen="32" halPin="set-counter_value" halType="u32"/>
                </pdo>
            </syncManager>
            <syncManager idx="3" dir="in">
                <!-- ENC TxPDO-Map Status -->
                <pdo idx="1a01">
                    <!-- Latch C valid -->
                    <pdoEntry idx="6000" subIdx="01" bitLen="1" halPin="latch-c-valid" halType="bit"/>
                    <!-- Latch extern valid -->
                    <pdoEntry idx="6000" subIdx="02" bitLen="1" halPin="latch-extern-valid" halType="bit"/>
                    <!-- Set counter done -->
                    <pdoEntry idx="6000" subIdx="03" bitLen="1" halPin="set-counter-done" halType="bit"/>
                    <!-- Counter underflow -->
                    <pdoEntry idx="6000" subIdx="04" bitLen="1" halPin="counter-underflow" halType="bit"/>
                    <!-- Counter overflow -->
                    <pdoEntry idx="6000" subIdx="05" bitLen="1" halPin="counter-overflow" halType="bit"/>
                    <!-- Status of input status -->
                    <pdoEntry idx="6000" subIdx="06" bitLen="1" halPin="status-of-input-status" halType="bit"/>
                    <!-- Open circuit -->
                    <pdoEntry idx="6000" subIdx="07" bitLen="1" halPin="open-circuit" halType="bit"/>
                    <!-- Extrapolation stall -->
                    <pdoEntry idx="6000" subIdx="08" bitLen="1" halPin="extrapolation-stall" halType="bit"/>
                    <!-- Status of input A -->
                    <pdoEntry idx="6000" subIdx="09" bitLen="1" halPin="status-A" halType="bit"/>
                    <!-- Status of input B -->
                    <pdoEntry idx="6000" subIdx="0a" bitLen="1" halPin="status-B" halType="bit"/>
                    <!-- Status of input C -->
                    <pdoEntry idx="6000" subIdx="0b" bitLen="1" halPin="status-C" halType="bit"/>
                    <!-- Status of input gate -->
                    <pdoEntry idx="6000" subIdx="0c" bitLen="1" halPin="status-gate" halType="bit"/>
                    <!-- Status of extern latch -->
                    <pdoEntry idx="6000" subIdx="0d" bitLen="1" halPin="status-ext_latch" halType="bit"/>
                    <!-- Sync error -->
                    <pdoEntry idx="1c32" subIdx="20" bitLen="1" halPin="sync-error" halType="bit"/>
                    <!-- TxPDO State -->
                    <pdoEntry idx="1800" subIdx="07" bitLen="1" halPin="TxPDO-state" halType="bit"/>
                    <!-- TxPDO Toggle -->
                    <pdoEntry idx="1800" subIdx="09" bitLen="1" halPin="TxPDO-toggle" halType="bit"/>
                    <!-- Counter value -->
                    <pdoEntry idx="6000" subIdx="11" bitLen="32" halPin="counter_value" halType="u32"/>
                    <!-- Latch value -->
                    <pdoEntry idx="6000" subIdx="12" bitLen="32" halPin="latch_value" halType="u32"/>
                </pdo>
            </syncManager>
        </slave>
  • Johnnysacalu
  • Johnnysacalu
22 Jun 2025 16:01 - 22 Jun 2025 16:41
Replied by Johnnysacalu on topic Como conectar mesa 7i96s

Como conectar mesa 7i96s

Category: Driver Boards

  Creo hacer visto en algún hilo que se necesita también un diodo fly back para un rele ssr pero no veo claro como hay que conectarlo no se si esta es la forma corecta.
  • PedPEx
  • PedPEx
22 Jun 2025 15:52
Replied by PedPEx on topic JMC Servo in PP mode

JMC Servo in PP mode

Category: EtherCAT

Servus Uwe,

at the moment i'm dedicated to learning for my exams next month, unfortunately i don't have the time right now, to revisit that topic. Eventually i will test that in august.

Personaly i would guess, the encoder has a resolution of 0.1 degree, so the pos-scale variable is just the maximum value, the encoder can reach.

For the second question, i'm not using the standard CiA402 XML-mapping, but i use the exact same syntax for all variables. I'm not entirely sure, why i went with that solution back in the day (i suspect, because i wanted to map the inputs/outputs of the drive too, which is not possible with the basic_402 defintion) and i do also not know, whether the basic_402 part of the XML file worked. As i said, eventually i will revisit that topic in late july or august.

Best Regards
Patrick
  • clayton2ndtry
  • clayton2ndtry
22 Jun 2025 15:22
Replied by clayton2ndtry on topic crashing at startup

crashing at startup

Category: General LinuxCNC Questions

It just gets weirder. When I tried to attach the malefactor, it claimed it was 2.1GB. When I do an ls -l, it is 24168 bytes.
  • clayton2ndtry
  • clayton2ndtry
22 Jun 2025 15:17
Replied by clayton2ndtry on topic crashing at startup

crashing at startup

Category: General LinuxCNC Questions

More curiously, this is not really at startup. It is only when I open a file in Auto.

Manual and MDI commands work fine. Weirder and weirder. It seems specific to one file. It is 2.1 GB. This is probably an error in the program that generates so this failure may only be a curiosity.
Displaying 1066 - 1080 out of 25181 results.
Time to create page: 0.310 seconds
Powered by Kunena Forum