WidowX-250s 机械臂学习记录

官网教程:Python Demos — Interbotix X-Series Arms Documentation

系统:Ubuntu20.04,ROS1


相关的硬件编译配置跳过 

Python Demos

这些演示展示了使用 Interbotix Python Arm 模块的各种方法(点击链接查看完整的代码文档;还可以查看 interbotix_xs_modules 软件包,以便更好地了解如何使用该模块和其他模块)。简而言之,创建该应用程序接口是为了让几乎没有 ROS 经验的用户也能控制 interbotix_xs_sdk 支持的任何 Interbotix Arm。具体来说,该应用程序接口还允许用户让机械臂摆出所需的末端执行器姿势或遵循笛卡尔轨迹。最后一项功能由现代机器人技术实现: 西北大学创建的现代机器人:机械、规划和控制代码库使最后一项功能成为可能。

要使应用程序接口正常工作,必须将机械臂关节设置为 “位置 ”控制,并将抓手设置为 “PWM ”控制(很方便,这些都是 interbotix_xsarm_control 软件包中的默认配置)。此外,应用程序接口还假定所有臂节电机的驱动模式寄存器都设置为 “基于时间的配置文件”(这也是默认配置)。简而言之,通过这种设置,用户可以非常轻松地自定义手臂从一个姿势到下一个姿势的运动持续时间和平滑度。


Python Arm 模块(位于 interbotix_xs_modules ROS 软件包中)建立在 interbotix_xs_sdk 软件包之上。要熟悉上图中的其他节点,请查看各个软件包的 README。

机器人操纵(robot_manipulation)--一个 ROS 节点(在 “幕后 ”运行),负责接收通过 Python API 输入的命令,并根据需要将数据发布到各种 ROS 主题中。它不是一个典型的 ROS 节点,因为它不能通过 ROS 启动文件启动,也不能使用 rosrun 命令从终端运行。相反,Python 应用程序接口模块包含一个类,该类实例化后,节点就有了生命。程序结束时,该对象被销毁,节点也随之消亡。


Usage

To get started, open up a terminal and type (assuming a WidowX-250 is being launched)…

roslaunch interbotix_xsarm_control xsarm_control.launch robot_model:=wx250s

Then, in another terminal, navigate to this directory and type…

python bartender.py        # python3 bartender.py if using ROS Noetic

您应该看到机器人(从虚拟吧台后面)拿起一个虚拟瓶子,旋转使末端执行器朝向相反方向,(在虚拟吧台上)倒一杯虚拟饮料,然后将 “瓶子 ”放下,恢复到睡眠姿势。

其他脚本的工作方式类似,但您必须确保将文件中的机器人名称改为您所拥有的机械臂。如果使用的是较小的机械臂模型(如 PincherX 100),您可能还需要调整指令姿势/轨迹,因为有些姿势/轨迹在物理上可能无法实现。为了方便起见,每个脚本还概述了让机器人移动所需的命令!


注意:

If you want to test out your code first on a simulated arm, make sure to set the use_sim arg to true like this: (如果想先在模拟臂上测试代码,请确保将 use_sim 参数设置为 true,就像这样:)

roslaunch interbotix_xsarm_control xsarm_control.launch robot_model:=wx250s use_sim:=true

运行该launch文件成功后的显示效果如下:


总结:

要运行一个基于python脚本控制的demo,需要使用如下指令:

roslaunch interbotix_xsarm_control xsarm_control.launch robot_model:=wx250s

launch文件启动无误后,机械臂的灯光应该为彩灯,随后继续:

cd ~/interbotix_ws/src/interbotix_ros_manipulators/interbotix_ros_xsarms/examples/python_demos

python bartender.py

机械臂即可实现运动!


最后给出机械臂的运动控制测试代码:

from interbotix_xs_modules.arm import InterbotixManipulatorXS
import numpy as np
import sysdef main():bot = InterbotixManipulatorXS("wx250s", "arm", "gripper")if (bot.arm.group_info.num_joints < 5):print('This demo requires the robot to have at least 5 joints!')sys.exit()bot.gripper.open()bot.gripper.close()bot.arm.set_ee_pose_components(x=0.3, y=0.0, z=0.3)  # 末端位姿控制 bot.arm.set_ee_cartesian_trajectory(x=0.0, y=0.0, z=-0.1)  # 相对距离控制# roll横滚, pitch俯仰, yaw偏航 末端执行器的目标姿态(单位通常为弧度)1弧度 ≈ 57.3度。bot.arm.set_ee_cartesian_trajectory(pitch=0.5)  bot.arm.set_ee_cartesian_trajectory(pitch=-0.5)bot.arm.set_ee_cartesian_trajectory(roll=0.5)  bot.arm.set_ee_cartesian_trajectory(roll=-0.5)bot.arm.set_ee_cartesian_trajectory(yaw=0.5)  bot.arm.set_ee_cartesian_trajectory(yaw=-0.5)# bot.arm.set_ee_cartesian_trajectory(roll=0.5, pitch=0.5, yaw=0.5)  # bot.arm.set_ee_cartesian_trajectory(roll=-0.5, pitch=-0.5, yaw=-0.5)bot.gripper.open()bot.arm.set_ee_cartesian_trajectory(x=-0.1, y=0.0, z=0.1)  # 相对距离控制# bot.arm.set_single_joint_position("waist", np.pi/6.0)  # waist腰关节旋转30度 # bot.arm.set_single_joint_position("waist", -np.pi/6.0)# bot.arm.go_to_home_pose()bot.arm.go_to_sleep_pose()if __name__=='__main__':main()

该脚本主要演示了使用Interbotix ROS控制库对机械臂进行一系列操作,包括:

  • 初始化机器人对象和检查自由度。
  • 控制夹爪的开合。
  • 通过绝对位置控制和相对位移控制来设置末端执行器的位置。
  • 调整末端执行器的姿态(roll、pitch、yaw),单位为弧度。
  • 最后,将机械臂移入安全的休眠位姿。

整个流程可以用于展示机械臂在完成抓取、倒料、放置等任务时的运动规划与执行过程。通过调整各个参数,你可以根据实际应用场景定制机械臂的运动轨迹和动作。

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

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

相关文章

【CubeMX-HAL库】STM32F407—无刷电机学习笔记

目录 简介&#xff1a; 学习资料&#xff1a; 跳转目录&#xff1a; 一、工程创建 二、板载LED 三、用户按键 四、蜂鸣器 1.完整IO控制代码 五、TFT彩屏驱动 六、ADC多通道 1.通道确认 2.CubeMX配置 ①开启对应的ADC通道 ②选择规则组通道 ③开启DMA ④开启ADC…

集成右键的好用软件,支持多线程操作!

今天给大家分享一个超级实用的小工具&#xff0c;真的能帮上大忙呢&#xff01;这个软件是吾爱大神无知灰灰精心制作的&#xff0c;简直就是图片转换界的“小能手”。 它能一键把webp格式的图片转换成png格式&#xff0c;而且速度超快&#xff0c;完全不输那些付费的软件&#…

CSDN 博客之星 2024:肖哥弹架构的社区耕耘总结

#博客之星2024年度总评选—主题文章创作# CSDN 博客之星 2024&#xff1a;肖哥弹架构的社区耕耘总结 肖哥弹架构 是一位专注于技术分享和社区建设的博客作者。今年&#xff0c;我荣幸地再次入选CSDN博客之星TOP300&#xff0c;这不仅是对我过去努力的认可&#xff0c;更是对未…

【分布式理论7】分布式调用之:服务间的(RPC)远程调用

文章目录 一、RPC 调用过程二、RPC 动态代理&#xff1a;屏蔽远程通讯细节1. 动态代理示例2. 如何将动态代理应用于 RPC 三、RPC序列化与协议编码1. RPC 序列化2. RPC 协议编码2.1. 协议编码的作用2.2. RPC 协议消息组成 四、RPC 网络传输1. 网络传输流程2. 关键优化点 一、RPC…

综合评价 | 基于随机变异系数-TOPSIS组合法的综合评价模型(Matlab)

基于随机变异系数-TOPSIS组合法的综合评价模型 代码获取私信回复&#xff1a;综合评价 | 基于随机变异系数-TOPSIS组合法的综合评价模型&#xff08;Matlab&#xff09; 一、引言 1.1、研究背景与意义 在现代社会&#xff0c;随着信息量的不断增加和数据复杂性的提升&#…

采用分步式无线控制架构实现水池液位自动化管理

以下是基于巨控GRM241Q-4D4I4QHE模块的完整技术方案&#xff0c;采用分步式无线控制架构实现水池液位自动化管理&#xff1a; 一、系统架构设计 硬件部署 山顶单元 GRM241Q模块&#xff08;带4G功能&#xff09; 液位计&#xff08;4-20mA&#xff09; 功能&#xff1a;实时采…

Vue设计模式到底多少种?

Vue设计模式到底多少种&#xff1f; 很多同学问&#xff0c;Vue到底有多少种设计模式&#xff1f;&#xff1f;各个模式到底是什么意思&#xff1f;&#xff1f;又各自适合什么场景&#xff1f;&#xff1f; 这里我给大家直接说下&#xff0c;Vue的设计模式没有一个固定的数值…

[LeetCode] day19 454. 四数相加 II

题目链接 题目描述 给你四个整数数组 nums1、nums2、nums3 和 nums4 &#xff0c;数组长度都是 n &#xff0c;请你计算有多少个元组 (i, j, k, l) 能满足&#xff1a; 0 < i, j, k, l < n nums1[i] nums2[j] nums3[k] nums4[l] 0 示例 1&#xff1a; 输入&…

查看二进制程序内的 .interp 段

synopsis 可以使用 readelf &#xff0c;objdump&#xff0c;hexdump等工具查看 二进制程序内的.interp段信息。 1. 使用readelf查看.interp段 readelf 是一个查看ELF&#xff08;Executable and Linkable Format&#xff09;文件信息的工具&#xff0c;特别适合查看ELF头和…

【时时三省】(C语言基础)基础习题1

山不在高&#xff0c;有仙则名。水不在深&#xff0c;有龙则灵。 ----CSDN 时时三省 1.什么是程序&#xff1f;什么是程序设计 程序是为实现特定目标或解决特定问题&#xff0c;用计算机能理解和执行的语言编写的一系列指令的集合。 程序设计是问题分析&#xff0c;设计算法…

食品饮料生产瓶颈?富唯智能协作机器人来 “破壁”

在食品和饮料行业的发展进程中&#xff0c;诸多生产瓶颈如重复性劳动负担、复杂环境作业难题、季节性产能波动等&#xff0c;长期制约着企业的高效运营与进一步发展。如今&#xff0c;富唯智能协作机器人的出现&#xff0c;为这些难题提供了完美的解决方案&#xff0c;正逐步改…

[创业之路-289]:《产品开发管理-方法.流程.工具 》-15- 需求管理 - 第1步:原始需求收集

概述&#xff1a; 需求收集是需求管理的第一步&#xff0c;也是产品开发、项目管理或软件设计中的关键步骤。原始需求收集主要是指从各种来源获取关于产品或服务的初步需求和期望。 以下是对需求管理中的原始需求收集的详细分析&#xff1a; 1、原始需求收集的目的 原始需求…

81页精品PPT | 华为流程与信息化实践与架构规划分享

华为流程与信息化实践与架构规划分享主要围绕华为在业务流程与信息化建设方面的经验、企业架构规划方法以及企业数字化转型路径展开。华为通过持续的业务变革和信息化建设&#xff0c;从本土企业逐步发展为国际化、全球化企业&#xff0c;其管理体系以持续创新和世界级管理体系…

DeepSeek 实践总结

目录 1、与AI对话-万能公式 chatbox 谷歌插件方式 命令行方式 2、ChatPPT+DeepSeek形成PPT 1、与AI对话-万能公式 *明确身份+任务+细节描述+输出格式* 这样的方式能更加准确的帮助你快速获得接近你想法的内容。 身份:你是谁?(网络负责人/记者/老师。。。)任务:要解决什…

51c自动驾驶~合集49

我自己的原文哦~ https://blog.51cto.com/whaosoft/13164876 #Ultra-AV 轨迹预测新基准&#xff01;清华开源&#xff1a;统一自动驾驶纵向轨迹数据集 自动驾驶车辆在交通运输领域展现出巨大潜力&#xff0c;而理解其纵向驾驶行为是实现安全高效自动驾驶的关键。现有的开…

【AI学习】LLM的发展方向

个人的思考&#xff0c;请大家批评。 这一轮AI浪潮&#xff0c;叙事的主要逻辑就是scaling law&#xff0c;模型越大&#xff0c;性能越好&#xff0c;投入越大&#xff0c;性能越好&#xff0c;回报越高&#xff0c;等等。当然&#xff0c;首先要有一个能够scaling的模型架构…

C语言学习笔记:子函数的调用实现各个位的累加和

在C语言程序学习之初&#xff0c;我们都会学习如何打印 hello world&#xff0c;在学习时我们知道了int main&#xff08;&#xff09;是主函数&#xff0c;程序从main函数开始执行&#xff0c;这是流程控制的一部分内容。在主函数中我们想要实现一些功能&#xff0c;比如求各个…

白话文实战Nacos(保姆级教程)

前言 上一篇博客 我们创建好了微服务项目,本篇博客来体验一下Nacos作为注册中心和配置中心的功能。 注册中心 如果我们启动了一个Nacos注册中心,那么微服务比如订单服务,启动后就可以连上注册中心把自己注册上去,这过程就是服务注册。每个微服务,比如商品服务都应该注册…

2025.2.9 每日学习记录2:技术报告写了一半+一点点读后感

0.近期主任务线 1.完成小论文准备 目标是3月份完成实验点1的全部实验和论文。 2.准备教资笔试 打算留个十多天左右&#xff0c;一次性备考笔试的三个科目 1.实习申请技术准备&#xff1a;微调、Agent、RAG 1.今日完成任务 1.电子斗蛐蛐&#xff08;文本书写领域&am…

【Git】ssh如何配置gitlab+github

当我们工作项目在gitlab上&#xff0c;又希望同时能更新自己个人的github项目时&#xff0c;可能因为隐私问题&#xff0c;不能使用同一′密钥。就需要在本地电脑上分别配置两次ssh。 1、分别创建ssh key 在用户主目录下&#xff0c;查询是否存在“.ssh”文件&#xff1a; 如…