Coverage for src/robotics_numpy/__init__.py: 40%
40 statements
« prev ^ index » next coverage.py v7.9.2, created at 2025-07-14 16:02 +0200
« prev ^ index » next coverage.py v7.9.2, created at 2025-07-14 16:02 +0200
1"""
2Robotics NumPy - A lightweight robotics library built on NumPy
4A lightweight, high-performance robotics library focusing on:
5- Forward and inverse kinematics
6- Robot dynamics
7- Trajectory planning
8- 3D transformations
10Only requires NumPy as core dependency, with optional Plotly for visualization.
12Examples:
13 >>> import robotics_numpy as rn
14 >>> # Create a 6-DOF robot arm
15 >>> robot = rn.models.create_6dof_arm()
16 >>> # Forward kinematics
17 >>> T = robot.fkine([0, 0, 0, 0, 0, 0])
18 >>> # Inverse kinematics
19 >>> q = robot.ikine(T)
20"""
22__version__ = "0.1.0"
23__author__ = "Chaoyue"
24__email__ = "chaoyue@example.com"
26# Core imports
27from . import kinematics, models, transforms
29# Optional imports (fail gracefully if dependencies not available)
30try:
31 from . import visualization
32 _HAS_VISUALIZATION = True
33 # Ensure visualization is accessible even if not used here
34 _ = visualization
35except ImportError:
36 _HAS_VISUALIZATION = False
38# Version info
39__all__ = [
40 "transforms",
41 "kinematics",
42 "models",
43]
45if _HAS_VISUALIZATION:
46 __all__.append("visualization")
48# Convenience imports for common functionality
49from .transforms.homogeneous import (
50 SE3_from_matrix,
51 rotmat,
52 transl,
53)
54from .transforms.pose import SE3, SO3
55from .transforms.rotations import (
56 eul2r,
57 r2eul,
58 r2rpy,
59 rotx,
60 roty,
61 rotz,
62 rpy2r,
63)
65# Add convenience imports to __all__
66__all__.extend([
67 "SE3",
68 "SO3",
69 "rotz",
70 "roty",
71 "rotx",
72 "rpy2r",
73 "r2rpy",
74 "eul2r",
75 "r2eul",
76 "transl",
77 "rotmat",
78 "SE3_from_matrix",
79])
81def about() -> None:
82 """Print information about robotics-numpy."""
83 print(f"Robotics NumPy {__version__}")
84 print("A lightweight robotics library built on NumPy")
85 print(f"Author: {__author__}")
86 print()
87 print("Core modules:")
88 print(" ✅ transforms: 3D transformations, rotations, poses")
89 print(" ✅ kinematics: Forward kinematics, DH parameters")
90 print(" ✅ models: Robot models (Stanford Arm, etc.)")
91 print(" 🚧 dynamics: Robot dynamics and control (coming in v0.3.0)")
92 print(" 🚧 trajectory: Trajectory generation and planning (coming in v0.3.0)")
93 if _HAS_VISUALIZATION:
94 print(" 🚧 visualization: 3D plotting (coming in v0.2.0)")
95 else:
96 print(" 🚧 visualization: Not available (install with pip install robotics-numpy[visualization])")
97 print()
98 print("Quick start:")
99 print(" >>> import robotics_numpy as rn")
100 print(" >>> robot = rn.models.Stanford()")
101 print(" >>> T = robot.fkine([0, 0, 0, 0, 0, 0])")
102 print(" >>> print(T)")
103 print()
104 print("Available models:")
105 print(" >>> rn.models.list_models() # See all available robots")