[LanguageSetup] [TitleIndex] [WordIndex

Single Hand Driver Bringup

First, ensure that the hand is manually backdriven (gently! slowly! act as if it's a real hand! be nice!) to the position shown in the homing procedure page. The finger links should be perfectly inline with the shiny aluminum caps at the base of each finger module. It usually takes a few gentle back-and-forth motions on each joint to do this. Due to the coupling of the joints, it is easiest to start with the abduction/adduction joint (the first and smallest one) on each finger, center that joint, then move to the next link, center it, and finally center the last link (distal-most, the one with the fingernail).

The hand firmware requires that its controlling computer has an IP address (or virtual address) of 10.66.171.20. This can be done any number of ways; on Debian/Ubuntu it is straightforward to add static addresses to the /etc/network/interfaces file.

If 24 VDC power is not yet applied to the hand, do it now. Note that power to the hand frame does not necessarily mean that the finger sockets are powered; that is a separate step that is accomplished during the startup of the ROS driver. The hand frame requires about 30 seconds to proceed through all the steps of its bootloaders. Once the hand is booted, you should be able to ping 10.66.171.22 for a left hand and 10.66.171.23 for a right hand. Expected ping times are around 100 to 120 microseconds if the controlling computer is directly connected to the hand. Adding switches, etc., will naturally increase that somewhat. If the hand does not respond to ping after it has fully powered up (which takes 20 to 45 seconds, depending on how rapidly (or if) the bootloader gets responses from the host), network troubleshooting is required before proceeding. In particular, the hand must be able to get ARP responses from a machine at 10.66.171.20, either through direct ethernet connection or through ethernet switch(es).

Once the hand frame can be pinged and the fingers are in their home positions, we are ready to power it up and start the ROS driver. First, ensure that a  roscore  is running and that the ROS_MASTER_URI environment variable is pointing to it. In this tutorial, only one hand will be used, and it will run in the global namespace. A future tutorial will describe operation of both hands (which by necessity will put each hand in its own namespace to avoid conflicting topic, service, and parameter names).

For a left hand:

rosrun sandia_hand_driver sandia_hand_node _ip:=10.66.171.22

Or, for a right hand:

rosrun sandia_hand_driver sandia_hand_node _ip:=10.66.171.23

A stream of messages will be printed to the console as each finger socket is powered up and tested. The finger socket first powers up to a low voltage ( 9V ) and communications is attempted with the finger. If that succeeds, the socket is powered to the full 24 VDC. If they all succeed, the motor controllers are enabled and data begins streaming to/from ROS. Leave the terminal running  sandia_hand_node  open and start a new terminal for the rest of the tutorial. Be sure to source  ~/sandia-hand-ws/devel/setup.bash  in all new terminals. It will make life more pleasant if you create a bash alias for this.

Whenever you need/want to power down the hand, press Ctrl-C in the terminal running  sandia_hand_node  (or the terminal of its launch script), or use  rosnode kill sandia_hand_driver . During a graceful shutdown of the ROS driver, the hand will power down all of its finger sockets.


2022-03-17 10:26