I am working on a project that uses ROS2 and Gazebo 11; however, after integrating the F/T sensor into the URDF, I'm getting wildly inaccurate data.
I've made the modifications listed in this reference page to get data from the sensor. Without these minor syntax changes, nothing is published, but the data is successfully published over the specified topic post-changes.
To test behavior in isolation, I made the simple test URDF below:
... and spawned it with a launch file in the default Gazebo world. Given the mass of 1kg on the top joint, I'd expect to be seeing about -9.8 N in the z-direction of the ft sensor; instead, it's about -8, with an additional -7 N in the x-direction. The specific values end up being dependent on what height the robot is spawned at; if spawned inside the ground, for instance, it pops up to ground level as expected but then can give very low magnitudes on the order of 2-4 N in the z-direction.
This same configuration gives accurate results if implemented properly with a ROS1 sensor in a ROS1 workspace (which I implemented on a Ubuntu 20.04 machine), and gives accurate results in ROS2 if I use Gazebo Fortress instead of Gazebo 11. This seems to be an issue only with ROS2 and Gazebo 11 paired together.
Is there a way to fix this or something obvious missing from the URDF? Thanks!
I am working on a project that uses ROS2 and Gazebo 11; however, after integrating the F/T sensor into the URDF, I'm getting wildly inaccurate data.
I've made the modifications listed in this reference page to get data from the sensor. Without these minor syntax changes, nothing is published, but the data is successfully published over the specified topic post-changes.
To test behavior in isolation, I made the simple test URDF below:
... and spawned it with a launch file in the default Gazebo world. Given the mass of 1kg on the top joint, I'd expect to be seeing about -9.8 N in the z-direction of the ft sensor; instead, it's about -8, with an additional -7 N in the x-direction. The specific values end up being dependent on what height the robot is spawned at; if spawned inside the ground, for instance, it pops up to ground level as expected but then can give very low magnitudes on the order of 2-4 N in the z-direction.
This same configuration gives accurate results if implemented properly with a ROS1 sensor in a ROS1 workspace (which I implemented on a Ubuntu 20.04 machine), and gives accurate results in ROS2 if I use Gazebo Fortress instead of Gazebo 11. This seems to be an issue only with ROS2 and Gazebo 11 paired together.
Is there a way to fix this or something obvious missing from the URDF? Thanks!
[Related RoboticsStackExchange post]