xArm-Developer / xarm_ros

ROS packages for robotic products from UFACTORY
https://www.ufactory.cc/
BSD 3-Clause "New" or "Revised" License
196 stars 147 forks source link

control pose/velocity vs measured pose/velocity and tf #220

Open bmegli opened 3 months ago

bmegli commented 3 months ago

From:

it looks like the data available through ROS is control pose/velocity, not the measured pose/velocity.

  1. Is it still the case? (looks it was at end of 2023)
  2. Do I understand correctly that joint_states are filled from control data (vs measured) and in consequence so is ROS tf data?
  3. If above, what difference should be expected between control/measured pose/velocity from user side?
  4. If above, are there any plans to share measured pose/velocity over ROS?

Kind regards!

penglongxiang commented 3 months ago

Hi, to better assist with your issue, may I ask what is the controlling method you plan to use in ROS? Is it through Moveit or our wrapped ROS services?

bmegli commented 3 months ago

Hi @penglongxiang,

MoveIt like, sending controller commands to the trajectory controller topic.

But I am specifically interested in

So the question is about time/pose synchronization using /tfwith other subsystem rather then control itself.

Will the control vs measured pose/velocity on ROS side affect us in such scenario etc?

penglongxiang commented 3 months ago

Hi @bmegli, so you are using the ros-controller and the hardware interface to our robot. We have just optimized for this scenario and the /joint_states published will be using measured joint angles, so as the joint velocity. It will be available in the next controller firmware version 2.4.0 which is supposed to be released by the end of this month. /tf result is derived from /joint_states and urdf model, so the source of /tf will also be updated.

BTW if you need less delay or higher update rate, please specify report_type:=dev at launching stage, the publish rate will increase from 5Hz to 100Hz. Please also update the 'xarm_ros' repository to the latest since we will keep optimizing and adding new functions.

bmegli commented 3 months ago

Thank you @penglongxiang

From XARM side we are using realMove_exec.launch with xarm6_traj_controller

BTW if you need less delay or higher update rate, please specify report_type:=dev

Yes, we are already doing it as well as bumping jnt_stat_pub_rate to get /tf data at higher frequency

We have just optimized for this scenario and the /joint_states published will be using measured joint angles, so as the joint velocity. It will be available in the next controller firmware version 2.4.0 which is supposed to be released by the end of this month

Ok! In that case I will keep the issue open until new firmware is released

penglongxiang commented 3 months ago

Hi @bmegli, I am sorry to say that our official firmware release will be delayed. If you are eager to test the measured joint angles as feedback, I can send you a beta version that already have this feature early next week.

bmegli commented 2 months ago

Thank you @penglongxiang

I think we will wait for the stable version

bmegli commented 1 week ago

Has the Hi @bmegli, I am sorry to say that our official firmware release will be delayed. If you are eager to test the measured joint angles as feedback, I can send you a beta version that already have this feature early next week.

Has the new firmware (2.4.0?) with measured pose/velocity/tf been eventually released?

penglongxiang commented 1 week ago

Yes, it has been released already, sorry I forgot to notify you in particular. Please follow the update instruction inside the user manual (Appendix 4) and have a test.

nitish3693 commented 4 days ago

@penglongxiang Do use this feature do we need to use the latest ROS driver from the repository, or does it work with old versions (old commits) from the repository.

penglongxiang commented 3 days ago

@nitish3693 It depends on how old your local commit is, it is recommended to use the latest or recent commits for better compatibility with the new firmware.