0
$\begingroup$

Hello fellow roboticists,

At our startup, we have developed a ROS 2 workspace for a 5-DOF mobile manipulator, transitioning from Gazebo + RVIZ 2 simulation to physical hardware. We're using MoveIt 2 for motion planning and have written our own hardware interface for ros2_control. Everything works well, but we've encountered an issue related to feedback control.

Current Setup

  • Hardware Interface Plugin: The read() function reads the current motor positions, and manual motor movement reflects correctly in RVIZ 2. The write() function sends position commands from MoveIt 2 to the robot, and the manipulator moves accordingly.
  • URDF File: Includes the hardware interface plugin under ros2_control tags, with each joint configured for position command and state interfaces.
  • controllers.yaml: Specifies the arm controller as joint_trajectory_controller/JointTrajectoryController, using position for both command and state interfaces.
  • moveit_controllers.yaml: Uses moveit_simple_controller_manager/MoveItSimpleControllerManager, specifying FollowJointTrajectory for control.

The Problem:

The arm's control seems to operate in an open-loop manner. For example, if one motor is blocked, the other motors continue moving as if there’s no issue. Even when I manually set the position state to 0 in the read() function of the hardware interface, MoveIt 2 still generates the same trajectory without considering this feedback.

Question:

Is there a way to integrate motor feedback into MoveIt 2 to adapt the trajectory based on real-time motor states? How can I ensure MoveIt 2 reacts to feedback from the motors for more accurate control of the manipulator?

$\endgroup$

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Browse other questions tagged or ask your own question.