说明:因为ros2 control是C++ 写的,目前不支持python写包,所以有这个包是专门用来翻译topic到ros2 control的。这样就是曲线救国了。

适合人群:比如不喜欢CPP,喜欢python的人

方案一:topic方案

仓库地址:https://github.com/PickNikRobotics/topic_based_ros2_control

安装:

sudo apt install ros-jazzy-topic-based-ros2-control

方案二:pytroller

https://github.com/ICube-Robotics/pytroller

生成基于Python的控制器代码,以便与ros2_control框架配合使用。

要使用pytroller生成一个控制器包,你可以通过以下命令:

ros2 pytroller create my_pytroller --destination-directory controllers

这会在指定的目录下创建一个新的控制器包,其中包含一个待实现的Python脚本my_pytroller_logic_impl.py。在这个脚本中,你需要定义pytroller_logic_impl函数,该函数接收以下参数:

  • period:控制循环的周期。
  • states:一个字典,包含了所有可访问接口上的关节当前状态。
  • commands:一个字典,用于存储将要分配给关节命令接口的命令。
  • msg:从订阅者接收到的命令消息。
  • params:一个字典,包含了节点的参数。