精华内容
下载资源
问答
  • 图书管理系统数据库实验报告

    热门讨论 2009-10-24 13:25:30
    这种管理方式存在着许多缺点,如:效率低、工作量大等,而且,随着图书数量的增长,对于图书信息的查找、更新和维护都带来了不少的困难。此外,计算机技术的不断成熟与发展使得对信息管理的应用成为可能。正是这样,...
  • 以上是实验过程中的几处截图 简单总结一下本次结课设计吧 首先是小组合作与讨论真是非常重要,在刚开始设计数据库,一个人想法很难做到十全十美,应该说能想到一半就不错,小组成员讨论可以激发出思想火花...

    整个课设大概做了2周左右吧,从数据库的需求分析开始,到最后jsp的各功能的实现。从开始的满怀激情到中间遇到问题的逐渐低落,到最后解决问题后的满怀欣喜,次此课设对我来说意义非凡。在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    以上是实验过程中的几处截图
    简单总结一下本次结课设计吧
    首先是小组合作与讨论真的是非常重要,在刚开始设计数据库的,一个人的想法很难做到十全十美,应该说能想到一半就不错,小组成员的讨论可以激发出思想的火花,正所谓群策群力就是这个道理。
    其次是迎难而上,在jsp代码程序的编写过程中,难免遇到诸多困难,这个时候绝对不能被困难打的萎靡不振,而是要凭借自身对知识的理解以及借助万能的老师的力量去克服难关。
    最后是精益求精,代码的优化(消除冗余、添加注释、保护信息)静态页面的设计,mvc模式的理解运用,让整个系统无论是前端还是后端都一目了然。
    本次课设到此应该就完结了,其意义无论是在精神上还是身心上都受益匪浅,感谢组员、老师的陪伴。

    展开全文
  • 仿生机器人项目

    千次阅读 2019-01-06 10:39:19
    在这个过程中,我们走了一些弯路,遇到了一些困难。画完图打印出来发现不能用,从新改图纸。接上线发现电池功率太小,没法驱动所有舵机,从新买电池。调试代码出问题等等。索性最终我们都解决了这些问题。能让我们...

    前一段时间上了一个仿生实验课,课程老师要求我们自己动手做一个仿生机器人。从结构画图到3D打印,到舵机选择,接线,电池等等全部都是我们自己设计考虑。

    image

    image

    image

    在这个过程中,我们走了一些弯路,遇到了一些困难。画完图打印出来发现不能用,从新改图纸。接上线发现电池功率太小,没法驱动所有舵机,从新买电池。调试代码出的问题等等。索性最终我们都解决了这些问题。能让我们自己做的机器人动了起来。实现了爬行,跳舞,唱歌。四足版俯卧撑的功能。

    image

    image

    仓库里面有从结构设计到完整代码的全部内容,如果有想要参考的可以查看。业余花了一点时间仓促做完,有很多不足的地方。仍有不少改进的空间。

    这个小项目成员还包括:王佳鑫,程凯,尚昆。我们一起共同完成。
    Github仓库地址:https://github.com/Einstellung/Bionic-Robot

    展开全文
  • V-rep仿真:Python获取激光雷达数据

    千次阅读 2019-03-10 15:57:41
    这几天打算使用Vrep机器人仿真平台做实验,但却在获取激光雷达测量数据的过程中遇到困难:机器人所使用雷达由两个vision sensor组成,但VrepremoteAPI没有接口可以直接获取传感器深度数据,更没有接口直接...

            这几天打算使用Vrep机器人仿真平台做实验,但却在获取激光雷达测量数据的过程中遇到了困难:机器人所使用的雷达由两个vision sensor组成,但Vrep的remoteAPI没有接口可以直接获取传感器的深度数据,更没有接口直接得到雷达的测量数据。琢磨了几天,终于解决了这个困难,以下是我使用python获取Vrep场景内激光雷达测量数据的操作步骤。

    一、在Scene中添加一个激光雷达

    打开Model browser -> components -> sensor,从中选择一个激光雷达(以Hokuyo URG 04LX UG01_Fast.ttm为例)。

    2、修改脚本中的LUA代码

    双击脚本,在function sysCall_init() 的最后添加代码以开启remoteAPI端口:

    simRemoteApi.start(19999)

    将function sysCall_sensing() 增加一些代码(新增的代码后标记了“added”,整份代码的解释放在文章最后):

    function sysCall_sensing() 
        measuredData={}
        ranges = {} ---------------------------------------------------added
        if notFirstHere then
            -- We skip the very first reading
            sim.addDrawingObjectItem(lines,nil)
            showLines=sim.getScriptSimulationParameter(sim.handle_self,'showLaserSegments')
            r,t1,u1=sim.readVisionSensor(visionSensor1Handle)
            r,t2,u2=sim.readVisionSensor(visionSensor2Handle)
    
            m1=sim.getObjectMatrix(visionSensor1Handle,-1)
            m01=simGetInvertedMatrix(sim.getObjectMatrix(sensorRef,-1))
            m01=sim.multiplyMatrices(m01,m1)
            m2=sim.getObjectMatrix(visionSensor2Handle,-1)
            m02=simGetInvertedMatrix(sim.getObjectMatrix(sensorRef,-1))
            m02=sim.multiplyMatrices(m02,m2)
            if u1 then
                p={0,0,0}
                p=sim.multiplyVector(m1,p)
                t={p[1],p[2],p[3],0,0,0}
                for j=0,u1[2]-1,1 do
                    for i=0,u1[1]-1,1 do
                        w=2+4*(j*u1[1]+i)
                        v1=u1[w+1]
                        v2=u1[w+2]
                        v3=u1[w+3]
                        v4=u1[w+4]
                        if (v4<maxScanDistance_) then
                            p={v1,v2,v3}
                            p=sim.multiplyVector(m01,p)
                            table.insert(measuredData,p[1])
                            table.insert(measuredData,p[2])
                            table.insert(measuredData,p[3])
                            table.insert(ranges, v4) ------------------added
                        else ------------------------------------------added
                            table.insert(ranges, 0) -------------------added
                        end
                        if showLines then
                            p={v1,v2,v3}
                            p=sim.multiplyVector(m1,p)
                            t[4]=p[1]
                            t[5]=p[2]
                            t[6]=p[3]
                            sim.addDrawingObjectItem(lines,t)
                        end
                    end
                end
            end
            if u2 then
                p={0,0,0}
                p=sim.multiplyVector(m2,p)
                t={p[1],p[2],p[3],0,0,0}
                for j=0,u2[2]-1,1 do
                    for i=0,u2[1]-1,1 do
                        w=2+4*(j*u2[1]+i)
                        v1=u2[w+1]
                        v2=u2[w+2]
                        v3=u2[w+3]
                        v4=u2[w+4]
                        if (v4<maxScanDistance_) then
                            p={v1,v2,v3}
                            p=sim.multiplyVector(m02,p)
                            table.insert(measuredData,p[1])
                            table.insert(measuredData,p[2])
                            table.insert(measuredData,p[3])
                            table.insert(ranges, v4) ------------------added
                        else ------------------------------------------added
                            table.insert(ranges, 0) -------------------added
                        end
                        if showLines then
                            p={v1,v2,v3}
                            p=sim.multiplyVector(m2,p)
                            t[4]=p[1]
                            t[5]=p[2]
                            t[6]=p[3]
                            sim.addDrawingObjectItem(lines,t)
                        end
                    end
                end
            end
            ranges = sim.packFloatTable(ranges) -----------------------added
            sim.setStringSignal('scan ranges', ranges) ----------------added
        end
        notFirstHere=true
    end

    3、Python remoteAPI获取雷达数据

    代码如下:

    import vrep
    import sys
    import time
    import matplotlib.pyplot as plt
    
    #断开以前的连接
    vrep.simxFinish(-1)
    #连接服务器
    clientID = vrep.simxStart('V-rep的IP', 19999, True, True, 5000, 5)
    
    if clientID != -1:
        print('Server is connected!')
    else:
        print('Server is unreachable!')
        sys.exit(0)
    
    #第1次获取数据,数据无效
    errorCode, ranges = vrep.simxGetStringSignal(clientID, 'scan ranges', vrep.simx_opmode_streaming)
    time.sleep(0.1)
    
    #获取有效数据
    errorCode, ranges = vrep.simxGetStringSignal(clientID, 'scan ranges', vrep.simx_opmode_buffer)
    #转换将string为float列表,列表中的值即为雷达的测量值
    ranges = vrep.simxUnpackFloats(ranges)
    plt.xlim(0, 684)
    plt.ylim(0, 5)
    x = range(len(ranges))
    y = ranges
    #绘制结果
    plt.scatter(x, y)

    4、测试

    结果如下:

     

    附上在scprit关键部分代码解释(提示:“--”是Lua代码的注释符号)

    ------------------------------------sysCall_init函数-----------------------------------
    visionSensor1Handle=sim.getObjectHandle("fastHokuyo_sensor1")   -- 获取第1个Vision sensor的Handle
    visionSensor2Handle=sim.getObjectHandle("fastHokuyo_sensor2")   -- 获取第2个Vision sensor的Handle
    -- ……
    sensorRef=sim.getObjectHandle("fastHokuyo_ref")                 -- 获取Dummy的的Handle
    -- ……
    
    
    ---------------------------------sysCall_sensing() 函数---------------------------------
    measuredData={}
    
    r,t1,u1=sim.readVisionSensor(visionSensor1Handle)   -- 获取第1个Vision Sensor的状态
    r,t2,u2=sim.readVisionSensor(visionSensor2Handle)   -- 获取第2个Vision Sensor的状态
    
    -- Manual给出的readVisionSensor返回值解释:
    -- 1、result: detection state (0 or 1), or -1 in case of an error
    -- 2、auxiliaryValuePacket1: default auxiliary value packet (same as for the C-function)
    -- 3、auxiliaryValuePacket2: additional auxiliary value packet (e.g. from a filter component)
    -- 4、auxiliaryValuePacket3: etc. (the function returns as many tables as there are auxiliary value packets)
    
    -- hokuyo的雷达属性中添加了滤波器“Extract coordinates from working image”,由此可得:
    -- r表示result
    -- t1表示第1个Vision Sensor的auxiliaryValuePacket1
    -- u1表示第1个Vision Sensor的“Extract coordinates from working image”滤波器的返回值
    
    -- “Extract coordinates from working image”滤波器的返回值格式如下:
    -- u1[1]图像在x方向上的点数、u1[2]图像在y方向上点数
    -- u1[3]point1的x值、u1[4]point1的y值、u1[5]point1的z值、u1[6]point1的距离
    -- u1[7]point2的x值、u1[8]point2的y值、u1[9]point2的z值、u1[10]point2的距离
    -- u1[11]point3的x值、u1[12]point3的y值、u1[13]point3的z值、u1[14]point3的距离
    -- ……
    -- 注:这些点的坐标是相对于Vision senor坐标的
    
    
    m1=sim.getObjectMatrix(visionSensor1Handle,-1)      -- 获取第1个Vision sensor在世变换矩阵变换矩阵
    m01=simGetInvertedMatrix(sim.getObjectMatrix(sensorRef,-1)) -- 获取第Hokuyo在世界的坐标变换矩阵的逆矩阵
    m01=sim.multiplyMatrices(m01,m1)
    m2=sim.getObjectMatrix(visionSensor2Handle,-1)      -- 获取第2个Vision sensor在世变换矩阵变换矩阵
    m02=simGetInvertedMatrix(sim.getObjectMatrix(sensorRef,-1))
    m02=sim.multiplyMatrices(m02,m2)
    
    
    if u1 then
        p={0,0,0}
        p=sim.multiplyVector(m1,p)
        t={p[1],p[2],p[3],0,0,0}
        for j=0,u1[2]-1,1 do        -- u1[2]表示图像在y方向上的点数
            for i=0,u1[1]-1,1 do    -- u1[1]表示图像在x方向上的点数
                w=2+4*(j*u1[1]+i)   -- 获取测量值的起始所引值(一个测量点有4个值,分别为x、y、z和距离)
                v1=u1[w+1]          -- 测量点的x轴坐标值
                v2=u1[w+2]          -- 测量点的y轴坐标值
                v3=u1[w+3]          -- 测量点的z轴坐标值
                v4=u1[w+4]          -- 测量点与传感器距离值
                if (v4<maxScanDistance_) then
                    p={v1,v2,v3}                        -- p为基于Vision sensor的测量点的坐标
                    p=sim.multiplyVector(m01,p)         -- 对测量点进行坐标变换,得到新的测量点坐标(基于世界坐标系)
                    table.insert(measuredData,p[1])     -- 新x添加到measuredData
                    table.insert(measuredData,p[2])     -- 新y添加到measuredData
                    table.insert(measuredData,p[3])     -- 新z添加到measuredData
                    table.insert(ranges,v4)             -- 距离值添加到ranges
                else 
                    table.insert(ranges,0)              -- 大于最大距离,距离值设为0添加到ranges
                end
                if showLines then
                   -- 这段代码与场景中绘制雷达测量线条有关,在此不解释
                end
            end
        end
    end
    
    if u2 then
        -- 代码:与u1同理,不再列出
    end
    
    ranges = sim.packFloatTable(ranges)         -- 将float型的数组打包成一个String
    sim.setStringSignal('scan ranges', ranges)  -- 将ranges设置到一个信号中,让远程API可以取得数据

    如何知道hokuyo的雷达属性中添加了“Extract coordinates from working image”滤波器的呢?这是在传感器的属性中查看的

    展开全文
  • 第二阶段

    2015-10-17 09:46:10
    近一周学习了测试的使用工具,刚开始的确觉得有点难,但是慢慢的练习过后发现,其实看起来繁琐,难弄,但只要多练习几遍,会了,也是很快就能出来了,不过在学习的过程中,在实验过程中也的确遇到了很多的困难,...
    第二阶段进行到第二周了,近一周学习了测试的使用工具,刚开始的确觉得有点难,但是慢慢的练习过后发现,其实看起来繁琐,难弄,但只要多练习几遍,会做了,也是很快就能做出来了,不过在学习的过程中,在实验的过程中也的确遇到了很多的困难,有的时候每一步都对了,但结果就是运行的不对,这就需要细心观察每一步,实验过程最重要的就是细心,耐心。接下来的课程会继续加油。
    
    展开全文
  • 学习规划

    2015-09-29 18:42:57
    通过实训,我更加深刻的了解了软件测试这门课程,软件测试需要有足够的耐心,每一步都要谨慎,对于Testlink实验过程中遇到的问题培养了自己克服困难的精神。更重要的是从中发现了很多乐趣,让我喜欢上测试这个工作...
  • 在实现的过程中遇到了不少困难,因此希望将自己学习过程记录下来,一方面是个备忘,另一方面,如果能帮到遇到相同困难的朋友那真是太好不过了。一 以下,正文开始。由于身边没有软盘以及有软驱...
  • 《颠覆医疗》读后感

    2019-10-05 22:14:12
    老师比较全面的介绍了当时药商、医生、医疗信息系统的弊端和局限,也展望了未来药商、医生、医疗信息系统的改良方式,以及改良的过程中遇到的种种困难。 老师认为当前医疗系统给绝大多数患者带来不必要的精神上和...
  • Beta冲刺第三天

    2019-09-24 08:32:30
    1.昨天的困难,今天解决的进度,以及明天要的事情 昨天的困难:我们小组三位成员的界面美化能力不够强,再加上对css及bootstrap不太熟悉,导致我们美化界面的过程不是一帆风顺。之前虽然研究了github的用法,但是...
  • 课程设计心得体会8篇课程设计是一个有目的、有计划、有结构产生课程计划、课程标准以及教材等系统化活动。以下是小编整理课程设计心得体会,欢迎大家参考!...在后来制作过程中遇到了很多困难,...
  • caffe上手:mnist学习

    2017-04-05 23:22:12
    因为以前从来没用过Linux和ubuntu这种命令行操作系统,所以学习过程中还是遇到了不少困难,这里记录一下,供自己和大家参考。 首先学习了caffe官网上example,最简单使用LeNet识别Mnist手写数字训练集:...
  • 在绘制这一章新增了基于物理光照明模型,透明效果,阴影生成,纹理映射,以及锥光束、平面光束、笔形光束和随机光线跟 踪算法;详细讨论了光辐射度基础,统一颜色空间,彩色图象量化和印刷介质上颜色重现等新...
  • 我想,虽然第二版有着这样那样变化,但有一点没有变,那就是本书试图将我在编写自己操作系统的过程中的经验尽可能地告诉读者,同时尽可能将我当初思路和编码过程呈现出来。很可能读者比我更聪明,有更好解决...
  • 我想,虽然第二版有着这样那样变化,但有一点没有变,那就是本书试图将我在编写自己操作系统的过程中的经验尽可能地告诉读者,同时尽可能将我当初思路和编码过程呈现出来。很可能读者比我更聪明,有更好解决...
  • 只知道课本上相关名词,实物是什么样子确实不了解,但是因为这次计算机组装实验,我了解到内存条、CPU、显卡等这些各部件样子,位置,以为很简单的实验,确在我们重装CPU时候遇到困难,后来经过仔细观察,...
  • 本书基于Windows或Linux操作系统讨论数据库,但可以在Oracle支持任何平台上完成练习并更深入研究。  从此将开始您Oracle数据库管理学习之旅,在职业生涯余下岁月里,可以沿着这条幽静芳香路径步入更...
  • 软件工程教程

    热门讨论 2012-07-06 23:10:29
    在软件开发和维护过程中遇到的一系列严重问题 软件危机的表现 对软件开发成本和进度的估算很不准确 用户很不满意 质量很不可靠 没有适当的文档 软件成本比重上升 供不应求:软件开发生产率跟不上计算机应用...
  • JAVA自学之路

    2012-09-21 20:39:46
    阅读英文书籍就是如此,不是想象中的那么困难:)宁可在沙场上战死,也不能被吓死不是吗:) 信息筛选,搜索出来结果不见得能够完全匹配,建议大家多阅读前几页搜索结果,多打开几个网页看看,不过,我...
  • 于是,我们现在面临经济学经常遇到的一个难题:如何使用二维的图形表达一个多维的函数关系?方程式212就是应用这种分析技巧进行简化的结果:  Qd=f(P,Ps,Pc,I,N,…) (2.1.2) 决定需求量的参数可分为两...
  • c语言编写单片机技巧

    2009-04-19 12:15:17
    PACKAGE TEST目的是在确定IC在封装过程中是否有任何损坏。 16. 能否利用单片来检测手机电池充放电时间及充放电时电压电流变化,并利用一个I/O端口使检测结果在电脑上显示出来? 答:目前市场上各类...
  • 别忘了许多 css 的实验属性都需要加上浏览器前缀,除非用库把强大 autoprefixer 再实现一遍。 使用 className 可以很好加上前缀,在追查文件时能得到清晰定位,下面是我们对 CSS 命名空间...
  • 利用是双目成像技术,把左图和右图合起来提取出空间点,用光流在上面,就能把场景流动分析出来。 光流也可以利用深度学习模型来,把左右两图用同样模型来提取特征,经过计算就能得出一个深度...
  • 4. 贝叶斯优化:使用贝叶斯优化超参数,会遇到贝叶斯优化算法本身就需要很多的参数的困难。 5. 在良好初始猜测的前提下进行局部优化:这就是 MITIE 的方法,它使用 BOBYQA 算法,并有一个精心选择的起始点。由于 ...
  • 7.因Windows 7仍在测试过程中,目前仅部分厂商提供了Windows 7驱动程序。我们在“完全更新”中为Windows 7用户提供了Vista驱动作为一种备选方案。经测试大多数Vista驱动可以在Windows 7下正常工作。 8.多处用户...

空空如也

空空如也

1 2
收藏数 25
精华内容 10
关键字:

做实验过程中遇到的困难