import numpy as np
from roboticstoolbox import DHRobot ,RevoluteMDH
from spatialmath import SE3
import matplotlib.pyplot as plt 

class Arm(DHRobot):
    def __init__(self):
        self.dhparam = [
            RevoluteMDH( a = 0, alpha = 0, d = 0.2405, offset = 0 ),
            RevoluteMDH( a = 0, alpha = np.deg2rad(90) , d = 0, offset = np.deg2rad(90) ),
            RevoluteMDH( a = 0.256, alpha = 0 , d = 0, offset = np.deg2rad(90) ),
            RevoluteMDH( a = 0, alpha = np.deg2rad( 90 ), d = 0.210, offset = 0 ),
            RevoluteMDH( a = 0, alpha = np.deg2rad( -90 ), d = 0, offset = 0 ),
            RevoluteMDH( a = 0, alpha = np.deg2rad( 90 ), d = 0.144, offset = 0 ),
        ]
        name = "RM65-B"
        super().__init__(self.dhparam, name = name)

def test0():
    arm = Arm()

    # 创建两个独立的 figure
    fig1 = plt.figure(1)  # 或者 plt.figure(figsize=(8,6))
    fig2 = plt.figure(2)

    # 正确传入 Figure 对象
    arm.plot(np.deg2rad([100, 46, 70, 20, 85, 65]), block=False, fig=fig1)
    arm.plot(np.deg2rad([-80, -46, -70, 20, -85, -115]), block=False, fig=fig2)

    # 可选:设置窗口标题
    fig1.canvas.manager.set_window_title("RM65-B Pose 1")
    fig2.canvas.manager.set_window_title("RM65-B Pose 2")

    plt.show(block = True)

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐