鱼香ROS社区
    • 版块
    • 最新
    • 未解决
    • 已解决
    • 群组
    • 注册
    • 登录
    紧急通知:禁止一切关于政治&VPN翻墙等话题,发现相关帖子会立马删除封号
    提问前必看的发帖注意事项: 社区问答规则(小鱼个人)更新 | 高质量帖子发布指南

    ROS2的action和subscribe怎么并行?

    已定时 已固定 已锁定 已移动
    机械臂运动规划
    ros2 action 并行
    1
    1
    92
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • L
      looooge
      最后由 编辑

      问题概述:

      • 如题,或者在需要基于反馈计算控制点的时候,如何实现使用action连续执行多段控制任务?

      情况描述:

      • 我需要使用ros2控制ur5e机器人,用的是ros2的action,我希望能够让机器人依次到达几个目标点,但是直接写的话,由于async_send_goal函数是异步的,所以会在很快的时间内把目标点都发给服务端,就会只执行最后一个目标。

      尝试1:

      • 我尝试修改的方法是将目标点串成一串控制序列(就会在最开始就生成控制轨迹)并且在程序里设置一个flag表示机器人是否在移动,然后定时触发控制函数,如果机器人没动了就给他发控制序列中的下一个元素,这样的方式对于写死的轨迹是没问题的。但是如果机器人的目标位置需要在读取当前位置的基础上计算的话又会有问题,因为目标位置的生成远早于移动。

      尝试2:

      • 同样的,我还试过单独在这个节点里放subscriber读取机器人状态实时更新,然后尝试在async_send_goal之后就先sleep_for相应的控制时间,意图是让后续的计算总是能够基于当前的状态进行,但是sleep_for会阻塞住所有的程序(包括subscriber),这样子在移动的时候就完全不更新位置。

      请问我应该怎么解决这个问题?

      1 条回复 最后回复 回复 引用 0
      • 第一个帖子
        最后一个帖子
      皖ICP备16016415号-7
      Powered by NodeBB | 鱼香ROS