"Goal was rejected by server" with built-in fake controllers
I'm porting an Annin Robotics AR3 MoveIt config that I didn't write to use MoveIt2 / ROS2. I've been merging together the configs in that repository with various breadcrumbs I picked up from the demo.launch.py file used in the tutorials.
I'm able to start all nodes and plan trajectories in rviz2 using fake controllers:
However I'm unable to execute the trajectory due to Goal request rejected
. It's pretty likely I cargo culted something incorrectly along the way, but after a couple hours of searching I haven't found any leads on this error with the built-in stuff I've been using so far - I'd appreciate some help in confirming that my setup isn't obviously wrong.
environment
- ROS Distro: Humble
- OS Version: Ubuntu 22.04 LTS
- Using docker image
moveit/moveit2:humble-source
- Repo: https://github.com/smartin015/ar3_cor... (note the
moveit2
branch)
I'm using:
fake_components/GenericSystem
plugin in theros2_control
tag withinar3_moveit2/config/ar3.urdf
JointTrajectoryController
withFollowJointTrajectory
inconfig/fake_controllers.yaml
for ros2_control- The same
JointTrajectoryController
withMoveItSimpleControllerManager
inconfig/moveit_controllers.yaml
for moveit2
My robot has joint_1
through joint_6
configured in all the above locations.
Steps to reproduce
git clone -b moveit2 --single-branch https://github.com/smartin015/ar3_core.git && cd ar3_core
docker-compose run gpu /bin/bash
colcon build --mixin debug --packages-up-to ar3_moveit_config && source install/setup.bash && ros2 launch -d ar3_moveit_config demo.launch.py
An rviz window should open. With fixed_frame
set to base_link
, add a MotionPlanning
display item, move the EEF a bit, then press Plan & Execute
.
Expected behaviour
The plan should succeed and the arm move to the target position.
Actual behaviour
Plan succeeds, but the arm does not move and instead the console output below appears (notably with Goal was rejected by server
).
Could you able to figure out this issue?. When i follow the panda moveit2 tutorial it works fine for me in the Rviz simulation. I did follow the similar for my custom robot, and it does not work, throws the same error as yours. I have no idea why it is not working. Mine was a 3-DOF robot arm.
I managed to get a bit further into debugging- look through your logs for a line containing:
Received new action goal
.When you find that line, look immediately after it - I had an error:
Time between points 0 and 1 is not strictly increasing, it is 0.000000 and 0.000000 respectively
I found the source of this error in joint_trajectory_controller.cpp. There are also other validation errors within
validate_trajectory_msg()
which may be the cause of the problem.When I ran
ros2 topic echo /display_planned_path
, I saw alltime_from_start
values in my trajectory were indeed 0. This value seems to be set here, but I haven't dug deep enough to understand why.Hi I could able to make it work for my custom robot at least in simulation, you have to see the moveit_resources_panda_config folder in your /opt/ros/foxy/share path, look at the way the xacro files that are being used by panda ros2_control for fake execution, I adapted a similar way and it worked for me in simulation with one controller loaded. May be you have to add some files in your ar3 description packages. specially those xacro files. Let me know if it works for you. I guess that is the problem.