Unity和ROS通讯的机械臂
Posted H_Jackage
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity和ROS通讯的机械臂相关的知识,希望对你有一定的参考价值。
Unity和ROS之间的通讯包
目录
参考及引用
1. Github源码地址
①Unity和ROS之间的通讯
https://github.com/Unity-Technologies/Unity-Robotics-Hub 快速链接
②一个ROS包(用于接收从Unity场景发送的ROS消息)
https://github.com/Unity-Technologies/ROS-TCP-Endpoint 快速链接
③两个导入到Unity的包
a. 用于从ROS发送/接收消息的ROS TCP Connector和用于在Unity场景中添加传入和传出消息的可视化的Visualizations Package
https://github.com/Unity-Technologies/ROS-TCP-Connector 快速链接
b. 导入URDF到Unity(好像Unity自带,但重新本地导入了一遍)
https://github.com/Unity-Technologies/URDF-Importer快速链接
3. Unity文档关于本地文件导入到Unity
https://docs.unity3d.com/Manual/upm-ui-local.html快速链接
4. Plastichub网址
https://plastichub.unity.cn/unity-tech-cn/Unity-Robotics-Hub快速链接
————————————————————————————————————————————
一、两个Unity需要用到的包
1. 安装ROS-TCP-Connector包
采用本地路径添加的方法
https://github.com/Unity-Technologies/ROS-TCP-Connector快速链接
下载zip文件后解压缩到自己所放置的文件路径
新建一个项目,“Window” ——“Package Manager ” —— “+”—— “Add package from disk…”
然后,选择自己下载到的本地路径,找到package的JSON源文件,点击打开(添加)
在“Package Manager ”会看到添加成功,里面包括版本、路径等信息。
2. 安装URDF-Importer包
采用本地路径添加的方法
https://github.com/Unity-Technologies/URDF-Importer快速链接
下载zip文件后解压缩到自己所放置的文件路径
“Window” ——“Package Manager ” —— “+”—— “Add package from disk…”
然后,选择自己下载到的本地路径,找到package的JSON源文件,点击打开(添加)
方法同上。
二、Github源码上的教程
1. Pick-and-Place
网址:https://plastichub.unity.cn/unity-tech-cn/Unity-Robotics-Hub/src/branch/main…/tutorials/pick_and_place/README.md
快速链接
翻译:
ROS提供消息传递、包管理、底层设备控制和硬件抽象等服务。
Unity Robotics Hub能够支持导入URDF文件,并在ROS和Unity之间发送和接收消息。
本教程将介绍将ROS与Unity集成所需的步骤,从安装Unity编辑器到使用导入的URDF创建场景,到使用MoveIt轨迹规划完成带有已知姿势的拾取和放置任务。
2. Object Pose Estimation Demo
网址:https://github.com/Unity-Technologies/Robotics-Object-Pose-Estimation
快速链接
3. Articulations Robot Demo
网址:https://github.com/Unity-Technologies/articulations-robot-demo
快速链接
由于里面有详细的教程,因此按照教程跑一遍就可以了。这里只记录个人遇到的一些问题。
三、遇到的问题及解决办法
1. Unity版本问题
因为历程中用到了开源的机械臂模型,因此,要用合适的版本才能打开。
Unity 2020.3: 2020.3.10f1 or later
Unity 2021.1: 2021.1.8f1 or later
Unity 2021.2: 2021.2.a16 or later
2. Unity场景问题
一开始自己从头弄的一个场景一直走到Part 3,结果在最后,ROS不能实现对Unity机械臂的路径规划和抓取,终端出现报错
[ERROR] [1668429397.373772594]: RRTConnect: Unable to sample any valid states for goal tree
后来换了场景重新再走一遍历程才成功。
因此在Part 1里,导入了Projects以后
如图,得选择到该场景才适合接着进行。
3. 遇到下载Github源码时,有些文件为空的
解决办法可以根据教程进行补救,原教程很详细地说了。
我这里用了最直接的方法,把他们一个一个模块拆分下载再粘贴回去。
第一个:moveit_msgs
https://github.com/ros-planning/moveit_msgs快速链接
第二个:niryo_one_ros
https://github.com/NiryoRobotics/niryo_one_ros快速链接
第三个:ROS-TCP-Endpoint
https://github.com/Unity-Technologies/ROS-TCP-Endpoint快速链接
以上三个都是在Unity-Robotics-Hub/tutorials/pick_and_place/ROS/src/
路径下
ROS 2 驱动程序现在可用于 ABB 的机械臂
- www.therobotreport.com/ros-2-driver-now-available-for-abbs-robot-arms
- github.com/PickNikRobotics/abb_ros2
2021年:ABB之ROS功能更新2021_zhangrelay的博客-CSDN博客
PickNik Robotics 和 Optimax Systems 发布了用于ABB 机械手的ROS 2 驱动程序。该包装已使用 ABB IRB 1200-5/0.9 机械手进行了测试。开发人员说“移植新的机器人模型应该是一个简单的过程,我们欢迎拉取请求。”
新的 ABB 软件包允许两种模拟模式。在第一种模式下,它可以欺骗 ros2_control 驱动程序以在 ROS 中进行仿真。或者,驱动程序可以与 ABB 专有的 RobotStudio 软件进行通信,该软件是一种模拟环境,可支持各种 ABB 特定的附加组件。
与 ROS 1 ABB 软件包相比,PickNik 和 Optimax 表示,此 ROS 2 版本的优势包括:
- 提高安全性
- 中间件配置更灵活
- 所有必要的包和文档都在一个存储库中可用
安装和说明可以在这里找到。
美国光学原型制造商 Optimax 将使用新的 ABB 封装进行精密制造。
PickNik 的 30 多名机器人专家团队是开源机器人社区的领导者,共有 300 多年的机器人经验。这是 ROS 2 PickNik 帮助发布的第二个主要机器人驱动程序。2022 年 5 月,为 Universal Robots 的协作机械臂发布了 ROS 2 驱动程序。
ABB 最近推出了机器人卸垛解决方案,旨在处理物流、电子商务、医疗保健和消费品行业中复杂的卸垛任务。该解决方案将 ABB 工业机械臂与视觉引导和新的定制夹具设计相结合。该解决方案针对具有各种箱尺寸和类型的混合负载托盘进行了优化。
ABB 于 2021 年以1.9 亿美元收购了自主移动机器人 (AMR) 开发商 ASTI Mobile Robotics ,从而扩大了其机器人产品组合。此次收购将 ABB 的产品系列扩展到 AMR 以及工业和协作机器人手臂之外。在收购时,ASTI 解决方案的销售收入为每年 5000 万美元,年增长率为 30%。
PickNik Robotics 和 Optimax Systems Inc. 合作发布了用于 ABB 机械手的 ROS2 驱动程序。
美国最大的原型光学制造商 Optimax 与 PickNik Robotics 合作发布了用于 ABB 机械手的 ROS2 驱动程序。Optimax 光学器件具有广泛的应用,包括航空航天、半导体、军事、医疗和研发。该公司将使用新的 ABB 软件包进行精密制造。
PickNik 的 30 多名机器人专家团队是开源机器人社区的领导者,共有 300 多年的机器人经验。这是 PickNik 帮助发布的第二个主要的 ROS2 机器人驱动程序。
新的 ABB 软件包允许两种不同的仿真模式。在第一种模式下,它可以欺骗 ros2_control 驱动程序以在 ROS 中进行仿真。或者,驱动程序可以与 ABB 专有的 RobotStudio 软件进行通信,该软件是一个非常精确的仿真环境,并支持各种 ABB 特定的附加组件。该封装还使用 IRB 1200-5/0.9 机械手进行了测试。截至目前,该软件包包含 IRB 1200-5/0.9 的详细自述文件和启动文件。移植新的机器人模型应该是一个简单的过程,我们欢迎拉取请求。ROS 社区已经打开了几个拉取请求来贡献额外的功能。
与 ROS1 ABB 软件包相比,这个新的 ROS2 版本的优势包括:
提高安全性
中间件配置更灵活
所有必要的包和文档都在一个存储库中可用
安装和说明可以在这里找到 21. 请为开发人员留下反馈,并将功能请求作为问题提出。
这是一个元包,包含运行 ABB 机器人或使用 ROS2 进行模拟的所有内容。
abb_bringup
:启动文件和 ros2_control 配置文件对许多类型的 ABB 机器人都是通用的。abb_hardware_interface
: 一个使用 abb_libegm 的 ros2_control 硬件接口。robot_specific_config
:包含机器人描述和配置文件的软件包,这些文件对每种类型的 ABB 机器人都是唯一的。abb_resources
: 一个包含 ABB 相关 xacro 资源的小包。docs
: 更详细的文档。robot_studio_resources
:代码和打包解决方案可轻松开始使用 RobotStudio。abb_ros2
: 用于在 rosdistro 中保留 repo 名称的元包
入门:
这个包的使用方法有以下三种:
-
使用实际的物理 ABB 机器人
-
使用 ROS2 模拟机器人控制器
-
使用 ABB RobotStudio 模拟。需要 2 台 PC(一台 Windows,一台 Linux)
可以在此处找到详细的设置说明。
限制:
截至 2022 年 3 月,IRB1200-5-0.9 是唯一具有机器人描述和配置文件的机器人。欢迎请求添加其他机器人类型。
贡献
预提交格式检查
pre-commit Formatting Checks
This package has a pre-commit check that runs in CI. You can use this locally and set it up to run automatically before you commit something. To install, use pip:
这个包有一个在 CI 中运行的预提交检查。您可以在本地使用它并将其设置为在您提交某些内容之前自动运行。要安装,请使用 pip:
pip3 install pre-commit
To run over all the files in the repo manually:
手动运行 repo 中的所有文件:
pre-commit run -a
To run pre-commit automatically before committing in a local repo, install git hooks:
在本地 repo 中提交之前自动运行 pre-commit,请安装 git hooks:
pre-commit install
以上是关于Unity和ROS通讯的机械臂的主要内容,如果未能解决你的问题,请参考以下文章