从零开始的机械臂yolov5抓取gazebo仿真(环境搭建篇下)

sunday功能包使用介绍以及开源

sunday我给自己机械臂的命名,原型是innfos的gluon机械臂。通过sw模型文件转urdf。Sunday项目主要由六个功能包sunday_description、sunday_gazebo、sunday_moveit_config、yolov5_ros、vacuum_plugin、realsense_ros_gazebo组成,下面我将介绍这六个功能包。

个人环境

首先介绍个人使用环境,博主使用的是Ubuntu18.04+gtx1660ti显卡+ros_melodic+cuda10.2+pytorch1.8+yolov5-6.1。环境配置的教程详见上一篇博客:
https://blog.csdn.net/qq_48427527/article/details/129201676?spm=1001.2014.3001.5502

sunday_description

sunday_description是由sw插件导出的功能包,我主要对sunday_description/urdf中的urdf文件进行修改,并配置xacro文件。

sunday_description/launch/sunday_rviz.launch

文件用于观察我所配置的xacro文件的模型状态。

sunday_moveit_config

基于sunday_description/urdf/sunday.xacro对moveit进行配置修改方面还是参考古月的课程进行的修改。

修改过的文件:

sunday_moveit_config/config/controllers_gazebo.yaml

sunday_moveit_config/launch/moveit_rviz.launch

sunday_moveit_config/launch/moveit_planning_execution.launch

sunday_gazebo

该功能包主要用于配置机械臂操作的gazebo仿真环境,具体配置也是参考古月的课程,几个launch文件分别用于发布机械臂关节的状态以及与moveit做对接。

sunday_gazebo/launch/sunday_bringup_moveit.launch

该launch文件里面包含了所有节点,包括yolov5节点。如果你还未配置好yolov5环境,也可以使用以下不包含yolov5的launch文件打开gazebo环境。

sunday_gazebo/launch/sunday_bringup_moveit_origin.launch

yolov5_ros

该功能包是我在csdn上边找到的,封装了yolov5,能以launch文件启动,并发布话题,个人感觉还不错。地址:
YoloV5 的ros功能包

git clone https://github.com/qq44642754a/Yolov5_ros.git

具体使用过程就是将训练好的权重放置进功能包中对应launch文件的路径下边,在launch文件中修改话题名称以及其它参数即可。

vacuum_plugin

vacuum_plugin是一个吸盘的插件,在urdf中插入该插件即可在gazebo中实现吸盘的功能。

git clone https://github.com/tatsuya-s/gazebo_ros_vacuum_gripper_debugger

在sunday_description/urdf/sunday.xacro第490行添加插件

  <!-- vacuum_gripper plugin -->
  <gazebo>
    <plugin name="gazebo_ros_vacuum_gripper" filename="libvacuum_plugin.so">
      <robotNamespace>/sunday/vacuum_gripper</robotNamespace>
      <bodyName>link_6</bodyName>
      <topicName>grasping</topicName>
      <maxDistance>0.05</maxDistance>
      <minDistance>0.03</minDistance>
    </plugin>
</gazebo>

realsense_ros_gazebo

realsense_ros_gazebo功能包是realsense的gazebo功能包,其仿真效果与实物相同,且其中包含多款realsense型号的模型文件,其中便包含本项目中使用的realsenseD435i摄像头,可以将原urdf中的摄像头删除,调用该功能包的模型进行替换。

git clone https://github.com/nilseuropa/realsense_ros_gazebo.git

在sunday_description/urdf/sunday.xacro第454行添加代码

<xacro:include filename="$(find realsense_ros_gazebo)/xacro/depthcam.xacro"/>
<xacro:realsense_d435 sensor_name="camera" parent_link="link_5" rate="30">
    <origin xyz="-0.00068847 -0.06 -0.13" rpy="-3.14 0 -1.5708"/>
</xacro:realsense_d435>

gripper_model

gripper_model并不是一个功能包,这个包里有四个模型文件,对应视频中的三个多边形体以及,喂食过程中的人物张嘴闭嘴展板。模型文件的制作以及贴图的教程可以看我之前写的博客。博客地址:

https://blog.csdn.net/qq_48427527/article/details/124477608?spm=1001.2014.3001.5502

将四个模型拷贝放置到.gazebo/models路径,注意不能将整个包拷贝,仅将四个模型文件拷贝即可。

使用教程

现将几个模型文件gripper_model中的几个模型文件放到.gazebo/models路径中

将sunday.zip解压置于xx_ws/src路径下

cd xx_ws

catkin_make

source devel/setup.bash

conda activate 之前创建的虚拟环境

roslaunch sunday_gazebo sunday_bringup_moveit.launch(该launch包含yolov5节点,因此需要在conda环境中运行)

新开一个终端

roscd sunday_gazebo/scripts

python grasp&feed.py(该脚本无需进入conda环境中运行)
在终端中输入想要拾取物体的名称,从而实现物体的拾取以及喂食

/

视频第一部分pick&place

conda activate 之前创建的虚拟环境
roslaunch sunday_gazebo sunday_bringup_moveit.launch
将gazebo中的展板挪远一点

新开终端
roscd sunday_gazebo/scripts
python grasp.py
在终端中输入想要拾取物体的名称,从而实现物体的拾取

由于用于训练的多边形样本照片过少,如果出现展板挡住多边形模型出现阴影从而无法准确识别的情况,可以拖动或者旋转多边形模型通过调整位姿实现物体识别。

开源地址

github:https://github.com/Lord-Z/sunday

另外三个开源的功能包:
链接: https://pan.baidu.com/s/1N2T7TLAK9QIbBxWjepwJ6w 密码: uvkv
在放进百度云盘之前,博主将yolov5_ros/weights路径下的best.pt重命名为了polygon.pt用于方便区分权重,给各位造成一定的困扰,请各位在使用时将launch文件中的路径名自行修改。

资料

1.YoloV5 的ros功能包
2.realsense_ros_gazebo
3.vacuum_plugin

  • 10
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 17
    评论
您好!对于在ROS中进行机械臂Gazebo仿真环境中的抓取任务,您可以按照以下步骤进行操作: 1. 安装相关软件包:首先,您需要安装ROSGazebo仿真环境。确保您的系统中已经正确安装了ROSGazebo,并且能够正常工作。 2. 配置机械臂模型:在Gazebo中进行机械臂仿真之前,您需要加载机械臂的模型。可以使用URDF或SDF格式的文件来描述机械臂的模型,并将其放置在相应的文件夹中。 3. 编写控制程序:您需要编写控制程序来控制机械臂的运动和抓取动作。可以使用ROS中的MoveIt等库来简化控制和规划操作。 4. 设置仿真场景:在Gazebo中创建一个仿真场景,包括放置物体和设定物体的属性。您可以使用Gazebo提供的插件来实现物体的抓取和放置动作。 5. 启动仿真环境:使用ROS命令启动Gazebo仿真环境,并加载机械臂模型和仿真场景。确保机械臂和传感器的连接正确,并且能够接收和发送数据。 6. 进行抓取任务:通过发送控制指令来控制机械臂进行抓取任务。您可以使用ROS提供的相关工具和库来实现机械臂的运动规划和控制。 以上是一个大致的步骤,具体的实现细节会根据您使用的机械臂仿真环境有所不同。您可以参考ROSGazebo的官方文档以及相关的教程和示例代码来更详细地了解和实践机械臂Gazebo仿真中的抓取任务。希望对您有所帮助!如果您有任何问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值