ros_control 如何写一个controller

controller可以说是ros_control中间最重要的功能可扩展部件了,通过ros_control的的处理可以调用写好的其他类来实现一些数据功能

controller被认为是一个ros中的插件而不是运行程序,编写完成后使用在启动的hardware_interface::RobotHW的实现中这使得运行时只有一个进程启动

如果一个在package包中的my_controller::new_controller需要被hardware_interface::RobotHW的实现找到需要达成以下条件

1.在其package.xml末尾将

  
  
    

  

替换为

  
  
    
    
    
  
ps1:如果有在CMakeList.txt中间加入新的依赖在find_package中,一定要在package.xml中加入

例如假如加入roscpp,则需要添加

  roscpp
  roscpp

尤其是在controller中需要的依赖

ps2:一些需要的依赖

controller_interface

control_msgs

pluginlib//只需要写在package.xml中

2.在包内编写controller.xml

内容如下



  
    
      这里还是写一些描述吧...
    
  

注意在
中,path="lib/ 后面跟的名字是lib+包名+.so

3.在类的声明中加入

PLUGINLIB_EXPORT_CLASS(my_controller::new_controller, controller_interface::ControllerBase);


/*待更新*/

你可能感兴趣的:(ros)