UR10e+D435+ag95夹爪 gazebo 仿真记录(二)

文章记录了在Ubuntu18.04系统和RosMelodic环境下,使用Gazebo9搭建UR10e机械臂的模拟平台,并结合find_object_2d包进行物体检测识别。过程中涉及realsenseD405相机的使用,包括启动相机、修改launch文件以匹配相机话题,以及解决在ROS1中D405相机识别问题的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

学习仿真环境gazebo下利用UR10e机械臂搭建模拟平台,此博客用于记录搭建过程

搭建过程参考了很多博主的帖子和GitHub开源代码,对在此领域一起努力并且乐于分享的人表示感谢!!!

运行环境:Ubuntu18.04+Ros-melodic+Gazebo9

目录

find_object_2d环境搭建

launch文件改写

运行结果

 闲谈


find_object_2d环境搭建

本文主要参考berry丶博主

(66条消息) Ros中使用find_object_2d快速实现物体的检测识别_berry丶的博客-优快云博客

首先下载melodic版本的find_object_2d源码放入工作空间后编译

introlab/find-object at melodic-devel (github.com)

真实相机我使用的是realsense D405,可以用该语句启动相机,需要编译realsense-ros功能包

roslaunch realsense2_camera rs_camera.launch 

也可以采用usb_cam或者uvc_camera功能包,同样也需要下载编译后运行

roscore   ---启动ros
roslaunch usb_cam usb_cam-test.launch  ---使用usb_cam
rosrun uvc_camera uvc_camera_node device:=/dev/video1  ---使用uvc_camera

当/dev/video不止一个时,比如D405彩色图像对应的是/dev/video4。对于usb_cam可以直接修改usb_cam.yml文件指定设备编号,对于uvc_camera 可以通过加device:=/dev/video1指定设备号

launch文件改写

在启动相机之后可以通过rostopic list命令看一下相机的话题是哪些,或者直接rqt_image_view看看各个话题对应的图片都是啥。

launch文件主要是改写这三个订阅的话题,需要和实际启动的相机订阅的话题一致。

--文件名 find_object_3d.launch
    <arg name="rgb_topic"         default="camera/rgb/image_rect_color"/>
	<arg name="depth_topic"       default="camera/depth_registered/image_raw"/>
	<arg name="camera_info_topic" default="camera/rgb/camera_info"/>

对于D405,修改为

	<arg name="rgb_topic"         default="/d435/color/image_raw"/>
	<arg name="depth_topic"       default="/d435/depth/image_raw"/>
	<arg name="camera_info_topic" default="/d435/depth/camera_info"/>

对于仿真环境下的D435,修改为

	<arg name="rgb_topic"         default="/d435/color/image_raw"/>
	<arg name="depth_topic"       default="/d435/depth/image_raw"/>
	<arg name="camera_info_topic" default="/d435/depth/camera_info"/

运行结果

真实相机,两个终端启动

roslaunch find_object_2d find_object_3d_rs_D405.launch  

roslaunch realsense2_camera rs_camera.launch 

 

仿真环境,两个终端启动,一个启动find_object_2d,另一个启动自己的仿真环境

roslaunch find_object_2d find_object_rs_D435.launch 

 闲谈

find_object_2d功能包编译的时候因为我的虚拟机上有多个opecv版本,而这个包编写的时候测试用的还是opencv2.3,过于古老,现在基本都是opencv3.x或者4.x了,所以需要在CMakeLists文件中指定opencv版本,不然可能会多个版本打架导致编译过了但是启动不了。我就指定成默认的3.2.0了,虽然我有4.5版本的但是没有试可以不。

FIND_PACKAGE(OpenCV 3.2.0 REQUIRED) # tested on 2.3.1

realsense D405相机有个bug就是在ros1中直接启动官方的launch文件是识别不了设备的,问了官方回应说是该相机不支持ROS1,搁置了半年没用,后来在GitHub上有人说可以改头文件就行,亲测可行,具体修改为realsense-ros->realsense2_camera->include->constants.h,第37行D405部分修改为,即可。大坑啊!!!

const uint16_t RS405_PID        = 0x0B5B; // DS5U

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值