UR20机械臂学习笔记

本文详细介绍了如何使用UR20机械臂进行第三方库的安装与导入,包括机器人初始化步骤、设置末端法兰和负载,以及各种运动程序(如MoveJ、MoveL等)的使用方法。还涵盖了获取机器人状态和控制IO口的实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


UR20机械臂学习笔记

一.使用UR系列机器人第三方库

安装第三方库

pip install urx

导入第三方库

import urx

二.UR机器人的初始化

1.连接UR机器人

调用Robot方法,该函数有两个参数,host为UR20机器人的ip地址,use_rt为是否对机器人继续实时监控。当设置为True时,可以时刻读取机械臂的运行状态,当设置为False时,无法返回机械臂的运行状态,返回值为None。

ur20 = urx.Robot(host="192.168.0.215", use_rt=True)

ip地址获取方法:

1.已知机械臂ip地址的情况:

将ip地址直接赋值给host。

2.未知机械臂ip地址的情况:

可使用UR系列机械臂配套的示教器,在设置中查看该机械臂的ip地址。

2.设置机器人末端法兰(tcp)

设置机器人法兰到刀尖的转换,其中tcp输入参数为坐标值,在UR20机器人中,坐标值为p[x,y,z,rx,ry,rz],其中包括坐标以及角度。

ur20.set_tcp(tcp=(0, 0, 0.1, 0, 0, 0))

3.设置机器人末端负载

weight参数为以千克为单位设置有效载荷,cog参数为cog 是一个 x、y、z 矢量,如果未指定 cog,则使用刀具中心点

ur20.set_payload(weight=2, cog=(0, 0, 0.1))

三.机器人运动程序

1.机器人移动

(1) MoveJ

joints参数为机器人的坐标,依然是p[x,y,z,rx,ry,rz]格式的数据,acc参数为加速度,vel参数为速度。

ur20.movej(joints=(1, 2, 3, 4, 5, 6), acc=a, vel=v)

涉及 MoveJ 的交融 MoveJ 交融会在关节空间生成一条平滑的曲线。这适用于从 MoveJ 到 MoveJ、MoveJ 到 MoveL 和 MoveL到 MoveJ 的交融。与没有交融的移动相比,交融会产生更加平滑和更快的轨迹( (see Figure 15.6)) 。如果使用速度和加速度来指定速度曲线,则在交融过程中,交融保持在交融半径内。如果使用时间而非速度和加速度来指定两个运动的速度曲线,则交融轨迹将遵循原始 MoveJ 的轨迹。如果两个运动的时间受限,则使用交融不会节约时间。

(2) MoveL

tpose参数为机器人的坐标,依然是p[x,y,z,rx,ry,rz]格式的数据,acc参数为加速度,vel参数为速度。

ur20.movel(tpose=(1, 2, 3, 4, 5, 6), acc=a, vel=v)

MoveL中的交融在MoveL中交融时,交融的位置以恒定速度遵循圆弧路径。方向与两条轨迹之间的平滑插值交融。机器人可以在遵循圆弧路径之前在轨迹上减速以避免非常高的加速度( 例如,如果两个轨迹之间的角度接近 180 度) 。

(3) MoveP

tpose参数为机器人的坐标,依然是p[x,y,z,rx,ry,rz]格式的数据,acc参数为加速度,vel参数为速度。

ur20.movep(tpose=(1, 2, 3, 4, 5, 6), acc=a, vel=v)

MoveP 中的交融 在 MoveP 中交融时,交融的位置以恒定速度遵循圆弧路径。方向与两条轨迹之间的平滑插值交融。您可以交融 MoveJ 或 MoveL 到 MoveP 内。在这种情况下,机器人使用MoveP 的圆弧交融,并插入两个运动的速度。您不可以交融MoveP 到 MoveJ 或 MoveL 内。相反,MoveP 的最后一个路点被视为没有交融的停止点。如果两条轨迹处于接近 180 度( 反向)的角度,则无法执行交融,因为它会创建一个半径非常小的圆弧,机器人无法以恒定速度遵循。这会导致程序中的运行时异常,这种情况可通过调整路点来纠正,以形成一个不太尖锐的角。

(4) MoveC

pose_via和pose_to参数为机器人的坐标,依然是p[x,y,z,rx,ry,rz]格式的数据,代表机器人的起始未知和终止未知,机器人内部自动计算运动半径。acc参数为加速度,vel参数为速度。

ur20.movec(pose_via=(1,2,3,4,5,6), pose_to=(2,3,4,5,6,7), acc=a, vel=v)

MoveCircle 命令可以通过创建一个半圆来创建圆周移动。您只能通过 MoveP 命令添加 CircleMove。

(5) Translate

在基坐标中移动工具,保持方向,vect为向量坐标x,y,z。输入后会与机器人当前坐标相加,得到新的坐标,从而控制机器人运动。acc参数为加速度,vel参数为速度。

ur20.translate(vect=(0.1, 0, 0), acc=a, vel=v)

(6) Stop

添加一个 stopj() 或一个 stopl(),以缓慢使机器人手臂减速。运动方式与上述movej和movel的运动方式相同,acc参数为加速度。

ur20.stopj(acc=a)

2.获取机器人状态

(1) Getj

获取关节位置

currt_pose = ur20.getj()

(2) Getl

返回当前从 tcp 到当前 csys 的转换

translate = ur20.getl()

(3) is_running

如果机器人正在运行,则返回 True(不一定要运行程序,也可能是空闲状态)

UR_State = ur20.is_running()

(4) is_program_running

检查程序是否正在运行。 警告!!!: 发送程序后,机器人可能需要 10 分之几秒才能进入运行状态。
秒后,机器人才会进入运行状态

UR_State = ur20.is_program_running()

(5) get_force

get_tcp_force 返回的力向量长度,如果 wait==True 则等待下一个数据包后返回

force = ur20.get_force()

(6) get_tcp_force

返回在 TCP 中测量的力

force = ur20.get_force()

3.控制IO口输入输出

(1) 模拟IO口输入

nb参数为引脚口。

ur20.get_analog_in(nb)

(2) 模拟IO口输出

output参数为引脚口,val为输出值,为模拟信号。

ur20.set_analog_out(output, val)

(3) 数字IO口输入

nb参数为引脚口。

ur20.get_digital_in(nb)

(4) 数字IO口输出

output参数为引脚口,val为输出值,高电平或低电平信号。

ur20.set_digital_out(output, val)
<think>好的,我现在需要帮助用户解决关于ROS2中使用colcon编译、source环境变量以及运行MoveIt配置的demo.launch.py的问题。首先,我要回忆一下ROS2的基本编译流程。用户提到了colcon build,这是ROS2中替代catkin_make的工具,所以应该先确认用户是否正确创建了工作空间,并且代码已经放在src目录下。 然后,用户需要source环境变量。记得在编译之后,需要source install目录下的setup.bash,这样环境变量才能正确设置。接下来是运行demo.launch.py,这应该在对应的功能包下执行,用户提到的是ur20_robot_moveit_config的launch文件夹,但通常应该直接在功能包根目录下使用ros2 launch,不需要进入launch目录。可能用户有误解,需要指出正确的命令格式。 还需要检查是否有依赖未安装,比如rosdep install的步骤是否完成。用户提供的引用中有提到rosdep install --from-paths src --ignore-src,这可能需要在编译前执行,确保依赖项已经安装,避免编译错误。 另外,用户提到的引用中有关于UR5的仿真启动命令,可能需要确认是否在仿真环境下运行demo.launch.py,是否需要设置特定的参数如simulated:=True。但demo.launch.py可能属于MoveIt的配置,可能不需要机器人IP,但如果是连接真实硬件,可能需要配置正确的IP地址。 可能的步骤是:创建并进入工作空间,克隆代码到src,安装依赖,colcon build编译,source环境变量,然后ros2 launch启动。需要详细写出每一步的具体命令,并注意路径的正确性。同时,提醒用户可能的常见问题,比如编译错误、依赖缺失,或者环境变量未正确source导致找不到功能包。 用户的问题还涉及到ur20_robot_moveit_config这个包,需要确认该包是否已经正确编译,并且在编译过程中是否有错误。如果编译成功,install目录下会有相应的launch文件,用户可以直接通过ros2 launch启动,无需进入launch文件夹。 最后,确保所有命令的正确性,例如colcon build可能需要添加参数如--symlink-install,但用户可能不需要,保持基础命令即可。同时,source命令的正确路径,比如在bash中应该是source install/setup.bash,或者使用. install/setup.bash。</think>### ROS2 MoveIt配置的编译与启动步骤 #### 1. 创建工作空间并克隆代码 ```bash mkdir -p ~/ros2_ws/src cd ~/ros2_ws/src git clone <你的UR20 MoveIt配置仓库地址> # 替换为实际仓库地址 ``` #### 2. 安装依赖 ```bash cd ~/ros2_ws rosdep install --from-paths src --ignore-src --rosdistro $ROS_DISTRO -y # 自动安装所有依赖[^3] ``` #### 3. 编译项目 ```bash cd ~/ros2_ws colcon build --symlink-install # 创建符号链接便于开发调试 ``` #### 4. 加载环境变量 ```bash source ~/ros2_ws/install/setup.bash # 每次新开终端都需要执行 ``` #### 5. 启动MoveIt Demo ```bash ros2 launch ur20_robot_moveit_config demo.launch.py ``` #### 附加说明 - 若需连接真实机器人,需添加参数: ```bash ros2 launch ur20_robot_moveit_config demo.launch.py robot_ip:=192.168.x.x ``` - 若使用仿真模式,添加参数: ```bash ros2 launch ur20_robot_moveit_config demo.launch.py use_sim_time:=true ``` ### 常见问题排查 1. **编译错误**:检查是否完成`rosdep install`步骤[^3] 2. **找不到launch文件**:确认已正确source环境变量 3. **机器人无法连接**:检查网络配置和IP地址设置[^1] 4. **依赖缺失**:使用`rosdep check`验证依赖完整性 ### 操作示例流程图 ```mermaid graph TD A[创建ros2_ws/src] --> B[克隆代码] B --> C[安装依赖] C --> D[colcon build] D --> E[source环境] E --> F[启动launch文件] ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小鱼子爱吃

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值