多自由度机械臂模拟6

模拟一个完整的吊装流程,初始状态->起臂->放下吊绳->竖直起吊->水平旋转->放下物体->收缩吊绳。

osg::ref_ptr<osg::Node> createSimple()
{
    osg::ref_ptr<osg::Geode> geode = new osg::Geode;
    osg::ref_ptr<osg::Geometry> geo = new osg::Geometry;

    //申请一些顶点
    osg::ref_ptr<osg::Vec3Array> vers = new osg::Vec3Array;
    geo->setVertexArray(vers.get());
#if 1
    geo->addPrimitiveSet(new osg::DrawArrays(osg::PrimitiveSet::LINE_LOOP, 0, 4));//创建一个线圈
#else
    geo->addPrimitiveSet(new osg::DrawArrays(osg::PrimitiveSet::QUADS, 0, 4));//创建一个正方形
#endif

                                                                              //设置顶点
    vers->push_back(osg::Vec3(-15, 3.0, -15));
    vers->push_back(osg::Vec3(15, 3.0, -15));
    vers->push_back(osg::Vec3(15, 3.0, 15));
    vers->push_back(osg::Vec3(-15, 3.0, 15));

    //申请颜色
    osg::ref_ptr<osg::Vec4Array> color = new osg::Vec4Array();
    color->push_back(osg::Vec4(1.0, 0.0, 0.0, 0.5));
    color->push_back(osg::Vec4(0.0, 1.0, 0.0, 0.5));
    color->push_back(osg::Vec4(0.0, 0.0, 1.0, 0.5));
    color->push_back(osg::Vec4(1.0, 1.0, 0.0, 0.5));

    //设置颜色
    geo->setColorArray(color.get());
    geo->setColorBinding(osg::Geometry::AttributeBinding::BIND_PER_VERTEX);//设置颜色绑定

                                                                           //设置法线,正对屏幕的时候最亮
    osg::ref_ptr<osg::Vec3Array> norm = new osg::Vec3Array;
    geo->setNormalArray(norm);
    geo->setNormalBinding(osg::Geometry::AttributeBinding::BIND_OVERALL);
    norm->push_back(osg::Vec3(0.0, -1.0, 0.0));

    //打开透明度
    geo->getOrCreateStateSet()->setMode(GL_BLEND, osg::StateAttribute::ON);

    //设置线宽
    osg::ref_ptr<osg::LineWidth> w = new osg::LineWidth;
    w->setWidth(5.0);
    geo->getOrCreateStateSet()->setAttributeAndModes(w.get(), osg::StateAttribute::ON);

    geode->addDrawable(geo.get());

    return geode;
}

//代码参考:https://blog.csdn.net/wb175208/article/details/80513775

原文地址:https://www.cnblogs.com/herd/p/11420574.html

时间: 2024-07-31 21:43:08

多自由度机械臂模拟6的相关文章

多自由度机械臂模拟4

模拟机械臂起吊物体.以动物体.放下物体 int numChild = groupRope->getNumChildren(); groupRope->removeChildren(0, numChild); 原文地址:https://www.cnblogs.com/herd/p/11416495.html

多自由度机械臂模拟5

机械臂-起臂动作模拟 double cAngle = calaulateCAngle(); std::cout << "rorate cAngle:" << cAngle << std::endl; for (double d1=0.0;d1<cAngle;d1+=2.0) { if (cAngle-d1>2.0) { rorate3 += 2.0; rotateRope = -2.0; } else { double d_1 = cAn

六自由度机械臂项目学习笔记

由于课程要做一个控制六自由度机械臂的项目,主要是学习舵机和舵机控制的知识,在这里做一下学习笔记. 使用的舵机为2个DS3115MG数字舵机+4个MG996R模拟舵机. 1.舵机基本构造 2.舵机控制原理 控制电路板接受来自信号线的控制信号,控制电机转动,电机带动一系列齿轮组,减速后传动至输出舵盘.舵机的输出轴和位置反馈电位计是相连的,舵盘转动的同时,带动位置反馈电位计,电位计将输出一个电压信号到控制电路板,进行反馈,然后控制电路板根据所在位置决定电机转动的方向和速度,从而达到目标停止.其工作流程

基于 Mathematica 的机器人仿真环境(机械臂篇)[转]

完美的教程,没有之一,收藏学习. 目的 本文手把手教你在 Mathematica 软件中搭建机器人的仿真环境,具体包括以下内容(所使用的版本是 Mathematica 11.1,更早的版本可能缺少某些函数,所以请使用最新版.[email protected]).  1 导入机械臂的三维模型  2 (正/逆)运动学仿真  3 碰撞检测  4 轨迹规划  5 (正/逆)动力学仿真  6 控制方法的验证  不妨先看几个例子: 逆运动学 双臂协作搬运 显示运动痕迹 (平移)零空间运动  无论你是从事机器

机械臂的运动规划

如果你想要让机器人能帮你拿瓶子.做饭.收拾屋子等,就必须赋予机器人快速生成无碰撞.最优运动轨迹的能力,这就需要靠运动规划了.有人觉得运动规划已经很成熟了,无需再研究,但实际上,机械臂运动规划非常难-- 如 果你想要让机器人能帮你拿瓶子.做饭.收拾屋子等,就必须赋予机器人快速生成无碰撞.最优运动轨迹的能力,这就需要靠运动规划了.有人觉得运动规划已经很 成熟了,无需再研究,但实际上,机械臂运动规划非常难,之所以这么难,主要是因为规划问题的维度太高(具体后面分析),目前暂无兼顾实时性与最优性的规划 算

UR机械臂运动学正逆解方法

最近几个月因为工作接触到了机械臂的项目,突然对机械臂运动方法产生了兴趣,也就是如何控制机械臂的位置和姿态.借用一张网上的图片,应该是ur5的尺寸.我用到的是ur3机械臂,除了尺寸不一样,各关节结构和初始位置和ur5是一样的. ur机械臂是六自由度机械臂,由D-H参数法确定它的运动学模型,连杆坐标系的建立如上图所示.我当时在这个地方的理解上走了不少弯路,后来找个一个视频,我觉得讲解地比较容易理解,可以参考一下Denavit-Hartenberg参数视频详解.ur机械臂DH参数表如下, 转动关节θi

【BZOJ3506】排序机械臂(Splay)

[BZOJ3506]排序机械臂(Splay) 题面 神TMBZOJ没有题面,感谢SYC的题面 洛谷的题面也不错 题解 对于每次旋转的物体 显然可以预处理出来 现在只要模拟旋转操作就行了 至于在哪里放标记的问题 我只在第K大放会鬼.. 所以在Splay里面也放了一次(和LCT一样的) 然而我每次都把排到了正确位置的元素直接给删掉了... 所以跑的很慢很慢... #include<iostream> #include<cstdio> #include<cstdlib> #i

[CQOI2014]排序机械臂

洛谷P3165 [CQOI2014]排序机械臂 https://www.luogu.org/problem/show?pid=3165 题目描述 为了把工厂中高低不等的物品按从低到高排好序,工程师发明了一种排序机械臂.它遵循一个简单的排序规则,第一次操作找到摄低的物品的位置P1,并把左起第一个至P1间的物品反序:第二次找到第二低的物品的位置P2,并把左起第二个至P2间的物品反序...最终所有的物品都会被排好序. 上图给出_个示例,第_次操作前,菝低的物品在位置4,于是把第1至4的物品反序:第二次

摄像机标定用于机械臂抓举等(利用标定将图像上的点映射为三维坐标)

在实验室或者是工程上,我们常常需要将拍摄到的图像的二维图像坐标来计算三维坐标. 如上图所示,我们有上图这样的一副图片.我们需要将物体和机械臂的三维位置算出来,使得机械臂能够精确的抓住物体. 我们采用张正友标定的方法标定出内外参数,利用其内参与外参数算出其对应的三维坐标.具体公式略!可以参考张PAMI的论文. /*/ //author:YeahPingYE //function: //time:2014/11/25 // // // // // //*/ #include<highgui.h>