-
Notifications
You must be signed in to change notification settings - Fork 68
SiCalibration
The Si arms on the patient side (PSM and ECM) use relative encoders and digital potentiometers. The digital potentiometers are absolute position sensors. They can be used to preload the encoders so these can report absolute positions. The dVRK implementation relies on the fact that there is a limited number of possible values for the digital potentiometers (4096) so we can create a lookup table to associate an absolute position in radians or meters to each potentiometer value (aka index). To find the values in the lookup table, we're using the fact that we know:
- The encoder resolution
- The expected range of motion for each joints
Therefore, by moving each joint from one limit to another we can find the measured range for a given joint and, recenter the measured range to the expected range.
The first step is to source your ROS workspace:
- ROS 1:
source ~/catkin_ws/devel/setup.bash
- ROS 2:
source ~/ros2_ws/install/setup.bash
The configuration files should have been created using something like:
cd <where_ever_you_want_your_files>
dvrk-config-generator.py -a ECM -g Si -H dRA1 -s 123456 # replace 123456 by your serial number and ECM by PSM1, PSM2 or PSM3 if needed
To calibrate the potentiometers, use:
sawIntuituiveResearchKitSPotentiometersCalibration -c sawRobotIO1394-ECM-123456.xml # use the xml file for your arm!
The program will try to power the arm and release the brakes. At that point, you need to move each and every joint from one limit to the other. To release the brakes, press the clutch button (white on top of arm).
As you move the arm around you should see the counters go up for each joint. Once you've moved all the joints from limit to limit, all the counters should be close to 3000. You can then hit any key to proceed. If everything went well, a new XML file will be created with the generated lookup table.
If the measured range of motion doesn't match the expected range, you will get an error message. You will have to repeat the procedure making sure you hit all the joint limits.
Community
Getting Started
- First Steps
- Software installation
- Controller Connectivity
- Configuration files
- Hardware Setup
- Calibration
- Classic/Standard
- Si
- Examples
Advanced
- Software Architecture
- Application Development
- APIs
- UI Customization
- Teleoperation
- Kinematics Simulation
- Potentiometer Issues
- Development Branches
- Release Checklist
- Projects
- Controllers/versions
- E-STOP Wiring
- Full da Vinci System
- Head Sensor
- Foot Pedals
- Video
- Instruments
Miscellaneous
- Frequently Asked Questions
- User manuals Classic and Si moved
- QLA Heat Sink
- Build w/o ROS Linux Mac
- cisst
- JHU
Deprecated