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

Not compatible with CombinedRobotHW #409

Open
ivan140 opened this issue Sep 29, 2020 · 4 comments
Open

Not compatible with CombinedRobotHW #409

ivan140 opened this issue Sep 29, 2020 · 4 comments

Comments

@ivan140
Copy link

ivan140 commented Sep 29, 2020

Hi,

When trying to follow this CombinedRobotHW tutorial I discovered, that ros_canopen is not capable of supporting the necessary class loader plugin. Are there any plans on adding this capability?

The files in question are:

  • ros_canopen/canopen_motor_node/include/canopen_motor_node/robot_layer.h

  • ros_canopen/canopen_motor_node/include/canopen_motor_node/robot_layer.cpp

The big advantage of this would be the possibility to add custom CAN devices or even Serial controlled devices to a robot running on the CANopen stack.

@mathias-luedtke
Copy link
Member

Are there any plans on adding this capability?

No, this it not planned. For now canopen_motor_node manages the ros_control and not the other way around.

@bxc237
Copy link

bxc237 commented Jul 5, 2021

Hi @ivan140, I am encountering this issue as well, did you find a way to solve it?

@ivan140
Copy link
Author

ivan140 commented Jul 6, 2021

@bxc237 I luckily have just a passive rotating joint. To solve the upper mentioned issue I added a simple publisher, which publishes the encoder values to the /joint_states topic. This way I now have two different publishers:
CANopen ros_control:
[wheel_left, wheel_right]

Custom encoder node:
[body_joint]

It seems the robot_state_publisher is handling this setup just fine, so for me it was a good workaround.

@mathias-luedtke
Copy link
Member

@ivan140: If you want to improve your setup even further, add a joint_state_publisher in between. This will reduce the load of robot_state_publisher and all other nodes, which consume /joint_states or /tf. This is especially useful for MoveIt, which runs collisions checks on each update.

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

3 participants