自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 资源 (2)
  • 收藏
  • 关注

原创 报错:ModuleNotFoundError: No module named ‘paddle.nn‘

A:paddle.nn是Paddle2.0版本特有的功能,请安装大于等于Paddle 2.0.0的版本,安装方式为。

2024-09-10 15:56:34 265

原创 franka panda 使用moveit 进行规划时经常出现规划路径错误的问题

的接口可能会随着版本的更新而变化,因此建议查阅最新的MoveIt文档以获取最准确的信息。请注意,这只是一个示例,实际应用中需要根据具体的机器人模型和任务需求来调整参数。): 指定优化目标,如最小化路径长度、时间或关节变化。): 规划的起始状态,通常是一组关节值。): 指定规划算法可以运行的最大时间。): 定义轨迹的速度和加速度限制。): 定义目标位置和姿态的约束。): 定义路径的形状和通过点。): 规划时考虑的环境场景。): 指定使用的规划管道,如。): 指定要规划的机械臂组。): 规划尝试的次数。

2024-06-02 21:10:03 783

原创 给两个四元数,如何生成一个四元数轨迹,让四元数转化成的旋转矩阵轨迹可微

根据上述方法,生成的四元数轨迹是可微的,因为每个时刻的旋转矩阵都可以通过插值得到。注意,这种方法需要输入的四元数都是单位四元数,可能需要对输入进行预处理。假设给定两个四元数 q1 和 q2,它们定义了从初始位置到结束位置的旋转。要生成四元数轨迹,可以考虑使用四元数球面线性插值(SLERP)。其中,dot(q1, q2) 是四元数 q1 和 q2 的点积。其中,time 是当前时间,duration 是旋转总时间。1.标准化 q1 和 q2,确保它们都是单位四元数。返回 q,它是在两个四元数之间的插值。

2023-06-21 22:01:54 367

原创 请写一个函数,另一个程序调用realsense相机进行拍照,并保存

该函数接受一个参数 file_dir,表示图片要保存的目录,调用该函数可以创建一个相机实例,拍摄一张彩色图像,并将图像保存到指定目录下的photo.jpg文件中。注意替换 /path/to/save 为你想要保存到的目录。

2023-06-14 20:21:15 378

原创 写一个python函数生成两个空间点之间的线性插值

好的,以下是一个生成两个三维点之间线性插值的Python函数,它使用Numpy库来处理向量。你可以根据需要修改输入输出格式,并修改代码以适应不同的问题。在上述示例中,我们使用了起点为(0, 0, 0),终点为(1, 2, 3),共计5个插值点。

2023-06-13 21:05:04 1034

原创 如何限制moveit进行规划的时候panda机器人的末端姿态角是不变的

四元数是一种用于表示空间旋转的数学结构,你应该将这里的四元数替换为你自己期望的末端执行器的姿态。在MoveIt中,你可以通过添加一个定向约束(Orientation Constraint)来限制机器人的末端执行器(End Effector)的姿态。例如,基于采样的规划器(如RRT和PRM)通常可以处理这种约束,但一些其他的规划器可能无法处理。例如,基于采样的规划器(如RRT和PRM)通常可以处理这种约束,但一些其他的规划器可能无法处理。实际上,根据你的具体应用,可能有其他方法来保持末端执行器的姿态不变。

2023-06-12 16:15:32 2650 1

原创 panda机器人一个的期望的末端姿态角

假设我们有一个开始四元数 start_q,其值为 [1, 0, 0, 0](代表无旋转),以及一个结束四元数 end_q,其值为 [0, 0, 0, 1](代表围绕Z轴旋转180度)。但是,注意到如果你取四元数的反值,也就是 q’ = [-w, -x, -y, -z],它将表示相同的旋转,因为插入上述的旋转矩阵转换公式,结果仍然是相同的旋转矩阵。在这个函数中,start_q 和 end_q 是开始和结束的四元数,t 是一个介于0和1之间的参数,表示在开始和结束四元数之间的插值位置。

2023-06-12 15:49:27 1557

原创 用python写一个程序,读取并显示工业相机的图像,当按下空格键时进行录像,再按一次空格键停止录像,并将视频保存为MP4格式。

这是一种实现方式的基本思路,但请注意,你需要确保你的工业相机与计算机的接口(如USB,Ethernet等)可以被OpenCV支持。请注意,这个程序有许多可以改进的地方。其次,空格键的处理不是实时的,程序可能会错过一些按键事件。最后,这个程序假设所有的帧都有相同的大小(640x480),这可能不是真实情况。这是一个相当复杂的程序,因为它涉及到硬件(工业相机)、视频处理、文件输入输出和键盘事件处理等多方面的知识。这个程序是一个简单的示例,可能无法直接满足你的需求,你可能需要根据你的具体情况来修改它。

2023-06-06 21:18:11 305

原创 请用c++将四元数转化为旋转矩阵,输出为std::array<double,9> 类型

这个函数的输入是一个四元数,输出是一个 std::array<double,9>,这个数组包含了旋转矩阵的所有元素,按照列优先的方式排列。也就是说,数组的前三个元素是旋转矩阵的第一列,接下来三个元素是第二列,最后三个元素是第三列。如在你的代码中使用这个函数,你只需传入四元数的四个组成部分(w、x、y和z)作为参数,函数就会返回一个包含9个元素的 std::array<double,9>,这个数组包含了对应的旋转矩阵的所有元素。

2023-05-31 21:31:48 200

原创 用python 写一个旋转矩阵转欧拉角的程序

如果你希望使用其他的旋转顺序或者使用弧度作为角度单位,你可以改变as_euler函数的参数。例如,如果你希望使用’xyz’的旋转顺序并且使用弧度作为角度单位,你可以将as_euler函数的参数改为(‘xyz’, degrees=False)。这个函数将输入的旋转矩阵转换为’zyx’(也就是首先绕z轴旋转,然后绕y轴旋转,最后绕x轴旋转)的欧拉角,并且使用度作为角度单位。在Python中,你可以使用NumPy来创建和操作矩阵,并且可以用scipy中的函数将旋转矩阵转换为欧拉角。

2023-05-31 21:11:33 1677

原创 用c++将四元数转化为旋转矩阵

四元数(Quaternion)与旋转矩阵之间的转换在计算机图形学和机器人学中非常常见。下面是一个示例函数,展示了如何将一个四元数转换为一个旋转矩阵。这个函数将四元数q看作是(w, x, y, z)的形式,旋转矩阵则是一个3x3矩阵。在这个函数中,我们使用了Eigen库来创建和操作矩阵。如果你没有使用Eigen库,你需要找到或者创建一个类似的3x3矩阵类,并且提供合适的索引操作符和赋值操作符。在你的代码中使用这个函数时,你只需传入四元数的四个组成部分(w、x、y和z)作为参数,函数就会返回对应的旋转矩阵。

2023-05-31 21:07:44 783

原创 在ubuntu系统中,我在终端运行了某个python 程序后,能否使再按键盘时不在终端打印按键的内容

请注意,这个方法只在类Unix系统(如Linux和Mac OS)中工作,因为它依赖于termios和tty这两个特定于Unix的模块。一种做法是使用Python的getch方法,这个方法可以在不需要回车的情况下读取单个字符。如果你想在你的Python程序运行之后,恢复终端的正常行为,你需要在你的程序结束时,将终端设置恢复到原来的状态。这个程序会无限循环,等待你按下一个键,然后打印出你按下的键。在运行你的Python程序时,你可以将键盘输入转向到你的程序,而不是终端。

2023-05-13 11:01:46 180

原创 基于ros写一个panda的节点控制程序,要求按下键盘的上下左右键时,机器人末端会进行上下左右运动,按下一次运动步长为0.1mm

start_listener方法启动一个监听器,用于监听键盘输入,当有相应的键被按下时,就会触发相应的移动指令。这是一个基于ROS的任务,需要使用Python或C++来编写一个节点,该节点能够接收键盘输入并将其转化为机器人末端的运动指令。需要注意的是,虽然我会提供一个基础的框架,但你可能需要根据你的具体ROS环境和Panda机器人的配置进行一些调整。以上脚本首先定义了一个PandaController类,该类通过pynput库监听键盘输入,并将按键对应的动作转化为Panda机器人的移动指令。

2023-05-11 16:39:05 372

原创 在ros节点中,按回车键继续,按esc键退出循环

此外,你可能需要在代码开始时调用 rospy.init_node() 来初始化 ROS 节点,并在循环中定期调用 rospy.sleep() 或 rospy.Rate().sleep() 来维持适当的循环速率。你也需要在循环条件中检查 rospy.is_shutdown(),以便在 ROS 关闭时正确地结束循环。当按下 ESC (\x1b) 时,程序会退出循环。需要注意的是,这个代码只能在终端环境中运行,如果你在 IDE 或 Jupyter notebook 等环境中运行这个代码可能无法正常工作。

2023-05-09 20:35:28 385

原创 python 保存数据到excel文件中

在这个程序中,我们创建了一个pandas DataFrame来保存关节角度。当你按下回车键时,程序会将当前的关节角度添加到DataFrame中,然后将DataFrame保存到一个Excel文件中。Excel文件的名字是’joint_angles.xlsx’,你可以根据需要修改这个名字。同样,这个程序需要在ROS环境中运行,并且需要访问Panda机器人的ROS主题。你需要将’localhost’和端口9090替换为你的ROS服务器的地址和端口。你可以使用pandas库将数据保存到Excel文件中。

2023-05-09 19:57:08 168

原创 用python写一个控制panda机器人运动到指定位姿(笛卡尔坐标,末端欧拉角)的程序

在这个示例中,我们首先创建了一个名为move_group的MoveGroupCommander实例,它用于控制Panda机器人的运动。然后,我们设置目标笛卡尔坐标,这里的示例坐标为[0.3, 0.1, 0.5],以及目标末端的欧拉角(弧度为单位),示例角度为[0.0, 1.57, 0.0]。最后,我们规划并执行运动以将机器人移动到指定的位姿。要使用Python控制Panda机器人运动到指定的位姿(笛卡尔坐标和末端欧拉角),我们将使用moveit_commander库。

2023-05-04 11:40:21 688

原创 用python写一个控制panda机器人运动到指定位置(笛卡尔坐标)的程序

在这个示例中,我们首先创建了一个名为move_group的MoveGroupCommander实例,它用于控制Panda机器人的运动。然后,我们设置目标笛卡尔坐标,这里的示例坐标为[0.3, 0.1, 0.5]。接着,我们规划并执行运动以将机器人移动到指定的坐标。要使用Python控制Panda机器人运动到指定的笛卡尔坐标,我们将使用moveit_commander库。注意:在执行此程序之前,请确保你的机器人已经正确连接并设置好。此外,确保目标笛卡尔坐标在机器人的可达范围内。

2023-05-04 11:37:50 698 1

原创 一个导纳控制算法与MoveIt 的控制接口相结合的python程序

这个示例代码首先订阅力传感器数据,然后实现一个简单的导纳控制算法,并使用MoveIt的控制接口来规划和执行Panda机器人的动作。然而,在实际应用中,您可能需要对算法进行更多的优化,例如根据需要调整质量、阻尼和刚度矩阵,以及考虑速度和加速度限制。在启动代码之前,确保已经启动了机器人硬件和MoveIt的相关节点,例如roslaunch panda_moveit_config demo.launch。以下是一个简单的示例,需要根据实际的力传感器和机器人环境来调整代码。

2023-04-25 09:17:57 1413

原创 panda双臂控制

【代码】panda双臂控制。

2023-04-21 21:42:42 157

原创 一段python函数,用于保存相机的照片,保存位置为该文件所在位置的文件夹内

以下是一个简单的 Python 函数,用于从相机捕获照片并将其保存到当前文件所在文件夹中。

2023-04-15 10:24:03 609

原创 ros的launch文件中 启动节点的方式和其参数的含义

ROS(Robot Operating System)是一个用于编写机器人软件的框架。在ROS中,launch文件是用来启动一个或多个节点(node)的XML文件,节点是执行特定功能的程序。Launch文件允许你同时运行多个节点,并设置它们的参数。在这个例子中,我们启动了两个节点:一个名为"talker_node"的talker节点和一个名为"listener_node"的listener节点。它们都位于名为"my_package"的软件包中。在一个launch文件中,启动节点的方式是使用标签。

2023-04-12 19:44:34 1430

原创 在LaTeX中,图片、表格、算法等浮动体可以使用[placement]选项来设置它们的排版位置

需要注意的是,这些选项并不是绝对的,LaTeX会根据排版效果自动调整浮动体的位置。如果当前位置无法容纳浮动体,LaTeX可能会将其放置在其他位置。另外,当使用[h]选项时,需要注意不能在一个页面中出现过多的浮动体,否则可能会导致排版错误。在LaTeX中,图片、表格、算法等浮动体可以使用[placement]选项来设置它们的排版位置。[h]:将浮动体放置在当前位置,如果当前位置无法容纳,则放置在页面顶部。[H]:强制将浮动体放置在当前位置,而不管当前位置是否能容纳。[p]:将浮动体放置在单独的一页中。

2023-04-11 15:57:36 3677

原创 用python实现realsenseD435i相机实现视频显示,并按空格键执行拍照,保存照片的程序

这个程序将显示RealSense D435i相机的实时视频,并在按下空格键时拍照。拍摄的照片将保存在程序所在目录下的"photos"文件夹中。如果出现问题,程序会输出错误信息。为了使用Intel RealSense D435i相机,我们需要安装pyrealsense2库。

2023-04-04 18:50:09 1545 1

原创 一个用python实现工业相机视频显示,并按空格键执行拍照,并保存的程序

这个程序将显示工业相机的实时视频,并在按下空格键时拍照。拍摄的照片将保存在程序所在目录下的"photos"文件夹中。如果出现问题,程序会输出错误信息。为了实现这个需求,我们可以使用OpenCV库。这个库可以帮助我们处理和显示工业相机的视频流。在运行此程序之前,请确保已安装OpenCV库。

2023-04-04 18:38:39 508

原创 tensor类型,单通道feature画注意力图

import numpy as npimport matplotlib.pyplot as pltdef normalization(data): rang=np.max(data)-np.min(data) return (data-np.min(data))/rangdef save_1_feature_map(feature_map): # [1, H, W] -> [H, W] im = np.squeeze(feature_map.detach()

2021-04-10 17:44:20 291

原创 3通道tensor转img

img为tensorimport torchimport numpy as npfrom PIL import Imageimport torchvision.transforms as transformsdef save_original_picture(img): # [3, H, W] img = transform_convert(img) # plt.figure() plt.axis('off') plt.imshow(img) p

2021-04-10 17:39:52 444

原创 torch 显示注意力图

import torchimport numpy as npimport cv2from PIL import Imageimport matplotlib#matplotlib.use('Agg') #注释掉则不show图import matplotlib.pyplot as pltimport osdef visulize_attention_ratio(img_path, save_path, attention_mask, ratio=0.5, cmap="jet", save_

2021-04-08 15:54:18 687

原创 python读取存储视频

import cv2 cap = cv2.VideoCapture(0) fourcc = cv2.VideoWriter_fourcc(*'XVID')out = cv2.VideoWriter('output.avi',fourcc, 20.0, (640,480)) while(cap.isOpened()): ret, frame = cap.read() out.write(frame) cv2.imshow('frame',frame) if cv2

2020-10-29 15:14:27 183

原创 python读取显示视频

import numpyimport cv2cap = cv2.VideoCapture(‘video_sc.avi’)while(cap.isOpened()):ret, frame = cap.read()cv2.imshow(‘image’, frame)k = cv2.waitKey(20) #q键退出if (k & 0xff == ord(‘q’)):breakcap.release()cv2.destroyAllWindows()...

2020-10-29 15:05:46 305

原创 pytorch 安装常用指令

查看pytorch版本import torchprint(torch.__version__) #注意是双下划线查看torchvision版本import torchvisiontorchvision.__version__gpu是否可用torch.cuda.is_available()是否检测到cudaprint(torch.version.cuda)

2020-05-19 12:11:27 464

原创 tensorflow 最简单gpu程序

import tensorflow as tfimport numpy as npwith tf.compat.v1.Session() as sess: with tf.device('/gpu:0'): a = tf.compat.v1.placeholder(tf.int32) b = tf.compat.v1.placeholder(tf.int32) add = tf.add(a, b) sum = sess.run(.

2020-05-19 11:42:10 388

转载 python调用c++程序——pybind11在Windows下的使用

pybind11在Windows下的使用转自:https://www.e-learn.cn/content/qita/24527651.Pybind11算是目前最方便的Python调用C++的工具了, 介绍一下在vs2019上写Python的扩展的HelloWorldhttps://github.com/pybind/pybind11/releases/tag/v2.3.0这个库只要inc...

2019-12-26 11:45:39 954

原创 什么是卷积,一维卷积,二维卷积,三维卷积

1、二维卷积将各个位置上滤波器的元素和输入的对应元素相乘,然后再求和(有时将这个计算称为乘积累加运算)。输出维度=(输入维度-滤波器维度)/步长+12、一维卷积3、通道3.1若输入数据的通道数为3则3.2三通道二维卷积4、多个滤波器5、三维卷积6、一维卷积用于:自然语言处理(近义词反义词个数channel,词向量大小size,(chanel,size))二维卷...

2019-11-17 21:35:18 9520 1

原创 错误“load_state_dict self.__class__.__name__, "\n\t".join(error_msgs))) RuntimeError: Error(s) in

错误“load_state_dict self.class.name, “\n\t”.join(error_msgs))) RuntimeError: Error(s) in loading state_dict for ResNeXt:”导入.pth文件错误如下:load_state_dict self.__class__.__name__, "\n\t".join(erro...

2019-11-08 14:35:53 3744 5

image文件(JPG,PNG,BMP,TIFF,GIF)转pdf的工具

image文件(JPG,PNG,BMP,TIFF,GIF)转pdf的工具,亲测可用。

2019-08-13

很全的Visio图库.zip

visio画图模块,包含大量的已建成的图块,使用者可以直接使用。

2019-08-13

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除