проблема с управлением ROS и беседкой - PullRequest
0 голосов
/ 07 ноября 2019

У меня проблема с управлением URDF, который я экспортировал из SolidWorks. (Ubuntu 16.04, Kinetic, Gazebo 7.x) Я следовал этому руководству и хотел реализовать его на своем роботе. Все контроллеры запускаются правильно, так как симуляция Gazebo и Node публикуют данные правильно. Я проверил это, повторяя тему и различные значения для данных. Есть ли шанс не работать, потому что значения PID?

Все передачи выглядят так:

<transmission name="tran1">
    <type>transmission_interface/SimpleTransmission</type>
    <joint name="Joint_1">
      <hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
    </joint>
    <actuator name="motor1">
      <hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
      <mechanicalReduction>1</mechanicalReduction>
    </actuator>
</transmission>  

Контроллер выглядит так (для всех соединений):

joint_state_controller:
    type: joint_state_controller/JointStateController
    publish_rate: 50
joint1_position_controller:
    type: effort_controllers/JointPositionController
    joint: Joint_1
    pid: {p: 100.0, i: 0.01, d: 10.0}

И у меня есть этот узел:

    rospy.init_node('ArmMovement')
    pub1=rospy.Publisher("/rrbot/joint1_position_controller/command",Float64,queue_size=10 )
    rate = rospy.Rate(50)
    ArmCor1= Float64()
    ArmCor1.data=0
    while not rospy.is_shutdown():
      pub1.publish(ArmCor1)
      rate.sleep()

Часть URDF для Joint_1:

<joint name="Joint_1" type="revolute">
    <origin
      xyz="0 0 -0.008"
      rpy="1.5708 0 0" />
    <parent link="base_link" />
    <child link="Link_1" />
    <axis
      xyz="0 1 0" />
    <limit
      lower="0"
      upper="3.14"
      effort="0"
      velocity="0" />
</joint>

1 Ответ

0 голосов
/ 13 ноября 2019

Спасибо вам, ребята, за вашу помощь, это действительно работает после ваших комментариев. Это был мой Joint_1:

 <joint name="Joint_1" type="revolute">
 <origin
 xyz="0 0 -0.008"
 rpy="1.5708 0 0" />
<parent link="base_link" />
<child link="Link_1" />
<axis
xyz="0 1 0" />
<limit
 lower="0"
 upper="3.14"
 effort="0"
 velocity="0" />
</joint>

Я изменил раздел лимита следующим образом:

<limit
lower="0"
upper="3.14"
effort="2"
velocity="2.0" />

У меня есть другие проблемы, такие как очень раздражающая дрожь (которая возникает из-за значения усилия, я думаю), ноЭто не для этой темы.

...