当前位置: 首页 > news >正文

Ubuntu20.04仿真 | 云台相机可直接使用文件

在Ubuntu20.04仿真 |iris四旋翼添加云台相机详述-CSDN博客中我详细记录了从typhoon_h480.sdf模型中抽取出可用的cgo3云台相机模型,以及对其解耦合后不同平台的调用及修改方法,以下给出在iris平台上可直接使用的xml代码。

云台相机的模型文件cgo3.sdf:

<?xml version="1.0"?>
<sdf version='1.5'><model name='cgo3'><pose>0 0 0 0 0 0</pose><link name="cgo3_mount_link"><inertial><!-- place holder --><pose>-0.0205 0 -0.081 0 0 0</pose><mass>0.02</mass><inertia><ixx>0.00005</ixx><ixy>0</ixy><ixz>0</ixz><iyy>0.00005</iyy><iyz>0</iyz><izz>0.00005</izz></inertia></inertial><visual name='cgo3_mount_visual'><pose>0 0 0 0 0 0</pose><geometry><mesh><scale>0.0005 0.0005 0.0005</scale><uri>model://cgo3/meshes/cgo3_mount_remeshed_v1.stl</uri></mesh></geometry><material><script><name>Gazebo/DarkGrey</name><uri>file://media/materials/scripts/gazebo.material</uri></script></material></visual></link><!--<joint name='cgo3_mount_joint' type='revolute'><child>cgo3_mount_link</child><parent>base_link</parent><pose>0 0 0 0 0 0</pose><axis><xyz>0 0 1</xyz><limit><lower>0</lower><upper>0</upper><effort>100</effort><velocity>-1</velocity></limit><dynamics><damping>1</damping></dynamics><use_parent_model_frame>1</use_parent_model_frame></axis><physics><ode><implicit_spring_damper>1</implicit_spring_damper></ode></physics></joint>--><link name="cgo3_vertical_arm_link"><inertial><!-- place holder --><pose>-0.041 0 -0.162 0 0 0</pose><mass>0.1</mass><inertia><ixx>0.00005</ixx><ixy>0</ixy><ixz>0</ixz><iyy>0.00005</iyy><iyz>0</iyz><izz>0.00005</izz></inertia></inertial><visual name='cgo3_vertical_arm_visual'><pose>-0.051 0 0 0 0 3.141592</pose><geometry><mesh><scale>0.001 0.001 0.001</scale><uri>model://cgo3/meshes/cgo3_vertical_arm_remeshed_v1.stl</uri></mesh></geometry><material><script><name>Gazebo/DarkGrey</name><uri>file://media/materials/scripts/gazebo.material</uri></script></material></visual></link><joint name='cgo3_vertical_arm_joint' type='revolute'><child>cgo3_vertical_arm_link</child><parent>cgo3_mount_link</parent><pose>-0.026 0 -0.10 0 0 0</pose><!--<controlIndex>6</controlIndex>--><axis><xyz>0 0 1</xyz><limit><lower>-1e+16</lower><upper>1e+16</upper><effort>100</effort><velocity>-1</velocity></limit><dynamics><damping>0.1</damping></dynamics><use_parent_model_frame>1</use_parent_model_frame></axis><physics><ode><implicit_spring_damper>1</implicit_spring_damper><limit><!-- testing soft limits --><cfm>0.1</cfm><erp>0.2</erp></limit></ode></physics></joint><link name="cgo3_horizontal_arm_link"><inertial><!-- place holder --><pose>-0.041 0 -0.081 0 0 0</pose><mass>0.1</mass><inertia><ixx>0.00005</ixx><ixy>0</ixy><ixz>0</ixz><iyy>0.00005</iyy><iyz>0</iyz><izz>0.00005</izz></inertia></inertial><visual name='cgo3_horizontal_arm_visual'><pose>-0.05 0 0 0 0 3.141592</pose><geometry><mesh><scale>0.001 0.001 0.001</scale><uri>model://cgo3/meshes/cgo3_horizontal_arm_remeshed_v1.stl</uri></mesh></geometry><material><script><name>Gazebo/DarkGrey</name><uri>file://media/materials/scripts/gazebo.material</uri></script></material></visual></link><joint name='cgo3_horizontal_arm_joint' type='revolute'><child>cgo3_horizontal_arm_link</child><parent>cgo3_vertical_arm_link</parent><pose>-0.07 0 -0.162 0 0 0</pose><!--<controlIndex>7</controlIndex>--><axis><xyz>-1 0 0</xyz><limit><lower>-0.785398</lower><upper>0.785398</upper><effort>100</effort><velocity>-1</velocity></limit><dynamics><damping>0.1</damping></dynamics><use_parent_model_frame>1</use_parent_model_frame></axis><physics><ode><implicit_spring_damper>1</implicit_spring_damper><limit><!-- testing soft limits --><cfm>0.1</cfm><erp>0.2</erp></limit></ode></physics></joint><link name="cgo3_camera_link"><inertial><!-- place holder --><pose>-0.041 0 -0.162 0 0 0</pose><mass>0.1</mass><inertia><ixx>0.001</ixx><ixy>0</ixy><ixz>0</ixz><iyy>0.001</iyy><iyz>0</iyz><izz>0.001</izz></inertia></inertial><collision name='cgo3_camera_collision'><pose>-0.041 0 -0.162 0 0 0</pose><geometry><sphere><radius>0.035</radius></sphere></geometry><surface><friction><ode><mu>1</mu><mu2>1</mu2></ode></friction><contact><ode><kp>1e+8</kp><kd>1</kd><max_vel>0.01</max_vel><min_depth>0.001</min_depth></ode></contact></surface></collision><visual name='cgo3_camera_visual'><pose>-0.05 0 0 0 0 3.141592</pose><geometry><mesh><scale>0.001 0.001 0.001</scale><uri>model://cgo3/meshes/cgo3_camera_remeshed_v1.stl</uri></mesh></geometry><material><script><name>Gazebo/DarkGrey</name><uri>file://media/materials/scripts/gazebo.material</uri></script></material></visual><sensor name="camera_imu" type="imu"><always_on>1</always_on><update_rate>200</update_rate></sensor><sensor name="camera" type="camera"><pose>0.0 0 -0.162 0 0 0</pose><camera><horizontal_fov>2.0</horizontal_fov><image><format>R8G8B8</format><width>640</width><height>360</height></image><clip><near>0.05</near><far>15000</far></clip></camera><always_on>1</always_on><update_rate>10</update_rate><visualize>true</visualize><!-- <plugin name="CameraManagerPlugin" filename="libgazebo_camera_manager_plugin.so"><robotNamespace>typhoon_h480</robotNamespace><interval>1</interval><width>3840</width><height>2160</height><maximum_zoom>8.0</maximum_zoom><video_uri>udp://127.0.0.1:5600</video_uri><system_id>1</system_id><cam_component_id>100</cam_component_id><mavlink_cam_udp_port>14530</mavlink_cam_udp_port></plugin> --><plugin name="cgo3_camera_controller" filename="libgazebo_ros_camera.so"><robotNamespace></robotNamespace><alwaysOn>true</alwaysOn><updateRate>30</updateRate><cameraName>/cgo3_camera</cameraName><imageTopicName>image_raw</imageTopicName><cameraInfoTopicName>camera_info</cameraInfoTopicName><frameName>cgo3_camera_optical_frame</frameName><hackBaseline>0.0</hackBaseline><distortionK1>0.0</distortionK1><distortionK2>0.0</distortionK2><distortionK3>0.0</distortionK3><distortionT1>0.0</distortionT1><distortionT2>0.0</distortionT2></plugin></sensor></link><joint name='cgo3_camera_joint' type='revolute'><child>cgo3_camera_link</child><parent>cgo3_horizontal_arm_link</parent><pose>-0.01 0.03 -0.162 0 0 0</pose><axis><xyz>0 -1 0</xyz><limit><lower>-1.5708</lower><upper>0.7854</upper><effort>100</effort><velocity>-1</velocity></limit><dynamics><damping>0.1</damping></dynamics><use_parent_model_frame>1</use_parent_model_frame></axis><physics><ode><implicit_spring_damper>1</implicit_spring_damper><limit><!-- testing soft limits --><cfm>0.1</cfm><erp>0.2</erp></limit></ode></physics></joint><plugin name='gimbal_controller' filename='libgazebo_gimbal_controller_plugin.so'><udp_gimbal_port_remote>13030</udp_gimbal_port_remote> <!--13030maybe need to modify--><joint_yaw>cgo3_vertical_arm_joint</joint_yaw><joint_roll>cgo3_horizontal_arm_joint</joint_roll><joint_pitch>cgo3_camera_joint</joint_pitch><control_gimbal_channels><channel><joint_control_pid><p>0.4</p><i>0.05</i><d>0.02</d><iMax>0</iMax><iMin>0</iMin><cmdMax>1.0</cmdMax><cmdMin>-1.0</cmdMin></joint_control_pid><joint_axis>joint_yaw</joint_axis></channel><channel><joint_control_pid><p>0.8</p><i>0.035</i><d>0.02</d><iMax>0</iMax><iMin>0</iMin><cmdMax>0.3</cmdMax><cmdMin>-0.3</cmdMin></joint_control_pid><joint_axis>joint_roll</joint_axis></channel><channel><joint_control_pid><p>0.3</p><i>0.01245</i><d>0.015</d><iMax>0</iMax><iMin>0</iMin><cmdMax>0.3</cmdMax><cmdMin>-0.3</cmdMin></joint_control_pid><joint_axis>joint_pitch</joint_axis></channel></control_gimbal_channels><gimbal_imu>camera_imu</gimbal_imu></plugin></model>
</sdf>

添加云台舵机控制通道的iris_cgo3.sdf,用原有iris.sdf稍做改动即可实现,故不再摆放,具体可查看顶部链接

飞机与云台相机联合使用的iris_cgo3_joint.sdf

<?xml version="1.0" ?>
<sdf version="1.5"><model name='iris_cgo3_model'><include><uri>model://iris_cgo3</uri></include><include><uri>model://cgo3</uri><pose>0.12 0 0 1.57 0 1.57</pose></include><joint name="cgo3_mount_joint" type="fixed"><child>cgo3::cgo3_mount_link</child><parent>iris_cgo3::base_link</parent><axis><xyz>0 0 1</xyz><limit><upper>0</upper><lower>0</lower></limit></axis></joint></model>
</sdf>

其中pose的值可自己改动,目前我摆放的位置是在机体之外的,为了方便查看是否链接上,可根据需要自行调整。


文章转载自:

http://MXu3nUW1.Lsftr.cn
http://0cerylFl.Lsftr.cn
http://zYsSuz2D.Lsftr.cn
http://DuhRinwl.Lsftr.cn
http://XkKPvjEA.Lsftr.cn
http://wqQSQYqM.Lsftr.cn
http://mQbz8Qld.Lsftr.cn
http://7Shkweq9.Lsftr.cn
http://oOwHzWPg.Lsftr.cn
http://37oA9L5H.Lsftr.cn
http://zpcckGNl.Lsftr.cn
http://cZtmzqCd.Lsftr.cn
http://3b3BGDox.Lsftr.cn
http://JkgNNQXJ.Lsftr.cn
http://HXGaEROZ.Lsftr.cn
http://Z5O0tq4m.Lsftr.cn
http://2K1Rz0h1.Lsftr.cn
http://LvgmlUDa.Lsftr.cn
http://r73iMfhi.Lsftr.cn
http://Uy6IMmSi.Lsftr.cn
http://lajar0Xp.Lsftr.cn
http://P39ELWzF.Lsftr.cn
http://XQAxDxvd.Lsftr.cn
http://O8GkO4CP.Lsftr.cn
http://2D2iaYwc.Lsftr.cn
http://mvhtFe6c.Lsftr.cn
http://S1XUKKPz.Lsftr.cn
http://wJtoEO6X.Lsftr.cn
http://bwlkNWbc.Lsftr.cn
http://8Mw2qZvE.Lsftr.cn
http://www.dtcms.com/a/387838.html

相关文章:

  • Docker学习记录——构建本地镜像,从Windows向Ubuntu推送
  • MyBatis分页:PageHelper
  • 基于python BERT的新闻文本分类与用户行为预测的分析与应用
  • MFC实战:OBJ模型加载与3D渲染指南
  • FAQ:珠海网络推广哪家好?GEO优化能带来哪些优势?
  • (论文速读)CLR-GAN: 通过一致的潜在表征和重建提高gan的稳定性和质量
  • MFC_Static
  • TDengine IDMP 基本功能——数据可视化(3. 饼图)
  • Spring基础创建
  • 智能的非数学本质
  • CNB迁移和UI定制
  • 基于OpenTelemetry与Jaeger的分布式追踪原理深度解析与实践指南
  • EasyDSS视频直播RTMP推流技术如何实现多机型的无人机视频统一直播
  • 智能扫地机器人方案开发,基于32位MCU
  • 【STM32 CubeMX + Keil】DAC 输出0~3.3V间任意电压
  • git submodule命令详解
  • HTTP/2.0是什么?
  • 深度学习基础:从线性回归到 Softmax 回归的完整梳理
  • 深度学习之线性回归与 Softmax 回归
  • 线性回归与 Softmax 回归
  • 源雀 Scrm开源:企微防截屏
  • [APItest-Karate] HttpRequestBuilder | HttpClient发送请求
  • 线性回归与 Softmax 回归:从基础模型到深度学习入门
  • 【Leetcode hot 100】105.从前序与中序遍历序列构造二叉树
  • 机器视觉在PCB制造中的检测应用
  • 服务器ssh端口放开,仍然无法登录
  • 【0基础3ds Max】命令面板详解
  • LeetCode 381 - O(1) 时间插入、删除和获取随机元素(允许重复)
  • [新启航]深孔加工尺寸精度检测方法 - 激光频率梳 3D 轮廓测量
  • MySQL 进阶:多表联合查询与数据备份恢复