We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
` import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D
def plot_pose(ax, pose, label, color): """ Plots a 3D pose on the given axis.
Parameters: ax (mpl_toolkits.mplot3d.Axes3D): The axis to plot on. pose (np.ndarray): The 4x4 transformation matrix representing the pose. label (str): The label for the pose. color (str): The color for the pose. """ origin = pose[:3, 3] x_axis = pose[:3, 0] y_axis = pose[:3, 1] z_axis = pose[:3, 2] ax.quiver(*origin, *x_axis, color=color, length=1, normalize=True, label=f'{label} x-axis') ax.quiver(*origin, *y_axis, color=color, length=1, normalize=True, linestyle='dashed', label=f'{label} y-axis') ax.quiver(*origin, *z_axis, color=color, length=1, normalize=True, linestyle='dotted', label=f'{label} z-axis') ax.text(*origin, label, color=color, fontsize=12)
def create_transformation_matrix(tx, ty, tz, roll, pitch, yaw): """ Creates a 4x4 transformation matrix for a 3D pose.
Parameters: tx (float): Translation in x. ty (float): Translation in y. tz (float): Translation in z. roll (float): Rotation around x-axis in radians. pitch (float): Rotation around y-axis in radians. yaw (float): Rotation around z-axis in radians. Returns: np.ndarray: The 4x4 transformation matrix. """ # Rotation matrices around x, y, and z axes Rx = np.array([ [1, 0, 0], [0, np.cos(roll), -np.sin(roll)], [0, np.sin(roll), np.cos(roll)] ]) Ry = np.array([ [np.cos(pitch), 0, np.sin(pitch)], [0, 1, 0], [-np.sin(pitch), 0, np.cos(pitch)] ]) Rz = np.array([ [np.cos(yaw), -np.sin(yaw), 0], [np.sin(yaw), np.cos(yaw), 0], [0, 0, 1] ]) # Combined rotation matrix R = Rz @ Ry @ Rx # Transformation matrix transformation_matrix = np.eye(4) transformation_matrix[:3, :3] = R transformation_matrix[:3, 3] = [tx, ty, tz] return transformation_matrix
fig = plt.figure() ax = fig.add_subplot(111, projection='3d') ax.set_xlim([-10, 10]) ax.set_ylim([-10, 10]) ax.set_zlim([-10, 10]) ax.set_xlabel('X') ax.set_ylabel('Y') ax.set_zlabel('Z') ax.grid(True)
original_pose = np.eye(4)
tx, ty, tz = 5, 3, 2 # Translate by (5, 3, 2) roll, pitch, yaw = np.pi / 6, np.pi / 4, np.pi / 3 # Rotate by 30, 45, and 60 degrees respectively transformed_pose = create_transformation_matrix(tx, ty, tz, roll, pitch, yaw)
plot_pose(ax, original_pose, 'Original', 'blue')
plot_pose(ax, transformed_pose, 'Transformed', 'red')
ax.legend()
plt.show()
`
The text was updated successfully, but these errors were encountered:
No branches or pull requests
`
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
def plot_pose(ax, pose, label, color):
"""
Plots a 3D pose on the given axis.
def create_transformation_matrix(tx, ty, tz, roll, pitch, yaw):
"""
Creates a 4x4 transformation matrix for a 3D pose.
Create the figure and axis
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.set_xlim([-10, 10])
ax.set_ylim([-10, 10])
ax.set_zlim([-10, 10])
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')
ax.grid(True)
Define the original pose (identity matrix)
original_pose = np.eye(4)
Define a transformed pose (translation + rotation)
tx, ty, tz = 5, 3, 2 # Translate by (5, 3, 2)
roll, pitch, yaw = np.pi / 6, np.pi / 4, np.pi / 3 # Rotate by 30, 45, and 60 degrees respectively
transformed_pose = create_transformation_matrix(tx, ty, tz, roll, pitch, yaw)
Plot the original pose
plot_pose(ax, original_pose, 'Original', 'blue')
Plot the transformed pose
plot_pose(ax, transformed_pose, 'Transformed', 'red')
Add legend
ax.legend()
Show the plot
plt.show()
`
The text was updated successfully, but these errors were encountered: