diff --git a/docs/index.md b/docs/index.md index 2d22561..2643966 100644 --- a/docs/index.md +++ b/docs/index.md @@ -23,6 +23,9 @@ _If you use this work, please cite it using the [bibtex](#citing) below._ Check the [controllers (CRISP controllers) :simple-github:](https://github.com/utiasDSL/crisp_controllers), the simple [python interface (crisp_py) :simple-github:](https://github.com/utiasDSL/crisp_py), and a [Gymnasium wrapper (crisp_gym) :simple-github:](https://github.com/utiasDSL/crisp_gym) for real-world experiments. +!!! info "Presentation slides" + View the [CRISP presentation slides](slides/index.html) — *Compliant ROS2 Controllers for Learning-Based Manipulation Policies* (IEEE RA-P 2026). Best on a laptop; on a phone, turn it sideways. + !!! info "Aloha gripper for Manipulators" Check out [aloha4franka](https://tum-lsy.github.io/aloha4franka/) for the gripper used in the videos. diff --git a/docs/media/crisp_fr3_test.mp4 b/docs/media/crisp_fr3_test.mp4 index f48aeef..92b8440 100644 Binary files a/docs/media/crisp_fr3_test.mp4 and b/docs/media/crisp_fr3_test.mp4 differ diff --git a/docs/media/dynaarm_video.mp4 b/docs/media/dynaarm_video.mp4 index 2ef653b..22aefaf 100644 Binary files a/docs/media/dynaarm_video.mp4 and b/docs/media/dynaarm_video.mp4 differ diff --git a/docs/media/pap_demo.mp4 b/docs/media/pap_demo.mp4 index 8921a00..eaf4740 100644 Binary files a/docs/media/pap_demo.mp4 and b/docs/media/pap_demo.mp4 differ diff --git a/docs/media/policy.mp4 b/docs/media/policy.mp4 index a316205..8c856a5 100644 Binary files a/docs/media/policy.mp4 and b/docs/media/policy.mp4 differ diff --git a/docs/media/teleoperation.mp4 b/docs/media/teleoperation.mp4 index 747332c..a79869e 100644 Binary files a/docs/media/teleoperation.mp4 and b/docs/media/teleoperation.mp4 differ diff --git a/docs/media/ur5_test.mp4 b/docs/media/ur5_test.mp4 index 02eed2d..85f584f 100644 Binary files a/docs/media/ur5_test.mp4 and b/docs/media/ur5_test.mp4 differ diff --git a/docs/media/videos_concatenaded.mp4 b/docs/media/videos_concatenaded.mp4 index 7a638ad..15c4a2b 100644 Binary files a/docs/media/videos_concatenaded.mp4 and b/docs/media/videos_concatenaded.mp4 differ diff --git a/docs/media/viser_visualization.mp4 b/docs/media/viser_visualization.mp4 index 3e8d4d4..36638b9 100644 Binary files a/docs/media/viser_visualization.mp4 and b/docs/media/viser_visualization.mp4 differ diff --git a/docs/media/wrist_cam.mp4 b/docs/media/wrist_cam.mp4 index e0ddd53..bad6af2 100644 Binary files a/docs/media/wrist_cam.mp4 and b/docs/media/wrist_cam.mp4 differ diff --git a/docs/slides/assets/crisp-getting-started-qr.png b/docs/slides/assets/crisp-getting-started-qr.png new file mode 100644 index 0000000..4456019 Binary files /dev/null and b/docs/slides/assets/crisp-getting-started-qr.png differ diff --git a/docs/slides/assets/crisp-qr.png b/docs/slides/assets/crisp-qr.png new file mode 100644 index 0000000..4b4e41f Binary files /dev/null and b/docs/slides/assets/crisp-qr.png differ diff --git a/docs/slides/assets/crisp-qr.svg b/docs/slides/assets/crisp-qr.svg new file mode 100644 index 0000000..16f0c65 --- /dev/null +++ b/docs/slides/assets/crisp-qr.svg @@ -0,0 +1,456 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/slides/assets/crisp_logo.drawio.png b/docs/slides/assets/crisp_logo.drawio.png new file mode 100644 index 0000000..646e224 Binary files /dev/null and b/docs/slides/assets/crisp_logo.drawio.png differ diff --git a/docs/slides/assets/fr3_panda_preview.mp4 b/docs/slides/assets/fr3_panda_preview.mp4 new file mode 100644 index 0000000..01cceb8 Binary files /dev/null and b/docs/slides/assets/fr3_panda_preview.mp4 differ diff --git a/docs/slides/assets/github-avatars/AlexD15216.jpg b/docs/slides/assets/github-avatars/AlexD15216.jpg new file mode 100644 index 0000000..10caa2e Binary files /dev/null and b/docs/slides/assets/github-avatars/AlexD15216.jpg differ diff --git a/docs/slides/assets/github-avatars/JohannesSautier.jpg b/docs/slides/assets/github-avatars/JohannesSautier.jpg new file mode 100644 index 0000000..2ff380a Binary files /dev/null and b/docs/slides/assets/github-avatars/JohannesSautier.jpg differ diff --git a/docs/slides/assets/github-avatars/Linus-Schwarz.jpg b/docs/slides/assets/github-avatars/Linus-Schwarz.jpg new file mode 100644 index 0000000..73d898d Binary files /dev/null and b/docs/slides/assets/github-avatars/Linus-Schwarz.jpg differ diff --git a/docs/slides/assets/github-avatars/Nabil-Miri.jpg b/docs/slides/assets/github-avatars/Nabil-Miri.jpg new file mode 100644 index 0000000..98cba86 Binary files /dev/null and b/docs/slides/assets/github-avatars/Nabil-Miri.jpg differ diff --git a/docs/slides/assets/github-avatars/OliEfr.jpg b/docs/slides/assets/github-avatars/OliEfr.jpg new file mode 100644 index 0000000..f66984d Binary files /dev/null and b/docs/slides/assets/github-avatars/OliEfr.jpg differ diff --git a/docs/slides/assets/github-avatars/bmagyar.jpg b/docs/slides/assets/github-avatars/bmagyar.jpg new file mode 100644 index 0000000..a02ba86 Binary files /dev/null and b/docs/slides/assets/github-avatars/bmagyar.jpg differ diff --git a/docs/slides/assets/github-avatars/danielsanjosepro.jpg b/docs/slides/assets/github-avatars/danielsanjosepro.jpg new file mode 100644 index 0000000..a0f4057 Binary files /dev/null and b/docs/slides/assets/github-avatars/danielsanjosepro.jpg differ diff --git a/docs/slides/assets/github-avatars/dmalexa5.jpg b/docs/slides/assets/github-avatars/dmalexa5.jpg new file mode 100644 index 0000000..62fcb7d Binary files /dev/null and b/docs/slides/assets/github-avatars/dmalexa5.jpg differ diff --git a/docs/slides/assets/github-avatars/domrachev03.jpg b/docs/slides/assets/github-avatars/domrachev03.jpg new file mode 100644 index 0000000..6bcc72d Binary files /dev/null and b/docs/slides/assets/github-avatars/domrachev03.jpg differ diff --git a/docs/slides/assets/github-avatars/lukahofer.jpg b/docs/slides/assets/github-avatars/lukahofer.jpg new file mode 100644 index 0000000..06134b0 Binary files /dev/null and b/docs/slides/assets/github-avatars/lukahofer.jpg differ diff --git a/docs/slides/assets/github-avatars/lvjonok.jpg b/docs/slides/assets/github-avatars/lvjonok.jpg new file mode 100644 index 0000000..9da109e Binary files /dev/null and b/docs/slides/assets/github-avatars/lvjonok.jpg differ diff --git a/docs/slides/assets/github-avatars/maxdoesch.jpg b/docs/slides/assets/github-avatars/maxdoesch.jpg new file mode 100644 index 0000000..4c713dd Binary files /dev/null and b/docs/slides/assets/github-avatars/maxdoesch.jpg differ diff --git a/docs/slides/assets/github-avatars/niklasschlueter.jpg b/docs/slides/assets/github-avatars/niklasschlueter.jpg new file mode 100644 index 0000000..b5e1c1f Binary files /dev/null and b/docs/slides/assets/github-avatars/niklasschlueter.jpg differ diff --git a/docs/slides/assets/github-avatars/ralfroemer99.jpg b/docs/slides/assets/github-avatars/ralfroemer99.jpg new file mode 100644 index 0000000..26a4787 Binary files /dev/null and b/docs/slides/assets/github-avatars/ralfroemer99.jpg differ diff --git a/docs/slides/assets/github-avatars/veit1337.jpg b/docs/slides/assets/github-avatars/veit1337.jpg new file mode 100644 index 0000000..de7c963 Binary files /dev/null and b/docs/slides/assets/github-avatars/veit1337.jpg differ diff --git a/docs/slides/assets/github-avatars/vidullan.jpg b/docs/slides/assets/github-avatars/vidullan.jpg new file mode 100644 index 0000000..0def209 Binary files /dev/null and b/docs/slides/assets/github-avatars/vidullan.jpg differ diff --git a/docs/slides/assets/logo-moveit.png b/docs/slides/assets/logo-moveit.png new file mode 100644 index 0000000..999abb8 Binary files /dev/null and b/docs/slides/assets/logo-moveit.png differ diff --git a/docs/slides/assets/logo-nav2.png b/docs/slides/assets/logo-nav2.png new file mode 100644 index 0000000..098e6ea Binary files /dev/null and b/docs/slides/assets/logo-nav2.png differ diff --git a/docs/slides/assets/logo-ros2-control.png b/docs/slides/assets/logo-ros2-control.png new file mode 100644 index 0000000..7398e75 Binary files /dev/null and b/docs/slides/assets/logo-ros2-control.png differ diff --git a/docs/slides/assets/lsy_tum_logos.drawio.png b/docs/slides/assets/lsy_tum_logos.drawio.png new file mode 100644 index 0000000..ed1f66f Binary files /dev/null and b/docs/slides/assets/lsy_tum_logos.drawio.png differ diff --git a/docs/slides/assets/open_drawer.mp4 b/docs/slides/assets/open_drawer.mp4 new file mode 100644 index 0000000..01cceb8 Binary files /dev/null and b/docs/slides/assets/open_drawer.mp4 differ diff --git a/docs/slides/assets/robot_trace.mp4 b/docs/slides/assets/robot_trace.mp4 new file mode 100644 index 0000000..7c8a37c Binary files /dev/null and b/docs/slides/assets/robot_trace.mp4 differ diff --git a/docs/slides/assets/videos_concatenaded_eval.mp4 b/docs/slides/assets/videos_concatenaded_eval.mp4 new file mode 100644 index 0000000..1c4b612 Binary files /dev/null and b/docs/slides/assets/videos_concatenaded_eval.mp4 differ diff --git a/docs/slides/index.html b/docs/slides/index.html new file mode 100644 index 0000000..b0acb11 --- /dev/null +++ b/docs/slides/index.html @@ -0,0 +1,5149 @@ + + + + + +CRISP · Robot Learning Munich + + + + + + + +
+
+ +
+
+
+ CRISP Controllers logo +
+ +
+
+ TUM Learning Systems & Robotics Lab logo +
+
+
+

Compliant ROS2 Controllers for Learning-Based Manipulation Policies

+

Daniel San José Pro

+

with Oliver, Ivan Domrachev, Nabil Miri, niklasschlueter, David Alexander, Vidullan, Veit Gemmer, Maximilian Dösch, Johannes Sautier, Ralf Römer, Linus Schwarz, Lev Kozlov, Luka Hofer, AlexD & Bence Magyar

+
★222IEEE RAP 2026
+
+ QR code linking to the CRISP Controllers project page + learnsyslab.github.io/crisp_controllers +
+
+ +
+
+ +
+ +
+
CRISP Controllers
+
+
+
Intro and overview
+

CRISP provides the low-level controller layer for learning-based manipulation.

+
+
+

1 Real-time controllers

Compliant, robot-agnostic, torque-based ros2_control controllers running in real time on any manipulator with a joint-level effort interface.

+

2 One Python box

crisp_py and crisp_gym send target poses, joints, and wrenches, deploy Gymnasium and LeRobot policies, and collect synced episodes in LeRobotDataset format.

+
+
+
+
+ +
+ +
+
CRISP Controllers
+
+
Motivation · part 1
+

Stay smooth and compliant on sparse, low-frequency commands.

+
+
+
+ +
Franka Legocompliant pressing and stacking
+
+
    +
  • Low-frequency input: sparse targets, poses, joints, or short action chunks.
  • +
  • High-frequency control: the controller closes the fast torque loop and keeps contact compliant.
  • +
  • No planning required: send simple commands and the controller fills in the rest.
  • +
+
+
+
+ +
+
+
CRISP Controllers
+ +
+
Motivation · part 2
+

The missing block: a controller that just tracks a stream of poses, compliantly.

+
+
+
+
+
The robot software stack
+
+ + +
+
+
+
+ +
+
engineered modules
+
+ +
+

Sense

+
+ image_transport + robot_localization +
+
+ +
+

Plan

+
+ Nav2 + MoveIt +
+
+ +
+

Act

+
+ ros2_control + MoveIt +
+
+ +
+
+ +
+
less code, more weights
+
+ +
+

Policy

+
absorbs perception + planningsparse pose targets · ~10 Hz
+
+ +
+

Controller

+
compliant · real-timethe CRISP block
+
+ +
+
+ +
+
+
+
+
+
+ +
+ +
+
CRISP Controllers
+
+
Joint control 101 · a starter
+

Drive a joint to a target angle with torque control

+
    +
  • A stiffness gain Kp pulls the joint toward its goal angle.
  • +
  • A damping gain Kd settles the motion without overshoot.
  • +
  • Turn gravity on and the joint sags below its target: nothing in this law holds it up.
  • +
  • Task-space control next is the same idea, lifted into Cartesian space.
  • +
+
+ ττ
torque commanded to a single joint
+ = + KpKp
joint stiffness gain: how hard the joint is pulled toward its target angle
+ (qdesq_des
desired joint angle
+ − qq
measured joint angle
) + − KdKd
joint damping gain: resists joint velocity so the motion settles smoothly, without overshoot
+
joint velocity
+
+
+ QR code linking to the CRISP getting-started controller guide + more information ↗
learnsyslab.github.io/crisp_controllers · getting started
+
+
+
+
+ + +
+ +
Kp closes the angle · Kd settles it
+
+
+ +
+ +
+ +
+
CRISP Controllers
+
+
Inverse dynamics 101
+

Turn end-effector forces in joint torques

+
    +
  • Ask for a Cartesian force F.
  • +
  • Jᵀ maps that force into joint torques.
  • +
+
+ τcmdτcmd
joint torques sent to the robot
+ = + JTJ
geometric Jacobian from joint motion to end-effector motion. Cartesian impedance uses it directly; operational-space control also folds in the task-space inertia Λ
+ FF
desired end-effector force, chosen in the direction of the task-space error
+
+
+
+ +
+
Jᵀ / task-space force mapping: Khatib, “A unified approach for motion and force control of robot manipulators: the operational space formulation,” IEEE J. Robotics & Automation, 1987.
+
+ +
+ +
+ +
+
CRISP Controllers
+
+
CIC / OSC in one view
+

Turn cartesian space targets in proper joint torques

+
+
+
Cartesian controller
+
+ τtasktask torque
torque term that solves the Cartesian tracking task
+ = + JTJ
geometric Jacobian. Cartesian impedance (CIC) uses it directly; operational-space control (OSC) folds in the task-space inertia matrix Λ. J can carry either.
(KpKp
stiffness gain in task space
ee
pose error = X_target ⊖ X_current, the SE(3) difference between the desired and measured end-effector pose (translation and rotation handled separately)
+ KdKd
damping gain in task space
ėė
rate of the pose error. In practice this is the −end-effector velocity, which equals −J·q̇
)
+ e + = + XtargetXcurrent + ė + = + J +
e is the pose error: where the tip is versus where it should be.
+
+
+
+
+

Low stiffness

Less reactive, more compliant. Gentle, forgiving contact.

+

High stiffness

More reactive tracking, but larger forces and sharper accelerations against contact.

+
+
+
+
+ + +
+ +
drag the target into the surface · toggle low / high stiffness
+
+
Impedance & stiffness: Hogan, “Impedance control,” ACC 1984.  ·  CIC vs OSC: Nakanishi et al., “Operational space control: a theoretical and empirical comparison,” IJRR 2008.
+
+ +
+ +
+
+
CRISP Controllers
+
+
Same task, different posture
+

Keep the same end-effector goal, but ask for a better elbow configuration.

+
+
Add one more torque term to stabilize the joints positions
+ τcmdτcmd
final torque command
+ = + τtaskτtask
task-space tracking torque
+ + + N(q)N(q)
nullspace projector that preserves the main end-effector task
+ KnsKns
nullspace posture gain
+ ( + qtargetq_target
preferred joint posture the arm is biased toward
+ − + qq
current joint state
+ ) +
+
+
+
+ + +
+ +
drag the target · purple ghost = target joint posture q_target
+
+
Null-space projections: Dietrich, Ott & Albu-Schäffer, “An overview of null space projections for redundant, torque-controlled robots,” IJRR 2015.
+
+
+ +
+ +
+
CRISP Controllers
+
+
Full controller synthesis
+

The deployed controller is a sum of torque terms, all fully parametrizable

+

Task tracking stays central. Around it we layer posture, model-based compensation, and interaction terms. A safety function then clamps the whole sum before it reaches the robot.

+ +
+ τcmdτcmd
final torque command sent to the robot
+ = + fsafetyf_safety
not another added term but a function over the whole sum. Clamps the total torque to the configured torque and rate limits before it reaches the robot
+ + + + + τtaskτtask
main Cartesian task-space tracking term
+ + + τnullτnull
the nullspace posture term from the previous slide, reused here unchanged
+ + + τjointτjoint
joint regularization, barriers, and limit handling
+
+ + + + τmodelτmodel
gravity, Coriolis, and friction compensation from the robot model
+ + + τwrenchτwrench
interaction or force-feedback term for teleoperation/contact
+
+
+ +
+
+
+
+ +
drag the target · layered terms keep tracking usable on real hardware
+
+
+ +
+ +
+ +
+
CRISP Controllers
+
+
Teleoperation with force feedback
+

The operator feels the contact the robot makes.

+
+
+
Feedback torque on the leader
+ + τfbτfb
torque applied to the leader so the operator feels the follower's contact
+ = + −kp,fbk_p,fb
force-feedback gain: how strongly follower contact is reflected to the leader
+ JTJᵀ
leader Jacobian, mapping the reflected Cartesian force into leader joint torques
+ FfollowerF_follower
contact force-torque measured at the follower's end-effector
+ −kd,fbk_d,fb
damping on the leader that keeps the coupled leader-follower loop stable
+ leaderq̇_leader
leader joint velocity
+
+
+
+
+

Leader → follower

Pose streams over target_pose at ~30 Hz; the follower's CI controller does the tracking.

+

Follower → leader

The measured contact wrench is reflected as force feedback. Contact is felt, not guessed.

+
+
+
+ +
drag the leader arm (left) · the follower (right) tracks it and reflects contact force
+
+
Bilateral teleoperation: one of CRISP's three evaluation tasks: Lego block-stacking teleop with force feedback to the operator.
+
+ +
+ +
+ + + +
+
CRISP Controllers
+ +
+
Controller integration
+

The compliant controller plugs straight into the robot.

+
+ + +
+ + + +
target_pose
+
target_joint
+
target_wrench
+
current_pose
+
current_joint
+ + +
+

Policy

learned actions

+
+
+

Human

teleop, demos

+
+
+

crisp_py

crisp_gym

one interface: control + data

+
+
+

Recorder

logs from the same boundary

+
+ +
+

Controller

task-space torque

+
+
+

Broadcaster

publishes state + streams

+
+
+

Robot

hardware loop,
contact & sensing

+
+ +
commands
+
feedback
+
ros2_control plug
+ + +
+ + +
+
+
+
+ +
+ + + +
+
CRISP Controllers
+ +
+
One interface
+

crisp_py and crisp_gym are the shared interface for people, policies, and recording.

+
+ + +
+ + +
target_pose
+
target_joint
+
target_wrench
+
current_pose
+
current_joint
+ +
+

Policy

learned actions

+
+
+

Human

teleop, demos

+
+
+

crisp_py

crisp_gym

one interface: control + data

+
+
+

Recorder

logs from the same boundary

+
+ +
+

Controller

task-space torque

+
+
+

Broadcaster

publishes state + streams

+
+
+

Robot

hardware loop,
contact & sensing

+
+ +
commands
+
feedback
+
ros2_control plug
+ + +
+ + +
+
+
+ +
+ +
+ +
+
CRISP Controllers
+ +
+
+
Same interface, two recording philosophies
+

Collect synced episodes, or log everything and align it later.

+
+ +
+ + +
+ + +
+ + +
target_pose
+
target_joint
+
target_wrench
+ +
+

Policy

learned actions

+
+
+

Human

teleop, demos

+
+
+

crisp_py

crisp_gym

one interface: control + data

+
+
+

LeRobotDataset

synced, training-ready

+

Timestamped data

e.g. MCAP, aligned later

+
+ +
+

Controller

task-space torque

+
+
+

Broadcaster

publishes state + streams

+
+
+

Robot

hardware loop,
contact & sensing

+
+ +
commands
+
feedback
+
ros2_control plug
+
+ +
+
+

Pros

+
    +
  • No post-processing just to align sensors, actions, and targets.
  • +
  • Collection already matches training and deployment semantics.
  • +
+
    +
  • Record any stream, tool, or debug signal you want.
  • +
  • Fits classic robotics logging with few constraints up front.
  • +
+
+
+

Cons

+
    +
  • Less flexible than logging every stream in its own format.
  • +
  • You commit to the dataset structure earlier.
  • +
+
    +
  • Alignment and shaping move to a later post-processing step.
  • +
  • Collection and training semantics drift apart more easily.
  • +
+
+
+
+
+
+ +
+ +
+
CRISP Controllers
+
+
+
What shipping changed
+

Open source in practice

+
+

Contributors

+

Across crisp_controllers, crisp_py, and crisp_gym.

+
+
Daniel San José ProDaniel San José Pro@danielsanjosepro
+
OliverOliver@OliEfr
+
Ivan DomrachevIvan Domrachev@domrachev03
+
Nabil MiriNabil Miri@Nabil-Miri
+
niklasschlueterniklasschlueter@niklasschlueter
+
David AlexanderDavid Alexander@dmalexa5
+
VidullanVidullan@vidullan
+
Veit GemmerVeit Gemmer@veit1337
+
Maximilian DöschMaximilian Dösch@maxdoesch
+
Johannes SautierJohannes Sautier@JohannesSautier
+
Ralf RömerRalf Römer@ralfroemer99
+
Linus SchwarzLinus Schwarz@Linus-Schwarz
+
Lev KozlovLev Kozlov@lvjonok
+
Luka HoferLuka Hofer@lukahofer
+
AlexDAlexD@AlexD15216
+
Bence MagyarBence Magyar@bmagyar
+
+
+
+
+

A lot happened after open-sourcing: new robots, PRs, Papers…

+
+
+
FR3 robotPanda robot
FR3 / Panda
+
UR robotUR
+
DynaArm robotDynaArm
+
+
+
+

Influential merged PRs

+
+
#46Variable Stiffness ControllerIvan Domrachev
+
#47Admittance ControllerIvan Domrachev
+
#57Decoupled admittance MSD integrationNabil Miri
+
#60Parameterize controller and broadcaster topicsDavid Alexander
+
+
+
+

Related work using CRISP

+
    +
  • Failure prediction at runtime for generative robot policies
  • +
  • CLARE: Continual Learning for Vision-Language-Action Models via Autonomous Adapter Routing and Expansion
  • +
  • SQ-CBF: Signed Distance Functions for Numerically Stable Superquadric-Based Safety Filtering
  • +
  • From Demonstrations to Safe Deployment: Path-Consistent Safety Filtering for Diffusion Policies
  • +
  • Enabling Dynamic Tracking in Vision-Language-Action Models via Time-Discrete and Time-Continuous Velocity Feedforward
  • +
+
+
+
+
+
+
+ +
+ +
+ +
+
CRISP Controllers
+

General Learnings

+
+
    +
  • Real-hardware evaluation is the bottleneckResets, supervision, timing bugs, and environment drift decide whether a success rate means anything.
  • +
  • Data collection is the controller problem tooCleaner demos and repeatable setup moved the Lego task from roughly 20% to 80% success.
  • +
+
+
+
+
+ +
+ +
+
CRISP Controllers
+
+
+
End of the tour
+

Thank you.
Questions?

+

Give it a try! Fork it, test it and share your deployments.

+
+ QR code for CRISP Controllers website +
Scan for docs, install notes, and the repository.
+
+ +
+
+
+ +
+
+ +
+
+
+
+
+
+
+ +
1 / 15
+← Docs + + + + diff --git a/zensical.toml b/zensical.toml index ca2e04b..d2c3263 100644 --- a/zensical.toml +++ b/zensical.toml @@ -3,6 +3,7 @@ site_name = "CRISP Controllers - Learning Systems and Robotics Lab" nav = [ {"Home" = "index.md"}, + {"Slides Robot Learning Munich" = "slides/index.html"}, {"Design Philosophy"= "design_philosophy.md"}, {"Getting Started" = [ {"Getting Started Overview" = "getting_started.md"},