四 控制自己的机器人(在模拟器上面)

接下来我们要控制自己的小狗咯。

为此我们要写一个控制器描述文件 toydog_control.yaml

toydog:
 # Publish all joint states -----------------------------------                                       
  joint_state_controller:
    type: joint_state_controller/JointStateController
    publish_rate: 50


 # Position Controllers ---------------------------------------                                      
  joint1_position_controller:
    type: effort_controllers/JointPositionController
    joint: joint1
    pid: {p: 100.0, i: 0.01, d: 10.0}
  joint2_position_controller:
    type: effort_controllers/JointPositionController
    joint: joint2
    pid: {p: 100.0, i: 0.01, d: 10.0}
  joint3_position_controller:
    type: effort_controllers/JointPositionController
    joint: joint3
    pid: {p: 100.0, i: 0.01, d: 10.0}
  joint4_position_controller:
    type: effort_controllers/JointPositionController
    joint: joint4
    pid: {p: 100.0, i: 0.01, d: 10.0}
  joint5_position_controller:
    type: effort_controllers/JointPositionController
    joint: joint5
    pid: {p: 100.0, i: 0.01, d: 10.0}
  joint6_position_controller:
    type: effort_controllers/JointPositionController
    joint: joint6
    pid: {p: 100.0, i: 0.01, d: 10.0}
  joint7_position_controller:
    type: effort_controllers/JointPositionController
    joint: joint7
    pid: {p: 100.0, i: 0.01, d: 10.0}
  joint8_position_controller:
    type: effort_controllers/JointPositionController
    joint: joint8
    pid: {p: 100.0, i: 0.01, d: 10.0}

需要注意的地方是最上面的toydog是一个名字域,跟之后的launch文件对应,然后每个joint,比如说joint1-8 是跟urdf里面joint名字一一对应的(否则就不知道哪个控制器对应哪个关节了对不?)

launch文件如下所示:



  
  

  
  

  
  
    
  

这里的ns = "/toydog" 就是跟yaml最上面对应的,然后是每个控制器所对应的名字

然后我们roslaunch 一下test_urdf.launch 和 上面的launch文件

gazebo应该就会跑出来了,为了控制我们的小狗,我们还需要给关节命令

另开一个终端执行

rosrun rqt_gui rqt_gui

在菜单栏找到Plugins, 点击一下,然后找到Topics --> message publisher,再点击一下就会出现下图的窗口

四 控制自己的机器人(在模拟器上面)_第1张图片

在白色窗口上面我们看到topic,点击一下选择想要控制的关节(比如说/toydog/joint1_position_controller/command)然后点一下旁边绿色的"+"号添加要发布的topic

然后点一下topic旁边的小三角填上关节的角度,比如说0.5

四 控制自己的机器人(在模拟器上面)_第2张图片

最后在topic前面那个选择框那里打个勾,这个topic就开始发布消息拉。

此时可以看到我们的小狗也做出相应的动作

四 控制自己的机器人(在模拟器上面)_第3张图片

 

OH~YEAH~~~~~我们的小狗动起来了啦啦啦。

同理我们可以给其他关节不同的角度来控制小狗动喔

你可能感兴趣的:(机器人从零开始)