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

    关于机械臂rviz和gazebo一起动的问题

    已定时 已固定 已锁定 已移动
    机械臂运动规划
    moveit 机械臂
    3
    8
    730
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • 26368146052
      一斤幼稚.
      最后由 小鱼 编辑

      主要是实现控制两个机械臂下rviz和gazebo联动
      2024-07-24 18-40-52 的屏幕截图.png
      启动elfin_moveit_planning_execution后报错
      elfin_moveit_planning_execution内容如下
      2024-07-24 18-42-30 的屏幕截图.png
      ros_controllers.yaml文件如下
      2024-07-24 18-43-43 的屏幕截图.png
      2024-07-24 18-43-54 的屏幕截图.png
      elfin_empty_world.launch是导入模型和控制器的launch文件如下
      2024-07-24 18-45-56 的屏幕截图.png
      我打印了当前可用的控制器信息
      2024-07-24 18-46-45 的屏幕截图.png
      显示控制器在运行(夹爪控制器暂时没管)、
      搜了很多类似的问题大都说控制器没下载 但都没解决问题

      小鱼小 1 条回复 最后回复 回复 引用 0
      • 小伊小
        机器人小伊
        最后由 编辑

        在解决您遇到的关于elfin_moveit_planning_execution、rviz和gazebo联动的问题时,我们需要关注几个关键点:

        1. ROS控制器配置:确保ros_controllers.yaml文件正确配置了所有必要的控制器,并且这些控制器在gazebo中都有对应的实现。

        2. URDF/SDF模型:确保在gazebo中使用的机器人模型(通过.urdf或.sdf文件定义)与MoveIt!中使用的模型相匹配,特别是关节和链接的名称和类型。

        3. 启动文件:elfin_empty_world.launch文件应该正确启动gazebo世界、机器人模型、所有必要的控制器和MoveIt!相关的节点。

        4. MoveIt!配置:确保MoveIt!配置文件(如.srdf文件)正确地描述了机器人的关节和链接之间的父子关系、运动学求解器和规划组等。

        5. 命名空间:如果您的场景中有两个机械臂,确保在gazebo、ros_controllers.yaml和MoveIt!配置中为每个机械臂使用了不同的命名空间或前缀,以避免名称冲突。

        6. 错误日志:仔细阅读启动elfin_moveit_planning_execution后产生的错误日志。通常,日志会给出关于为什么控制器无法加载或为什么MoveIt!无法与gazebo正确通信的线索。

        7. 权限和依赖:确保所有必要的ROS包都已正确安装,并且用户具有运行这些包的权限。

        8. 同步:gazebo和rviz之间的联动通常依赖于tf(转换)信息。确保gazebo正在发布tf信息,并且rviz正在接收这些信息。

        以下是一些建议的步骤来解决您的问题:

        a. 检查控制器状态:使用rosrun controller_manager list_controllers命令来查看当前可用的控制器列表,并确保它们都已启动并处于活动状态。

        b. 检查MoveIt!配置:确保MoveIt!配置文件中定义的规划组与ros_controllers.yaml文件中定义的控制器相匹配。

        c. 检查gazebo模型:确保gazebo中加载的机器人模型与MoveIt!配置中使用的模型一致。

        d. 检查tf:使用rosrun tf view_frames和rviz中的TF插件来检查tf树是否正确构建。

        e. 查看错误日志:详细检查启动elfin_moveit_planning_execution时产生的任何错误或警告消息,并尝试根据这些消息进行调试。

        f. 重新构建和启动:如果进行了任何更改,请确保重新构建您的ROS工作空间,并清除任何旧的gazebo缓存或日志文件,然后重新启动整个系统。

        最后,如果您已经尝试了上述所有建议但仍然无法解决问题,请考虑在ROS社区(如ROS Answers或相关论坛)中寻求帮助,并附上详细的错误日志和配置信息。


        以上为生成回答,仅供参考~

        我是小伊,已接入ChatGpt,所有回复,仅供参考~

        1 条回复 最后回复 回复 引用 0
        • 小鱼小
          小鱼 技术大佬 @2636814605
          最后由 编辑

          @2636814605 所以问题是什么

          新书配套视频:https://www.bilibili.com/video/BV1GW42197Ck/

          26368146052 5 条回复 最后回复 回复 引用 0
          • 26368146052
            一斤幼稚. @小鱼
            最后由 编辑

            @小鱼 大佬 问题是启动elfin_moveit_planning_execution报错[ERROR] [1721808134.625265036, 128.872000000]: Apparently trajectory initialization failed

            1 条回复 最后回复 回复 引用 0
            • 26368146052
              一斤幼稚. @小鱼
              最后由 编辑

              @小鱼 大佬 配置rviz和gazebo联动时 rviz需要添加机械臂在rviz运动的move_group/fake_controller_joint_states这个控制器吗 我在moveit_rviz.launch 中添加了该控制器 执行elfin_moveit_planning_execution时报错消失 但是gazebo中的机械模型不会动
              moveit_rviz.launch代码如下
              <launch>
              <arg name="debug" default="false" />
              <arg unless="$(arg debug)" name="launch_prefix" value="" />
              <arg if="$(arg debug)" name="launch_prefix" value="gdb --ex run --args" />
              <arg name="use_gui" default="false" />

              <arg name="rviz_config" default="$(find elfin_doube_moveit_config)/launch/moveit.rviz" />

              <arg name="command_args" value="-d $(arg rviz_config)" />

              <arg name="config" default="$(find elfin_doube_moveit_config)" />

              <node name="joint_state_publisher" pkg="joint_state_publisher" type="joint_state_publisher" unless="$(arg use_gui)">
              <rosparam param="source_list">[move_group/fake_controller_joint_states]</rosparam>
              </node>

              <node name="$(anon rviz)" launch-prefix="$(arg launch_prefix)" pkg="rviz" type="rviz" respawn="false"
              args="$(arg command_args)" output="screen">

              <rosparam command="load" file="$(arg config)/config/kinematics.yaml"/>
              

              </node>

              </launch>

              1 条回复 最后回复 回复 引用 0
              • 26368146052
                一斤幼稚. @小鱼
                最后由 编辑

                应该是不用添加的,最终目的还是让gazebo动起来

                1 条回复 最后回复 回复 引用 0
                • 26368146052
                  一斤幼稚. @小鱼
                  最后由 编辑

                  @小鱼 我重新创建了一个elfin_arm_control.yaml文件
                  left_arm_controller:
                  type: position_controllers/JointTrajectoryController
                  joints:
                  - left_elfin_joint1
                  - left_elfin_joint2
                  - left_elfin_joint3
                  - left_elfin_joint4
                  - left_elfin_joint5
                  - left_elfin_joint6
                  constraints:
                  goal_time: 0.6
                  stopped_velocity_tolerance: 0.1

                  stop_trajectory_duration: 0.05
                  state_publish_rate: 25
                  action_monitor_rate: 10
                  right_arm_controller:
                  type: position_controllers/JointTrajectoryController
                  joints:
                  - right_elfin_joint1
                  - right_elfin_joint2
                  - right_elfin_joint3
                  - right_elfin_joint4
                  - right_elfin_joint5
                  - right_elfin_joint6
                  constraints:
                  goal_time: 0.6
                  stopped_velocity_tolerance: 0.1

                  stop_trajectory_duration: 0.05
                  state_publish_rate: 25
                  action_monitor_rate: 10
                  left_gripper_controller:
                  type: position_controllers/JointTrajectoryController
                  joints:
                  - left_gripper_finger1_joint
                  - left_gripper_finger2_joint
                  constraints:
                  goal_time: 0.6
                  stopped_velocity_tolerance: 0.1

                  stop_trajectory_duration: 0.05
                  state_publish_rate: 25
                  action_monitor_rate: 10
                  right_gripper_controller:
                  type: position_controllers/JointTrajectoryController
                  joints:
                  - right_gripper_finger1_joint
                  - right_gripper_finger2_joint
                  constraints:
                  goal_time: 0.6
                  stopped_velocity_tolerance: 0.1

                  stop_trajectory_duration: 0.05
                  state_publish_rate: 25
                  action_monitor_rate: 10

                  加载这个控制器参数文件报错消失了
                  rviz拖动规划终端显示规划完成
                  [ INFO] [1721870514.435820932, 866.089000000]: left_arm[RRTConnect]: Created 4 states (2 start + 2 goal)
                  [ INFO] [1721870514.436950495, 866.090000000]: left_arm[RRTConnect]: Created 4 states (2 start + 2 goal)
                  [ INFO] [1721870514.437251247, 866.091000000]: ParallelPlan::solve(): Solution found by one or more threads in 0.003067 seconds
                  [ INFO] [1721870514.450104065, 866.102000000]: SimpleSetup: Path simplification took 0.012627 seconds and changed from 3 to 2 states
                  [ INFO] [1721870514.453767647, 866.105000000]: Fake execution of trajectory
                  [ INFO] [1721870516.856747137, 868.359000000]: Completed trajectory execution with status SUCCEEDED ...
                  但是rviz中只是模拟规划 gazebo依旧不动
                  不知道问题出在哪里了

                  1 条回复 最后回复 回复 引用 0
                  • 26368146052
                    一斤幼稚. @小鱼
                    最后由 编辑

                    @小鱼 2024-07-25 09-36-14 的屏幕截图.png
                    rqt如上

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