Skip to content

Conversation

urfeex
Copy link

@urfeex urfeex commented Feb 18, 2025

This should bring UniversalRobots#229 to a mergable state

urfeex and others added 30 commits January 23, 2025 07:48
…s#242)

With the trajectory point interface there is a method of executing
motions with only the urcl present as shown in
https://github.com/UniversalRobots/Universal_Robots_Client_Library/blob/master/examples/trajectory_point_interface.cpp

However, usage is a bit cumbersome, we might want to support a one-liner
for executing ptp motions, instead.

This PR adds the `InstructionExecutor`, a high-level module that uses
existing functionality to provide simple-to-use interfaces, currently to
execute MoveJ, MoveL and sequences of the two. In future, we might
extend that to other instructions such as other motion types, but
possibly also other functionality, hence the more general name.
…ts#249)

I don't know why we changed it to throwing an exception. It doesn't make
sense for this function.
…rajectory examples (UniversalRobots#251)

The examples were mainly using either time parametrization or implicit
acc/vel parametrization using the default values.

This adds more explicit acc/vel parametrized motions to the examples
with some explaining comments.

---------

Co-authored-by: Rune Søe-Knudsen <[email protected]>
We want to move more common setup instructions to the client library.
It's documentation is pulled into
https://github.com/UniversalRobots/Universal_Robots_ROS_Documentation
anyway, so it will be available in the ROS documentation, anyway.

Co-authored-by: Rune Søe-Knudsen <[email protected]>
…obots#254)

With the differences it could happen that the extrapolation was leading
to vibrations if commands come in at a lower rate.

With the pure diffs small numerical differences could lead to positive
interference with the extrapolation mechanism. This should be avoided by
using the joint speeds instead.

That should avoid the issues seen in
UniversalRobots/Universal_Robots_ROS2_Driver#1258

---------

Co-authored-by: Rune Søe-Knudsen <[email protected]>
…ution (UniversalRobots#255)

Make it explicit that there is no magic going on here, but the motion
functions simply forward information to respective URScript functions
using the same parametrization and implications as the script functions.

---------

Co-authored-by: Rune Søe-Knudsen <[email protected]>
…#246)

Our current clang-format structure does not allow indenting preprocessor directives. As there might be more of them coming up, I'd like to add an auto-format rule for those.
* test_instruction_executor
* test_spline_interpolation
* test_ur_driver
* Move ur_driver example docs to examples subfolder
* Update example documentation for ur_driver example
* Add dashboard_client example documentation
* Add documentation for force_mode example
* Add documentation for freedrive mode example
* Add instruction_executor example doc
* Add example documentation for primary_pipeline
* Add example documentation for primary_pipeline_calibration
* Add example documentation for RTDE client
* Add documentation for script sender example
* Add example documentation for tool contact
* Add example documentation for spline example
* Add example documentation for trajectory_point_interface
* Make sure the real_time doc string is picked up by the URL check
* Do not check already checked links in url_check
  This should greatly speed up things
They were setup to run on "main" while we have "master"
Currently, we run separate coverage jobs for the different software
versions. We run unit and integration tests for

- The lowest supported CB3 version with a UR5 (Currently 3.14.3)
- The lowest suppoted PolyScope 5 version with a UR5e (Currently 5.9.4)
- The latest PolyScope 5 version with a UR20

All of these gather coverage data, but take different branches in the
code due to version-dependent execution. As we generate and upload
coverage data for all of them, coverage data varies slightly. This
approach uses individual flags for each matrix entry. I am not 100% sure
whether this does what we want, but I want to give it a try.
…bots#257)

Otherwise we produce an error when destructing an initialized, but
non-started client.
This adds very basic support for a primary interface client. With this, it is possible to get a list of all recorded error codes sent from the robot.

The client is intended to be further extended in the future.

---------

Co-authored-by: Felix Exner <[email protected]>
For now I've only added the standalone builds and tests.

This should give us more insight on flaky tests. Also, this runs the URL
check so we find broken links earlier.
…Robots#265)

This way the examples are a lot shorter and initialization is the same
everywhere, making things easier to maintain.
We forward the deprecated setKeepalive method through the UrDriver which
triggers a depracation warning. We disable it (for GCC) for this call.
urfeex and others added 7 commits February 18, 2025 08:59
When loading a program from an absolute path or a subdirectory instead
of a file being directly in /programs (or /ursim/programs in the case of
URSim) the check "programState" will only return the filename without
the path while we compare it against the path that was requested to
load.
    
This commit only compares the actual program's filename, as the full path
is already checked during the load operation.
It would be beneficial to allow reconfiguring the
connection attempts and timeout of the UrDriver / RTDEClient.

---------

Co-authored-by: Dominic Reber <[email protected]>
@vdm-dev vdm-dev merged commit 262a912 into RoboDK:feature/RDK-4115/windows-port Feb 18, 2025
8 of 15 checks passed
@urfeex urfeex deleted the win-build branch February 18, 2025 13:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants