dynamixel_control_hw icon indicating copy to clipboard operation
dynamixel_control_hw copied to clipboard

[RFC] [WIP] Add feature to reboot using a service call

Open naoki-mizuno opened this issue 6 years ago • 1 comments

I've added a feature to reboot some of the servos using the a service. This is a WIP/RFC with some of the things I'm not sure about being:

  • Should the messages go into a different repository?
    • Normally people create a _msgs repository that only contains message and service files.
  • Are the messages reasonable? (in terms of names, members, and what they represent)
    • I feel like there's a better name/functionality than ServoID.msg.
  • Should the service be started in a private node handle?
    • Currently it's started as /reboot. Maybe putting it in /dynamixel_control_hw/reboot is better?
  • How should I check whether it's actually being rebooted?
    • When I call the service no errors are reported, but I will need to overload with torque
    • However, going over the torque limit is pretty difficult to do. Any suggestions?
  • Should the set_torque_enable be removed?
    • The reason why I put it in there is because after a reboot, the torque is switched off.
  • Is the sleep(0.1) appropriate
    • Probably not. But without it, I couldn't set the torque on after sending the packet

I'd be happy to know you guys' thoughts/suggestions!

naoki-mizuno avatar May 16 '18 17:05 naoki-mizuno

Thanks for this RFC and work!

  1. I have no idea about the messages going in a different repository. Why should it be?
  2. the message definitions seem fine to me for the naming scheme and shape but I would rather have joint names be used than actuators IDs; the final user does not need to know this low level information.
  3. it seems indeed better, to avoid ambiguity, to have /reboot in the private namespace
  4. It seems to me that the only way to tell that an actuator has rebooted is to check for a value in RAM that has been reset, typically torque enable.
    Maybe I can test with torque overload, but we can also try with voltage limits, by setting it around 24.5V and raising the input voltage a bit. This I can do for sure.
  5. Good question. I would think that yes, we should enable the torque again. How else would you suggest that we do ?
  6. Maybe we can ping the actuators until they respond and then enable their torque ?

dogoepp avatar May 24 '18 09:05 dogoepp