ros-在gazebo中运动控制-ros回炉再强化学习(4)

ros-在gazebo中运动控制-ros回炉再强化学习(4)

笔者工作环境:

ubuntu16.04
ros-kinetic
笔者代码文件:

https://gitee.com/qiuzhixiaoniao/arm_1.0.git

本文实现四轴机械臂在gazebo中的控制运动
本文工作是在urdf模型可以显示在rviz和gazebo中的工作基础上进行的,如果还有对这两方面不清楚的可以参考我前面几章的博客,希望对渎职有点帮助。
本文用到的主要文件:

arm1_test
├── CMakeLists.txt
├── config
│   └── controllers.yaml------------------(每个关节的controller关节控制器)
├── launch
│   ├── display.launch--------------------(将urdf模型显示在rviz中)
│   ├── gazebo.launch---------------------(将urdf模型显示在gazebo中)
│   ├── robot_control.xml
│   └── robot_description.xml
├── meshes--------------------------------(模型)
│   ├── base_link.STL
│   ├── camera.dae
│   ├── gripper_Link.STL
│   ├── kinect2.STL
│   ├── left_Link.STL
│   ├── link1.STL
│   ├── link2.STL
│   ├── link3.STL
│   ├── link4.STL
│   └── right_Link.STL
├── package.xml
├── scripts
│   └── simple_mover----------------------(编写代码实现对gazebo中的四轴机械臂控制)
├── urdf
│   ├── arm1.gazebo.xacro-----------------(为模型添加gazebo的标签和----)
│   └── arm1.urdf.xacro-------------------(模型的urdf.xacro描述性文件)
└── urdf.rviz

1.添加gazebo标签

arm1.gazebo.xacro的主要功能是,添加gazebo_ros_control插件,将ros和gazebo连接起来。

arm1.gazebo.xacro

<?xml version="1.0"?>
<robot>
  <!-- ros_control plugin -->
  <gazebo>
    <plugin name="gazebo_ros_control" filename="libgazebo_ros_control.so">
      <robotNamespace>/arm1</robotNamespace>
      <robotSimType>gazebo_ros_control/DefaultRobotHWSim</robotSimType>
    </plugin>
  </gazebo>

  <!--base_link-->
  <gazebo reference="base_link">
    <material>Gazebo/White</material>
  </gazebo>

  <!--link_1-->
  <gazebo reference="link1">
    <mu1>0.2</mu1>
    <mu2>0.2</mu2>
    <material>Gazebo/Orange</material>
  </gazebo>

  <!--link_2-->
  <gazebo reference="link2">
    <mu1>0.2</mu1>
    <mu2>0.2</mu2>
    <material>Gazebo/White</material>
  </gazebo>

  <!--link_3-->
  <gazebo reference="link3">
    <mu1>0.2</mu1>
    <mu2>0.2</mu2>
    <material>Gazebo/Orange</material>
  </gazebo> 

 <!--link_4-->
  <gazebo reference="link4">
    <mu1>0.2</mu1>
    <mu2>0.2</mu2>
    <material>Gazebo/White</material>
  </gazebo>

 <!--gripper_base_link-->
  <gazebo reference="gripper_link">
    <mu1>0.2</mu1>
    <mu2>0.2</mu2>
    <material>Gazebo/Orange</material>
  </gazebo>

 <!--right_finger_link-->
  <gazebo reference="right_link">
    <mu1>1.2</mu1>
    <mu2>1.2</mu2>
    <material>Gazebo/White</material>
  </gazebo>

 <!--left_finger_link-->
  <gazebo reference="left_link">
    <mu1>1.2</mu1>
    <mu2>1.2</mu2>
    <material>Gazebo/White</material>
  </gazebo>

  <!--camera_link-->
  <gazebo reference="camera_link">
    <material>Gazebo/Grey</material>
  </gazebo>

  <!-- camera-->
  <gazebo reference="camera_link">
    <sensor type="camera" name="rgb_camera">
      <update_rate>5.0</update_rate>
      <camera name="rgb_camera">
        <horizontal_fov>1.4</horizontal_fov>
        <image>
          <width>640</width>
          <height>480</height>
          <format>R8G8B8</format>
        </image>
        <clip>
          <near>0.02</near>
          <far>300</far>
        </clip>
      </camera>
      <plugin name="camera_controller" filename="libgazebo_ros_camera.so">
        <alwaysOn>true</alwaysOn>
        <updateRate>0.0</updateRate>
        <cameraName>rgb_camera</cameraName>
        <imageTopicName>image_raw</imageTopicName>
        <cameraInfoTopicName>camera_info</cameraInfoTopicName>
        <frameName>camera_link</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>
  </gazebo>

</robot>

在urdf文件中

(1) 在urdf文件中,需要对joint打上gazebo使用的transmission标签,transmission把TF(ros)的连接关系与仿真平台上的驱动设备(gazebo)联系在了一起,有了执行器,gazebo就可以在物理层面上对模型进行驱动了。
(2) 我们需要定义world link,然后再将base link 和world link连接起来,这样模型才能在gazebo世界中固定。
(3) 在arm1.urdf.xacro文件中需要导入进去,在下面文件第9\10行。
在这里插入图片描述

参考文献:

【从零开始的ROS四轴机械臂控制】(二) - ROS与Gazebo连接,Gazebo仿真及urdf文件修改

Udacity机器人软件工程师课程笔记(十一)-ROS-编写ROS节点

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

求知小菜鸟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值