做最好的美食分享网站,wordpress快讯 主题,写一个wordpress下载插件,重庆 网站建设大全福利手术执行器添加摄像头 手术执行器文件夹surgical_new内容展示如何添加单目摄像头下载现成的机器人环境文件启动仿真环境 手术执行器文件夹surgical_new内容展示 进入src文件夹下选择进入vision_obliquity文件夹 选择launch 有两个可用gazebo中rviz展示的launch文件#xff0… 手术执行器添加摄像头 手术执行器文件夹surgical_new内容展示如何添加单目摄像头下载现成的机器人环境文件启动仿真环境 手术执行器文件夹surgical_new内容展示 进入src文件夹下选择进入vision_obliquity文件夹 选择launch 有两个可用gazebo中rviz展示的launch文件robot.launch是添加有摄像头的手术执行器文件robot_env.launch进一步添加有环境信息的手术执行器文件 下图是robot.launch展示红色方块是我们添加的摄像头 下图是robot_env.launch展示
如何添加单目摄像头
参考b站学习视频的添加摄像头部分内容: https://www.bilibili.com/video/BV1Ci4y1L7ZZ?p263vd_source9e3999ac88af2c6889c5f00cccc8d215 对应课程文档链接http://www.autolabor.com.cn/book/ROSTutorials/ 实现为我们自己的机器人添加摄像头功能 实现流程: 摄像头仿真基本流程: 已经创建完毕的机器人模型编写一个单独的 xacro 文件为机器人模型添加摄像头配置 将此文件集成进xacro文件 启动 Gazebo使用 Rviz 显示摄像头信息。
摄像头 xacro 文件 camera.xacro代码内容如下: camera link、将相机作为一个link添加到机器人上的部件link2于是便有个camera2link2的关节type为固定的fixed
!-- 摄像头相关的 xacro 文件 --
robot namemy_camera xmlns:xacrohttp://wiki.ros.org/xacro!-- 摄像头属性 --xacro:property namecamera_length value0.001 / !-- 摄像头长度(x) --xacro:property namecamera_width value0.00025 / !-- 摄像头宽度(y) --xacro:property namecamera_height value0.00025 / !-- 摄像头高度(z) --xacro:property namecamera_x value0 / !-- 摄像头安装的x坐标 --xacro:property namecamera_y value0 / !-- 摄像头安装的y坐标 --xacro:property namecamera_z value0.02 / !-- 摄像头安装的z坐标:底盘高度 / 2 摄像头高度 / 2 --!-- Create laser reference frame --link namecameravisualorigin xyz0.000198755346578818 -0.000268944626068074 -0.0105330004865362 rpy0 0 0 /geometrybox size${camera_length} ${camera_width} ${camera_height} //geometrymaterial namered//visualcollisionorigin xyz0.000198755346578818 -0.000268944626068074 -0.0105330004865362 rpy0 0 0 /geometrybox size${camera_length} ${camera_width} ${camera_height} //geometry/collision/link!-- 关节 --joint namecamera2link2 typefixedparent linklink2/child linkcamera /!-- 需要计算两个 link 的物理中心之间的偏移量 --!-- 设置joint相对于父节的偏移量 --origin xyz-0.00028 -0.0003 0.0102 rpy0 0 0 /!-- 设置关节旋转参考的坐标轴,0表示不绕该轴旋转1表示绕该轴旋转 --axis xyz0 0 1 //joint
/robotGazebo 仿真摄像头 通过 Gazebo 模拟摄像头传感器并在 Rviz 中显示摄像头数据 新建 xacro 文件命名为cameraz_gazebo.xacro配置摄像头传感器信息:
?xml version1.0?
robot xmlns:xacrohttp://www.ros.org/wiki/xacro namemy_sensorsgazebo referencecameramaterialGazebo/Red/material/gazebogazebo referencecamerasensor typecamera namecamera_nodeupdate_rate30.0/update_ratecamera nameheadhorizontal_fov1.3962634/horizontal_fovimagewidth1280/widthheight720/heightformatR8G8B8/format/imageclipnear0.02/nearfar300/far/clipnoisetypegaussian/typemean0.0/meanstddev0.007/stddev/noise/cameraplugin namegazebo_camera filenamelibgazebo_ros_camera.soalwaysOntrue/alwaysOnupdateRate0.0/updateRatecameraName/camera/cameraNameimageTopicNameimage_raw/imageTopicNamecameraInfoTopicNamecamera_info/cameraInfoTopicNameframeNamecamera/frameNamehackBaseline0.07/hackBaselinedistortionK10.0/distortionK1distortionK20.0/distortionK2distortionK30.0/distortionK3distortionT10.0/distortionT1distortionT20.0/distortionT2/plugin/sensor/gazebo
/robot1.2摄像头 xacro 文件 camera.xacro代码内容如下: camera link、将相机作为一个link添加到机器人上link2于是便有个camera2link2的关节type为固定的fixed
!-- 摄像头相关的 xacro 文件 --
robot namemy_camera xmlns:xacrohttp://wiki.ros.org/xacro!-- 摄像头属性 --xacro:property namecamera_length value0.001 / !-- 摄像头长度(x) --xacro:property namecamera_width value0.00025 / !-- 摄像头宽度(y) --xacro:property namecamera_height value0.00025 / !-- 摄像头高度(z) --xacro:property namecamera_x value0 / !-- 摄像头安装的x坐标 --xacro:property namecamera_y value0 / !-- 摄像头安装的y坐标 --xacro:property namecamera_z value0.02 / !-- 摄像头安装的z坐标:底盘高度 / 2 摄像头高度 / 2 --!-- Create laser reference frame --link namecameravisualorigin xyz0.000198755346578818 -0.000268944626068074 -0.0105330004865362 rpy0 0 0 /geometrybox size${camera_length} ${camera_width} ${camera_height} //geometrymaterial namered//visualcollisionorigin xyz0.000198755346578818 -0.000268944626068074 -0.0105330004865362 rpy0 0 0 /geometrybox size${camera_length} ${camera_width} ${camera_height} //geometry/collision/link!-- 关节 --joint namecamera2link2 typefixedparent linklink2/child linkcamera /!-- 需要计算两个 link 的物理中心之间的偏移量 --!-- 设置joint相对于父节的偏移量 --origin xyz-0.00028 -0.0003 0.0102 rpy0 0 0 /!-- 设置关节旋转参考的坐标轴,0表示不绕该轴旋转1表示绕该轴旋转 --axis xyz0 0 1 //joint
/robot封装惯性矩阵算法的 xacro 文件内容如下的my_head.xacro文件书写这个文件复制于链接http://www.autolabor.com.cn/book/ROSTutorials/di-6-zhang-ji-qi-ren-xi-tong-fang-zhen/66-urdfji-cheng-gazebo/662-urdf-ji-cheng-gazebo-xiang-guan-she-zhi.html的6.6.2 URDF集成Gazebo相关设置这一小节将标准的球体、圆柱与立方体的惯性矩阵公式封装成xacro实现
robot namebase xmlns:xacrohttp://wiki.ros.org/xacro!-- Macro for inertia matrix --xacro:macro namesphere_inertial_matrix paramsm rinertialmass value${m} /inertia ixx${2*m*r*r/5} ixy0 ixz0iyy${2*m*r*r/5} iyz0 izz${2*m*r*r/5} //inertial/xacro:macroxacro:macro namecylinder_inertial_matrix paramsm r hinertialmass value${m} /inertia ixx${m*(3*r*rh*h)/12} ixy 0 ixz 0iyy${m*(3*r*rh*h)/12} iyz 0izz${m*r*r/2} / /inertial/xacro:macroxacro:macro nameBox_inertial_matrix paramsm l w hinertialmass value${m} /inertia ixx${m*(h*h l*l)/12} ixy 0 ixz 0iyy${m*(w*w l*l)/12} iyz 0izz${m*(w*w h*h)/12} //inertial/xacro:macro
/robot组合执行器与摄像头
!-- 组合执行器与摄像头 --
robot namemy_robot xmlns:xacrohttp://wiki.ros.org/xacroxacro:include filenamemyhead.xacro /xacro:include filenamevision_obliquity_gazebo.xacro /xacro:include filenamecamera.xacro /xacro:include filenamecamera_gazebo.xacro /
/robot
这里的vision_obliquity_gazebo.xacro是我们自己的机器人xacro文件也就是手术执行器替换成你们自己的机器人描述文件。
下载现成的机器人环境文件
1.下载官方模型库 https://github.com/osrf/gazebo_models 2.将模型库复制进 gazebo 将得到的box_hours.world文件复制到 /urdf/worlds下
启动仿真环境
进入到手术执行器文件夹surgical_new文件夹路径下 执行如下命令启动gazebo
catkin_make
source devel/setup.bash
roslaunch vision_obliquity robot_env.launch进入到手术执行器文件夹surgical_new文件夹路径下 另起一个终端terminal执行命令就可以看到摄像头环境信息
rqt_image_view