Contents
Short Term Goals
- This stack is an 'application', and thus won't have any released code or ROS APIs. However, the main goal will be to provide an easy to use application for users to calibrate the PR2.
Longer Term / Future Goals
- Provide tools to analyze calibration bag files
- Streamline adding new sensors to the calibration process
- Add tools to check if the PR2 is still calibrated well
- Run target-less calibration by extracting features in the environment
- Continuously update the PR2's calibration during normal operation
Designing pr2_calibration v2.0
Operate directly on a URDF
It's really quite strange that we have an intermediate robot representation internal to the calibration toolkit. We should be able to operate directly on a URDF.
Manipulate Calibration Sample Configurations
Be able to perform operations like the following, both online and offline:
- I have a set of joint angles. For this robot pose, determine which sensors should be activated and generate a sample
- I have a set of samples for my robot, but I'm about to add a sensor. Can you determine in which samples I can activate this sensor?
- I want a sample with a specific set of sensors, generate the sample probabalistically, possibly with the help of a gradient descent method
- I need to move from sample A to sample B. Please generate a motion plan such that the arm will make this feasible
Cleaner Set of Free Parameters
Free parameters should correspond to things native to the URDF, such as joints.
r_shoulder_pan_joint: trans: [1 1 1] rot: [1 1 1] ref_pos: 1 r_shoulder_lift_joint: trans: [1 1 1] rot: [1 1 1] ref_pos: 0
Use vector rotations
The optimization is much better conditioned if we use incremental rotations, instead of explicitly estimating the rotation parameters (rpy, quaternion, etc).