Skip to content

Avoiding the: cartesian_reflex #5

@wyqsnddd

Description

@wyqsnddd

Dear all, @ndehio @gergondet @kheddar

I have encountered two issues that lead to different [franka::ControlException]:

  1. Abrupt motion: generates: cartesian_reflex
  2. sudden force jump generates: [tau_J_range_violation]

To enable more dynamic motion, I am wondering that if we can fix issue 1? I found that it affects the admittance contact, either with rigid-surface contact (1.1) or rigid-surface contact (1.2).

issue 2 is not fixable, I listed it here for documentation purposes. It might hinder the post-impact state observation. In the figures below, when the 5th joint torque limit [12 Nm] was hit, it throws [tau_J_range_violation] and the log stopped. Hence we may not observe the state jump or the oscillations correctly.
impact-force-torque-two

impact-joint-vel-two

1. Abrupt motion

I got the Franka::ControlException error. From the plot below, we can see that the error was triggered at around 20N.

I applied the SinglePandaTestAdmittanceController with different modified transitions.

  - [InitialPosture, OK, MoveDownStart1]
  - [MoveDownStart1, OK, MoveDownContinue1]
  - [MoveDownContinue1, OK, Apply10ForceAdmittance]
  - [Apply10ForceAdmittance, OK, Apply20ForceAdmittance]
  - [Apply20ForceAdmittance, OK, InitialPosture]

1.1 Hard contact case:

Set the contact with 0.02 m/s, and then apply the admittance task. While the contact sustains, I switched the reference from 10 N to 20N. I am not sure either it is the force or the velocity that triggered the exception. The data is here

[warning] [mc_franka] panda_default missed control data (previous: 33368, current: 33370, expected: 33369
[warning] [mc_franka] panda_default missed control data (previous: 33370, current: 33370, expected: 33371
[info] Completed taskAdmittance (timeout)
[success] Completed Apply10ForceAdmittance - output: OK
[success] Starting state Apply20ForceAdmittance
[info] Removed task taskAdmittance
[info] Added task taskAdmittance
[warning] [mc_franka] panda_default missed control data (previous: 33438, current: 33440, expected: 33439
[warning] [mc_franka] panda_default missed control data (previous: 33440, current: 33440, expected: 33441
terminate called after throwing an instance of 'franka::ControlException'
  what():  libfranka: Move command aborted: motion aborted by reflex! ["cartesian_reflex"]
control_command_success_rate: 0.99
Aborted (core dumped)

task-admittance-z-table

1.2 Soft contact case:

I enabled the admittance task and interacted via the "Foot" surface by hand. The data is here

arning] [mc_franka] panda_default missed control data (previous: 9128, current: 9131, expected: 9129
[warning] [mc_franka] panda_default missed control data (previous: 9131, current: 9131, expected: 9133
terminate called after throwing an instance of 'franka::ControlException'
  what():  libfranka: Move command aborted: motion aborted by reflex! ["cartesian_reflex"]
control_command_success_rate: 0.98
Aborted (core dumped)

task-admittance-z-hand

2 Joint torque jump:

Although it seems appealing, reset the joint torque limit via the setCollisionBehavior does not help. According to Niels @ndehio and the data sheet the maximum hard joint torque limits are:

  • 12 Nm for the last three
  • 87 Nm for the first four.

FE is not going to modify it. Hence, we can not generate impact motions more than that. The data is here

[info] Removed task body6d_panda_foot_panda_foot
[warning] [mc_franka] panda_foot missed control data (previous: 1152, current: 1152, expected: 1153
[warning] [mc_franka] panda_foot missed control data (previous: 1229, current: 1233, expected: 1230
[warning] [mc_franka] panda_foot missed control data (previous: 1233, current: 1233, expected: 1236
terminate called after throwing an instance of 'franka::ControlException'
  what():  libfranka: Move command aborted: motion aborted by reflex! ["tau_J_range_violation"]
control_command_success_rate: 0.97
Aborted (core dumped) 

Impact-task-torque

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions