Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 4 additions & 6 deletions src/roboticstoolbox/robot/BaseRobot.py
Original file line number Diff line number Diff line change
Expand Up @@ -1017,14 +1017,12 @@ def qlim(self) -> NDArray:

for link in self.links:
if link.isrevolute:
if (
link.qlim is None
or link.qlim[0] is None
or np.any(np.isnan(link.qlim))
):
# a symbolic model holds SymPy numbers, which np.isnan rejects
qlim = None if link.qlim is None else np.asarray(link.qlim, dtype=float)
if qlim is None or np.any(np.isnan(qlim)):
v = [-np.pi, np.pi]
else:
v = link.qlim
v = qlim
elif link.isprismatic:
if link.qlim is None:
raise ValueError("Undefined prismatic joint limit")
Expand Down
25 changes: 25 additions & 0 deletions tests/test_symbolic_qlim.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
"""The joint limits and the display of a robot with symbolic parameters."""

import numpy as np
import numpy.testing as nt

import roboticstoolbox as rtb


def test_symbolic_robot_qlim():
robot = rtb.models.DH.Puma560(symbolic=True)
numeric = rtb.models.DH.Puma560()

nt.assert_allclose(robot.qlim, numeric.qlim)


def test_symbolic_robot_can_be_printed():
robot = rtb.models.DH.Puma560(symbolic=True)

assert "DHRobot" in str(robot)

Check warning on line 19 in tests/test_symbolic_qlim.py

View check run for this annotation

Codacy Production / Codacy Static Code Analysis

tests/test_symbolic_qlim.py#L19

Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.


def test_unset_revolute_limits_are_the_default():
robot = rtb.DHRobot([rtb.RevoluteDH(a=1.0)], name="one")

nt.assert_allclose(robot.qlim, [[-np.pi], [np.pi]])
Loading