Skip to content

Simply velocity CLI arg#10

Merged
kou merged 2 commits into
enactic:mainfrom
lescidium:velocity-edit
May 28, 2026
Merged

Simply velocity CLI arg#10
kou merged 2 commits into
enactic:mainfrom
lescidium:velocity-edit

Conversation

@lescidium
Copy link
Copy Markdown
Contributor

This PR makes using the velocity limits easier for the end user. Simply turn on with a flag.

If more detailed control is desired the user can modify the limits in config.py

It is necessary to have variable limits depending on the joint. The current values are determined from brief trial and error tuning in SIM.

These have also been tested on real hardware and shown to be effective at reducing dangerous IK solutions.

Comment on lines -324 to -328
parser.add_argument(
"--tick-hz",
type=float,
default=500.0,
help="Dora tick rate in Hz; used only for --vel-scale unit conversion",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Users may want to customize tick HZ because users can change dora-rs dataflow. They may use different value than tick: dora/timer/millis/2.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a really good point!

But as I thought about it. the Tick Hz should only have to be set once. So when the user chooses something like tick: dora/timer/millis/2 then the kinematics node automatically receives that value.

I will look into a way to make this work.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Update: I considered two options.

  1. Set a YAML anchor at the top of any dataflow that uses the IK node and pass the literal string for the desired tick value into both dora-openarm-quitter and dora-openarm-ik nodes.
  2. Modify the dora-openarm-ik node to measure the time between tick intervals and take a rough average and pass that into the openarm_control library

Option 1 is brittle and prone to break. Option 2 involves changing another repo.
So I will just add this parameter back in for now.
If there are future discussions about this tick value being unnecessary we can consider option 2. I think its a good one. But only worth it if someone complains.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One more option: We can detect it automatically!

dora-openarm-dataset-recorder does it: https://github.com/enactic/dora-openarm-dataset-recorder/blob/e4290fb33ff8f2a47883183cf2d5486d8dad2495/src/dora_openarm_dataset_recorder/main.py#L193-L225

dora-openarm-ik node can do similar thing and pass the detected tick HZ to openarm_control.

@lescidium
Copy link
Copy Markdown
Contributor Author

I made a new commit! Let me know what you think @kou

Copy link
Copy Markdown
Contributor

@kou kou left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1

@kou kou merged commit 586c87b into enactic:main May 28, 2026
4 checks passed
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.

2 participants