Migration to 2.8.0

Upgraded to latest version of MoveIt Servo

Starting with version 2.8.0, the Teleoperate Behavior was divided into two separate behaviors named TeleoperateJointJog and TeleoperateTwist depending on the corresponding type of command.

Similarly, the Teleoperate Objective has been updated to separate Teleoperate Joint Jog and Teleoperate Twist Objectives that use the respective Behaviors above.

If you are upgrading your robot configuration package(s) from a previous version, ensure you make these changes before running MoveIt Studio. You can directly use the teleoperate_joint_jog.xml and teleoperate_twist.xml files in the UR example repo.

IsForceWithinThreshold refactored to be reusable in a loop

In previous MoveIt Studio versions, the IsForceWithinThreshold Behavior was written as a Condition node that returned SUCCESS or RUNNING at every tick.

Starting with version 2.8.0, this Behavior is now an Action node that can also return RUNNING and only returns a terminal state if the force exceeds the provided thresholds.

As such, updating your robot configuration package(s) from a previous version requires changing your Objectives. For example, to execute a task that is aborted early due to exceeding a force threshold, the changes are as follows:

<!-- Previous implementation -->
<ForceSuccess>
    <ReactiveSequence>
        <Condition ID="IsForceWithinThreshold" parameters="{parameters}" />
        <Action ID="SomeOtherTask" />
    </ReactiveSequence>
</ForceSuccess>

<!-- New implementation -->
<Control ID="Parallel" success_count="1" failure_count="1">
    <Decorator ID="Inverter">
        <Action ID="IsForceWithinThreshold" parameters="{parameters}"/>
    </Decorator>
    <Action ID="SomeOtherTask"/>
</Control>