Current section

Files

Jump to
bb lib bb error kinematics self_collision.ex
Raw

lib/bb/error/kinematics/self_collision.ex

# SPDX-FileCopyrightText: 2025 James Harton
#
# SPDX-License-Identifier: Apache-2.0
defmodule BB.Error.Kinematics.SelfCollision do
@moduledoc """
Motion would cause self-collision.
Raised when the planned motion trajectory would result in
collision between robot links.
"""
use BB.Error,
class: :kinematics,
fields: [:link_a, :link_b, :joint_positions]
defimpl BB.Error.Severity do
def severity(_), do: :error
end
def message(%{link_a: a, link_b: b, joint_positions: _}) do
"Self-collision detected: #{inspect(a)} would collide with #{inspect(b)}"
end
end