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

Publish JointState for wheel joints #25

Closed
lopsided98 opened this issue Jun 22, 2016 · 6 comments · Fixed by #26
Closed

Publish JointState for wheel joints #25

lopsided98 opened this issue Jun 22, 2016 · 6 comments · Fixed by #26

Comments

@lopsided98
Copy link
Contributor

Unless, I'm misunderstanding something, it seems that the driver should publish JointState messages for the wheels. Without these messages, robot_state_publisher cannot generate transforms for the wheels.

@lopsided98
Copy link
Contributor Author

lopsided98 commented Jun 23, 2016

I forked this repo and added basic support for publishing the joint state. I didn't create a PR because I don't consider it to be complete yet, because it does not actually publish the position or velocity of the wheels, but at least it keeps the wheels from floating at the origin in rviz.

I need to figure out how to derive the wheel position and velocity from the data the Create provides. This seems like it should be easy on the Create 2, because it provides the raw encoder data, but the Create 1 (which I am using) does not so there is more math involved.

@lucbettaieb
Copy link

What does the create 1 provide? You can always check out http://wiki.ros.org/irobot_create_2_1 or http://wiki.ros.org/create_node or http://wiki.ros.org/create_driver

@lopsided98
Copy link
Contributor Author

The Create 1 provides distance and heading deltas, which can be used to get a pretty good estimate of how far each wheel moved. I'm working on exposing this data through libcreate.

I used to use create_node to control my Create, and it publishes joint state messages, but their position and velocity is always zero (just like my fork).

@lopsided98
Copy link
Contributor Author

lopsided98 commented Jun 23, 2016

libcreate actually calculates the how far each wheel moves, but there appears to be some problems with how it does this on the Create 1 (for one, the left and right distances are always the same, see: https://github.com/AutonomyLab/libcreate/blob/master/src/create.cpp#L107).

@lopsided98
Copy link
Contributor Author

My latest changes publish distance and velocity in the JointState messages, but this requires changes to libcreate.

@jacobperron
Copy link
Member

@lopsided98 Thanks for opening this issue and the PR. I'll review and merge next week :)

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 a pull request may close this issue.

3 participants