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

Add tab-completion to move_joint script #37

Open
adolfo-rt opened this issue Mar 28, 2014 · 4 comments
Open

Add tab-completion to move_joint script #37

adolfo-rt opened this issue Mar 28, 2014 · 4 comments
Assignees
Milestone

Comments

@adolfo-rt
Copy link
Contributor

Figuring out the name of a joint is cumbersome, and for users not familiar with a robot it can be hard to remember strings like arm_left_4_joint. Further, move_joint can't move every robot joint, but only those with an active joint trajectory controller.

Since play_motion knows about the available controllers (hence the joints they control) it should be possible to expose a ROS service for querying the joints it can currently act upon.

Tab completion could be built on top of this service.

@adolfo-rt adolfo-rt added this to the 0.5 milestone Mar 28, 2014
@adolfo-rt adolfo-rt self-assigned this Mar 28, 2014
@po1
Copy link
Contributor

po1 commented Mar 28, 2014

Tab completion on top of services is slow, and can completely block the terminal if the node is not responding. Though I understand the need for this feature, I am not too fond about building it on top of a service...

@adolfo-rt
Copy link
Contributor Author

An alternative would be to have the controller updater write the available joints to a ros parameter or file. List updates should be infrequent and fast .We'd no longer risk blocking indefinitely, as happens with services. Other lightweight alternatives to consider?.

@po1
Copy link
Contributor

po1 commented Mar 31, 2014

Writing to a ros parameter seems the least bad of the list, but I still don't like it too much.
From a very primitive benchmark, I have the following results:

call time [s]
rosservice call 0.9
rosparam get 0.09

Since there is no broad usage of shared files in ROS, I don't feel too good about writing that to a file either. It seems less portable and more prone to problems (file permissions, R/O system...)

@adolfo-rt
Copy link
Contributor Author

I'll see when I can schedule a time slot for this one then, and draft a rosparam-based implementation.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants