Inquire for ft_calib_params
Opened this issue · 3 comments
MingshanHe commented
I have used UR5 to force calibration, this robot has not any IMU model but I have used Joint Velocity and Jaccobi Matrix to calculate the Acceleration for End tool. But when I run it, I have get the wrong mass and ft_calib_params like this.
ft_calib_params 0
0
0
0
-13.0536
6.89857
18.0483
-1.13673
-1.76636
6.99891
Would you like to help me to solve this? Thanks, and Best regards
diogoalmeida commented
Hi,
My recommendation is to publish a fake IMU signal with the expected gravity measurement, in the robot base frame. That should allow the algorithm to work, with little effect on the accuracy of your results (assuming you have the robot laying on a flat horizontal table).
Best,
Diogo
…________________________________
From: Mingshan-Beal ***@***.***>
Sent: Saturday, May 29, 2021 4:40:15 AM
To: kth-ros-pkg/force_torque_tools ***@***.***>
Cc: Subscribed ***@***.***>
Subject: [kth-ros-pkg/force_torque_tools] Inquire for ft_calib_params (#19)
I have used UR5 to force calibration, this robot has not any IMU model but I have used Joint Velocity and Jaccobi Matrix to calculate the Acceleration for End tool. But when I run it, I have get the wrong mass and ft_calib_params like this.
ft_calib_params 0
0
0
0
-13.0536
6.89857
18.0483
-1.13673
-1.76636
6.99891
Would you like to help me to solve this? Thanks, and Best regards
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub<#19>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/AALOBTKRZUVXZIM3EKQ6NXDTQBOZ7ANCNFSM45X3HNKQ>.
MingshanHe commented
Thanks, and I will try.
lxk-221 commented
this is a simple implement of fake imu signal by python
simply create scripts/fake_imu_publisher.py
under force_torque_sensor_calib
package.
#!/usr/bin/env python
import rospy
from sensor_msgs.msg import Imu
from geometry_msgs.msg import Vector3
def imu_publisher():
# init
rospy.init_node('imu_publisher_node', anonymous=True)
imu_pub = rospy.Publisher('imu_data', Imu, queue_size=10)
# fake imu, simpliy imu
gravity = Vector3(0, 0, -9.81)
rate = rospy.Rate(10) # 10Hz
while not rospy.is_shutdown():
# create imu message
imu_msg = Imu()
imu_msg.header.stamp = rospy.Time.now()
imu_msg.header.frame_id = "world"
imu_msg.orientation.w = 1
imu_msg.orientation_covariance = [1, 0, 0, 0, 1, 0, 0, 0, 1]
imu_msg.angular_velocity.x = 0.0
imu_msg.angular_velocity.y = 0.0
imu_msg.angular_velocity.z = 0.0
imu_msg.angular_velocity_covariance = [1, 0, 0, 0, 1, 0, 0, 0, 1]
imu_msg.linear_acceleration = gravity
imu_msg.linear_acceleration_covariance = [1, 0, 0, 0, 1, 0, 0, 0, 1]
# publish
imu_pub.publish(imu_msg)
rate.sleep()
if __name__ == '__main__':
try:
imu_publisher()
except rospy.ROSInterruptException:
pass
then add it to CMakeLists.txt
catkin_package(
DEPENDS eigen
CATKIN_DEPENDS rospy sensor_msgs
INCLUDE_DIRS include
LIBRARIES
)
install(PROGRAMS
scripts/fake_imu_publisher.py
DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)
and add run depend package.xml
<run_depend>rospy</run_depend>