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

lucaluca's profile - activity

2016-09-13 04:09:46 -0500 received badge  Taxonomist
2015-10-17 13:57:13 -0500 received badge  Student (source)
2015-10-17 13:53:56 -0500 received badge  Notable Question (source)
2015-07-14 09:34:26 -0500 received badge  Famous Question (source)
2015-05-18 23:00:34 -0500 received badge  Popular Question (source)
2015-01-28 09:38:23 -0500 received badge  Famous Question (source)
2014-08-21 09:22:20 -0500 commented question pcl_ros::transformPointCloud says it does not have the transformation

Yeah you're right, I got confused, but if the tree is connected there's no need to tell ROS anything. Sorry :)

2014-08-21 07:12:25 -0500 commented answer code explanation

@syaz nyp fyp could you solve that?

2014-08-21 07:07:36 -0500 received badge  Critic (source)
2014-08-21 07:06:58 -0500 commented question pcl_ros::transformPointCloud says it does not have the transformation

I have another hypothesis: it could be that you have to somehow tell ROS that the transformation from /rgb_optical_frame to /map is the transformation /rgb_optical_frame->/odom->/map

2014-08-19 13:06:41 -0500 received badge  Notable Question (source)
2014-08-19 13:06:24 -0500 commented answer Best way to pass parameters to a service

It seems quite reasonable to me, because of the need I told you about before. Thanks a lot for the help ;)

2014-08-19 09:22:35 -0500 commented answer Best way to pass parameters to a service

@dornhege right, but after reading them from the parameter server I could delete them, right?

2014-08-19 09:21:42 -0500 commented answer Best way to pass parameters to a service

Yeah, but I don't want to force the user to insert also unnecessary values. So the two alternatives should be the one you suggested or using the parameter server, so that he can only set on the parameter server only the parameters he needs, right?

2014-08-19 09:12:28 -0500 commented answer Best way to pass parameters to a service

But in this way the user should set to "undefined" all the parameters he doesn't want to use.. Actually I thought about passing only the node handle as a parameter, so that using getParam() I can check which parameters the user decided to pass, but it doesn't seem a very clean solution..

2014-08-19 08:42:22 -0500 received badge  Popular Question (source)
2014-08-19 08:25:59 -0500 commented answer Best way to pass parameters to a service

So I have to add them to the service request? But I think in this case they become necessary, while I'd like to have a series of optional parameters, that the user can decide to pass or not..

2014-08-19 04:52:52 -0500 commented answer Best way to pass parameters to a service

@dornhege Ok, I was actually a little bit confused. So, I would like to allow the user to pass parameters as part of the service call, so that he can run the service once and make some trials calling it with different parameters. But how do I do this?

2014-08-19 03:57:24 -0500 asked a question Best way to pass parameters to a service

Hi,

It may seem a trivial question, but I couldn't find a good answer in the internet. I would like to write a service (NOT a node) that receives some parameters in input, but I couldn't find a way to pass them that is similar to what you could do with a node (where you retrieve the parameters through the node handler). The only way seems to use the parameter server, but if possible I would prefer to avoid using those kind of "global variables". Any suggestions?

2014-08-15 14:20:30 -0500 answered a question code explanation

It modifies currentVelocityCommand accordingly to the parameters passed to the function, but it doesn't actually publish anything, it just modifies the content of currentVelocityCommand. In my opinion, there must be somewhere else some code that really publishes currentVelocityCommand to some rostopic: you could publish currentVelocityCommand at a publishing rate suitable for your goal and modify from time to time its content with this function.

2014-08-15 14:11:01 -0500 received badge  Notable Question (source)
2014-08-13 09:36:01 -0500 received badge  Commentator
2014-08-13 09:36:01 -0500 commented answer TF_OLD_DATA error in laser_pipeline tutorial with bagfile

@l0g1x this is reasonable but it didn't seem to solve my problem. However, I'm very busy right now, so I will let you know in few days ;)

2014-08-13 09:34:40 -0500 asked a question installing polar_scan_matcher wrapper

Hi, I'm trying to get this package in order to use it or port it to the newest ROS version:

http://wiki.ros.org/polar_scan_matcher

However, I could only find this, which seems to be basically only the scan matching function without the wrapper, which could save me a lot of time:

http://www.irrc.monash.edu.au/adiosi/...

Do you know where I can find the wrapper? The github archive points to a library that only seems to be using CSM by Andrea Censi to do the scan matching and not polar scan matching.

2014-08-07 20:41:17 -0500 received badge  Nice Answer (source)
2014-08-07 17:45:28 -0500 received badge  Teacher (source)
2014-08-07 10:08:23 -0500 commented answer record rosrun tf tf_echo /map /base_link

@Orso since the help file of rosbag record says "Record a bag file with the contents of specified topics" and it seems there's not a topic with your data, I'm assuming this cannot be done directly. You can wait to see if some other user knows a direct approach :)

2014-08-07 09:53:58 -0500 received badge  Popular Question (source)
2014-08-07 09:46:24 -0500 answered a question record rosrun tf tf_echo /map /base_link

I don't know if this is the best approach, but it should work. I would write a node that publishes the transformations between /map and /base_link. In order to get the transformation you should use "lookupTransform" as you can see here:

http://wiki.ros.org/tf/Tutorials/Writ...

As you can see, the transformation can be published to a topic of your choice. Whatever it is, you can then use this command in order to record it:

rosbag record -O subset /chosentopic
2014-08-07 08:47:47 -0500 commented answer TF_OLD_DATA error in laser_pipeline tutorial with bagfile

@l0g1x that was what I was doing, but it didn't make any difference. But I have a couple news that I'm going to add right now at the bottom of the question

2014-08-07 08:08:06 -0500 commented answer TF_OLD_DATA error in laser_pipeline tutorial with bagfile

I added a couple details to the question

2014-08-07 04:19:29 -0500 commented answer TF_OLD_DATA error in laser_pipeline tutorial with bagfile

@l0g1x thought the same, but I don't know how to solve the problem. The parameter "use_sim_time" should have solved it. However, I'm not passing the timestamps from the bag file, but I'm just using "rosbag play". Should I change the way I'm working?

2014-08-07 03:49:29 -0500 received badge  Enthusiast
2014-08-06 11:14:26 -0500 asked a question TF_OLD_DATA error in laser_pipeline tutorial with bagfile

Hi, I'm following this tutorial: http://wiki.ros.org/laser_pipeline/Tu...

However, I cannot see the point cloud if I try to reproduce a bagfile and in the console in which I launched the node that should convert the laser scans into a point cloud I'm getting a lot of messages like:

TF_OLD_DATA ignoring data from the past

I already used this command that should have solved the problem:

rosparam set use_sim_time true

Any ideas about how to solve this problem?


EDIT: I want to add a couple details. This is the exact error:

at line 260 in /tmp/buildd/ros-hydro-tf2-0.4.10-0precise-20140304-0005/src/buffer_core.cpp Warning: TF_OLD_DATA ignoring data from the past for frame wide_stereo_optical_frame at time 1.275e+09 according to authority /play_1407416604376477595 Possible reasons are listed at http://wiki.ros.org/tf/Errors 1.336857e-312xplained

The bagfile I'm using is the bagfile of this tutorial: http://wiki.ros.org/laser_assembler/T...

Apart from setting use_sim_time to true, I also used the "--clock" parameter when playing the bagfile. I noticed a couple interesting things:

1) the first time I launch the bag file, no error pops out in the console window of the converting node. They come out from the second run on.

2) I launched the command "rosrun tf tf_monitor odom_combined base_link" and I saw that the results were "avg = 0.0826798: max = 0.155032" that seem a little bit too high, but raising the tolerance to 1 second didn't make any difference.

2014-07-18 19:06:22 -0500 received badge  Famous Question (source)
2014-07-14 15:01:35 -0500 received badge  Famous Question (source)
2014-07-14 14:59:58 -0500 marked best answer Eigen/Core on ROS hydro

I'm trying to follow this tutorial using ROS hydro medusa:

/laser_pipeline/Tutorials/IntroductionToWorkingWithLaserScannerData

The code won't compile saying that:

/opt/ros/hydro/include/laser_geometry/laser_geometry.h:46:22: fatal error: Eigen/Core: No such file or directory

I could only find a guide for a migration to ROS fuerte, but those instructions didn't work for me. Does anybody know how to fix this?


EDIT to add details: I created a new package with dependences on roscpp, rospy (probably useless) and std_msgs. I'm using ROS hydro medusa. I then created a cpp source containing this code:

#include "ros/ros.h"
#include "tf/transform_listener.h"
#include "sensor_msgs/PointCloud.h"
#include "tf/message_filter.h"
#include "message_filters/subscriber.h"
#include "laser_geometry/laser_geometry.h"

class LaserScanToPointCloud{

public:

  ros::NodeHandle n_;
  laser_geometry::LaserProjection projector_;
  tf::TransformListener listener_;
  message_filters::Subscriber<sensor_msgs::LaserScan> laser_sub_;
  tf::MessageFilter<sensor_msgs::LaserScan> laser_notifier_;
  ros::Publisher scan_pub_;

  LaserScanToPointCloud(ros::NodeHandle n) : 
    n_(n),
    laser_sub_(n_, "base_scan", 10),
    laser_notifier_(laser_sub_,listener_, "base_link", 10)
  {
    laser_notifier_.registerCallback(
      boost::bind(&LaserScanToPointCloud::scanCallback, this, _1));
    laser_notifier_.setTolerance(ros::Duration(0.01));
    scan_pub_ = n_.advertise<sensor_msgs::PointCloud>("/my_cloud",1);
  }

  void scanCallback (const sensor_msgs::LaserScan::ConstPtr& scan_in)
  {
    sensor_msgs::PointCloud cloud;
    try
    {
        projector_.transformLaserScanToPointCloud(
          "base_link",*scan_in, cloud,listener_);
    }
    catch (tf::TransformException& e)
    {
        std::cout << e.what();
        return;
    }

    // Do something with cloud.

    scan_pub_.publish(cloud);

  }
};

int main(int argc, char** argv)
{

  ros::init(argc, argv, "my_scan_to_cloud");
  ros::NodeHandle n;
  LaserScanToPointCloud lstopc(n);

  ros::spin();

  return 0;
}

At this point, I added these two lines at the end of CMakeLists.txt as I always did with sources:

add_executable(laser_scan_to_point_cloud src/laser_scan_to_point_cloud.cpp)
target_link_libraries(laser_scan_to_point_cloud ${catkin_LIBRARIES})

However, I'm getting the error that I told you when I try to compile with catkin_make. I tried to use rosdep, but it says that all the dependencies have been correctly installed. I also tried with an offline roswtf, but it doesn't find anything. Here are the versions:

rosversion -d: hydro

rosversion roscpp: 1.10.2

rosversion laser_geometry: 1.5.15

rosversion std_msgs: 0.5.8

Please let me know if you need other information!

2014-07-14 14:59:58 -0500 received badge  Supporter (source)
2014-07-14 14:59:53 -0500 received badge  Scholar (source)
2014-07-14 14:59:51 -0500 commented answer Eigen/Core on ROS hydro

@allenh1 my fault, I forgot to import the tf library. Thanks a lot!! :)