智能机器人与旋量代数(12)

Chapt 4. 旋量代数在机器人学中的应用

4.1 串联机器人正运动学的指数积(PoE, Product of Exponetial)公式

4.1.1 回顾:机器人正运动学的Denavit-Hartenberg (D-H)参数公式

D-H 建模法: D-H 建模方法是由 Denavit 和 Hartenberg (ASME, 1955) 提出的一种建模方法,主要用在机器人运动学上。此方法在机器人的每个连杆上建立一个坐标系,通过齐次坐标变换实现两个连杆上的坐标变换,建立多连杆串联系统中首末坐标系的变换关系。
在这里插入图片描述

D-H 建模方法的几个要点如下:

a. 建立连杆坐标系;

b.确定四个参数 α \alpha α, a a a, d d d, θ \theta θ

c. 列D-H参数表;

d.由参数表得到变换矩阵;

D-H 建模方法中,每个连杆使用 4 个参数 α \alpha α, a a a, d d d, θ \theta θ 来描述,2 个描述连杆本身,另外 2 个描述与相邻连杆的位姿(连接或几何关系)。

对于转动关节,其中 θ \theta θ 为关节变量,其他三个参数固定不变,为连杆参数;对于移动关节, d d d 为关节变量,其他三个为关节参数。

根据连杆坐标系和关节对应关系的不同,D-H 建模法可以分为传统 D-H (Classic DH) 和改进 D-H (Modified DH),二者的主要区别如下表所示。

区别Classic D-HModified D-H
连杆固定坐标系的位置后一个关节坐标系前一个关节坐标系
X X X 轴的确定方式当前坐标系 Z Z Z 轴和前一个坐标系 Z Z Z 轴的向量积后一个坐标系 Z Z Z 轴与当前坐标系 Z Z Z 轴的向量积
坐标系间的参数变换顺序 θ \theta θ, d d d, a a a, α \alpha α α \alpha α, a a a, θ \theta θ, d d d

Classic D-H:

Classic DH 的关节和坐标系关系中各个参数的含义如下:

θ i \theta_{i} θi: X i − 1 X_{i-1} Xi1 X i X_{i} Xi Z i − 1 Z_{i-1} Zi1旋转的角度;

d i d_{i} di: X i − 1 X_{i-1} Xi1 X i X_{i} Xi 沿 Z i − 1 Z_{i-1} Zi1 方向的距离;

a i a_{i} ai Z i − 1 Z_{i-1} Zi1 Z i Z_{i} Zi 沿 X i − 1 X_{i-1} Xi1 方向的距离;

α i \alpha_{i} αi: Z i − 1 Z_{i-1} Zi1 Z i Z_{i} Zi X i − 1 X_{i-1} Xi1 旋转的角度

坐标系 O i − 1 O_{i-1} Oi1 与关节 i i i 对齐,其 D-H 参数矩阵为:

i i − 1 T = [ cos ⁡ θ i − sin ⁡ θ i cos ⁡ α i sin ⁡ θ i sin ⁡ α i a i cos ⁡ θ i sin ⁡ θ i cos ⁡ θ i cos ⁡ α i − cos ⁡ θ i sin ⁡ α i a i sin ⁡ θ i 0 sin ⁡ α i cos ⁡ α i d i 0 0 0 1 ] _{i}^{i-1}T = \begin{bmatrix} \cos{\theta_{i}} & -\sin{\theta_{i}} \cos{\alpha_{i}} & \sin{\theta_{i}} \sin{\alpha_{i}} & a_{i} \cos{\theta_{i}} \\ \sin{\theta_{i}} & \cos{\theta_{i}} \cos{\alpha_{i}} & -\cos{\theta_{i}} \sin{\alpha_{i}} & a_{i} \sin{\theta_{i}} \\ 0 & \sin{\alpha_{i}} & \cos{\alpha_{i}} & d_{i} \\ 0 & 0 & 0 & 1 \end{bmatrix} ii1T= cosθisinθi00sinθicosαicosθicosαisinαi0sinθisinαicosθisinαicosαi0aicosθiaisinθidi1

Modified DH:

Modified D-H 的关节和坐标系关系中各个参数的含义如下:

α i − 1 \alpha_{i-1} αi1 Z i − 1 Z_{i-1} Zi1 Z i Z_{i} Zi X i − 1 X_{i-1} Xi1 旋转的角度;

a i − 1 a_{i-1} ai1 Z i − 1 Z_{i-1} Zi1 Z i Z_{i} Zi 沿 X i − 1 X_{i-1} Xi1 方向的距离;

θ i \theta_{i} θi X i − 1 X_{i-1} Xi1 X i X_{i} Xi Z i Z_{i} Zi 旋转的角度;

d i d_{i} di X i − 1 X_{i-1} Xi1 X i X_{i} Xi沿 Z i Z_{i} Zi 方向的距离。

坐标系 O i − 1 O_{i-1} Oi1 与关节 i − 1 i-1 i1 对齐,其 D-H 参数矩阵为:
在这里插入图片描述

i i − 1 T = [ cos ⁡ θ i − sin ⁡ θ i 0 a i − 1 sin ⁡ θ i cos ⁡ α i − 1 cos ⁡ θ i cos ⁡ α i − 1 − sin ⁡ α i − 1 − d i sin ⁡ α i − 1 sin ⁡ θ i sin ⁡ α i − 1 cos ⁡ θ i sin ⁡ α i − 1 cos ⁡ α i − 1 d i cos ⁡ α i − 1 0 0 0 1 ] _{i}^{i-1}T = \begin{bmatrix} \cos{\theta_{i}} & -\sin{\theta_{i}} & 0 & a_{i-1} \\ \sin{\theta_{i}} \cos{\alpha_{i-1}} & \cos{\theta_{i}} \cos{\alpha_{i-1}} & -\sin{\alpha_{i-1}} & -d_{i} \sin{\alpha_{i-1}} \\ \sin{\theta_{i}} \sin{\alpha_{i-1}} &\cos{\theta_{i}} \sin{\alpha_{i-1}} & \cos{\alpha_{i-1}} & d_{i} \cos{\alpha_{i-1}} \\ 0 & 0 & 0 & 1 \end{bmatrix} ii1T= cosθisinθicosαi1sinθisinαi10sinθicosθicosαi1cosθisinαi100sinαi1cosαi10ai1disinαi1dicosαi11

Modified DH 克服了 Classic DH 在用于树型结构机器人时可能出现的问题,比较常用,故之后主要介绍这种方法,并使用该方法进行建模。

机械臂连杆坐标系的建立

建立机械臂连杆坐标系的步骤:

a. 确定各个关节轴和连杆,坐标系的 Z Z Z 轴沿关节轴线方向;

b. 找出相邻两关节轴线的交点或公垂线,用于确定坐标系 { i } \{i\} {i} 的原点:以关节轴 i i i i + 1 i+1 i+1 的交点或公垂线与关节轴 i i i 的交点为原点;

c. 确定 X X X 轴:两轴线相交时, X i ⃗ = ± Z i + 1 ⃗ × Z i ⃗ \vec{X_{i}} = \pm \vec{Z_{i+1}} \times \vec{Z_{i}} Xi =±Zi+1 ×Zi ;两轴线不相交时, X i X_{i} Xi 轴与公垂线重合,方向为 i i i i + 1 i+1 i+1

d. 右手定则确定 Y i Y_{i} Yi 轴;

e. 确定基坐标系 { 0 } \{0\} {0}:为了简化问题, Z 0 Z_0 Z0 通常与关节 1 的轴线方向重合,且当关节变量 1 为 0 时,坐标系 { 0 } \{0\} {0} { 1 } \{1\} {1} 重合;

f. 确定末端坐标系 { n } \{n\} {n}:对于转动关节, θ n = 0 \theta_n = 0 θn=0 时, X n X_n Xn X n − 1 X_{n-1} Xn1 方向相同,选取原点使 d n = 0 d_n = 0 dn=0;对于移动关节,取 X n X_n Xn 方向使 θ n = 0 \theta_n = 0 θn=0,当 d n = 0 d_n = 0 dn=0 时,取 X n − 1 X_{n-1} Xn1 X n X_n Xn 的交点为原点。

D-H 参数表

根据机械臂各个连杆间坐标系的关系,采用 Modified D-H 形式,得到的参数表如下。

i i i α i − 1 \alpha_{i-1} αi1 a i − 1 a_{i-1} ai1 θ i − 1 \theta_{i-1} θi1 d i d_{i} di θ \theta θ 的范围
1 0 ∘ 0^{\circ} 0 0 0 0 θ 1 \theta_{1} θ1 0 0 0 ( − 2 π 3 , 2 π 3 ) (-\frac{2 \pi}{3}, \frac{2 \pi}{3}) (32π,32π)
2 − 9 0 ∘ -90^{\circ} 90 a 1 a_{1} a1 θ 2 \theta_{2} θ2 0 0 0 ( − π 2 , 0 ) (-\frac{\pi}{2}, 0) (2π,0)
3 0 ∘ 0^{\circ} 0 a 2 a_{2} a2 θ 3 \theta_{3} θ3 0 0 0 ( − 2 π 3 , 2 π 3 ) (-\frac{2 \pi}{3}, \frac{2 \pi}{3}) (32π,32π)
4 0 ∘ 0^{\circ} 0 a 3 a_{3} a3 θ 4 \theta_{4} θ4 0 0 0 ( − 7 π 6 , π 6 ) (-\frac{7 \pi}{6}, \frac{\pi}{6}) (67π,6π)
5 − 9 0 ∘ -90^{\circ} 90 0 0 0 θ 5 \theta_{5} θ5 0 0 0 ( − 2 π 3 , 2 π 3 ) (-\frac{2 \pi}{3}, \frac{2 \pi}{3}) (32π,32π)

在这里插入图片描述

齐次变换矩阵

将 DH 参数表代入 Modified DH 的 DH 参数矩阵,可以得到各个坐标系间的齐次变换矩阵 1 0 T _{1}^{0}T 10T, 2 1 T _{2}^{1}T 21T, 3 2 T _{3}^{2}T 32T, 4 3 T _{4}^{3}T 43T 5 4 T _{5}^{4}T 54T 则可得基坐标系到末端坐标系的齐次变换矩阵:

5 0 T = 1 0 T 2 1 T 3 2 T 4 3 T 5 4 T = [ n x o x ; a x p x n y o y a y ; p y n z o z a z p z 0 0 0 1 ] _{5}^{0}T = {_{1}^{0}T} {_{2}^{1}T} {_{3}^{2}T} {_{4}^{3}T} {_{5}^{4}T} = \begin{bmatrix} n_{x} & o_{x} &;a_{x} & p_{x} \\ n_{y} & o_{y} & a_{y} &; p_{y} \\ n_{z} & o_{z} & a_{z} & p_{z} \\ 0 & 0 & 0 & 1 \end{bmatrix} 50T=10T21T32T43T54T= nxnynz0oxoyoz0;axayaz0px;pypz1

其中,
[ p x p y p z ] T \begin{bmatrix} p_{x} & p_{y} & p_{z} \end{bmatrix}^T [pxpypz]T
为机械臂末端在基坐标系中的位置,
[ n x n y n z ] T \begin{bmatrix} n_{x} & n_{y} & n_{z} \end{bmatrix}^T [nxnynz]T
为机械臂末端坐标系 X X X 轴在基坐标系中的方向矢量,
[ o x o y o z ] T \begin{bmatrix} o_{x} & o_{y} & o_{z} \end{bmatrix}^T [oxoyoz]T
为机械臂末端坐标系 Y Y Y 轴在基坐标系中的方向矢量,
[ a x a y a z ] T \begin{bmatrix} a_{x} & a_{y} & a_{z} \end{bmatrix}^T [axayaz]T
为机械臂末端坐标系 Z Z Z 轴在基坐标系中的方向矢量。

代入 D-H 参数,可得
n x = s 1 s 5 + c 1 c 2 c 3 c 4 c 5 − c 1 c 2 c 5 s 3 s 4 − c 1 c 3 c 5 s 2 s 4 − c 1 c 4 c 5 s 2 s 3 n y = c 2 c 3 c 4 c 5 s 1 − c 1 s 5 − c 2 c 5 s 1 s 3 s 4 − c 3 c 5 s 1 s 2 s 4 − c 4 c 5 s 1 s 2 s 3 n z = c 5 s 2 s 3 s 4 − c 2 c 4 c 5 s 3 − c 3 c 4 c 5 s 2 − c 2 c 3 c 5 s 4 o x = c 5 s 1 − c 1 c 2 c 3 c 4 s 5 + c 1 c 2 s 3 s 4 s 5 + c 1 c 3 s 2 s 4 s 5 + c 1 c 4 s 2 s 3 s 5 o y = c 2 s 1 s 3 s 4 s 5 − c 2 c 3 c 4 s 1 s 5 − c 1 c 5 + c 3 s 1 s 2 s 4 s 5 + c 4 s 1 s 2 s 3 s 5 o z = c 2 c 3 s 4 s 5 + c 2 c 4 s 3 s 5 + c 3 c 4 s 2 s 5 − s 2 s 3 s 4 s 5 a x = c 1 s 2 s 3 s 4 − c 1 c 2 c 4 s 3 − c 1 c 3 c 4 s 2 − c 1 c 2 c 3 s 4 a y = s 1 s 2 s 3 s 4 − c 2 c 4 s 1 s 3 − c 3 c 4 s 1 s 2 − c 2 c 3 s 1 s 4 a z = c 2 s 3 s 4 + c 3 s 2 s 4 + c 4 s 2 s 3 − c 2 c 3 c 4 p x = a 1 c 1 + a 2 c 1 c 2 + a 3 c 1 c 2 c 3 − a 3 c 1 s 2 s 3 p y = a 1 s 1 + a 2 c 2 s 1 + a 3 c 2 c 3 s 1 − a 3 s 1 s 2 s 3 p z = − a 2 s 2 − a 3 c 2 s 3 − a 3 c 3 s 2 n_{x} = s_{1} s_{5} + c_{1} c_{2} c_{3} c_{4} c_{5} - c_{1} c_{2} c_{5} s_{3} s_{4} - c_{1} c_{3} c_{5} s_{2} s_{4} - c_{1} c_{4} c_{5} s_{2} s_{3} \\ n_{y} = c_{2} c_{3} c_{4} c_{5} s_{1} - c_{1} s_{5} - c_{2} c_{5} s_{1} s_{3} s_{4} - c_{3} c_{5} s_{1} s_{2} s_{4} - c_{4} c_{5} s_{1} s_{2} s_{3} \\ n_{z} = c_{5} s_{2} s_{3} s_{4} - c_{2} c_{4} c_{5} s_{3} - c_{3} c_{4} c_{5} s_{2} - c_{2} c_{3} c_{5} s_{4} \\ o_{x} = c_{5} s_{1} - c_{1} c_{2} c_{3} c_{4} s_{5} + c_{1} c_{2} s_{3} s_{4} s_{5} + c_{1} c_{3} s_{2} s_{4} s_{5} + c_{1} c_{4} s_{2} s_{3} s_{5} \\ o_{y} = c_{2} s_{1} s_{3} s_{4} s_{5} - c_{2} c_{3} c_{4} s_{1} s_{5} - c_{1} c_{5} + c_{3} s_{1} s_{2} s_{4} s_{5} + c_{4} s_{1} s_{2} s_{3} s_{5} \\ o_{z} = c_{2} c_{3} s_{4} s_{5} + c_{2} c_{4} s_{3} s_{5} + c_{3} c_{4} s_{2} s_{5} - s_{2} s_{3} s_{4} s_{5} \\ a_{x} = c_{1} s_{2} s_{3} s_{4} - c_{1} c_{2} c_{4} s_{3} - c_{1} c_{3} c_{4} s_{2} - c_{1} c_{2} c_{3} s_{4} \\ a_{y} = s_{1} s_{2} s_{3} s_{4} - c_{2} c_{4} s_{1} s_{3} - c_{3} c_{4} s_{1} s_{2} - c_{2} c_{3} s_{1} s_{4} \\ a_{z} = c_{2} s_{3} s_{4} + c_{3} s_{2} s_{4} + c_{4} s_{2} s_{3} - c_{2} c_{3} c_{4} \\ p_{x} = a_{1} c_{1} + a_{2} c_{1} c_{2} + a_{3} c_{1} c_{2} c_{3} - a_{3} c_{1} s_{2} s_{3} \\ p_{y} = a_{1} s_{1} + a_{2} c_{2} s_{1} + a_{3} c_{2} c_{3} s_{1} - a_{3} s_{1} s_{2} s_{3} \\ p_{z} = -a_{2} s_{2} - a_{3} c_{2} s_{3} - a_{3} c_{3} s_{2} nx=s1s5+c1c2c3c4c5c1c2c5s3s4c1c3c5s2s4c1c4c5s2s3ny=c2c3c4c5s1c1s5c2c5s1s3s4c3c5s1s2s4c4c5s1s2s3nz=c5s2s3s4c2c4c5s3c3c4c5s2c2c3c5s4ox=c5s1c1c2c3c4s5+c1c2s3s4s5+c1c3s2s4s5+c1c4s2s3s5oy=c2s1s3s4s5c2c3c4s1s5c1c5+c3s1s2s4s5+c4s1s2s3s5oz=c2c3s4s5+c2c4s3s5+c3c4s2s5s2s3s4s5ax=c1s2s3s4c1c2c4s3c1c3c4s2c1c2c3s4ay=s1s2s3s4c2c4s1s3c3c4s1s2c2c3s1s4az=c2s3s4+c3s2s4+c4s2s3c2c3c4px=a1c1+a2c1c2+a3c1c2c3a3c1s2s3py=a1s1+a2c2s1+a3c2c3s1a3s1s2s3pz=a2s2a3c2s3a3c3s2

Simple D-H in matlab

function [T] = dh_transform(a, alpha, d, theta, standard_dh)
% dh_transform computes the Denavit-Hartenberg transformation matrix
% Given:
%   a (also written as 'r') - distance between origin(i) and origin(i-1)
%                             about z(i-1)
%
%   alpha(?) - angle from z(i-1) to z(i) about x(i)
%
%   d - the link offset betwen origin(i) with respect to origin(i-1)
%     along z(i-1)
%
%   theta (?) - joint angle between from x(i-1) to x(i) about z(i-1)
%
%
%
%   standard_dh - uses standard DH convention if 1 or if this
%                       parameter is not provided. Uses modified DH
%                       if this value is 0
% OR given:
%           a = DH parameter matrix
%           i.e. for SCARA manipulator a will look like as follows
%           syms q1 q2 d3 q4 a1 a2
%           a =         [ 0             0            0          q1;
%                        a1             0            0          q2;
%                        a2             0            -d3        0 ;
%                        0              0            0          q4];
%
%if (nargin <= 2)if (nargin == 1)standard_dh = 1;elsestandard_dh = alpha;enddh_parameter_matrix = a;for row = 1:size(dh_parameter_matrix,1)dh_row = dh_parameter_matrix(row,:);a = dh_row(1);alpha = dh_row(2);d = dh_row(3);theta = dh_row(4);T(:,:,row) = dh_transform(a, alpha, d, theta, standard_dh);endif (isa(T,'sym'))T_out = sym(eye(4,4));else  T_out = eye(4,4);endfor i=1:size(T,3)T_out = T_out * T(:,:,i);endT = T_out;else if (nargin >= 4)if (nargin < 5)standard_dh = 1;endif standard_dh  % Standard DH convention computationT = [cos(theta)  -sin(theta)*cos(alpha)  sin(theta)*sin(alpha) a*cos(theta);sin(theta)   cos(theta)*cos(alpha)   -cos(theta)*sin(alpha) a*sin(theta);0          sin(alpha)               cos(alpha)            d;0          0                        0                     1];else  % Modified DH convention computationT = [cos(theta)  -sin(theta)  0  a;sin(theta)*cos(alpha) cos(theta)*cos(alpha) -sin(alpha) -d*sin(alpha);sin(theta)*sin(alpha) cos(theta)*sin(alpha) cos(alpha) d*cos(alpha);0   0   0   1];endendend

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/643578.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何高效挖掘Web漏洞?

简介 SRC漏洞平台&#xff1a;安全应急响应中心&#xff08;SRC, Security Response Center&#xff09;&#xff0c;是企业用于对外接收来自用户发现并报告的产品安全漏洞的站点。说白了&#xff0c;就是连接白帽子和企业的平台&#xff0c;你去合法提交漏洞给他们&#xff0…

Leetcode—24. 两两交换链表中的节点【中等】

2023每日刷题&#xff08;八十七&#xff09; Leetcode—24. 两两交换链表中的节点 实现代码 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* ListNode(int x) : val(x),…

Redis(发布订阅、事务、redis整合springboot、集成 Spring Cache)

目录 一.redis的发布订阅 1、什么 是发布和订阅 2、Redis的发布和订阅 3、发布订阅的代码实现 二.Redis事务 1.事务简介 1、在事务执行之前 如果监听的key的值有变化就不能执行 2、在事务执行之前 如果监听的key的值没有变化就能执行 3、Exec之前就出现错误 4、Exec之…

Centos7 两种方式安装 MySQL5.7 步骤 yum 、本地 tar 文件

一、使用 yum 源方式安装 1、卸载系统自带 mariadb MariaDB Server 是最流行的开源 关系型数据库 之一。它由 MySQL 的原始开发者制作&#xff0c;并保证保持开源。 在 CentOS 7 中默认安装有 MariaDB 可忽略&#xff0c;安装完成之后可以直接覆盖掉 MariaDB。 查看并卸载系统…

【极数系列】Flink项目入门搭建(03)

【极数系列】Flink项目入门搭建&#xff08;03&#xff09; 引言 gitee地址&#xff1a;https://gitee.com/shawsongyue/aurora.git 源码直接下载可运行&#xff0c;模块&#xff1a;aurora_flink Flink 版本&#xff1a;1.18.0 Jdk 版本&#xff1a;11 1.创建mavenx项目 2.…

清越 peropure·AI 国内版ChatGP新功能介绍

当OpenAI发布ChatGPT的时候,没有人会意识到,新一代人工智能浪潮将给人类社会带来一场眩晕式变革。其中以ChatGPT为代表的AIGC技术加速成为AI领域的热门发展方向,推动着AI时代的前行发展。面对技术浪潮,清越科技(PeroPure)立足多样化生活场景、精准把握用户实际需求,持续精确Fin…

SpringBoot+Vue充电桩管理系统 附带详细运行指导视频

文章目录 一、项目演示二、项目介绍三、运行截图四、主要代码1. 分页获取预约数据代码2.保存预约信息代码3.修改订单状态代码 一、项目演示 项目演示地址&#xff1a; 视频地址 二、项目介绍 项目描述&#xff1a;这是一个基于SpringBootVue框架开发的充电桩管理系统。首先&…

网络安全的使命:守护数字世界的稳定和信任

在数字化时代&#xff0c;网络安全的角色不仅仅是技术系统的守护者&#xff0c;更是数字社会的信任保卫者。网络安全的使命是保护、维护和巩固数字世界的稳定性、可靠性以及人们对互联网的信任。本文将深入探讨网络安全是如何履行这一使命的。 第一部分&#xff1a;信息资产的…

怎么给wordpress网站底部页脚添加备案号和链接?

以前“WordPress后台 >> 常规”最底部是有一个ICP备案号的&#xff0c;我们只需要填写备案号并保存更改即可让WordPress自带主题底部显示ICP备案号&#xff0c;但是现在新版本的WordPress已经没有了这个ICP备案号选项&#xff0c;而且也无法直接添加公安联网备案号&#…

Typecho后台无法登录显示503 service unavailable问题及处理

一、Typecho 我的博客地址&#xff1a;https://www.aomanhao.top 使用老薛主机动态Typecho博客框架handsome主题的搭配&#xff0c;文章内容可以异地网页更新&#xff0c;可以听后台背景音乐&#xff0c;很好的满足我的痛点需求&#xff0c;博客部署在云端服务器访问响应较快…

单调栈笔记

单调栈 1.每日温度2.下一个更大元素 I3.下一个更大的元素4.接雨水5.柱状图中最大的矩形 单调栈正如其名字&#xff0c;用一个栈&#xff08;能够实现栈性质的数据结构就行&#xff09;来存储元素&#xff0c;存储在栈中的元素保持单调性&#xff08;单调递增或者是单调递减&…

信息检索与数据挖掘 | (十)线性回归与逻辑回归

文章目录 &#x1f4da;线性回归算法流程&#x1f4da;Bias and variance&#x1f4da;过拟合&欠拟合&#x1f4da;逻辑回归算法流程 &#x1f4da;线性回归算法流程 ybwx 使用loss function L来评估函数的好坏 从而我们要选择使L最小的模型参数w,b 使用梯度下降的方法…

JAVA 学习 面试(六)数据类型与方法

数据类型 基本数据类型 为什么float3.4报错 3.4 默认是浮点double类型的&#xff0c;如果赋值给float是向下转型&#xff0c;会出现精度缺失&#xff0c;&#xff0c;需要强制转换 Switch支持的数据类型&#xff1f; byte、short、int、char 、 enum 、 String 基本类型与包…

trino-435: trino接入TIDB数据源

文章目录 一、TIDB介绍二、TIDB源接入流程三、遇到的错误1、数据源注册:2、查询表数据一、TIDB介绍 二、TIDB源接入流程 三、遇到的错误 1、数据源注册: http://localhost:8080/v1/catalog/register?name=tidb_test {"connector.name":"tidb",&quo…

SpringBoot整合QQ邮箱发送验证码

一、QQ开启SMTP 打开QQ邮箱&#xff0c;点击设置&#xff0c;进入账号&#xff0c;往下滑后&#xff0c;看见服务状态后&#xff0c;点击管理服务 进入管理服务后&#xff0c;打开服务&#xff0c;然后获取授权码 二 、导入依赖 <!-- 邮箱--><dependency>&…

php低版本(7.4)配置过程中遇到的问题及基本解决手段

目前php不支持较低版本的安装&#xff0c;如果安装低版本必须借助第三方库shivammathur //将第三方仓库加入brewbrew tap shivammathur/php //安装PHPbrew install shivammathur/php/php7.4 可能出现的问题 像这样突然中止然后报错&#xff0c;一般是网络问题&#xff0c;或…

Random Sprays Retinex 传统的图像增强算法RSR

文章目录 前言1、Random Sprays Retinex 概况2、Random Sprays Retinex 具体实现2.1、喷雾的生成2.2、径向密度函数的确定2.3、像素的选择2.4、亮度的计算2.5、参数的调整 3、Random Sprays Retinex 算法效果的表现4、Random Sprays Retinex 现存的问题 前言 Random Spray Reti…

C++面试宝典第24题:袋鼠过河

题目 一只袋鼠要从河这边跳到河对岸,河很宽,但是河中间打了很多桩子。每隔一米就有一个桩子,每个桩子上都有一个弹簧,袋鼠跳到弹簧上就可以跳得更远。每个弹簧力量不同,用一个数字代表它的力量,如果弹簧力量为5,就代表袋鼠下一跳最多能够跳5米;如果为0,就会陷进去无法…

代码中遇到的问题2

目录 记录: 好处&#xff1a; 问题一&#xff1a; 解答: 问题二: 解答: 常见类型问题: 记录: string connStr ConfigurationManager.ConnectionStrings["connStr"].ConnectionString; 在代码中写上这段代码&#xff0c;将连接数据库的代码语句放到&#xff…

关于在微信小程序中使用taro + react-hook后销毁函数无法执行的问题

问题&#xff1a; 在 taro中使用navigageTo() 跳转路由后hook中useEffect 的return函数没有执行 没有执行return函数 框架版本&#xff1a; tarojs: 3.6 react: 18.0 原因&#xff1a; 使用navigateTo() 跳转路由的话并不会销毁页面和组件&#xff0c;会加入一…