Observer Implementation Real
C++ Implementation Plan
Dev environment [Kevin]
-
[Kevin] Set up C++ deps: rosclient, and pinocchio. We use libfranka/PREEMPT_RTon converging PC -
[Kevin] Add CasADi in C++ -
[Jeong] set up nix either on another OS on your laptop or look at WSL -
Have a look at symbolic variables in casadi, first section here
Observer program
-
Observer program sketch (functions, signatures, etc) -
ROS interface -
Move symbolic function creation to the constructor to speed up the loop -
Debugging: -
Add publisher for the observer estimate -
Get joint torques with pinv to compare
-
-
[optional] Load in parameters for gains from rosparam or a yaml file
Test data collection on real robot
-
Test bag with free space motion to check that observer converges. Get help from Dingyuan, try to keep resulting bag(s) smaller than 30mb so it's ok in git -
Position-controlled with sinusuoidal motion -
Check that franka_state/tau_J_dis non-zero when the impedance controller is running -
Impedance-controlled with external force application. start_franka_impshould start the impedance controller interface -
Impedance control with external force, hold in a static pose so there's minimal friction compensation on the franka estimates. -
Benchmark SOSML, standard momentum observer, and numerical differentiation for joint acceleration. Tune gains on SOSML to see if can get less noise w/ minor delay compared to numerical differentiation
-
-
Connect F/T sensor - discussion with Philip Hotz -
Set up validation experiments, collect data - Add rod instead of hand at end-effector, so that end-effector has a point contact
- Motion generation
- Sinusoidal motion for each axis : x, y, z, \psi_x, \psi_y, \psi_z
- Circular motion (or 3D motion) in xy-, yz-, zx- plane
- Contact scenario :
- vertical down to impact in z direction
- circular motion in xy- plane during contact
- (+optional) : rotate in \psi_x, \psi_y, \psi_z directions
- Cartesian Impedance Control → refer
libfranka - Only implement TFDOB first, without SOSML
Simulation as needed to get acceleration estimates
- Sim if needed, especially for true acceleration estimates
Edited by Jeong Woo Hong