自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(55)
  • 资源 (4)
  • 问答 (1)
  • 收藏
  • 关注

原创 # Panda3d 碰撞检测系统介绍

碰撞检测使2个物体在相撞时能够被检测出来并且做出反应,这不仅包括为碰撞事件发送消息,而且还要保证物体不会彼此穿透。碰撞检测为用户营造一种很真实的虚拟环境沉浸感(immersion),只不过该技术实现起来有点复杂。有2 种方法可以实现碰撞检测。一种是创建一些特殊的空间碰撞几何体来检测碰撞,例如球体或多边形。另一种方法是允许与任何几何体碰撞。虽然第一种更复杂,实现起来也更难,但它运行更快,是一种行之有效的解决方案。而对快速粗糙(quick-and-dirty)的应用而言,第二种几何体碰撞也是可行的。

2023-11-25 18:18:52 590

原创 Panda3d 动画序列

Panda3D 的动画序列系统是一种用于回放脚本动作的复杂机制。通过使用动画序列,您可以构建动画、声音效果或任何其他动作的复杂交互,并按需播放脚本。系统的核心是类Interval 。有几种不同类型的 Interval,将在以下几页中详细讨论,但它们都具有以下共同属性:每个 Interval 表示在特定的有限动画序列内发生的一个操作(或一系列操作)时间(因此得名)。

2023-11-15 22:32:35 554 2

原创 Panda3d 外部硬件接口介绍

本章介绍Panda3d对键盘和鼠标的支持。

2023-11-15 21:35:31 559

原创 物理引擎介绍

虽然碰撞检测解决了防止对象在大多数应用中碰撞的问题,但某些游戏和仿真应用可能需要对对象之间的更真实的动态交互进行建模,同时考虑对象的质量、摩擦力、弹性和外力等因素。这些用途可能需要使用物理引擎。这是一个可以使用物理方程模拟物体之间相互作用的系统,考虑的参数远远超过简单的碰撞响应系统。Panda3D提供了多种用于物理的选择。但是,在选择之前,请仔细考虑是否需要物理模拟的额外复杂性、性能和创作成本,以及碰撞检测本身是否足以满足您的用例。

2023-11-15 21:34:01 188

原创 Panda3d 动画模型

Panda3D 中有两个用于 3D 几何的类:**Mode**(用于非动画几何)和**Actor**(用于动画几何)。请注意,只有当几何体改变形状时才被视为动画。例如,棒球不会被认为是动画的:它可能飞得到处都是,但它仍然是一个球体。棒球是一个**Model**,而不是**Actor**。

2023-11-15 21:28:32 529

原创 Panda3d 场景管理

许多简单的 3D 引擎维护一个 3D 模型列表,然后在每一帧对这些模型进行渲染。在这些简单的引擎中,必须分配一个3D模型(或从磁盘加载它),然后将其插入到要渲染的模型列表中。模型在插入到列表中之前对渲染器不“可见”。Panda3D稍微复杂一些。它不是维护要呈现的对象列表,而是维护要呈现的对象树。对象在插入树之前对渲染器不可见。

2023-11-11 20:52:59 839

原创 Panda3d 相机控制

本篇主要是介绍Panda3d 的相机控制,然后通过键盘和鼠标控制进行说明。

2023-11-01 21:00:37 1134

原创 人形机器人的技术发展探讨

世界机器人大会上关于人形机器人技术的探讨

2023-11-01 20:20:52 466

原创 Panda3d 介绍

Panda3D是一个3D引擎:一个用于3D渲染和游戏开发的子程序库。该库是带有一组Python绑定的c++。使用Panda3D进行游戏开发通常需要编写一个Python或c++程序来控制Panda3D库。 Panda3D是为商业游戏开发而创建的,并且仍然用于开发商业游戏。

2023-10-30 22:28:29 1789 1

原创 Panda3d 教程

偶然之余看到了 Panda3d 这个3D引擎,觉得代码开源然后又比较轻量级,感觉还是比较好上手的,因此就想去学习一下,然后把学习过程记录下来。网上也都找了不少关于Panda3d 方面的教程,但是感觉都不是很好,有的是简单的介绍,有的或者大部分都是文字的介绍,没有对应的例子或者动画来进行演示实际的效果,因此打算自己重新写这么一个相关的教程。

2023-10-30 22:06:56 1515

原创 EtherCAT IGH 命令行介绍

EtherCAT IGH 命令行介绍

2022-10-24 20:15:00 6487 8

原创 大话如何从一个电机发展成机器人本体加机器人控制器

最近学了如何用EtherCAT IGH 控制一个电机之后,就在想如何现在距离拥有一个机器人本体和机器人控制器还有多远呢?下面的内容比较的自己的粗浅的看法,在此抛转引玉。机器人本体的设计和控制器两个随便一个单独拎出来讲,都能讲上是十天十夜都不止,每一个都是一个极其复杂的系统,都需要各位有志之士深耕多年才能做好做稳定。我在这里也只会随手一写,写出来和大家一起讨论讨论、交流交流。

2022-10-23 11:11:53 828 1

原创 EtherCAT IGH 驱动一个步进电机

EtherCAT IGH 驱动一个步进电机。

2022-10-22 18:36:42 5152 10

原创 EtherCAT IGH 的编译选项介绍

EtherCAT 编译选项介绍。翻译自 《EtherCAT IGH 1.52.pdf》中的 里面的表 < Table 9.1: Configuration options> 。

2022-10-19 22:10:05 1152

原创 EtherCAT IGH 的下载和编译

EtherCAT 的下载和编译

2022-10-19 10:14:21 2773

原创 关于ROS中Moveit中运动规划的总结资料和相关问题

1、如果要在Moveit中配置自己的运动规划库,则需要自己用源码安装Moveit和OMPL ,然后参照这个大神的资料按照步骤进行操作。2、运动规划的公开课可以参照 夕法尼亚大学Coursera运动规划公开课。3、机械臂运动规划算法性质的学习的话,需要看源码,理解move_group.plan()后moveit如何与ompl进行的交互,然后ompl如何完成的算法并将结果返回给moveit的。4...

2019-05-16 12:58:43 5036 2

原创 moveit+gazebo联合仿真问题总结

相应的配置文件和启动文件修改:在进行配置的时候,考虑到以后可能有多个机械臂进行联合仿真,或者就是为了话题之间不会进行冲突,会利用命名空间进行区分,一般而言都是用 urdf 或者 xacro 文件中的模型名字 robot(这个可以根据自己的机械臂名字进行相应的修改,这里为了描述方便) 作为 命名空间的名字,1、对自己的模型 robot 利用rosrun moveit_setup_assistat...

2019-05-15 21:42:22 3637 4

原创 个人学习笔记

1、如何利用argv传递数组#include<iostream>#include<Eigen/Eigen>using namespace Eigen;using namespace std;int main(int argc,char ** argv){ VectorXd Q(6); Q<<11,12,13,14,15,16; co...

2019-05-13 21:20:09 389 1

原创 Matlab化简机械臂正运动学表达式(采用DH矩阵推导)

我们在求解机械臂的正运动学的时候,对于在写论文的过程,我们需要对最终的位姿矩阵进行相应的化简,比如把sin(q1) 写成 S1,cos(q1) 写成 C1等等之类,之前我在处理这些表达式的时候,都是一个一个手动去替换,一个一个 ctrl+F,对于六自由度的机械臂来说真心好累。 今天我利用Matlab 中的一些基本语句实现了对位姿矩阵的自动化简。 一般在DH参数中 theta 和...

2018-12-07 19:21:38 3703

原创 雅克比矩阵

2018-09-26 08:23:22 739

原创 Matlab T型速度规划

%% 梯形速度曲线%% 假定初始速度和最终速度为零,给定最大的加速度、运行时间、开始角度 、结束角度function trapezoid()%给定初始条件t0=0;tf=10;q0=0;qf=20;a_max=1;if a_max&gt;= 4*(qf-q0)/(tf-t0)^2% 先判断能否求解到t_f,给定的最大加速度是否满足条件 % t_f 加速至匀速阶段的...

2018-09-25 23:05:01 4295

原创 三点求圆公式Matlab 和C++版程序

三点求圆公式Matlab 和C++版程序%% 给定三个点做圆弧轨迹规划function P_P=plot_circle(p1,p2,p3)%% 利用这三个点做一个平面方程k_11=( p1(2)-p3(2) )*( p2(3)-p3(3) ) - ( p2(2)-p3(2) )*( p1(3)-p3(3) ) ;k_12=( p2(1)-p3(1) )*( p1(3)-p3(3) )...

2018-09-25 20:42:00 3914 2

原创 求饶不经过原点的旋转轴的旋转矩阵

看《机器人导论》中关于齐次变换的内容中,发现饶轴旋转的时候,分为两种情况。一、饶经过原点的轴进行旋转;二、饶不经过原点的旋转轴进行旋转。其实这两种情况下,采用旋转向量 和 旋转矩阵的相互转换的几种方法 这里面的方法都是可以求到旋转矩阵的,但是这两种旋转方式中的变换矩阵中的位置矩阵是不一样的。饶经过原点的轴进行旋转的变换矩阵,由于原点的位置没有发生改变,所以变换矩阵中的位置矩阵是零,而第二种方法中...

2018-09-17 21:09:33 2274

原创 空间中位姿矩阵的插补算法代码,旋转中采用四元数进行插补

// 五次多项式生成void Five_ploynomial(double t0, double tf, double q0, double qf, double d_q0, double d_qf, double dd_q0, double dd_qf, VectorXd &amp;amp; qt){ double A, B, C, D, E, F; A = (double...

2018-09-17 17:24:32 1687 1

原创 旋转向量 和 旋转矩阵的相互转换的几种方法

最近在做旋转向量转旋转矩阵的,尝试了几种方法,现在总结一下,方便以后使用。pi=3.1415926;qq_1= - pi/6;p1=[0.8;0.6;0.5];p2=[1;2;3];PP=p2-p1;PP=PP/sqrt( PP(1)^2 + PP(2)^2 + PP(3)^2 );%% 采用罗德里格斯公式, 需要进行单位化,不进行单位化的话,算出来的结果是不一样的R...

2018-09-17 16:11:41 9967

原创 latex biography 中作者间间距过大,如何进行设置

在用IEEE 的latex的模板进行排版的时候,经常发现作者之间的间距过大,这个时候应该如何进行调整呢?通过查阅资料发现有好几种方法。 1、重定义thebibliography环境 修改IEEEtran.cls,打开IEEEtran.cls,找到 \def\@IEEEBIOskipN{4\baselineskip}% nominal value of the vskip above the...

2018-08-30 09:39:00 23123 7

原创 解决运行gazebo的时候,不能找到第一个关节的方法

最近在运行gazebo的仿真的时候,总是提示 cannot find “joint1” in the gazebo model。这个问题,第一、可能真的就是最近的模型中的名字写错了。在确认没有写错的情况下,那么就是需要一个bottom link 和 bottom joint来连接 base link了,添加了这两个之后,在运行程序的话,应该就是可以的了。 另外在和moveit一起使用的情况...

2018-05-31 20:36:36 1026 1

原创 如何实现rviz中的机械臂和实际的机械臂同步----ROS机械臂学习笔记(三)

利用网络和Joint States话题消息,实现仿真机械臂和实际的机械臂实现同步运动。 下位机:把和实际机械臂相连的电脑称为下位机。 上位机:装用ubuntu的电脑称为上位机。 在一篇的博客中利用joint_states发布消息,去控制机械臂, 我们利用joint states话题去发布关节状态的消息,然后rviz中的机械臂接受到相应的消息之后就会运动。现在我们在下位机中用Socket写一个...

2018-05-16 14:03:18 6608 5

原创 moveit运动规划的时候如何在rviz中添加dae场景

在听深蓝学院的《机器人操作系统ROS理论与实践》课程中,听到一个方法,用来在rviz中添加中场景,用dae的格式文件。 因为每次在打开gazebo的时候,经常需要加载一个模型,从而导致打开的时候经常会卡,所以我们可以提前下载好模型。gazebo模型下载。 这样有了下载的模型之后,我们就可以在运行moveit 的时候,导入相应的场景就可以了。 方法就是Motion Planning-&g...

2018-05-16 12:39:05 3071 3

原创 利用TCP/IP 在Simulink和M文件进行实时的数据交换

前段时间在做实验的时候,需要在Simulink中读取M文件中的数据。一般来说Simulink中的数据,只有在程序运行完之后,才会把数据存入工作区间,这个时候,如果我们需要在程序运行的过程中和Simulink交换数据,就需要采取一些其他的方法了。这个在normal模式下还是比较容易实现的, 利用下面这个语句还是很容易实现的,具体的可以参考问之前的文章,在MATLAB中采用M文件实现对Simu...

2018-04-14 13:38:06 8303 5

原创 在Simulink中利用simmechanics对三自由度的串联机械臂进行仿真

在写本科的毕业论文的时候,需要对三自由度的机械臂进行一个仿真实验。在网上查阅相关资料,得知可以利用simmechanics 来进行仿真实验。关于simmechanics 这个的介绍就百度一下就可以,这个工具可以用来做运动学仿真、求解机械臂的工作区间、也可以用来做动力学仿真。里面有各种电机模块、传感器模块。 在Simulink中利用simmechanics对三自由度的串联机械臂进行仿真其中...

2018-04-14 12:55:35 11339 18

原创 在Windows中利用socket传输double、视频、文本数据

一、传输double类型数据 server端#include &lt;iostream&gt;#include &lt;winsock2.h&gt;#pragma comment (lib, "ws2_32.lib") //加载 ws2_32.dll#pragma warning(disable:4996)#define BUF_SIZE 100using namespace...

2018-04-14 10:53:12 1829

原创 在Windows中利用socket进行一次、循环传输数据

运行程序的时候,一般都是先运行server端,后运行client端 一次传输 server 端#include &lt;stdio.h&gt;#include &lt;winsock2.h&gt;#pragma comment (lib, "ws2_32.lib") //加载 ws2_32.dll,不加载的话,好像会出错#pragma warning(disable:4996...

2018-04-14 10:01:59 2708

原创 利用joint_states发布消息,去控制机械臂——ROS机械臂学习笔记(二)

在不利用moveit的情况下,实现机械臂的运动,目前想到的就是向话题joint_states添加有关关节的消息,或者在终端发布话题消息,当然也可以使用自带的joint_states_publisher的GUI插件。但是经过这几天的一些测试,发现这三种方法都会出问题,比如你运行了节点或者移动GUI 上面的滑块,结果发现rviz中的模型不运动,这个问题一直很纠结,不知道是不是rviz的问题。终端上...

2018-04-13 16:19:40 15504 32

原创 ROS 中利用URDF 编写 Denso 机器人的一个简单模型——ROS机械臂学习笔记(一)

在ROS(Kinetic) 中利用URDF 编写 Denso 机器人的一个简单模型 Denso的URDF 模型主要是参照图1过来的,然后根据实际的情况进行了相应的修改。 在写模型过程中遇到的问题,在RVIZ 中的坐标系 红色为X,绿色为Y , 蓝色为Z 。rpy的数值是 沿着坐标系的箭头的方向,顺时针为正,逆时针为负。 有一点必须要注意的是:用URDF 生成的物体,如果没有做任何...

2018-04-12 15:05:27 3020

原创 2019瓜子网后台开发笔试题目

填空题: 1、有三道概率题,感觉后台开发的很喜欢考概率题呀 2、树的前序遍历、后序遍历、中序遍历 3、两道网络题目,求掩码和确认序号的 4、数据库ACID的意义是什么: 原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability) 5、二叉树的叶子节点怎么计算的 6、图的邻接矩阵最少的非空元素有多少:n个顶点的连通图,至...

2018-03-31 15:47:44 1728

原创 2019网易实习笔试题——给字符串定义符号运算(下)

2019网易实习笔试题——给字符串定义符号运算(上) 下面的代码参考了这位大神的:吾落凡//判断是否为括号bool isPra(string c) //为了统一,采用字符串操作{ if (c == "(" || c == ")") return true; else return false;}//获得符号的优先性i...

2018-03-31 10:51:13 354

原创 2019网易实习笔试题——给字符串定义符号运算(上)

2019年网易游戏实习笔试题,题目大概的意思是给字符串定义六种符号运算规则: 加法:B 字符串拼接到 A字符串后面 减法:在A 字符串中删除第一个出现的和B字符串相同的子串 乘法:在A中的任意两个字符之间插入B字符串 除法:在A中删除和B字符串相同的子串 取反:将A字符串逆置 变换:将A中的大写字母变成小写字母 后面的进行运算的话,基本是和原来的四则运算是差不多的,采用队列和栈、...

2018-03-31 10:29:39 375

原创 2018研发岗美团笔试题目

1、第一题 题目描述: 在十进制表示中,任意一个正整数都可以用字符‘0’-‘9’表示出来。但是当‘0’-‘9’这些字符每种字符的数量有限时,可能有些正整数就无法表示出来了。比如你有两个‘1’ ,一个‘2’ ,那么你能表示出 11,12,121 等等,但是无法表示出 10,122,200 等数。现在你手上拥有一些字符,它们都是‘0’-‘9’的字符。你可以选出其中一些字符然后将它们组合成一个...

2018-03-27 16:24:33 908

原创 今日头条2018春招后台研发岗笔试题目

1、题目链接:今日头条2018春招研发岗笔试题 2、提供一位大神的答案:今日头条2018春招研发岗第一次笔试题解 感谢上面两位大神提供题目和解题答案第一题 贴上大神的代码,采用双指针实现作者:vegetableB链接:https://www.nowcoder.com/discuss/70299?type=0&amp;order=0&amp;pos=7&amp;page=1...

2018-03-27 16:19:31 2459

在Simulink中利用simmechanics对三自由度的串联机械臂进行仿真

在Simulink中利用simmechanics对三自由度的串联机械臂进行仿真

2018-04-14

利用蚁群算法对PID参数自整定程序源代码

在MATLAB中利用蚁群算法进行优化PID参数,function [Pid_kp_Opertimizer,Pid_ti_Opertimizer,Pid_td_Opertimizer,Overshoot,Tr,Ts]=OptimizerPID1(m,NC_max,Alpha,Beta,Rho,Q) %% 主要符号说明 %% NC_max 最大迭代次数 %% m 蚂蚁个数 %% Alpha 表征信息素重要程度的参数 %% Beta 表征启发式因子重要程度的参数 %% Rho 信息素蒸发系数 %% Q 信息素增加强度系数 %% 输出分别表示:PID 三个最优参数、超调量、上升时间、下降时间 在运次程序之前,要先加载OptimizerPID.slx文件,然后再运行OptimizerPID.m文件,这个函数需要相应的参数才能运行,参数的含义在代码已经写出来了。

2018-04-14

在MATLAB中采用M文件实现对Simulink中的S函数程序实现自动调参数

一种在MATLAB中利用M文件实现对Simulink中S函数的程序实现自动调参数的功能。1、在Simulink中搭建好模型文件。 2、按照链接博客中的方法设置好模型文件中的S函数模块。 3、用M文件编写相应的程序,设置好仿真时间,和变量如何变化等等。 4、运行M文件,用程序自动给你调参数,选择出最好的参数吧。

2018-03-19

C++ 扫雷游戏

采用C++编写的扫雷游戏,鼠标左键用于翻开格子,右键用于对格子进行相应的标记。也可以自定义地图的大小和地雷的个数。具体的实现可以参考我的博客。

2017-07-13

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

TA关注的人

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