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/
路径下