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是由sw插件导出的功能包,我主要对sunday_description/urdf中的urdf文件进行修改,并配置xacro文件。
sunday_description/launch/sunday_rviz.launch
文件用于观察我所配置的xacro文件的模型状态。
基于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
该功能包主要用于配置机械臂操作的gazebo仿真环境,具体配置也是参考古月的课程,几个launch文件分别用于发布机械臂关节的状态以及与moveit做对接。
sunday_gazebo/launch/sunday_bringup_moveit.launch
该launch文件里面包含了所有节点,包括yolov5节点。如果你还未配置好yolov5环境,也可以使用以下不包含yolov5的launch文件打开gazebo环境。
sunday_gazebo/launch/sunday_bringup_moveit_origin.launch
该功能包是我在csdn上边找到的,封装了yolov5,能以launch文件启动,并发布话题,个人感觉还不错。地址:
YoloV5 的ros功能包
git clone https://github.com/qq44642754a/Yolov5_ros.git
具体使用过程就是将训练好的权重放置进功能包中对应launch文件的路径下边,在launch文件中修改话题名称以及其它参数即可。
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的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并不是一个功能包,这个包里有四个模型文件,对应视频中的三个多边形体以及,喂食过程中的人物张嘴闭嘴展板。模型文件的制作以及贴图的教程可以看我之前写的博客。博客地址:
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文件中的路径名自行修改。
这篇文章是继上一篇文章“Observability:从零开始创建Java微服务并监控它(一)”的续篇。在上一篇文章中,我们讲述了如何创建一个Javaweb应用,并使用Filebeat来收集应用所生成的日志。在今天的文章中,我来详述如何收集应用的指标,使用APM来监控应用并监督web服务的在线情况。源码可以在地址 https://github.com/liu-xiao-guo/java_observability 进行下载。摄入指标指标被视为可以随时更改的时间点值。当前请求的数量可以改变任何毫秒。你可能有1000个请求的峰值,然后一切都回到一个请求。这也意味着这些指标可能不准确,你还想提取最小/
修改(澄清问题)我已经花了几天时间试图弄清楚如何从Facebook游戏中抓取特定信息;但是,我遇到了一堵又一堵砖墙。据我所知,主要问题如下。我可以使用Chrome的检查元素工具手动查找我需要的html-它似乎位于iframe中。但是,当我尝试抓取该iframe时,它是空的(属性除外):如果我使用浏览器的“查看页面源代码”工具,这与我看到的输出相同。我不明白为什么我看不到iframe中的数据。答案不是它是由AJAX之后添加的。(我知道这既是因为“查看页面源代码”可以读取Ajax添加的数据,也是因为我有b/c我一直等到我可以看到数据页面之后才抓取它,但它仍然不存在)。发生这种情况是因为
我正在尝试用ruby编写一个简单的网络抓取代码。它一直工作到第29个url,然后我收到此错误消息:C:/Ruby193/lib/ruby/1.9.1/open-uri.rb:346:in`open_http':500InternalServerError(OpenURI::HTTPError)fromC:/Ruby193/lib/ruby/1.9.1/open-uri.rb:775:in`buffer_open'fromC:/Ruby193/lib/ruby/1.9.1/open-uri.rb:203:in`blockinopen_loop'fromC:/Ruby193/lib/r
我正在开发一个Rails应用程序,我需要在其中找到给定特定偏移量或时区的夏令时开始和结束日期。我基本上在我的数据库中保存了从用户浏览器接收到的时区偏移量(“+3”,“-5”),我想在它出现时修改它由于夏令时的变化。我知道Time实例变量有dst?和isdst方法,如果存储在它们中的日期在夏令时与否。>Time.new.isdst=>true但是使用它来查找夏令时的开始和结束日期会占用太多资源,而且我还必须为我拥有的每个时区偏移量执行此操作。我想知道更好的方法。 最佳答案 好的,基于你所说的和@dhouty'sanswer:您希望能够
我有一台生产机器和一台开发机器,都运行ubuntu8.10并且都运行最新的phusionpassenger。当我在osx上的本地开发机器上使用ruby1.9.1时,我想知道外面的人是否已经在使用带有ruby1.9.1甚至1.9.2的phusionpassenger?如果是这样,请告诉我们您的设置!此外,有没有办法在apache上使用phusionpassenger同时运行ruby1.8.7(ree)和1.9.1?感谢您的指点,我在任何地方都找不到任何提示... 最佳答案 是的,从某些2.2.x版本开始就正式支持它,我不记
date_select方法只能设置:start_year,但我想设置开始日期(例如3个月前的日期)(但没有这样的选项)。那么,我可以将开始日期设置为date_select方法吗?或者,要制作这样的选择框,我应该使用select_tag和options_for_select吗?或者,有什么解决办法吗?谢谢, 最佳答案 有可能……例如:start_year–设置年份选择的开始年份。默认为Time.now.year-5参见thisresource. 关于ruby-Rails3-我可以将开始日期
我想从特定索引开始遍历数组。我该怎么做?myj.eachdo|temp|...end 最佳答案 执行以下操作:your_array[your_index..-1].eachdo|temp|###end 关于ruby-从特定索引开始迭代数组,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/44151758/
目录0专栏介绍1平面2R机器人概述2运动学建模2.1正运动学模型2.2逆运动学模型2.3机器人运动学仿真3动力学建模3.1计算动能3.2势能计算与动力学方程3.3动力学仿真0专栏介绍?附C++/Python/Matlab全套代码?课程设计、毕业设计、创新竞赛必备!详细介绍全局规划(图搜索、采样法、智能算法等);局部规划(DWA、APF等);曲线优化(贝塞尔曲线、B样条曲线等)。?详情:图解自动驾驶中的运动规划(MotionPlanning),附几十种规划算法1平面2R机器人概述如图1所示为本文的研究本体——平面2R机器人。对参数进行如下定义:机器人广义坐标
一、机器人介绍 此处是基于MATLABRVC工具箱,对ABB-IRB-1200型号的微型机械臂进行正逆向运动学分析,并利Simulink工具实现对机械臂进行具有动力学参数的末端轨迹规划仿真,最后根据机械模型设计Simulink-Adams联合仿真。 图1.ABBIRB 1200尺寸参数示意图ABBIRB 1200提供的两种型号广泛适用于各作业,且两者间零部件通用,两种型号的工作范围分别为700 mm 和 900 mm,大有效负载分别为 7 kg 和5 kg。 IRB 1200 能够在狭小空间内能发挥其工作范围与性能优势,具有全新的设计、小型化的体积、高效的性能、易于集成、便捷的接
我有一些使用delayed_job的小程序。在我的本地主机上一切正常,但是当我将我的应用程序部署到Heroku并单击应该由delayed_job执行的链接时,没有任何反应,“任务”只是保存到表delayed_job中。Inthisarticleonherokublog写入时,执行delayed_job表中的任务,当运行此命令时rakejobs:work。但是我怎样才能运行这个命令呢?命令应该放在哪里?在代码中,还是从终端控制台? 最佳答案 如果您正在运行Cedar堆栈,请从终端控制台运行以下命令:herokurunrakejobs: