精华内容
下载资源
问答
  • 利用MATLAB和Robot toolbox的一个简单的三轴机器人GUI,可以实现正逆运动学演示和内部teach()函数类似。teach函数是由slider控制的,这个GUI是用可编辑文本输入数字完成。
  • 超分辨率的matlab工具箱与GreySystemToolboxv10Matlab-Grey System Toolbox v1.0.rar 超分辨率的matlab工具箱与Grey System Toolbox v1.0.压缩包里有很详细说明,是全部程序,还有一个word文档。
  • Matlab_Robotic_Toolbox_v9.8是一个功能强大机器人工具箱,包含了机器人正、逆向运动学,正、逆向动力学,轨迹规划等等,其中可视化仿真使得学习抽象机器人学变得相对直观、好理解。学习这个工具箱,对理解...

    强大的MATLAB机器人工具箱Matlab_Robotic_Toolbox_v9.8及教程

    Matlab_Robotic_Toolbox_v9.8是一个功能强大的机器人工具箱,包含了机器人正、逆向运动学,正、逆向动力学,轨迹规划等等,其中的可视化仿真使得学习抽象的机器人学变得相对直观、好理解。学习这个工具箱,对理解机器人学很有帮助。
    
    工具箱的安装:将Matlab_Robotic_Toolbox_v9.8.rar解压后,放在matlab的安装目录下,最好是放在toolbox文件夹里,利用matlab的工具栏的setpath,将文件夹Matlab_Robotic_Toolbox_v9.8\rvctools设置为matlab的搜索目录,在command window输入“startup_rvc”,安装工具箱。最后,你可以在command window输入“ver”,查看机器人工具箱是否已经安装成功了。command window会列出所有的工具箱,其中Robotics Toolbox已经包含在里面。
    

    文件:n459.com/file/25127180-478390613

    以下内容无关:

    -------------------------------------------分割线---------------------------------------------
    大家好,今天分享的主题是《eBPF 探索之旅》,围绕三部分展开:

    eBPF 是什么

    eBPF 能做什么

    如何编写 eBPF 程序

    认识 eBPF
    eBPF 是什么,从字面上来看是扩展伯克利包处理器,那伯克利包处理器是什么呢?

    在此之前先来了解一个性能优秀的常用抓包工具:tcpdump

    tcpdump

    图中展示了两个常用指令

    指令一:指定 IP 和端口,可以抓到 IP 为 220.173.103.227,端口为 80 的包

    指令二:加上 grep,可以过滤出带有 route 字段的数据

    那么 tcpdump 又是如何做到通过用户提供的规则处理网络上收到的包,再 copy 给用户的呢?如果放在用户层,就需要在系统里所有 socket 读写的时候做一层处理,把规则放上去,这样做难度太大。而 tcpdump 是基于 libpcap 库实现的,libpcap 能做到在驱动将包交给内核网络时,把包取过来,通过用户传给 libpcap 的规则将需要的网络包 copy 一份给用户,再把包传给内核网络栈,而之所以 libpcap 能做到这点全靠 BPF。

    BPF

    BPF 是基于寄存器虚拟机实现的,支持 jit,比基于栈实现的性能高很多。它能载入用户态代码并且在内核环境下运行,内核提供 BPF 相关的接口,用户可以将代码编译成字节码,通过 BPF 接口加载到 BPF 虚拟机中,当然用户代码跑在内核环境中是有风险的,如有处理不当,可能会导致内核崩溃。因此在用户代码跑在内核环境之前,内核会先做一层严格的检验,确保没问题才会被成功加载到内核环境中。

    eBPF:BPF 的扩展

    回到 eBPF,它作为一个 BPF 的扩展,都扩展了些什么呢?

    首先在功能上,不仅仅局限于网络,它能够借助 kprobe 获取内核函数运行信息,这样调试内核就不需要 gdb 或者加入内核探点重新编译内核。

    可以借助 uprobe 获取用户函数的运行信息,kprobe 和 uprobe 不仅能获取函数运营信息,还可以获取代码执行到了哪一行时的寄存器以及栈信息,其原理可以理解为在某个指令打断点,当 cpu 执行到这个断点的时候,cpu 会保存当前的寄存器信息,然后单步执行断点持载的 handler,也是想要在内核中执行的逻辑,执行完成后 cpu 会回到这个断点的位置,恢复寄存器的状态,然后继续运行下去。

    支持 tracepoint,即在写代码中加入 trace 点,获取执行到这点时的信息。

    可以嵌入到 perf_event 中。我们熟知的 XDP 以及 tc 都是基于 eBPF 实现的,并且在性能上有着不俗的表现。

    eBPF 的功能
    系统性能监控/分析工具:能够实现性能监控工具、分析工具等常用的系统分析工具,比如 sysstate 工具集,里面提供了 vmstate,pidstat 等多种工具,一些常用的 top、netstat(netstat 可被 SS 替换掉),uptime、iostat 等这些工具多数都是从 /proc、/sys、/dev 中获取的会对系统产生一定的开销,不适合频繁的调用。比如在使用 top 的时候通过 cpu 排序可以看到 top cpu 占用也是挺高的,使用 eBPF 可以在开销相对小的情况下获取系统信息,定时将 eBPF 采集的数据 copy 到用户态,然后将其发送到分析监控平台。

    用户程序活体分析:做用户程序活体分析,比如 openresty 中 lua 火焰图绘制,程序内存使用监控,cdn 服务异常请求分析,程序运行状态的查看,这些操作都可以在程序无感的情况下做到,可以有效提供服务质量。

    防御攻击:比如 DDoS 攻击,DDoS 攻击主要是在第七层、第三层以及第四层。第七层的攻击如 http 攻击,需要应用服务这边处理。第四层攻击,如 tcp syn 可以通过 iptable 拒绝异常的 ip,当然前提是能发现以及难点是如何区分正常流量和攻击流量,简单的防攻击会导致一些误伤,另外 tcp syn 也可以通过内核参数保护应用服务。第 3 层攻击,如 icmp。对于攻击一般会通过一些特殊的途径去发现攻击,而攻击的防御则可以通过 XDP 直接在网络包未到网络栈之前就处理掉,性能非常的优秀。

    流控:可以控制网络传输速率,比如 tc。

    替换 iptable:在 k8s 中 iptable 的规则往往会相当庞大,而 iptable 规则越多,性能也越差,使用 eBP 就可以解决,关于这方面有很多开源的实践可以参考。

    服务调优:如下图所示,在 cdn 服务中难免会出现一些指标突刺的情况,这种突刺拉高整体的指标,对于这种突刺时常会因为找不到切入点而无从下手,eBPF 存在这种潜力能帮助分析解决该问题,当 eBPF 发现网络抖动,会主动采集当时应用的运行状态。

    eBPF 程序实践
    编写 eBPF 程序的内核最低也要是 3.15,此版本刚好可以支持 eBPF ,但这时 eBPF 支持的特性比较少,不建议使用,最好是 4.8 以上的内核,内核越新 eBPF 支持的功能就越成熟。另外像 kprobe、uprobe、traceport 相关的参数要开起来,否则只能用 BPF的某些特性,而无法使用eBPF 的特性,相当于是空壳。通过路径 /lib/modules/uname-r/source/.config 或者在 /boot/ 下查找对应版本的内核 config 来查看系统是否开启了所需的参数。

    编写 eBPF 程序的对环境也有一定的要求。eBPF 代码需要编译成 llvm 的字节码,才能够在 eBPF 及虚拟机中运行,因此需要安装 llvm 以及 clang,安装好之后可以通过 llc 来查看是否支持 BPF。

    eBPF 代码示例

    内核、环境都准备好后就可以开始编写工作了。如果是不借助任何工具直接手写一个 eBPF 程序会非常的困难,因为内核提供的文档对如何编写 eBPF 程序的说明是比较缺乏的。当然内核也有提供工具,在内核包中的 bpftool 工具。推荐是使用工具 bcc,它能够降低写 BPF 程序的难度,提供了python、lua 的前端。以 python 为例,只需要写好需要载入 eBPF 的 C代码,再通过 bcc 提供的 BPF 类就可以将代码载入到 eBPF 虚拟机中,执行 python 程序,代码就可以运行起来了。

    图中是 bcc 工具的使用例子,代码非常简单,导入一下 BPF,进行 BPF 初始化。

    text 是要执行的代码,里面是一个函数

    kprobe__schedule 内容是调用 bpf_trace_printk(“hello world\n”);return 0

    kprobe__schedule 的含义是用 kprobe的 特性在内核调用 schedule 函数的时候调用 bpf_trace_printk,打出 hello world

    bpf_trace_printk 会把这些输出到 /sys/kernel/debug/tracing/trace_pipe 里,后面的 trace_print 就可以把数据打印出来

    下面是通过 kprobe 监控机器 tcp(ipv4)的连接状态变化。首先需要知道 tcp 状态变化时内核会调用哪些函数。除了 time-wait 状态之外,其他状态基本上是通过 tcp_set_state 设置的。在 time-wait 阶段的时候,内核会创建一个新的结构体去存 time-wait 的 socket,内核考虑到内存的开销问题,之前的 socket 会释放掉。先不考虑 time-wait。

    接下来看看具体的代码,上图中是载入到 eBPF 的 C 代码。

    最上面的 BPF_HASH 表示创建一个 BPF 提供的 HASH 表;last 是 HASH 表的名称;struct sock* 是指 key 的大小,这里表示指针大小;uint64_t 是 value 的大小,为 64 位;最后的 10240 表示 map 最多能够放多少个元素。

    往下是一个结构体 bcc_tcp_state,可以看到后面有一个 BPF_PERF_OUTPUT,它是利用到了 perf ring buffer 的一个特性。

    再下面是函数 get_tcp_state_change,该函数会在内核调用 tcp_set_state 的时候调用。

    通过内核的几个参数,内核的结构体 socket,以及这个函数传进来的一些 state,可以获取当时 tcp 连接的状态转化情况,上图函数的第一个参数 ctx 实际上是寄存器,后面是要介入函数的两个参数。这里会把一些 tcp 的状态存起来,使用 perf_submit 将这些状态更新到 perf ring buffer 中,就可以在用户态把 perf ring buffer 东西给读出来,这就是 tcp 的一些状态变化。

    上图是 python 代码。

    首先把 C 代码读进来,通过调用 bpf 初始化,将代码编译成 eBPF 字节码,载入到 eBPF 虚拟机中运行。

    下面是 attach_kprobe,就是在内核调用 tcp,event 是指内核在调用 tcp_set_state 的时候,fn_name 是指内核在调用 tcp_set_state 时会执行 get_tcp_state_change 函数,就是前面 C 代码中的函数。

    打开 perf ring buffer,即后面调用的 bpf[“state_events”].open_perf_buffer,里面的参数是一个 Callback 函数,在ring buffer 有数据的时候就会调用一次 print_state,也就是说在 C 代码中调用 perf_sumbit 时候就可以调用一次 print_tcpstats 函数,并会输出存入的数据。

    最下面调用了 perf_buffer_poll的功能,只会在 ring buffer 有消息时被唤醒,再调用 Callback 函数,这样就不会无谓地浪费 CPU。

    利用 uprobe 查看应用服务信息

    上图是通过 uprobe 查看 nginx 请求分布的情况。首先要看 nginx 创建请求的位置,是在 ngx_http_create_request,和之前一样写一个要嵌入 eBPF 虚拟机的 C 代码,还是创建一个 HASH 表,名称是 req_distr,key 是 32 位大小,value 是 64 位,核心函数是 check_ngx_http_create_request,在 nginx 调用该函数时,会执行这个钩子函数,函数内部调用的是 count_req。把 PID 和 PID 上创建的请求次数对应起来,当 PID 调用过 ngx_http_create_request 时,请求计数就会 +1。如此也就可以看到整个请求在各个 work 上的分布情况。

    图中是 python 代码,同样把 C 代码读进来,并调用 bbf 把代码编译成 llvm 字节码,载入到 eBPF 虚拟机中,再调用 attach_uprobe。name 是指 nginx 的一个二进制文件,sym 是指要在哪个函数中打个断点,上图是 ngx_http_create_request 函数。fn_name 是在 ngx_http_create_request 函数执行的时候需要调用的函数。另外需要注意二进制文件必须要把编译符号开放出来,比如编译的时加个 -g,否则会找不到这个函数。最下面是简单地获取 HASH 表,去输出 HASH 表的 key 和 value,这样就能看到 pid 对应的 request 数量,pid 也就会对应着 worker,如此就能够查看到运行 nginx 的请求分布情况。

    查看运行中的 eBPF 程序与 map

    可以通过内核包中 bpftool 提供的 bpftool 工具查看,它的目录是在 /lib/modules/uname-r/tools/bpf/bpftool 中,需要自己编译一下,在 /lib/modules/uname-r/tools 下执行 make-C/bpf/bpftool 就可以了。

    上图是 bpftool 工具查看 map(前面 BPF_HASH 创建的)情况的效果,-p 参数,能够展示得好看一些。prog 参数可以把在虚拟机中跑的程序给展示出来。这样就能看到到底运行了那些 eBPF 程序以及申请的 map。

    展开全文
  • MATLAB的Symbolic Math Toolbox详解

    千次阅读 2019-01-31 01:12:42
    MATLAB Symbolic工具箱入门创建符号数字,变量和表达式    创建符号数字    创建符号变量如何改变文本样式插入链接与图片如何插入一段漂亮代码片生成一个适合你列表创建一个表格设定内容居中、居左、...




    入门

    创建符号数字,变量和表达式

          下面将展示如何创建符号数字,变量和表达式。

        创建符号数字

          你可以使用sym创建符号数字。符号数字用精确的有理数表示。
          通过sym创建符号数字并与相同的浮点数对比

    sym(1/3)
    1/3
    
    ans =
    1/3
    ans = 
    	0.333
    

          符号结果不缩进,数值结果缩进。
          符号计算的结果是精确的,而数值计算的结果是近似的。

    sin(sym(pi))
    sin(pi)
    
    ans =
    0
    ans =
        1.2246e-16
    

        创建符号变量

          你有两种方法创建符号变量,分别是symssymsymssym的简写。
          分别使用symssym创建符号变量xy

    syms x
    y = sym('y')
    

          第一条命令创建了一个值为x的符号变量x。第二条命令创建了一个值为y的符号变量y
          你可以使用syms在一条命令中创建多个变量

    syms a b c
    

          你也可以使用sym在一条命令中创建多个变量

    A = sym('a', [1 20])
    
    A =
    [a1, a2, a3, a4, a5, a6, a7, a8, a9, a10,...
    a11, a12, a13, a14, a15, a16, a17, a18, a19, a20]
    

          当你所创建的符号变量的变量名和变量值不相同时,或者要创建符号数字时,则要使用sym

        创建符号表达式

          黄金比例
    1+52 \frac{1+\sqrt{5}}{2}
          使用下面这条命令即可用符号变量表示黄金比例

    phi = (1 + sqrt(sym(5)))/2;
    

          你可以对phi执行各种数学运算。例如

    f = phi^2 - phi - 1
    
    f =
    (5^(1/2)/2 + 1/2)^2 - 5^(1/2)/2 - 3/2
    

          要创建符号表达式f = phi^2 - phi - 1,首先要创建符号变量a, b, c,x:

    syms a b c x
    

          然后把表达式赋给f:

    f = a*x^2 + b*x + c;
    

        重复使用符号对象名

          如果你设置了一个变量等于一个符号表达式,例如

    syms a b
    f = a + b
    
    f = 
    a + b
    

          接着输入

    syms f
    
    f = 
    f
    

          MATLAB则会清除符号表达式f的值a + b
          所以你可以使用syms命令清除原先赋给变量的值。

    创建符号函数

    使用syms创建自变量为xy的函数f。创建符号函数f的同时会自动创建符号变量xy

    syms f(x,y)
    

    把一个数学表达式赋给f

    f(x,y) = x^2*y
    
    f(x, y) =
    x^2*y
    

    找到函数f在点(3,2)的值

    f(3,2)
    
    ans =
    18
    

    符号函数同时也接受数组作为输入

    xVal = 1:5;
    yVal = 3:7;
    f(xVal,yVal)
    
    ans =
    [ 3, 16, 45, 96, 175]
    

    你可以对符号函数进行微分,积分,化简,用自变量本身作为输入值,和其他数学运算。例如函数fx求导

    dfx = diff(f, x)
    
    dfx(x,y) =
    2*x*y
    

    dfx也是一个符号函数
    计算df(x,y)在点x = y + 1处的值

    df(y+1,y)
    
    ans =
    2*y*(y + 1)
    

    如果你想创建常函数,比如f(x,y) = 1,你可以首先创建f(x,y),然后再进行赋值

    syms f(x,y)
    f(x,y) = 1
    
    f(x, y) =
    1
    

    如果不先创建符号函数f(x,y) 就直接进行赋值 f(x,y) = 1,则会抛出错误。

    创建符号矩阵

        使用存在的符号变量

          创建一个其元素为a, b, c的循环矩阵

    syms a b c
    A = [a b c; c a b; b c a]
    
    A =
    [ a, b, c]
    [ c, a, b]
    [ b, c, a]
    

          计算矩阵第一行元素的和

    sum(A(1, : ))
    
    ans =
    a + b + c
    

          使用isAlways函数,验证第一行元素之和等于第二列元素之和

    isAlways(sum(A(1, : )) == sum(A( : , 2)))
    
    ans =
      logical
       1
    

        创建矩阵的同时生成元素

          sym函数使你在创建符号矩阵或向量时无需提前定义元素。sym函数在创建符号矩阵的元素的同时创建矩阵。创建一个元
          素为A1_1, …, A2_4的2×4符号矩阵:

    A = sym('A', [2 4])
    
    A =
    [ A1_1, A1_2, A1_3, A1_4]
    [ A2_1, A2_2, A2_3, A2_4]
    

          可以在第一个参数中使用%d来控制矩阵元素的名字格式:

    A = sym('A%d%d', [2 4])
    
    A =
    [ A11, A12, A13, A14]
    [ A21, A22, A23, A24]
    

        创建元素为符号数字的矩阵

          sym函数的一个特别有用的功能是把数值矩阵转换为符号矩阵。
          产生一个3×3希尔伯特矩阵

    A = hilb(3)
    
    A =
        1.0000    0.5000    0.3333
        0.5000    0.3333    0.2500
        0.3333    0.2500    0.2000
    

          函数sym作用于A后,可得到一个精确的3×3希尔伯特符号矩阵

    A = sym(A)
    
    A =
    [   1, 1/2, 1/3]
    [ 1/2, 1/3, 1/4]
    [ 1/3, 1/4, 1/5]
    

    符号计算

        符号表达式的微分

          1. 单变量表达式求导
          使用函数diff对符号表达式求导:

    syms x
    f = sin(x)^2;
    diff(f)
    
    ans =
    2*cos(x)*sin(x)
    

          2. 偏导数
          对于多变量符号表达式,你可以指定对哪个变量进行求导。如果你没有指定任何变量,MATLAB将选
          择距离字母x最近的变量进行求导:

    syms x y
    f = sin(x)^2 + cos(y)^2;
    
    ans =
    2*cos(x)*sin(x)
    

          符号表达式f对变量y的偏导数:

    syms x y
    f = sin(x)^2 + cos(y)^2;
    diff(f, y)
    
    ans =
    -2*cos(y)*sin(y)
    

          3. 二阶偏导数和混合求导
          符号表达式f对变量y的二阶偏导数:

    syms x y
    f = sin(x)^2 + cos(y)^2
    diff(f, y, 2)
    
    ans =
    2*sin(y)^2 - 2*cos(y)^2
    

          执行 diff(diff(f, y)) 可以得到相同的结果。
          混合求导:

    syms x y
    f = sin(x)^2 + cos(y)^2;
    diff(diff(f, y), x)
    
    ans =
    0
    

        符号表达式的积分

          1. 单变量符号表达式的不定积分

    syms x
    f = sin(x)^2;
    int(f)
    
    ans =
    x/2 - sin(2*x)/4
    

          2. 多变量符号表达式的不定积分

    syms x y n
    f = x^n + y^n;
    int(f)
    
    ans =
    x*y^n + (x*x^n)/(n + 1)
    

          符号表达式f也可以对变量y进行积分:

    syms x y n
    f = x^n + y^n;
    int(f, y)
    
    ans =
    x^n*y + (y*y^n)/(n + 1)
    

    同理,f对变量n进行积分

    syms x y n
    f = x^n + y^n;
    int(f, n)
    
    ans =
    x^n/log(x) + y^n/log(y)
    

          3. 定积分
          函数int的最后两个参数用于指定积分上下限(倒数第二个参数指定积分下限,最后一个参数指定积分
          上限)

    syms x y n
    f = x^n + y^n;
    int(f, 1, 10)
    
    ans =
    piecewise(n == -1, log(10) + 9/y, n ~= -1,...
     (10*10^n - 1)/(n + 1) + 9*y^n)
    

          3. 如果MATLAB无法找到积分的闭合形式
          如果函数int无法计算出积分,它将返回一个未经处理的积分

    syms x
    int(sin(sinh(x)))
    
    ans =
    int(sin(sinh(x)), x)
    

        解方程

          1. 解一元方程
          用 == 定义一个方程

    syms x
    solve(x^3 - 6*x^2 == 6 - 11*x)
    
    ans =
    1
    2
    3
    

          如果不指定方程右半部分,函数solve将假定它为0:

    syms x
    solve(x^3 - 6*x^2 + 11*x - 6)
    
    ans =
    1
    2
    3
    

          2. 解包含多个元的方程

    syms x y
    solve(6*x^2 - 6*x^2*y + x*y^2 - x*y + y^3 - y^2 == 0, y)
    
    ans =
        1
        2*x
       -3*x
    

    如果你不指定任何变量,MATLAB将选择距离字母x最近的变量。
          3. 解方程组

    syms x y z
    [x, y, z] = solve(z == 4*x, x == y, z == x^2 + y^2)
    
    x =
     0
     2
     
    y =
     0
     2
    
    z =
     0
     8
    

        化简符号表达式

          符号数学工具箱提供了一套化简函数供你去操作符号表达式。

    phi = (1 + sqrt(sym(5)))/2;
    f = phi^2 - phi - 1
    
    f =
    (5^(1/2)/2 + 1/2)^2 - 5^(1/2)/2 - 3/2
    

          你可以通过函数simplify化简这个答案

    simplify(f)
    
    ans =
    0
    

          注:本小节未完待续

        符号表达式中的替换

          注:本小节未完待续

        绘制符号函数

          符号数学工具箱提供的绘图函数:
          - fplot用来在二维笛卡尔坐标系上绘制符号表达式,方程或者函数。
          - fplot3用来绘制3D图形
          - fsurf用来绘制曲面图

          1. 绘制显函数

          使用fplot在二维坐标系上绘制表达式x3-6x2+11x-6

    syms x
    f = x^3 - 6*x^2 + 11*x - 6;
    fplot(f)
    

    在这里插入图片描述
          给x轴和y轴添加标签。使用texlabel(f)生成标题。使用grid on显示网格。

    xlabel('x')
    ylabel('y')
    title(texlabel(f))
    grid on
    

    在这里插入图片描述
          2. 绘制隐函数

          使用fimplicit绘制方程和隐函数。
          绘制方程(x2+y2)4=(x2-y2)2,其中-1<x<1。

    syms x y
    eqn = (x^2 + y^2)^4 == (x^2 - y^2)^2;
    fimplicit(eqn, [-1 1])
    

    在这里插入图片描述
          3. 3D绘制
          使用fplot3绘制3D参数线。
          绘制参数线
                x = t2sin(10t)
                y = t2cos(10t)
                z = t

    syms t
    fplot3(t^2*sin(10*t), t^2*cos(10*t), t)
    

    在这里插入图片描述
          4. 绘制曲面图
          使用fsurf绘制3D曲面图。
          绘制抛物面z = x2 + y2

    syms x y
    fsurf(x^2 + y^2)
    

    在这里插入图片描述

    展开全文
  • 完整雷达系统仿真MATLAB源代码
  • 一个deeplearning 的toolbox,为matlab开发环境,包含cnn,sae,dbn等模型
  • Control配套,是 Peter Corke课题组开发与维护的一个用于机器人编程与仿真的工具箱(网站http://www.petercorke.com) 安装教程 1. **解压工具箱**,将Matlab_Robotic_Toolbox_v10.2.rar解压后,放在matlab的安装...

    Matlab_Robotic_Toolbox_v10.2
    Matlab_Robotic_Toolbox工具箱与图书Robotics, Vision & Control配套,是 Peter Corke课题组开发与维护的一个用于机器人编程与仿真的工具箱(网站http://www.petercorke.com),常用于机器人建模、运动学和动力学解算。

    安装教程:

    1. **解压工具箱**,将Matlab_Robotic_Toolbox_v10.2.rar解压后,放在matlab的安装目录的toolbox文件夹里;
    2. **设置路径**,用matlab的工具栏的setpath,将文件夹rvctools设置为matlab的搜索路径;
    3. **安装工具箱**,在command window输入“startup_rvc”,安装工具箱;
    4. **验证安装**,在command window输入“ver”,验证安装信息。

    另外,MATLAB自带的工具箱[Robotics system toolbox](https://www.mathworks.com/help/robotics/index.html),主要是关于机器人系统MATLAB/Simulink与ROS的接口,以及常用的机器人算法。

    Robotics System Toolbox™ provides tools and algorithms for designing, simulating, and testing manipulators, mobile robots, and humanoid robots. For manipulators and humanoid robots, the toolbox includes algorithms for collision checking, trajectory generation, forward and inverse kinematics, and dynamics using a rigid body tree representation. For mobile robots, it includes algorithms for mapping, localization, path planning, path following, and motion control. The toolbox provides reference examples of common industrial robot applications. It also includes a library of commercially available industrial robot models that you can import, visualize, and simulate.

    You can develop a functional robot prototype by combining the kinematic and dynamic models provided. The toolbox lets you co-simulate your robot applications by connecting directly to the Gazebo robotics simulator. To verify your design on hardware, you can connect to robotics platforms and generate and deploy code (with MATLAB Coder™ or Simulink Coder™).

    Robotics System Toolbox基本命令:

     rosinit

    rosinit

    初始化ROS,默认在Matlab中创建ROS主节点并启动全局节点与主节点相连。

    rosnode

    rosnode

    rosnode list

    nodelist = rosnode('list')

    列出在ROS网络注册的所有节点

    rosnode info nodename

    nodeinfo = rosnode('info',nodename)

    返回一个结构体,该结构体包含指定节点nodename的名称、URI、发布者、订阅者、服务。

    rosnode('ping',nodename)

    与指定节点nodename进行通信测试并显示响应时间

     rostopic

    rostopic

    rostopic list

    topiclist = rostopic('list')

    从ROS主机返回ROS主题列表

    rostopic echo topicname

    msg = rostopic('echo',topicname)

    从ROS主机返回有关指定主题 topicname的消息

    rostopic info topicname

    topicinfo = rostopic('info',topicname)

    返回指点主题topicname的消息类型、发布者、订阅者

    rostopic type topicname

    msgtype = rostopic('type',topicname)

    返回指定主题的消息类型

     rosservice

    rosservice

    rosservice list

    svclist = rosservice('list')

    返回ROS网络中的活动服务器的服务名称列表

    rosservice info svcname

    svcinfo = rosservice('info',svcname)

    返回指定服务svcname的信息

    rosservice type svcname

    svctype = rosservice('type',svcname)

    返回服务类型

    rosservice uri svcname

    svcuri = rosservice('uri',svcname)

    返回服务的URI

    展开全文
  • Matlab-Deep Learning Toolbox

    2019-04-08 21:32:13
    Deep Learning Toolbox™提供了一个框架,用于设计和实现具有算法,预训练模型和应用程序深度神经网络。您可以使用卷积神经网络(ConvNets,CNN)和长期短期记忆(LSTM)网络对图像,时间序列和文本数据进行分类和...
  • 我分享一个license中没有包含该license,这个license明显大很多,应该是完整 Error using sym License checkout failed. License Manager Error -5 Cannot find a license for Symbolic_Toolbox. Troubleshoot...
  • Peter为了方便教学和研发,他和他团队开发了Robotics Toolbox这么一个工具箱。工具箱介绍和安装方法都在下面这个链接中可以找到 https://petercorke.com/toolboxes/robotics-toolbox/ 官方给了三种安装方法,个人...

    Matlab中关于机器人的应用程序还是蛮多的。Peter为了方便教学和研发,他和他的团队开发了Robotics Toolbox这么一个工具箱。

    工具箱介绍和安装方法都在下面这个链接中可以找到 https://petercorke.com/toolboxes/robotics-toolbox/

    官方给了三种安装方法,个人选择其中一个比较方便的方式介绍给大家,以便大家快速安装。

    1)下载软件包。

    进入官方主页,往下翻到Install from .mltbx file介绍部分,点击下方链接下载RTB10.4.mltbx。(本文写在2020年5月。官方主页有时会变,软件也可能会更新,只要找到mltbx文件下载下来就好)

    f5a07ce4c45050b6bb6dd78e862dc3f1.png

    2)安装。

    将下载好的RTB10.4.mltbx移动到matlab的工作文件夹下。打开matlab,在matlab浏览器找到安装包,双击打开。选择合适的文件夹进行安装。

    d17713797e67ad531c8b777ee7002df5.png

    3)尝试使用。

    在matlab命令窗口,执行命令。

    >> rtbdemo

    8df8e79c1725606c26ed6e9e5acbafd5.png

    安装完成!

    4)DH法6轴模型显示例程

    %机械臂为六自由度机械臂
    
    展开全文
  •  Matlab_Robotic_Toolbox_v9.10是一个功能强大机器人工具箱,包含了机器人正、逆向运动学,正、逆向动力学,轨迹规划等等,其中可视化仿真使得学习抽象机器人学变得相对直观、好理解。学习这个工具箱,对理解...
  •  Matlab_Robotic_Toolbox_v9.8是一个功能强大机器人工具箱,包含了机器人正、逆向运动学,正、逆向动力学,轨迹规划等等,其中可视化仿真使得学习抽象机器人学变得相对直观、好理解。学习这
  • MATLAB Robotics System Toolbox学习笔记(一):一步一步建造一个机械臂 本文参考 MathWorks 中 Help Center Build a Robot Step by Step ,并加以自己理解 原网址:...
  • 但是说实话,这样做有些疏于实现,一来呢自己的电脑也不是很好,二来呢我目前也没能力自己去写一个toolbox 只是跟着Andrew Ng的UFLDL tutorial写了些已有框架的代码(这部分的代码见github) 后来发现了一个matlab的...
  • 专发别人的,用Robotics Toolbox for MATLAB的一个PUMA560机器人的仿真界面,可以仿真运动学的正逆问题和动力学正逆问题,轨迹规划等问题
  • 下面以添加一个fecgsyn-master工具箱为例,讲诉给Matlab添加工具箱方法。 Matlab Toolboxes 下载网站: http://fernandoandreotti.github.io/fecgsyn/ 2、解压拷贝至文件夹 将下载文件解压,然后将该文件夹拷...
  • MATLAB的一个工具箱Robotic,可用于机器人的运动学和动力学仿真,有相关的安装说明。
  • MATLAB HMM toolbox

    2009-05-20 22:47:38
    MATLAB HMM toolboxMATLAB的一个关于隐马尔可夫模型的工具箱
  • Matlab】记录几常用的Matlab toolbox

    千次阅读 2017-10-06 16:32:13
    一个好用SVM toolbox,支持多种语言 http://www.csie.ntu.edu.tw/~cjlin/libsvm/Hidden Markov Model http://www.cs.ubc.ca/~murphyk/Software/HMM/hmm.htmlVLFeat 一个大杀器,好用库特别多,不过我只用过K-...
  • Matlab添加toolbox

    千次阅读 2017-08-10 17:19:54
    由于科研需要,为matlab添加一个toolbox—manopt,先来简单介绍一下这个工具包,它专门用于简化最先进黎曼优化算法,通过内部处理大部分微分几何,解决非线性优化问题。它是一个用于优化三维形状工具包,三维...
  • matlab命令行添加toolbox

    2018-10-17 23:13:12
    然后解压,到一个文件夹下面 sudo chmod 755 XXX -R 确保XXX这个目录以及目录下文件权限都是rwxr-xr-x 之后把这个目录移动到/usr/local/MATLAB/R2018a/toolbox下 输入以下命令 addpath /usr/local/MATLAB/R2018a/...
  • 这里写自定义目录标题前记创建一个机器人并显示刚体树类功能快捷键合理创建标题,有助于目录生成如何改变文本样式插入链接与图片如何插入一段漂亮代码片生成一个适合你列表创建一个表格设定内容居中、居左...
  • Peter为了方便教学和研发,他和他团队开发了Robotics Toolbox这么一个工具箱。工具箱介绍和安装方法都在下面这个链接中可以找到 https://petercorke.com/toolboxes/robotics-toolbox/ 官方给了三种安装方法,个人...
  • Matlab中Robotics toolbox的安装及使用

    万次阅读 多人点赞 2017-10-13 18:56:24
    安装robotics toolboxRobotics Toolbox官网1 下载第一个(.mltbx)可以直接打开安装,如果出现内存不足话建议下载第二个安装包(.zip)格式 第二个安装包,将解压后文件夹”rvctools”复制到matlab安装路径下...
  • 下拉页面找到RTB10.4.mltbx文件,下载后放到matlab安装路径的toolbox中(其实也可以随便放个地方),打开matlab在搜索框中找到文件路径并添加到路径中(可以把文件放在一个自建文件夹中,会看起来整齐点),然后
  • 环境:Ubuntu 12.04, Matlab 2013b, GStreamer 0.10 matlab toolboxcomputer vision支持图像和视频处理, GStreamer是一个开源多媒体框架...
  • 相机标定目的是确定相机几何和光学参数以及相机相对于世界...calibration toolbox作为一个标定工具,容纳了如Tsai、Faugeras等多种经典标定方法,从自主标定使用方面详细介绍了calibration toolbox的使用方法。
  • 1 引 言 ... 像生物学神经系统一样,一个神经网络会学习,因此,也就可以被训练去解决问题,识别模式,划分数据和预测事态发展。神经网络行为由它各个计算参数结合方式以及它们权重来决定。一
  • 上次在笔记本上用Matlab2010b优化工具箱学习遗传算法求解器操作时,出现了一个非常郁闷问题: 按照书上步骤,我设定适应函数,变量个数,其他参数默认情况下,点击开始按钮,提示框出现‘Optimization ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 677
精华内容 270
关键字:

matlab的一个toolbox

matlab 订阅