Watchdog on joint velocity

With Stretch Body 0.4.25 and firmware Stepper.v0.2.7p1 we have introduced a watchdog on the stepper velocity controllers. This was introduced primarily as a safety feature when doing velocity control on the base.

This watchdog requires that a new command is sent to the motor at least every 1 second. Otherwise, the controller will automatically switch to its SAFETY mode (equivalent to hitting the runstop).

For example, the script below sets a wheel in velocity control mode.

Without the watchdog: Ctrl-C out of this script and the base will continue to move.

With the watchdog: Ctrl-C out of this script and the base will stop after 1 second

#!/usr/bin/env python

import stretch_body.stepper
import time

motor = stretch_body.stepper.Stepper('/dev/hello-motor-right-wheel')


Default settings

By default the watchdog is turned on for the base wheels but not for the arm and lift. You can turn it off/on by overwriting the default settings in your stretch_user_params.yaml.

>>$ | grep watchdog
stretch_body.robot_params.nominal_params                               param.hello-motor-arm.gains.enable_vel_watchdog                        0                             
stretch_user_params.yaml                                               param.hello-motor-left-wheel.gains.enable_vel_watchdog                 1                             
stretch_body.robot_params.nominal_params                               param.hello-motor-lift.gains.enable_vel_watchdog                       0                             
stretch_user_params.yaml                                               param.hello-motor-right-wheel.gains.enable_vel_watchdog                1 

Upgrading / Installing
If you don’t have Stretch Body 0.4.25 and firmware Stepper.v0.2.7p1, then:

pip3 install -U hello-robot-stretch-body
and --install

1 Like