ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
1

delete frames link (odom --> base_footprint)

asked 2018-07-24 09:31:12 -0500

luca201824 gravatar image

Good afternoon, I'm a student and I'm new of ROS. I'm doing a thesis work on autonomous mapping of indoor environments using a TurtleBot3 with ROS Kinetic. I want to improve odometry data using the "robot_pose_ekf" ROS package, but I can't make the "base_footprint" frame takes data only from "odom_combined". Indeed the parents frames of "base_footprint" are now "odom_combined" and "odom". I have to cut the link between "base_footprint" and "odom". Can you suggest how I can do it? I want to stop the "base_footprint" frame reads data from "odom" frame/topic. I have already read many posts on forum but I haven't found a solution. Have a good day, Luca Bini.

edit retag flag offensive close merge delete

Comments

I'm not familiar with the TurtleBot3's packages, but have you tried the rqt_tf_tree tool? It's a nice visual tool that tells you what nodes are broadcasting specific links.

rosrun rqt_tf_tree rqt_tf_tree
mbarulic gravatar image mbarulic  ( 2018-07-24 11:17:02 -0500 )edit

Is there a reason you are using robot_pose_ekf instead of robot_localization? Robot_localization is also an EKF for localization, and is more generic / better documented than robot_pose_ekf.

stevejp gravatar image stevejp  ( 2018-07-24 20:09:08 -0500 )edit

1 Answer

Sort by ยป oldest newest most voted
0

answered 2020-11-14 04:52:03 -0500

Red gravatar image

Hide this tf conversion. (odom file)

  # Create the odometry transform frame broadcaster.
       self.odomBroadcaster.sendTransform(
           (self.x, self.y, 0),
           (quaternion.x, quaternion.y, quaternion.z, quaternion.w),
           rospy.Time.now(),
           self.base_frame,
           "odom"
           )

Added new odom covariance. (odom file)

   if vxy!=0 and vth!=0:
       odom.pose.covariance = ODOM_POSE_COVARIANCE
       odom.twist.covariance = ODOM_TWIST_COVARIANCE
   else:
       odom.pose.covariance = ODOM_POSE_COVARIANCE2
       odom.twist.covariance = ODOM_TWIST_COVARIANCE2

Reference covariance. (odom file)

ODOM_POSE_COVARIANCE = [1e-3, 0, 0, 0, 0, 0, 
                        0, 1e-3, 0, 0, 0, 0,
                        0, 0, 1e6, 0, 0, 0,
                        0, 0, 0, 1e6, 0, 0,
                        0, 0, 0, 0, 1e6, 0,
                        0, 0, 0, 0, 0, 1e3]
ODOM_POSE_COVARIANCE2 = [1e-9, 0, 0, 0, 0, 0, 
                         0, 1e-3, 1e-9, 0, 0, 0,
                         0, 0, 1e6, 0, 0, 0,
                         0, 0, 0, 1e6, 0, 0,
                         0, 0, 0, 0, 1e6, 0,
                         0, 0, 0, 0, 0, 1e-9]

ODOM_TWIST_COVARIANCE = [1e-3, 0, 0, 0, 0, 0, 
                         0, 1e-3, 0, 0, 0, 0,
                         0, 0, 1e6, 0, 0, 0,
                         0, 0, 0, 1e6, 0, 0,
                         0, 0, 0, 0, 1e6, 0,
                         0, 0, 0, 0, 0, 1e3]
ODOM_TWIST_COVARIANCE2 = [1e-9, 0, 0, 0, 0, 0, 
                          0, 1e-3, 1e-9, 0, 0, 0,
                          0, 0, 1e6, 0, 0, 0,
                          0, 0, 0, 1e6, 0, 0,
                          0, 0, 0, 0, 1e6, 0,
                          0, 0, 0, 0, 0, 1e-9]
edit flag offensive delete link more

Question Tools

2 followers

Stats

Asked: 2018-07-24 09:31:12 -0500

Seen: 230 times

Last updated: Nov 14 '20