Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make the KSS-RSI driver real-time safe #61

Open
altex111 opened this issue Feb 24, 2023 · 3 comments · Fixed by #29
Open

Make the KSS-RSI driver real-time safe #61

altex111 opened this issue Feb 24, 2023 · 3 comments · Fixed by #29
Assignees
Labels
enhancement Usability improvement or optimization KSS-RSI Related only to the KSS RSI driver

Comments

@altex111
Copy link
Contributor

No description provided.

@altex111 altex111 added the enhancement Usability improvement or optimization label Feb 24, 2023
@altex111 altex111 self-assigned this Feb 24, 2023
@altex111 altex111 linked a pull request Feb 24, 2023 that will close this issue
@altex111 altex111 changed the title KSS RSI driver pimp up with robot manager node KSS RSI driver pimp up with ros control Feb 24, 2023
@altex111 altex111 added the KSS-RSI Related only to the KSS RSI driver label Feb 24, 2023
@Svastits
Copy link
Member

Heap allocations in control loop should also be removed!
RSICommand heap-allocates in consctructor, and it is instantiated in every cycle (write)

@altex111
Copy link
Contributor Author

altex111 commented Jun 22, 2023

Tasks:

  • Heap allocation in udp server
  • Heap allocation in control loop and RSI Command
  • Redesign RSI Command and RSI State so it makes direct connection between buffer and hw param
  • working stop action when ROS side stopped
  • working stop action when robot side stopped

Low prio tasks (possibly in different branch):

  • Modify ros_rsi.src and remove PTP movements
  • IP set via config file
  • add cartesian control
  • controller handler and control mode change integration

@altex111 altex111 linked a pull request Aug 17, 2023 that will close this issue
@altex111
Copy link
Contributor Author

altex111 commented Sep 26, 2023

Evaluating PUGI XML

After creating my own xml parser i implemented the pugi xml parser too. The parser is capable of working on C style character strings which is compatible with the udp library i use. The user is also able to redefine the allocation functions. I redefined them with the memory resources library so the memory is allocated at the start of the algorithm.

Results

As the following diagrams shows there is a significant difference between the two xml parser both in encodeing and decodeing.

Decode

image

Encode

image

Conclusion and Tasks

The driver for encodeing and decoding messages to and from the RSI should use the PUGI XML parser. However further tests should be created to prove the real-time nature. The PUGI can be configured multiple ways. It should be checked whether the parser can be more stable. While decodeing there are a few spikes where the decode takes longer It should be investigated further whether thees comes from useing the memory resource or the algorithm need more time. Further task is to integrate the pugi xml into the driver. Also there is an open pull request which updates the pugi with its own pmr style memory resource.

@Svastits Svastits changed the title KSS RSI driver pimp up with ros control Make the KSS-RSI driver real-time safe Nov 10, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement Usability improvement or optimization KSS-RSI Related only to the KSS RSI driver
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants