Ask Your Question

jll's profile - activity

2019-05-06 04:43:22 -0500 received badge  Nice Question (source)
2018-02-11 06:08:04 -0500 marked best answer Where can I find outlet templates for PR2 Plug package?

I have been trying to get the pr2_plugs package (allowing PR2 robots to plug themselves into power outlets autonomously) working and tested. I obtained the code from the Github repository listed on the pr2_plugs ROS page ( ). The launch files (and previous questions on this forum) reference pre-existing outlet template models, which seem to at some point have been provided in the pr2_plugs_actions folder. In particular, I am referring to outlet templates such as green_2x1white, which I assume models a power outlet. However, I have been unable to locate these outlet templates in the various branches of the pr2_plugs repository and anywhere. Would anyone be able to point me toward these files so that I can download them and use them to test the functionality of the pr2_plugs package?


2018-02-11 05:44:43 -0500 received badge  Popular Question (source)
2018-02-10 21:08:39 -0500 asked a question Where can I find outlet templates for PR2 Plug package?

Where can I find outlet templates for PR2 Plug package? I have been trying to get the pr2_plugs package (allowing PR2 ro

2016-08-02 11:25:45 -0500 received badge  Student (source)
2016-06-06 03:28:35 -0500 received badge  Famous Question (source)
2016-02-29 11:43:33 -0500 received badge  Famous Question (source)
2016-01-18 05:54:06 -0500 received badge  Famous Question (source)
2016-01-11 01:44:44 -0500 received badge  Famous Question (source)
2015-12-15 23:02:32 -0500 received badge  Famous Question (source)
2015-12-13 08:24:13 -0500 received badge  Notable Question (source)
2015-12-11 07:19:51 -0500 received badge  Popular Question (source)
2015-12-09 10:27:33 -0500 asked a question robot_localization: Unsure of what global EKF instance is fusing


I have been trying to obtain an orientation estimate from gyroscope data using the EKF nodes. I am using a launch file (attached below) with the structure - one local EKF node in the odom frame, fusing only continuous IMU data and outputting odom->baselink TF transform, and another global EKF node in the map frame, coupled to navsat_transform_node and fusing GPS with IMU data.

I have set the configs as such:

For the global EKF node, imu0_config is IMU and odom0_config is GPS odometry from navsat_transform_node:

  <rosparam param="imu0_config">[false, false, false,
                                 false,  false,  false,
                                 false, false, false,
                                 false,  false,  true,
                                 true,  true,  false]</rosparam>

  <rosparam param="odom0_config">[true, true, false,
                                 false,  false,  false,
                                 false, false, false,
                                 false,  false,  false,
                                 false,  false,  false]</rosparam>

For the local EKF node, (imu0_config refers to same IMU topic as global EKF node):

  <rosparam param="imu0_config">[false, false, false,
                                 false,  false,  false,
                                 false, false, false,
                                 false,  false,  true,
                                 true,  true,  false]</rosparam>

When I plot the local EKF's yaw output, I obtain this:

This is very much in line with what I expected and what I obtained just by integrating my gyroscope data in MATLAB. However, when I plot the global EKF's yaw output, I obtain this instead:

This does not resemble my expected output and the yaw seems to blow up even though I am moving in an approximately straight line. Both of these nodes are also fusing data from the same topic, '/imu/data'.

Would you happen to know why the result of the fusing is so different, especially since I am only fusing IMU yaw velocity to obtain yaw in both nodes (i.e. I think I am using the exact same sources of data, no more and no less, to obtain yaw in both nodes)? Or am I implicitly fusing other data in the global EKF node?

My launch file is included here:

My bagfile in case required:


2015-12-09 10:24:52 -0500 received badge  Notable Question (source)
2015-12-09 10:08:02 -0500 received badge  Scholar (source)
2015-12-07 04:45:26 -0500 received badge  Popular Question (source)
2015-12-06 13:12:47 -0500 asked a question Unable to open rosbag files in C++


I am trying to write a node to edit the timestamps in a bag file, using C++. The code I have written is attached below. I have tried to follow the template given in the rosbag C++ API, but I am unable to open any of the bag files I have, even though they run perfectly well when I play them back using rosbag play. Specifically, I am seeing the error message

terminate called after throwing an instance of 'rosbag::BagIOException'
  what():  Error opening file: ~/catkin_ws/src/publish_text/launch/filtered.bag

I am not quite sure why exactly this is happening. Would greatly appreciate it if anyone had any suggestions!

Thanks. (Code from the main function of my code enclosed below)

ros::init(argc, argv, "postprocessing");

ros::NodeHandle nh("~");

std::string instr, outstr;

rosbag::Bag inbag, outbag;

if (nh.getParam("input_path", instr)) {, rosbag::bagmode::Read);
} else {
  ROS_ERROR("No input path provided, terminating\n");

if (!nh.getParam("output_path", outstr)) {, rosbag::bagmode::Write);
} else {
  ROS_ERROR("No output path provided, terminating\n");

UPDATE: I was able to resolve the issue by replacing the path with an absolute path from the root directory.

2015-11-13 18:22:37 -0500 received badge  Notable Question (source)
2015-11-12 20:05:29 -0500 received badge  Popular Question (source)
2015-11-11 09:44:36 -0500 received badge  Notable Question (source)
2015-11-06 08:32:10 -0500 asked a question robot_localization: time issues


I have been trying to use robot_localization on log files recorded on an Android device and have encountered some difficulty.

Android prints the information from IMU/GPS to a file, and my methodology has been to parse the individually logged files, collect the accelerometer/gyroscope/GPS/etc information into Odometry and GPS messages that I publish to ROS topics. At the same time, I am using rosbag record on these topics to save them in a bag file.

I have been getting erratic data from these 'parsed' bag files. I have been using the timestamps provided by Android and inserting them into the header (after converting to epoch time), because I thought that the robot_localization node would rely on these timestamps. However, further experimentation seems to indicate that the node relies instead on the frequency at which the bag file is played to it, and at which the messages in the bag file are recorded.

I would greatly appreciate it if someone could indicate if this is indeed the case? Moreover, would anyone have suggestions as to how I can get the robot_localization node to use the time intervals indicated in the headers rather than relying on the bagfile's frequency or speed of replay? I have also attached a sample .log file from Android and the code I am using to parse the .log file into published ROS messages which I then record via rosbag.

Log file:

Parser/publisher code:

Thank you!

UPDATE: I was able to resolve the issue by setting use_sim_time to true. In addition, I did not realize that there were additional timestamp header fields in the bagfile that were not being set to the timestamp output by my parser. While the message header timestamps were correct, the bagfile timestamps were not. I resolved this by using the rosbag C++ API to manually write each bag packet's timestamp to match my message header's timestamp.

2015-10-13 19:05:40 -0500 received badge  Famous Question (source)
2015-10-11 01:20:20 -0500 received badge  Editor (source)
2015-10-08 19:09:39 -0500 received badge  Notable Question (source)
2015-10-05 19:27:12 -0500 received badge  Popular Question (source)
2015-10-04 21:34:28 -0500 asked a question robot_localization: erroneous filtered GPS output


I am quite new to the robot_localization package and am facing a number of difficulties in using it. I am currently trying to fuse data taken from an Android device's GPS and IMU using this node. To achieve this, I have extracted the GPS and IMU log data and have read it into a bag file, which I then play back to the ekf_localization_node and navsat_transform_node to try to fuse the data.

I have a few difficulties. My GPS doesn't have altitude information, so I estimated the altitude at around 240 and set the field to that value. I notice that while the altitude stays quite constant for maybe 15-20 seconds, its value starts exploding and becoming erratic soon after.

Also, I have input a value of around -79 degrees in the longitude field. However, the filtered GPS topic inexplicably maintains the longitude field in the range of 179-180 degrees instead. I'm not sure what's going on here, and have attached the launch file I am using as well as the bag file I am reading from below.

Would greatly appreciate some feedback on what I am currently doing wrong! Thanks in advance!


Launch file:

UPDATE: I have downloaded and tried out the latest version of robot_localization, and it does indeed resolve all issues with the GPS output from the navsat_transform node.

I have also tried to follow up on Porti's suggestion that my frames are not correct, but as far as I can tell this is not the case. I am using the IMU on an Android-powered camera, and have followed the developer's API to process the data coming from the camera. As far as I can tell, I am taking the accelerometer values and inputting them so that x is forward (direction of motion of base_link), y is to the left when facing forward, and z is upward. I understand this to be the standard required by REP 103.

I have also tried exchanging the x and y axes and attempting to zero out any effects of gravity (from the possibility that the camera is skewed). However, all these attempts yield only paths similar to what Porti has plotted. I have enclosed MATLAB graphs of the path output by the node for the various cases listed above. All these graphs have the same jagged, discontinuous shapes as Porti's graph for IMU data. Would anyone be able to suggest any possible causes for this phenomenon?

Thank you in advance for your help!

MATLAB graphs:

2015-10-01 14:11:07 -0500 received badge  Popular Question (source)
2015-09-30 08:25:42 -0500 answered a question robot_localization: no odometry output from navsat_transform_node

The problem seems to lie in the fact that navsat_transform does not output any message when it detects a NaN in any one of the lat/long/altitude fields. However, I had inserted NaNs into my messages in the altitude field because the sensor_msgs API specified that a NaN should be inserted if the altitude information was not available. This caused the navsat_transform node to drop all the GPS messages and not output anything.

2015-09-29 11:21:02 -0500 asked a question robot_localization: no odometry output from navsat_transform_node


I have a log file of IMU and GPS readings that I have read into a bagfile and which I am trying to use robot_localization on. However, the output from the ekf_localization_node seems to diverge quickly and does not seem accurate. Upon further inspection, I noticed that the navsat_transform_node I was using was subscribing to the requisite topics, but was not publishing anything on odometry/gps. I think this may be at least part of the problem and I'm wondering if anyone might be able to offer advice on just what I'm doing wrong in my input to navsat_transform_node.

I am using imu_filter_madgwick to fuse the accelerometer and gyroscope data. I am sending this output on /imu/data to both ekf_localization_node and navsat_transform_node. In accordance with some other threads I was reading on this forum, I have also had the navsat_transform_node and ekf_localization_node subscribe to the odometry messages output by each other.

I have attached the launch file I am using, along with the bagfile I have been using.

IMU and GPS data from log file that have been converted to IMU and NavSatFix messages respectively

Launch file

While running the bagfile and the nodes, I also recorded the imu/data topic output by imu_filter_madgwick, which I have enclosed below.

Thanks for taking the time to read this!

2015-07-24 06:22:47 -0500 received badge  Notable Question (source)
2015-07-02 01:21:35 -0500 received badge  Enthusiast
2015-06-30 09:34:54 -0500 received badge  Popular Question (source)
2015-06-25 21:40:09 -0500 asked a question Getting started with octomap_mapping


I am trying to learn how to use ROS and the octomap_server package. I am currently running ROS Jade, and have tried launching octomap_server several times, getting the following error:

ERROR: cannot launch node of type [octomap_server/octomap_server_node]: octomap_server

ROS path [0]=/opt/ros/jade/share/ros

ROS path [1]=/home/dso/catkin_ws/src

ROS path [2]=/opt/ros/jade/share

ROS path [3]=/opt/ros/jade/stacks

No processes to monitor

shutting down processing monitor... ... shutting down processing monitor complete

I believe this may be due to the fact that octomap_server is not yet supported for Jade? I have also tried to download octomap_mapping for Indigo using "sudo apt-get install ros-indigo-octomap ros-indigo-octomap-mapping", but I get the error message:

E: Unable to locate package ros-indigo-octomap

E: Unable to locate package ros-indigo-octomap-mapping

Am I trying to install this the correct way? And also, will I be able to run octomap_server for Indigo on Jade or will I need to use ROS Indigo instead?

Thanks in advance for the help!