ABB工业机器人运动学与轨迹规划:从D-H参数到MATLAB仿真实践

简介:本资源面向机器人工程专业学生、自动化方向研究人员及工业机器人应用工程师,系统解决ABB机器人运动学建模与轨迹规划两大核心问题,覆盖前向/逆向运动学求解、笛卡尔-关节空间转换、样条平滑路径生成等关键实践环节。压缩包共14个文件,含7个SolidWorks零件模型(sldprt)与1个装配体(sldasm),完整构建ABB MH50-35三维机械结构;2个MATLAB主程序(.m)实现运动学计算与五次多项式轨迹规划;1份Word报告详述理论推导、坐标系定义、仿真结果与误差分析;另含PPT坐标系图示、STEP通用格式模型及结果可视化PNG图,便于多平台复现与教学演示。资源大小18.19MB,结构清晰、模块对应性强,已有612人学习下载,提供从三维建模→数学建模→代码实现→结果验证的全链路支撑,显著降低机器人运动控制学习门槛。

1. 项目概述与核心价值

最近在做一个关于ABB工业机器人运动学与轨迹规划的项目,手头攒了不少东西,包括三维模型、MATLAB仿真代码和一份详细的Word报告。这个项目听起来挺学术,但说白了,就是想搞清楚一个工业机器人手臂是怎么动起来的,以及我们怎么告诉它“优雅”地完成一个动作。无论是做机器人研发、自动化集成,还是单纯对机械臂控制感兴趣,这套东西都能帮你把理论上的DH参数、齐次变换矩阵和实际机器人的关节运动、末端轨迹联系起来。我自己在调试ABB机器人时,经常遇到轨迹不平滑、奇异点报警或者效率不高的问题,回头去啃运动学老本,才发现很多现场卡壳的根源都在这里。所以,这个项目不只是纸上谈兵,它直接关系到你写的机器人程序跑起来是行云流水还是磕磕绊绊。

2. 项目整体设计与思路拆解

2.1 为什么选择ABB机器人作为研究对象?

在工业领域,ABB、发那科(FANUC)、库卡(KUKA)和安川(Yaskawa)是公认的“四大家族”。选择ABB的IRB 1200或IRB 6600这类常见型号作为研究对象,有几个很实际的原因。首先,它们的市场保有量极大,你在工厂里见到的概率很高,研究它有普适价值。其次,ABB机器人的机械结构(特别是其经典的六轴串联结构)是学习机器人运动学的绝佳范本,前三个轴(腰转、大臂、小臂)主要负责定位,后三个腕部轴(腕转、腕摆、腕捻)主要负责姿态,这种结构清晰地区分了位置和姿态的控制。最后,ABB的RobotStudio仿真软件提供了精确的3D模型和运动数据,方便我们导出模型进行理论验证,也能把MATLAB算出的结果导回去做对比,形成一个“理论-仿真-验证”的闭环。

2.2 运动学分析与轨迹规划的内在逻辑

这个项目的核心逻辑链条非常清晰: 描述机器人 -> 计算运动学 -> 规划轨迹 -> 仿真验证

  1. 描述机器人(建模) :我们需要用数学语言精确描述机器人。这就要用到Denavit-Hartenberg(D-H)参数法。你需要从机器人的三维模型或技术手册中,为每个关节建立坐标系,并确定四个关键参数:连杆扭角(alpha)、连杆长度(a)、连杆偏距(d)和关节角(theta)。这一步是基石,参数标定错了,后面全错。
  2. 计算运动学(分析) :有了D-H参数,就能建立相邻连杆的齐次变换矩阵。把所有连杆的变换矩阵连乘,就得到了从机器人基座标系到末端执行器坐标系的“总变换矩阵”。这个矩阵就是 正运动学 :输入六个关节角度,输出末端在三维空间中的位置和姿态(一个4x4矩阵,包含3x3旋转矩阵和3x1位置向量)。反过来,给定末端位姿,求解所需的关节角度,就是 逆运动学 。对于六轴机器人,逆解通常不唯一,需要根据关节限位、运动连续性等原则选择最优解。
  3. 规划轨迹(控制) :知道起点和终点的关节角度后,不能简单地让每个关节从A点直线“冲”到B点。这会导致末端轨迹不可预测、速度突变、产生冲击。 轨迹规划 就是在关节空间或笛卡尔空间,为这些角度或位置规划出一条随时间平滑变化的曲线。常用的方法有多项式插值(如三次、五次多项式)、样条曲线等,核心是保证位置、速度、加速度甚至加加速度(Jerk)的连续性。
  4. 仿真验证(闭环) :用MATLAB编写上述所有算法,并利用三维模型进行可视化仿真。对比规划出的理论轨迹与RobotStudio中机器人的实际运动,验证算法的正确性和平滑性。最后,将整个分析过程、算法原理、代码和仿真结果整理成Word报告,形成完整的技术文档。

注意 :很多人会混淆“路径”和“轨迹”。路径是空间中的一条几何线(比如一条直线或圆弧),而轨迹是路径+时间律,它规定了沿着这条路径运动时,每个时间点的位置、速度和加速度。我们常说的“轨迹规划”是包含时间属性的。

3. 核心细节解析与实操要点

3.1 D-H参数标定:从三维模型到数学参数

这是整个项目最容易出错的第一步。以典型的ABB六轴机器人为例(如IRB 1200),你需要严格按照D-H规则建立每个关节的坐标系{Z轴沿关节轴线,X轴垂直于相邻两Z轴公垂线}。

实操步骤与要点:

  1. 获取模型数据 :从RobotStudio导出机器人的STEP或URDF模型,或者直接查阅机器人技术手册中的连杆尺寸图。
  2. 建立坐标系
    • 基座标系{0} :通常与关节1(腰转)的坐标系重合或固定于机器人安装面。
    • 关节坐标系{i} :固定在连杆i上,其Z轴(Zi)与关节i+1的轴线重合(注意:D-H规则中,关节i的转动是绕Zi-1轴,这个索引关系容易混乱)。
  3. 确定四个参数 (对于旋转关节):
    • 连杆扭角 α(i-1) :绕X(i-1)轴,从Z(i-1)旋转到Zi的角度。根据右手定则判断正负。
    • 连杆长度 a(i-1) :沿X(i-1)轴,从Z(i-1)到Zi的距离。永远是正值。
    • 连杆偏距 d(i) :沿Zi轴,从X(i-1)到Xi的距离。对于旋转关节,通常是常数。
    • 关节角 θ(i) :绕Zi轴,从X(i-1)旋转到Xi的角度。对于旋转关节,这是变量。

一个常见的坑 :ABB机器人的D-H参数表可能有标准(Standard)和改进(Modified)两种格式。Modified D-H(MDH)参数法在建立坐标系和矩阵连乘顺序上略有不同,能更好地处理相邻关节轴线平行或相交的情况,减少奇异。在开始编程前,务必确认你参考的文献或手册使用的是哪种约定,并在代码中保持一致。我强烈建议使用MDH,因为现代机器人工具箱(如Peter Corke的Robotics Toolbox for MATLAB)默认支持它,也更通用。

参数表示例(以IRB 1200近似值,MDH法为例):

连杆 i α(i-1) (rad) a(i-1) (mm) d(i) (mm) θ(i) (rad) 关节变量
1 0 0 d1 θ1 θ1
2 -π/2 a1 0 θ2 θ2
3 0 a2 0 θ3 θ3
4 -π/2 a3 d4 θ4 θ4
5 π/2 0 0 θ5 θ5
6 -π/2 0 d6 θ6 θ6

(注:d1, a1, a2, a3, d4, d6为具体机械尺寸常数,需根据实际型号查询)

3.2 正运动学:齐次变换矩阵的连乘

一旦有了D-H参数表,正运动学就是“按公式计算”。相邻坐标系{i-1}到{i}的变换矩阵 i-1_i T 可以写成一个标准形式。在MATLAB中,我们可以写一个函数来根据四个参数生成这个4x4矩阵。

MATLAB代码片段示例:

function T = dh_transform(alpha, a, d, theta)
% 计算标准D-H参数对应的齐次变换矩阵
% 输入:alpha, a, d, theta
% 输出:4x4齐次变换矩阵T

T = [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];
end

然后,从基座标系{0}到末端坐标系{6}的变换矩阵为: T_0_6 = T_0_1 * T_1_2 * T_2_3 * T_3_4 * T_4_5 * T_5_6 这个 T_0_6 矩阵的左上角3x3部分是旋转矩阵R,描述了末端姿态;右上角3x1向量P是末端位置坐标。

实操心得 :在MATLAB里进行矩阵连乘时,注意乘法的顺序(从左往右还是从右往左),这取决于你定义的变换矩阵是左乘还是右乘。使用上述函数时,通常是左乘(即新变换乘在左边)。建议在代码中清晰注释。另外,一定要用一组已知的关节角(比如全为零,即“零位”)去验证你的正运动学函数。将计算出的末端位姿与RobotStudio中机器人处于零位时的末端位姿进行对比,如果一致,说明你的D-H参数和正运动学代码基本正确。

3.3 逆运动学:解析解与数值解的选择

逆运动学是难点。对于六轴串联机器人,在腕部三个轴轴线相交于一点(球形腕)的情况下,通常存在封闭形式的解析解。ABB的很多机型满足这个条件。解析解速度快、精度高,是首选。

解析解求解思路(以球形腕机器人为例):

  1. 分离位置和姿态 :利用球形腕的特点,可以先求解前三个关节(臂部关节)的角度,以确定腕部中心(即第4、5、6轴交点)的位置。
  2. 求解前三个关节 :将末端目标位姿的平移向量减去第6轴工具的长度方向分量,得到腕部中心目标位置。然后通过几何法(如余弦定理)求解关节1、2、3的角度。这里通常会出现多重解(如左肩/右肩、肘部在上/在下)。
  3. 求解后三个关节 :前三个关节确定后,机器人基座到腕部的旋转矩阵就确定了。用目标末端姿态矩阵除以这个矩阵,就得到了腕部坐标系相对于腕部基坐标系的期望旋转,进而可以解算出关节4、5、6的角度(通常使用欧拉角或固定角表示法反求)。

当解析解困难或不存在时 (比如机器人处于奇异位形附近,或者非球形腕结构),就需要采用 数值解法 ,如牛顿-拉夫森迭代法。数值解依赖于初始值,且计算量较大,但在通用性上更有优势。MATLAB的Robotics Toolbox中的 ikine 函数就提供了数值逆解功能。

注意事项 :在实际项目中,逆运动学求解后必须进行 解的选择与校验 。你需要根据“最短行程”、“避免碰撞”、“避开关节限位”等原则,从多组解中选出一组最优的。同时,要检查解是否在机器人的关节物理限位之内,否则规划出的轨迹无法执行。

3.4 轨迹规划的核心:关节空间与笛卡尔空间规划

轨迹规划可以在两个层面进行:关节空间和笛卡尔(任务)空间。

1. 关节空间规划: 直接对每个关节的角度进行插值。优点是计算简单,不会在笛卡尔空间产生奇异点,且能保证关节位置、速度、加速度的平滑。缺点是末端执行器在空间中的路径不可预测,可能不是直线。

  • 三次多项式插值 :给定起点和终点的关节角度、速度(通常设为零),可以唯一确定一条三次曲线。能满足位置和速度连续,但加速度在起点和终点可能不连续,会产生冲击。
  • 五次多项式插值 :给定起点和终点的位置、速度、加速度,可以确定一条五次曲线。能保证位置、速度、加速度都连续,运动更平滑,是现代机器人常用的方法。

MATLAB中五次多项式轨迹生成示例:

function [q, qd, qdd] = quintic_traj(t, t0, tf, q0, qf, qd0, qdf, qdd0, qddf)
% 计算五次多项式轨迹在时间t时的位置、速度、加速度
% t: 当前时间
% t0, tf: 起始和结束时间
% q0, qf: 起始和结束位置
% qd0, qdf: 起始和结束速度
% qdd0, qddf: 起始和结束加速度

dt = tf - t0;
tau = (t - t0) / dt; % 归一化时间,0到1

if tau < 0
    tau = 0;
elseif tau > 1
    tau = 1;
end

% 五次多项式系数
a0 = q0;
a1 = qd0 * dt;
a2 = qdd0 * dt^2 / 2;
a3 = 10*(qf - q0) - (6*qd0 + 4*qdf)*dt - (3*qdd0 - qddf)*dt^2/2;
a4 = -15*(qf - q0) + (8*qd0 + 7*qdf)*dt + (3*qdd0 - 2*qddf)*dt^2/2;
a5 = 6*(qf - q0) - 3*(qd0 + qdf)*dt - (qdd0 - qddf)*dt^2/2;

% 位置
q = a0 + a1*tau + a2*tau^2 + a3*tau^3 + a4*tau^4 + a5*tau^5;
% 速度 (需要除以dt,因为是对tau求导)
qd = (a1 + 2*a2*tau + 3*a3*tau^2 + 4*a4*tau^3 + 5*a5*tau^4) / dt;
% 加速度
qdd = (2*a2 + 6*a3*tau + 12*a4*tau^2 + 20*a5*tau^3) / (dt^2);
end

你需要为6个关节分别调用这个函数,生成6条同步的五次多项式轨迹。

2. 笛卡尔空间规划: 直接规划末端执行器在三维空间中的位置和姿态轨迹。优点是末端路径直观可控(例如走直线或圆弧),但计算复杂,需要实时进行逆运动学转换,且在路径经过奇异点附近时可能无解或关节速度突变。

  • 直线插补 :在起点和终点的位姿之间进行线性插值。对于姿态,通常使用球面线性插值(SLERP)来保证旋转的平滑性。
  • 圆弧插补 :给定不在同一直线上的三个点,规划一段圆弧路径。

选择建议 :对于点对点搬运、喷涂等不关心中间路径的应用,用 关节空间规划 更简单可靠。对于焊接、涂胶、装配等需要末端沿特定路径精确运动的场景,必须使用 笛卡尔空间规划 。在实际机器人编程中(如ABB的RAPID语言), MoveJ 指令对应关节空间移动, MoveL MoveC 指令则对应笛卡尔空间的直线和圆弧移动。

4. 基于MATLAB与三维模型的仿真实现

4.1 仿真环境搭建与模型导入

理论需要可视化验证。我们可以在MATLAB中搭建一个完整的仿真环境。

  1. 工具准备

    • MATLAB :核心计算与编程环境。建议安装 Robotics System Toolbox Robotics Toolbox (by Peter Corke) 。后者是一个强大的第三方工具箱,提供了机器人建模、正逆运动学、轨迹规划、可视化等一系列函数,能极大提高开发效率。
    • 三维模型 :从RobotStudio导出机器人的STL或STEP文件。STL文件是网格文件,便于MATLAB读取和显示。可以使用 stlread 函数读取,然后用 patch 函数显示。
  2. 创建机器人对象 : 使用Peter Corke的工具箱,你可以直接用D-H参数表创建一个 SerialLink 机器人对象。

    % 定义D-H参数表 [alpha a d theta]
    % 注意:工具箱默认使用标准D-H参数,如果使用MDH参数,需要在创建时指定‘modified’
    L1 = Link('d', d1, 'a', 0, 'alpha', 0, 'modified');
    L2 = Link('d', 0, 'a', a1, 'alpha', -pi/2, 'modified');
    L3 = Link('d', 0, 'a', a2, 'alpha', 0, 'modified');
    L4 = Link('d', d4, 'a', a3, 'alpha', -pi/2, 'modified');
    L5 = Link('d', 0, 'a', 0, 'alpha', pi/2, 'modified');
    L6 = Link('d', d6, 'a', 0, 'alpha', -pi/2, 'modified');
    
    robot = SerialLink([L1 L2 L3 L4 L5 L6], 'name', 'ABB IRB1200');
    robot.teach(); % 打开一个交互式界面,可以拖动机器人关节
    

4.2 轨迹规划仿真全流程

假设我们要让机器人末端从点A直线运动到点B。

步骤一:定义起点和终点

% 定义起点和终点的末端位姿(4x4齐次变换矩阵)
T_start = transl(0.4, 0.2, 0.5) * trotx(pi); % 位置(0.4,0.2,0.5),绕X轴旋转180度
T_goal = transl(0.6, -0.1, 0.7) * troty(pi/2); % 位置(0.6,-0.1,0.7),绕Y轴旋转90度

% 利用逆运动学求解对应的关节角度(这里假设使用工具箱的ikine数值解)
q_start = robot.ikine(T_start, 'mask', [1 1 1 1 1 1]); % mask指定求解哪些自由度
q_goal = robot.ikine(T_goal, 'mask', [1 1 1 1 1 1]);

步骤二:关节空间轨迹规划

t = 0:0.01:2; % 时间向量,总时间2秒,采样周期10ms
[q, qd, qdd] = jtraj(q_start, q_goal, t); % 使用工具箱的jtraj函数,默认生成五次多项式轨迹
% q是关节位置矩阵,每一行是一个时间点的6个关节角
% qd是关节速度,qdd是关节加速度

步骤三:正运动学验证与可视化

figure;
robot.plot(q, 'fps', 50, 'trail', 'r-'); % 动画显示机器人运动,并画出末端轨迹(红色)
% 同时,我们可以计算并绘制末端位置和速度曲线
for i = 1:length(t)
    T = robot.fkine(q(i,:)); % 正运动学,计算末端位姿
    pos(i,:) = transl(T)'; % 提取位置
end
figure;
subplot(2,1,1);
plot(t, pos);
xlabel('Time (s)'); ylabel('Position (m)'); legend('X', 'Y', 'Z'); title('末端位置曲线');
subplot(2,1,2);
plot(t, qd);
xlabel('Time (s)'); ylabel('Velocity (rad/s)'); legend('J1','J2','J3','J4','J5','J6'); title('关节速度曲线');

通过观察动画和曲线,可以直观判断轨迹是否平滑,末端路径是否符合预期。

4.3 与RobotStudio的联合仿真验证(进阶)

为了更高置信度的验证,可以将MATLAB规划出的关节角度轨迹导出为CSV文件,然后导入到RobotStudio中,驱动虚拟机器人模型运动,观察是否有碰撞、奇异点报警或性能不佳的情况。

  1. 数据导出 :将时间 t 和关节角度 q 保存为CSV文件。
    data = [t', q];
    csvwrite('robot_trajectory.csv', data);
    
  2. RobotStudio导入 :在RobotStudio中,可以利用“路径录制”或“外部引导”功能,或者编写RAPID代码读取这个CSV文件,并控制虚拟机器人复现这条轨迹。
  3. 对比分析 :对比MATLAB仿真中的末端轨迹与RobotStudio中的实际轨迹,检查一致性。同时,在RobotStudio中查看电机的扭矩、速度等负载情况,评估轨迹的动力学性能。

5. 常见问题与排查技巧实录

在实际操作和仿真中,你会遇到各种各样的问题。下面是我踩过的一些坑和解决方法。

5.1 运动学求解相关

问题1:逆运动学求解失败或结果明显错误。

  • 可能原因A:D-H参数错误或约定不一致。 这是最常见的原因。仔细检查每个连杆的四个参数,特别是α和θ的符号。确认你用的标准D-H还是改进D-H,并与MATLAB代码中的变换矩阵生成函数匹配。
  • 排查技巧 :用一组简单的、已知的关节角(如全零)代入你的正运动学函数,得到末端位姿P1。然后,将这个位姿P1作为逆运动学函数的输入,看是否能解回原来的关节角。如果不行,说明正逆运动学至少有一个出错。
  • 可能原因B:目标位姿超出机器人工作空间。 机器人不是万能的,它的末端到达范围是一个复杂的空间。如果你给的目标点太远或姿态太刁钻,逆解可能不存在。
  • 排查技巧 :先用正运动学遍历一下机器人的关节空间边界,大致画出其工作空间的点云图。或者,在求解逆解前,先判断目标点是否在基座附近一个合理的球体内。

问题2:轨迹经过奇异点附近时,关节速度急剧增大。

  • 现象 :在仿真动画中,机器人到达某个姿态时,某个关节的速度曲线出现尖峰。
  • 原因 :当机器人处于奇异位形时(如腕部中心与关节1轴线共线,即“腕部奇异”),雅可比矩阵降秩,逆运动学求解所需的关节速度趋于无穷大。
  • 解决方法
    1. 轨迹重规划 :在笛卡尔空间规划时,避免路径经过奇异点。可以通过在关节空间规划来绕过。
    2. 阻尼最小二乘法 :在数值求解逆运动学时,使用带阻尼因子的伪逆( pinv(J) (J'*J + lambda^2*I)\J' ),当接近奇异点时,通过牺牲一些精度来换取关节速度的稳定。Robotics Toolbox的 ikine 函数可以通过设置 ‘ilimit’ 等参数来优化求解。
    3. 速度缩放 :实时监控关节速度,如果超过电机最大速度,则等比例缩放所有关节速度,同时按比例延长运动时间,保证轨迹形状不变。

5.2 轨迹规划与仿真相关

问题3:规划出的轨迹,末端路径不是直线(关节空间规划固有缺点)。

  • 期望 :从A点直线运动到B点。
  • 实际 :末端走出一条曲线。
  • 解决方案 :如果应用要求严格直线,就必须使用 笛卡尔空间直线插补 。在MATLAB中,你需要:
    1. 将直线路径离散成多个中间点。
    2. 对每个中间点进行逆运动学求解,得到一系列关节角度。
    3. 再对这一系列关节角度进行平滑插值(如样条插值),作为最终给驱动器的指令。注意,离散点要足够密,否则关节运动不平滑。

问题4:仿真动画卡顿或不流畅。

  • 可能原因A:计算量过大。 如果采样点太多(比如 t=0:0.001:10 有一万个点), robot.plot 逐帧渲染会非常慢。
  • 技巧 :仿真时先用较疏的采样点(如 t=0:0.02:10 )进行快速验证。确认算法正确后,再提高采样率进行精细分析。或者,不播放动画,直接计算和绘图。
  • 可能原因B:三维模型过于复杂。 导入的STL文件面片数太多。
  • 技巧 :在三维软件中对模型进行轻量化处理,减少面片数。或者在MATLAB中显示时,使用简化版的连杆模型(如简单的圆柱体或长方体组合)代替精细模型。

问题5:从MATLAB导入RobotStudio的轨迹不连续或抖动。

  • 可能原因A:数据采样率与机器人控制系统不匹配。 机器人控制器有固定的控制周期(如4ms或8ms)。如果你的轨迹点时间间隔不均匀或与控制器周期不成整数倍关系,会导致运动不平滑。
  • 技巧 :确保导出的时间序列是等间隔的,并且间隔最好是机器人控制周期的整数倍。例如,如果控制器周期是8ms,你的MATLAB轨迹采样周期可以设为16ms或24ms。
  • 可能原因B:没有进行轨迹前馈或滤波。 直接给位置指令,机器人可能跟踪得有偏差。高级的用法是同时给出位置、速度、甚至加速度的前馈指令。
  • 技巧 :在MATLAB中规划时,同时计算出速度 qd 和加速度 qdd 。将这些信息一同提供给机器人控制器(如果其接口支持),可以显著提高跟踪精度和平滑性。

5.3 报告撰写与代码管理

问题6:Word报告中的公式和图片排版混乱。

  • 技巧 :使用MATLAB的 publish 功能或Live Script。你可以将代码、运行结果(图片、曲线)和注释文字整合在一个MLX文件中,然后直接导出为Word或PDF,格式非常美观。对于公式,建议使用LaTeX语法编写,MATLAB支持在注释和文本框中渲染LaTeX公式。

问题7:代码冗长,难以维护和复用。

  • 技巧 :采用模块化编程。
    • 将D-H参数定义、正运动学函数、逆运动学函数、轨迹规划函数分别写成独立的 .m 文件。
    • 使用结构体或类来封装机器人模型的所有属性(如D-H参数、关节限位、质量等)和方法(正逆运动学、轨迹规划)。
    • 在主脚本中,清晰分为“初始化参数”、“创建机器人对象”、“规划轨迹”、“仿真验证”、“结果可视化与导出”几个部分。
    • 多写注释,特别是对关键算法步骤和易错点的说明。

这个项目从理论到实践,打通了工业机器人编程背后的数学模型。当你真正用MATLAB让一个三维模型按照你规划的轨迹平滑运动起来时,再去面对ABB示教器上那些 MoveL MoveC 指令,感觉会完全不一样。你会清楚地知道,一个简单的直线指令背后,是逆运动学求解、插补计算、奇异点处理等一系列复杂运算。这份理解,能让你在调试机器人时,不再只是凭经验试错,而是能直指问题核心。最后,建议把仿真中那些漂亮的运动曲线动画保存下来,放在报告里,比干巴巴的文字有说服力得多。

本文还有配套的精品资源,点击获取 menu-r.4af5f7ec.gif

WebSphere Message Broker -JavaCompute组件的使用 NULL 博文链接:https://zhouhaitao.iteye.com/blog/1047491 立即下载

相关推荐

IBM WebSphere DataStage 中使用 Java Pack 组件工具包

IBM WebSphere DataStage 中使用 Java Pack 组件工具包

ShardingSphere分库分表存储组件

关系数据库在信息化系统的存储方面起到举足轻重的作用,但存在IO和计算密集型瓶颈,于是出现很多对关系数据库提供分库分表存储的框架,其中ShardingSphere就是其中之一,并且对排序、分布式事务提供解决方案,ShardingSphere包括三个独立组件,你可以使用其中任意一个实现分库分表逻辑, ShardingSphere-JDBC ShardingSphere-Proxy ShardingSphere-Sidecar(TODO) ShardingSphere-JDBC是以独立Jar形式提供,在客户端系统

qixiang_chen的博客 1757

\websphere部署EJB3.docx

\websphere部署EJB3.docx \websphere部署EJB3.docx \websphere部署EJB3.docx 使用的是 office2007

JPA、EJB、事务管理、WebSphere ---相关内容整理

JPA(Java Persistence API)和JDBC类似,也是官方定义的一组接口,但是它相比传统的JDBC,它是为了实现ORM而生的,即Object-Relationl Mapping,它的作用是在关系型数据库和对象之间形成一个映射,这样,我们在具体的操作数据库的时候,就不需要再去和复杂的SQL语句打交道,只要像平时操作对象一样操作它就可以了。■1.1.配置文件JPA persistence.xml 文件初学者指南_allway2的博客-CSDN博客_persistence.xml。

sun0322 2551

[转载]Enterprise JavaBeans 入门:将 EJB 部署到 WebSphere 应用服务器

Enterprise JavaBeans 入门将 EJB 部署到 WebSphere 应用服务器本章主要讲述IBM WebSphere 应用服务器 (WAS) 基本架构和将一个 bean 部署到 WAS 的基本步骤。 ...

congji3817的博客 322

ejb本地调用总结(websphere

1:本地调用前提:(1)被调用者实现了LOCAL接口(2)调用者和被调用者应该在同一EJB模块打包文件(ear)內,由于是本地调用,也就是说调用者和被调用者应运行于同一个ejb容器内,所以,想用类似main函数调用的企图都是不能成功的(因为main函数不可能运行于ejb容器)。(3)调用者的部署描述(ejb-jar.xml)中有关于被调用者的Local ref的描述。示例如

Determination 1249

java中的frame_在Java语言中,Frame默认的布局管理器是()。

案例分析一:假定CPU的主频是500MHz。硬盘采用DMA方式进行数据传送,其数据传输率为4MB/s, 每次DMA传输的数据量为8KB, 要求没有任何数据传输被错过。如果CPU在DMA初始化设置和启动硬盘操作等方面用了1000个时钟周期,并且在DMA传送完成后的中断处理需要500个时钟,则在硬盘100%处于工作状态的情况下, CPU用于硬盘I/O操作的时间百分比大约是多少?案例分析二:请求分页管理...

weixin_32446485的博客 1865

[转载]WebSphere 4.0 中的 EJB 元数据: 第 2 部分:关联

WebSphere 4.0 中的 EJB 元数据: 第 2 部分:关联简介 我的上篇文章描述了在 WebSphere® Application Server 高级版 4.0 中,如何将容器管理的持久性(CMp)EJ...

congji3817的博客 259

[转载]WebSphere 4.0 中的 EJB 元数据: 第 1 部分:四个文件的故事

WebSphere 4.0 中的 EJB 元数据: 第 1 部分:四个文件的故事这篇文章说明了 WebSphere 如何使用元数据将容器管理的持久性(CMp)EJB 映射到数据库表。通过使用大量的代码示例和几个简单的技巧,它显示...

congji3817的博客 262

[转载]为您的 Linux 应用开发加油提速: 在 Linux 上 DB2 和 WebSphere 一起使用 EJB...

为您的 Linux 应用开发加油提速: 在 Linux 上 DB2 和 WebSphere 一起使用 EJB 持久性本文所面向的读者是在 iSeries 利用 Linux 开发企业应用程序的开发人员,他们希望在 DB2/400...

congji3817的博客 134

[转载]几种主要EJB Container的介绍

几种主要EJB Container的介绍SUN公司正式推出了EJB的规范之后,在众多的公司和开发人员中引起了很大的反响。标志着用Java开发企业级应用系统将变的非常简单。许多公司都已经推出了或正打算EJB的产品。EJB已经成为了...

congji3817的博客 852

鱼缸过滤器怎么选?2026年主流类型品牌选购指南

养鱼先养水,养水靠过滤,这是水族圈颠扑不破的真理。一套合格的鱼缸过滤系统,远不止是抽走鱼便那么简单,它背后是物理过滤、生化过滤化学过滤协同工作的完整逻辑,核心在于硝化细菌对氨氮的持续分解。理解滤材培菌原理、循环流量的匹配规则以及不同过滤方式的适用边界,是科学养水、稳定水质的先决条件。在家庭水族箱、水草造景缸乃至大型龙鱼缸等典型场景中,上滤滴流、外置滤桶底滤各有优劣;瀑布过滤和内置过滤器则适合小缸轻负载。结合水体计算、扬程损耗品牌口碑,才能真正选到匹配的过滤器,让清澈水质长期在线。

congji3817的博客 359

[转载]IBM WebSphere 开发者技术期刊: 通过 WebSphere Business Integration Server F

IBM WebSphere 开发者技术期刊: 通过 WebSphere Business Integration Server Foundation V5.1 在 CMP bean 中使用关系型存储过程在 IBM® WebSph...

congji3817的博客 369

[转载]在 WebSphere Studio V5.1.2 中使用代码片段进行 EJB 编程

WebSphere Studio V5.1.2 中使用代码片段进行 EJB 编程EJB 为分布式计算和容器管理持久性提供了一个强有力的机制,但是其编程模型比较复杂。本文显示了如何使用 WebSphere Studio 通过...

congji3817的博客 220

应用服务器-Jboss To Websphere迁移(转载)

***转载***转载网址: http://www.chinaitpower.com/2006Aug/2006-09-19/215409.html 近日做了jboss服务器到websphere服务器的迁移工作,我们刚开始的时候估计太过乐观,认为都是j2ee架构上的应用服务器,应该在1~2天内能够完成这个工作,但实际上,最终我们用了将近2周的时间才完成此工作。迁移过程中遇到了很多典型的问题

888

[转载]IBM WebSphere 开发者技术期刊: 利用本地和远程 EJB 接口来实现部署灵活性和优化的性能...

IBM WebSphere 开发者技术期刊: 利用本地和远程 EJB 接口来实现部署灵活性和优化的性能[@more@]本文展示了样本 J2EE 应用程序的设计方法、实现和测试结果,提供了 Enterprise Java Bean...

congji3817的博客 211

转载: 将J2EE应用程序移植到WebSphere应用程序服务器

文章来源:http://wassoa.blog.ccidnet.com/blog-htm-do-showone-uid-35351-itemid-84465-type-blog.html 引言有关J2EE应用程序到WebSphere应用程序服务器的移植,尽管IBM提供了很多的资料和文章来说明如何将运行在WebLogic上的应用程序移植到WebSphere上,但是大家可能还是有所疑惑:是否从

zjyahehe的专栏 727

[转载]有效的实体 EJB 开发

有效的实体 EJB 开发随着越来越多的程序员在其项目中使用 Enterprise JavaBean (EJB) 组件,对简化 EJB 开发的工具需求也日渐增长。本文讨论容器管理的持久性 (CMP) 实体 Enterprise ...

congji3817的博客 216
上一篇: 大模型如何从模糊目标中自我进化?Aspire 方法全解析
下一篇: Qt构建飞行模拟器教员台:实时UDP+多线程+硬实时通信架构
congji3817
博客等级 码龄10年 15粉丝 588原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值