hi .
i want write a tf broadcaster for link_26 in my urdf .
i wrote wrist_tf_broadcaster.py (like [this page](http://wiki.ros.org/tf/Tutorials/Writing%20a%20tf%20broadcaster%20(Python)) in nodes/wrist_tf_broadcaster.py and run launch and rqt and add /link_26/pose/x in rqt . but i have nothing in rqt
#!/usr/bin/env python
import roslib
roslib.load_manifest('wrist')
import rospy
import tf
import turtlesim.msg
def handle_turtle_pose(msg, turtlename):
br = tf.TransformBroadcaster()
br.sendTransform((msg.x, msg.y, 0),
tf.transformations.quaternion_from_euler(0, 0, msg.theta),
rospy.Time.now(),
turtlename,
"base_link")
if __name__ == '__main__':
rospy.init_node('wrist_tf_broadcaster')
turtlename = rospy.get_param('~wrist')
rospy.Subscriber('/%s/pose' % turtlename,
turtlesim.msg.Pose,
handle_turtle_pose,
turtlename)
rospy.spin()
↧
Writing a tf broadcaster for frame
↧
robot_localization map to odom transform seems to be incorrect
I'm using two robot_localization nodes, one for continuous data (wheels' odom + imu) and the other including gps for pose correction.
For instance ekf_localization and gps_ekf_localization are giving the exact same output seen from the odom frame which is normal, but when looking at their output in the map frame I am supposed to see a drift between them but they are still the same and the whole trajectory has the same form with a slight deformation and it's rotated with an important angle and also translated. This is an example of the published transforms:
transform:
translation:
x: 1.62237404993
y: -1.66250429176
z: 0.0
rotation:
x: 0.0
y: 0.0
z: 0.864963620982
w: 0.501834568736
This made me think that the map to odom transform is wrong for some reason,
also made me question: is the gps data really used for pose correction? With the same configuration, I eliminated the gps data and still have the same output.
The weird thing is that every thing seem to be working some times, the robot maintain its trajectory and seems to be very aware of its position and orientation. But with a more complex trajectory and in some different areas I'm getting the same behavior as the one described in this [paper](http://docs.ros.org/indigo/api/robot_localization/html/_downloads/robot_localization_ias13_revised.pdf) when fusing only odom and imu.
The launch file I'm using is a way too similar to the one provided as answer for the following
[question]( http://answers.ros.org/question/215904/robot_localization-failed-to-transform-warning/?comment=252396#post-id-252396).
Does this have something to do with the imu parameters ?
I've been reading the documentation and almost every published issue and question about the package but I still have so many questions bothering me in my head since I'm new to all this magic.
I will try to provide some bag files as soon as possible. But hopefully this little description will make you able to give me some points to check or to correct.
Thank you in advance.
↧
↧
Change [velodyne] frame for gmapping
I have .pcap file collected from VLP16 and I first run
roslaunch velodyne_pointcloud VLP16_points.launch pcap:=/home/soowon/Documents/111.pcap
I can now see in RVIZ in fixed frame of [velodyne]
Then I use
rosrun pointcloud_to_laserscan pointcloud_to_laserscan_node cloud_in:=/velodyne_points
to convert to 2d laser scan.
and then record it as rosbag file.
But when I want to combine it with laser_scan_matcher and gmapping, the frame is always not correct.
I searched online and it seems that I should reset frame_id when doing the first step. But I don't know what to do in detail.
↧
Hector SLAM Mapping Pointcloud
Hi all,
I am figuring out a way to manipulate map building using Hector SLAM. I understand that hector mapping converts laser scan msgs into a point cloud for mapping. I am trying to implement the [laser_ortho_projector](http://wiki.ros.org/laser_ortho_projector) node to run with Hector SLAM because I am planning to tilt my RPLidar A2 sensor at a fixed angle of 20deg. Is there a way to make Hector mapping build the map using the transformed point cloud data of the base_ortho frame instead of the current scanmatcher frame? (I do not have an imu)
Thanks in advance!
↧
Computing Rotation Matrix about a rigid frame
Hi guys,
This has left me confused a bit . I have a robot in the form of a manikin head which has four markers placed on it. The robot is situated on a table as shown below

I am tracking the position of the face with vicon markers (using the vicon bridge package) placed at the forehead, left/right cheeks and chin respectively.
I would like to compute the orientation of the face with respect to a rigid frame to be defined on the table (with ROS' right-handed coordinate frame).
My Questions:
(i) How do I define a rigid frame on the table? Do I use something like the `tf::Transform class`? I saw tutorials similar to the following
tf::Transform transform;
transform.setOrigin(tf::Vector3(0.0,0.0,0.2));
transform.setRotation(tf::Quaternion(0.0, 0.0, 0.0, 1.0));
that is assuming the centroid of the face is 20cm above the table. I am not too sure if I should be using the tf transform class for this purpose.
(ii)I would like to attach a coordinate frame to the head in real-time so that I can find the orientation of the face with respect to the rigid frame on the table.
I would like to hear your thoughts on what is the best option to take.
PS: I know the `vicon_bridge` package gives the tf transform of the `subject` with respect to the `camera frame` but I found the default computed quaternion to suffer a drift that defeats the purpose of my experiment i.e. achieving sub-millimeter and sub-degree accuracy while controlling the motion of the head. The cartesian coordinates of the markers is accurate to less than `1mm` so I am inclined to think something is wrong in the way the calculation is done in the `vicon_sdk` software. I feel it is best I compute the transforms myself given the position of the markers.
**EDIT 1**
For example, here is the dump from the screen based on returned orientation as computed by the `vicon_bridge` package. Note that the head is really static in the scene and there should not be a lot of drift
-3.851588 , -89.742720, 2.474993
| roll | pitch | yaw
-6.287211 , -89.741393, 4.915040
| roll | pitch | yaw
-5.358562 , -89.741111, 3.981298
| roll | pitch | yaw
9.701361 , -89.705700, -11.091304
| roll | pitch | yaw
11.665852 , -89.703736, -13.057809
| roll | pitch | yaw
10.510902 , -89.706893, -11.903041
| roll | pitch | yaw
-13.265921 , -89.758196, 11.884158
| roll | pitch | yaw
9.701361 , -89.705700, -11.091304
| roll | pitch | yaw
11.466865 , -89.708170, -12.858929
| roll | pitch | yaw
-7.994014 , -89.756785, 6.613398
| roll | pitch | yaw
-11.421505 , -89.760937, 10.039571
| roll | pitch | yaw
-13.407172 , -89.757765, 12.023137
| roll | pitch | yaw
10.069726 , -89.706260, -11.460297
| roll | pitch | yaw
9.701361 , -89.705700, -11.091304
| roll | pitch | yaw
9.701361 , -89.705700, -11.091304
| roll | pitch | yaw
9.701361 , -89.705700, -11.091304
| roll | pitch | yaw
11.492792 , -89.708175, -12.884962
| roll | pitch | yaw
-9.297923 , -89.749820, 7.917772
↧
↧
tf2_ros buffer transform PointStamped?
I'd like to transform a `PointStamped` using a python `tf2_ros.Buffer`, but so far I'm only getting type exceptions.
The following example a point with only a y component is supposed to be trivially transformed into the frame it is already in:
#!/usr/bin/env python
import rospy
import sys
import tf2_ros
from geometry_msgs.msg import PointStamped
if __name__ == '__main__':
rospy.init_node('transform_point_tf2')
tf_buffer = tf2_ros.Buffer()
tf_listener = tf2_ros.TransformListener(tf_buffer)
rospy.sleep(1.0)
pt = PointStamped()
pt.header.stamp = rospy.Time.now()
pt.header.frame_id = "map"
pt.point.x = 0.0
pt.point.y = 1.0
pt.point.z = 0.0
try:
pt2 = tf_buffer.transform(pt, "map")
except: # tf2_ros.buffer_interface.TypeException as e:
e = sys.exc_info()[0]
rospy.logerr(e)
sys.exit(1)
rospy.loginfo(pt2)
This results in:
[ERROR] [/transform_point_tf2] [./transform_point_tf2.py]:[27] []
If PointStamped isn't the right type, then what type can I use?
To do this manually I'm currently doing this:
trans = self.tf_buffer.lookup_transform("map", target_frame,
rospy.Time())
quat = [trans.transform.rotation.x,
trans.transform.rotation.y,
trans.transform.rotation.z,
trans.transform.rotation.w]
mat = tf.transformations.quaternion_matrix(quat)
pt_np = [pt.point.x,
pt.point.y,
pt.point.z,
1.0]
pt_in_map_np = numpy.dot(mat, pt_np)
pt_in_map.x = pt_in_map_np[0]
pt_in_map.y = pt_in_map_np[1]
pt_in_map.z = pt_in_map_np[2]
↧
how write tf listener to get the pose and republish these values for RRRBot robot?
hi. I want plot position (x y z) for camera and second link for [RRRBot robot](https://github.com/JoshMarino/gazebo_and_ros_control).
[NEngelhard](http://answers.ros.org/users/18581/nengelhard/) told me: "
you need to use a tf listener to get the pose and republish these values so that rqt_plot is able to plot them. "
but I do not know what to do. can any body write tf listener for [RRRBot robot](https://github.com/JoshMarino/gazebo_and_ros_control) ??
can i use [this steps](http://wiki.ros.org/navigation/Tutorials/RobotSetup/TF)?
↧
Stripping AMCL TF Tree for Robot_Localization
I am trying the run robot_localization's ekf node with amcl and odometry as the inputs. I would like the ekf node to perform a transform from map->odom. Right now both amcl and the ekf node are performing the map->odom transform and this is causing the robot, in simulation, to shake: jumping back and forth between the two estimates. Is there a way to block amcl from publishing the tf transform while still providing information to the ekf node?
I have tried remapping tf to a different name but this also blocks the /amcl_pose topic which is needed for the ekf node.
↧
Rviz and use_sim_time
I am running a simulation on gazebo and using rviz for visualization.
I have transforms between different frames available on the /tf topic. The time stamps are in simulated time. use_sim_time is on. Clock is published by gazebo.
Then, I publish certain visualization markers.
The problem is that if the visualization markers are in frame that is not the fixed frame in RViz, RViz tries to find the transform at the current Wall time despite the fact that 'use_sim_time' is true. This fails horribly, of course, and results in a tf extrapolation-into-the-future error. The RViz clock panel recognizes this fact and displays the time that is published on the /clock topic. However, if the marker is in the the world frame (or the fixed frame in RViz), RViz has no problems displaying them. This is expected since the TransformListener is not used.
↧
↧
Cannot understand tf cpp code
The following code:
SlamGMapping::initMapper(const sensor_msgs::LaserScan& scan)
{
laser_frame_ = scan.header.frame_id;
// Get the laser's pose, relative to base.
tf::Stamped ident;
tf::Stamped laser_pose;
ident.setIdentity(); // set transformation matrix to identity
ident.frame_id_ = laser_frame_;
ident.stamp_ = scan.header.stamp;
try
{
tf_.transformPose(base_frame_, ident, laser_pose);
}
This is part of gmapping source code. I have known what tf does is try to correlate "base_link" to "laser". But I have difficulty understanding the code in detail.
I checked tf header description, and according ot it, `tf_.transformPose(base_frame_, ident, laser_pose)` in which ident should be stamped_in and laser_pose should be stamped out. But I dont understand what is exactly doing. What is stamped in or out?
↧
find 3D location of the sensor when a depth image arrives
Hey buddies! I went through the forum and couldn't find a satisfying answer. Sorry, if I reopened an already-answered question.
Basically, I need to write a ROS node that will print the 3D location of the sensor and the timestamp in a text format when it detects a depth image.
Here is what I think I should do (tho I don't know how to):
1. Build a robot with odometer and mount a web camera on it.
2. Create a node that will publish odometer's data. ->odom_node
3. Create a node that will detect 3D images. -> cam_node
4. I somehow will make the odom_node to listen to the cam_node.
I have thousands of questions to ask but that would make it too broad, I don't really know where to start.
Could someone direct me to some good tutorials and projects where I can learn and finish the project on my own?
I appreciate all the answers. Thank you in advance.
↧
Launching multiple turtlebots under namespaces (real environment)
I am trying to launch multiple turtlebots (each under a namespace) with navigation stack. I am building upon the similar task for stage simulator [(link)](https://github.com/gergia/multiple_turtlebots_stage_amcl). As a first step, I try to launch a single turtlebot under namespace.
Currently, the attempt to launch a single robot under namespace with amcl failed. The tf tree looks like [this](https://dl.dropboxusercontent.com/u/11955498/framesTurtlebotUnderNamespace.pdf). The link between */map* and *robot\_0/odom* is missing. Amcl should be publishing this connection.
The messages from console are following:
* */robot\_0/amcl: No laser scan received (and thus no pose updates have been published) for 1462444802.174762 seconds. Verify that data is being published on the /robot\_0/scan topic.* : checked, data is being published at /robot\_0/scan
* */robot\_0/amcl: MessageFilter [target=robot\_0/odom ]: Dropped 100.00% of messages so far. Please turn the [ros.amcl.message\_notifier] rosconsole logger to DEBUG for more information.* : **This might be the key message**. If I set the logger level to debug, I see something like *Added message in frame /camera\_depth\_frame at time 1462446392.094, count now 100*.
I guess the trouble is that it is using frame id /camer_depth_frame (the absolute one) instead of one relative to the namespace (_robot\_0 in this case_). I don't know how to fix it. I tried with using *openni2\_tf\_prefix.launch*, but doesn't help.
* */robot\_0/move\_base\_node: Timed out waiting for transform from robot\_0/base\_link to map to become available before running costmap, tf error: . canTransform returned after 0.101826 timeout was 0.1* : I guess this one is just a consequence of previous ones. As I see this question being asked around, but without a complete solution, I created a [git repository](https://github.com/gergia/multiple_turtlebots_real_world) with the current code. I hope once I manage to solve this problem - with your help - to have the complete solution in the repository for the others to have use of it afterwards as well. Feel free to answer here, or experiment directly in the code (and let us know about any successful or even unsuccessful trials).
The messages from console are following:
* */robot\_0/amcl: No laser scan received (and thus no pose updates have been published) for 1462444802.174762 seconds. Verify that data is being published on the /robot\_0/scan topic.* : checked, data is being published at /robot\_0/scan
* */robot\_0/amcl: MessageFilter [target=robot\_0/odom ]: Dropped 100.00% of messages so far. Please turn the [ros.amcl.message\_notifier] rosconsole logger to DEBUG for more information.* : **This might be the key message**. If I set the logger level to debug, I see something like *Added message in frame /camera\_depth\_frame at time 1462446392.094, count now 100*.
I guess the trouble is that it is using frame id /camer_depth_frame (the absolute one) instead of one relative to the namespace (_robot\_0 in this case_). I don't know how to fix it. I tried with using *openni2\_tf\_prefix.launch*, but doesn't help.
* */robot\_0/move\_base\_node: Timed out waiting for transform from robot\_0/base\_link to map to become available before running costmap, tf error: . canTransform returned after 0.101826 timeout was 0.1* : I guess this one is just a consequence of previous ones. As I see this question being asked around, but without a complete solution, I created a [git repository](https://github.com/gergia/multiple_turtlebots_real_world) with the current code. I hope once I manage to solve this problem - with your help - to have the complete solution in the repository for the others to have use of it afterwards as well. Feel free to answer here, or experiment directly in the code (and let us know about any successful or even unsuccessful trials).
↧
AMCL: map and scan not in the same frame
I load the map (built by hector slam before) by map_server and my scan is in rosbag. When I play rosbag. The scan is in "scan" frame while the map is in "map" frame. How to solve the problem?
I know that I also need odometry. But I dont understand how can this get a tf tree? AMCL only provide odom->map. Its not enough to get scan->map.
I want to use AMCL to localize in the given map.
↧
↧
how plot tf listener (Python) in rqt ?
hi . how can i plot position for turtle2 in [this page](http://wiki.ros.org/tf/Tutorials/Writing%20a%20tf%20listener%20%28Python%29) ??
↧
RVIZ- LIDAR- tf- HECTOR SLAM - plz help. Error Message:lookupTransform base_link to laser timed out. Could not transform laser scan into base_frame.
When i run roslaunch hector_slam_launch tutorial.launch and rplidar_ros rplidar.launch , i get an error message lookupTransform base_link to laser timed out. Could not transform laser scan into base_frame.
I am able to open up RVIZ, but displays Fixed Frame: No tf data. Actual error: Fixed Frame [map] does not exist.
My tf tree says no tf data received.
Here is all my rostopic list:
/clicked_point
/initialpose
/map
/map_metadata
/map_updates
/move_base_simple/goal
/poseupdate
/rosout
/rosout_agg
/scan
/slam_cloud
/slam_out_pose
/syscommand
/tf
/tf_static
/trajectory
Here is my launch file:
↧
Roscpp header file for tf2 transform
Which header file to include for tf2::Transform? Unfortunately this is not a well documented way to use tf2 as far as I can find. It is in the file `Transform.h`, but that file can't be included as such: `` or ``
Should I revert to using tf? Is this not a canonical way to use tf2?
Cheers!
↧
TF_OLD_DATA ignoring data from the past for frame odom
Hello everyone
I was using ROS hydro, however I updated Ubuntu and installed ROS indigo in my computer. I am writing to you because I am currently trying to make a robot which goes from an estimated point to an aim point, for this I need to use tf (to find the robots estimated position), but when I execute my program the following warnings appear
warn: worldfile /home/diego/MobileRobots/src/AIS_worlds/LBH_floor_1.world:43 : property [interval_real] is defined but not used (/tmp/buildd/ros-indigo-stage-4.1.1-2trusty-20141229-2215/libstage/worldfile.cc WarnUnused)
warn: worldfile /home/diego/MobileRobots/src/AIS_worlds/LBH_floor_1.world:40 : property [gui_movemask] is defined but not used (/tmp/buildd/ros-indigo-stage-4.1.1-2trusty-20141229-2215/libstage/worldfile.cc WarnUnused)
warn: worldfile /home/diego/MobileRobots/src/AIS_worlds/LBH_floor_1.world:44 : property [laser_return] is defined but not used (/tmp/buildd/ros-indigo-stage-4.1.1-2trusty-20141229-2215/libstage/worldfile.cc WarnUnused)
warn: worldfile /home/diego/MobileRobots/src/AIS_worlds/LBH_floor_1.world:25 : property [laser_return] is defined but not used (/tmp/buildd/ros-indigo-stage-4.1.1-2trusty-20141229-2215/libstage/worldfile.cc WarnUnused)
warn: worldfile /home/diego/MobileRobots/src/AIS_worlds/LBH_floor_1.world:42 : property [range_max] is defined but not used (/tmp/buildd/ros-indigo-stage-4.1.1-2trusty-20141229-2215/libstage/worldfile.cc WarnUnused)
warn: worldfile /home/diego/MobileRobots/src/AIS_worlds/LBH_floor_1.world:44 : property [resolution] is defined but not used (/tmp/buildd/ros-indigo-stage-4.1.1-2trusty-20141229-2215/libstage/worldfile.cc WarnUnused)
[ INFO] [1422453286.760958942]: found 1 position and laser(1)/camera(0) pair in the file
Warning: TF_OLD_DATA ignoring data from the past for frame odom at time 0.5 according to authority unknown_publisher
Possible reasons are listed at http://wiki.ros.org/tf/Errors%20explained
at line 260 in /tmp/buildd/ros-indigo-tf2-0.5.7-0trusty-20141230-0040/src/buffer_core.cpp
I can cope with this if this it's just a simple problem or something with no importance (the map is loading perfectly), however the warning of TF_OLD_DATA is appearing at every 0.1s, Additionally I suspect that the robot is not receiving estimated position correctly:
[ INFO] [1422454423.865170946, 13.100000000]: POS estimated_x = 33.027127, aim_X= 33.800000, estimated_y =7.292175, aim_Y= -40.000000, dist = 47.298490
[ INFO] [1422454423.865415347, 13.100000000]: POS estimated_x = 33.027127, aim_X= 33.800000, estimated_y =7.292175, aim_Y= -40.000000, dist = 47.298490
Warning: TF_OLD_DATA ignoring data from the past for frame odom at time 13.3 according to authority unknown_publisher
Possible reasons are listed at http://wiki.ros.org/tf/Errors%20explained
at line 260 in /tmp/buildd/ros-indigo-tf2-0.5.7-0trusty-20141230-0040/src/buffer_core.cpp
[ INFO] [1422454423.968773001, 13.200000000]: POS estimated_x = 33.027127, aim_X= 33.800000, estimated_y =7.292175, aim_Y= -40.000000, dist = 47.298490
[ INFO] [1422454423.969095065, 13.200000000]: POS estimated_x = 33.079496, aim_X= 33.800000, estimated_y =7.323241, aim_Y= -40.000000, dist = 47.328725
Warning: TF_OLD_DATA ignoring data from the past for frame odom at time 13.4 according to authority unknown_publisher
Possible reasons are listed at http://wiki.ros.org/tf/Errors%20explained
at line 260 in /tmp/buildd/ros-indigo-tf2-0.5.7-0trusty-20141230-0040/src/buffer_core.cpp
[ INFO] [1422454424.062837413, 13.300000000]: POS estimated_x = 33.079496, aim_X= 33.800000, estimated_y =7.323241, aim_Y= -40.000000, dist = 47.328725
[ INFO] [1422454424.063056251, 13.300000000]: POS estimated_x = 33.079496, aim_X= 33.800000, estimated_y =7.323241, aim_Y= -40.000000, dist = 47.328725
Warning: TF_OLD_DATA ignoring data from the past for frame odom at time 13.5 according to authority unknown_publisher
Possible reasons are listed at http://wiki.ros.org/tf/Errors%20explained
at line 260 in /tmp/buildd/ros-indigo-tf2-0.5.7-0trusty-20141230-0040/src/buffer_core.cpp
[ INFO] [1422454424.125706916, 13.400000000]: POS estimated_x = 33.079496, aim_X= 33.800000, estimated_y =7.323241, aim_Y= -40.000000, dist = 47.328725
[ INFO] [1422454424.125956666, 13.400000000]: POS estimated_x = 33.079496, aim_X= 33.800000, estimated_y =7.323241, aim_Y= -40.000000, dist = 47.328725
Warning: TF_OLD_DATA ignoring data from the past for frame odom at time 13.6 according to authority unknown_publisher
Possible reasons are listed at http://wiki.ros.org/tf/Errors%20explained
at line 260 in /tmp/buildd/ros-indigo-tf2-0.5.7-0trusty-20141230-0040/src/buffer_core.cpp
[ INFO] [1422454424.225232356, 13.500000000]: POS estimated_x = 33.079496, aim_X= 33.800000, estimated_y =7.323241, aim_Y= -40.000000, dist = 47.328725
Warning: TF_OLD_DATA ignoring data from the past for frame odom at time 13.7 according to authority unknown_publisher
Possible reasons are listed at http://wiki.ros.org/tf/Errors%20explained
at line 260 in /tmp/buildd/ros-indigo-tf2-0.5.7-0trusty-20141230-0040/src/buffer_core.cpp
[ INFO] [1422454424.225467356, 13.500000000]: POS estimated_x = 33.136469, aim_X= 33.800000, estimated_y =7.345865, aim_Y= -40.000000, dist = 47.350514
Warning: TF_OLD_DATA ignoring data from the past for frame odom at time 13.8 according to authority unknown_publisher
Possible reasons are listed at http://wiki.ros.org/tf/Errors%20explained
at line 260 in /tmp/buildd/ros-indigo-tf2-0.5.7-0trusty-20141230-0040/src/buffer_core.cpp
[ INFO] [1422454424.328012308, 13.600000000]: POS estimated_x = 33.136469, aim_X= 33.800000, estimated_y =7.345865, aim_Y= -40.000000, dist = 47.350514
[ INFO] [1422454424.328320071, 13.600000000]: POS estimated_x = 33.136469, aim_X= 33.800000, estimated_y =7.345865, aim_Y= -40.000000, dist = 47.350514
[ INFO] [1422454424.427263374, 13.700000000]: POS estimated_x = 33.136469, aim_X= 33.800000, estimated_y =7.345865, aim_Y= -40.000000, dist = 47.350514
[ INFO] [1422454424.427495187, 13.700000000]: POS estimated_x = 33.136469, aim_X= 33.800000, estimated_y =7.345865, aim_Y= -40.000000, dist = 47.350514
Warning: TF_OLD_DATA ignoring data from the past for frame odom at time 13.9 according to authority unknown_publisher
Possible reasons are listed at http://wiki.ros.org/tf/Errors%20explained
at line 260 in /tmp/buildd/ros-indigo-tf2-0.5.7-0trusty-20141230-0040/src/buffer_core.cpp
Warning: TF_OLD_DATA ignoring data from the past for frame odom at time 14 according to authority unknown_publisher
Possible reasons are listed at http://wiki.ros.org/tf/Errors%20explained
at line 260 in /tmp/buildd/ros-indigo-tf2-0.5.7-0trusty-20141230-0040/src/buffer_core.cpp
And finally, the robot does not stop when it has to.
Can anyone please help me with this?
↧
↧
rviz ignoring transforms
With the lates update of Kinetic the display of laser scan data in some old bag files stopped working. I get the message
[ERROR] [1490090873.307973855]: Ignoring transform for child_frame_id "uav0/vicon_laser" from authority "unknown_publisher" because of an invalid quaternion in the transform (-0,018510 0,706860 -0,018510 0,706860)
in the terminal where rviz is started. This transform might be generated from a ros2 static transform but it worked before the latest update.
Is the quaternion invalid or is the check here buggy? And it did display properly before so can I disable this new check?
The launch file line generaing the transform that do now work is:
↧
PyKDL wrong GetQuaternion output?
Hi,
i'm not sure if it's correct to ask something about PyKDL here but this is a bug produced by a ros node. The question is very simple, i have a PyKDL.Frame and i notice that its conversion to translation/quaternion (before send it to TF Broadcaster) si malformed. The following two rows:
print frame, "\n" print frame.M.GetQuaternion()produce this result:
[[ 3.21075e-06, 3.21074e-06, -0.999999; -3.21074e-06, -0.999999,-3.21075e-06; -0.999999, 3.21075e-06,-3.21074e-06] [ 0.632574, 0.982814, 3.08063]] (0.0039903364268270795, 0.0, -0.003990323614818683, 0.00040231585169223024)The last row is the quaternion but is wrong since the previous Rotation component seems to be a canonical base (0.99999999 should be equal to 1, and xxe-06 should be 0). In RVIZ the corresponding TF is slightly titled, that is why i realized the presence of something wrong. Thanks
↧
from PoseStamped message to tf StampedTransform
What's the neatest way to change a PoseStamped message into a StampedTransform to be published through a transform_broadcaster?
↧