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

g.aterido's profile - activity

2019-03-31 08:45:45 -0500 received badge  Nice Answer (source)
2016-12-20 23:29:10 -0500 received badge  Nice Question (source)
2016-06-01 13:12:00 -0500 received badge  Favorite Question (source)
2015-10-14 16:28:09 -0500 marked best answer Navigation with a laser and a kinect

Hello

I'm trying to navigate with a differential robot using two sensors, a laser and a kinect. First I'm going to descrive what I attempt and then I will explain the problems I'm having.

The laser is used for detecting far obstacles and to get the robot localized on a map by AMCl. The kinect is used for detecting near obtacles that the laser doesn't see (e.g. obstacles that are under the laser's vision).

The main problem is that the Kinect has not the same range and the same field of view than the laser. The laser has a range of 30m and 270º, and the Kinect about 5m and 70º. That makes that when the Kinect sees an obstacle that the laser doesn't, and then the obstacle comes out of the kinect's field of view, the laser clears it. That makes the kinect completely useless.

I've tried to set the parameter clearing of the laser to false, but that's not a good solution because sometimes, when the robot is a little tilted, the laser detects the floor and marks it as an obstacle.

I've also tried to use the laser only for introducing obstacles in the local costamp, and the kinect for both local and global costmap. That's a better solution but has one problem: when the laser detects an obstacle that the kinect doesn't, if the obstacle is in the middle of the path calculated, the robot try to clean it with the recovery behaviours and then stops saying that is unable to plan a path.

How can I solve all this problems? Or how can I use the laser and the kinect for navigation at the same time?

I'm on Ubuntu 12.04 and ROS Fuerte. Thank's in advance ;)

2015-09-21 09:06:53 -0500 received badge  Famous Question (source)
2015-03-10 22:56:51 -0500 marked best answer Refresh map on navigation

Hello

I'm using the navigation_stack for make a robot move autonomously. So far I've managed to make the robot move and avoid obstacles, but only if I use a reference map. With this reference map, the robot uses the AMCL package and then gets its localization on the map.

What I get now is that the robot go from one point to another without a known map. To fix this, I thought of using a laser to generate a map periodically, and transfer this map to AMCL package.

The problem is that I don't know how to pass the map built to AMCL. I tried to post on the topic /map the information of the constructed map, but then when I visualize it with Rviz see only gray. Besides the move_base package tells me:

Request for map failed, trying again ...

So there's something I'm missing.

Maybe sending the map with the map_server would be easier, but I haven't found documentation of how to use it from the code.

Can anyone tell me how I can transfer this map constructed to navigation_stack? Or if there is an easier way to get what you want.

Thanks in advance.

2015-03-10 22:56:51 -0500 received badge  Self-Learner (source)
2014-02-09 12:19:11 -0500 received badge  Autobiographer
2014-02-02 02:57:43 -0500 commented answer Problems using the navigation stack

... the real name of the params, because the names mentioned in the links may be different from the real ones).

2014-02-02 02:56:45 -0500 commented answer Problems using the navigation stack

Hi, Brian. I'm sorry, but that was a project I was doing long time ago and I don't have those files anymore :( I don't remember exactly how but I solved it by setting the parameters detailed in the links above. In addition you must be careful with the name of the params (run rosparam list to know ...

2014-01-28 17:27:58 -0500 marked best answer Problems with ekf + amcl: particles cloud diverges

Hello

I'm trying to use the navigation stack with the odometry given by an EKF that fuses three sensors: the encoder based odometry, an IMU, and a GPS. The output of the EKF seems to be nice, and if it's relevant publishes the position in UTM's.

The problems start when I use the AMCL for doing the localization on the map. When I run the AMCL, the particles cloud begins to diverge, and then the localization is very poor and the move_base package can't make the robot move very well. Furthermore, the estimated position of the robot jumps around the real pose of the robot, and that makes even worse the localization. I've filtered the output of the EKF and this problem persists.

And sometimes, while I'm running the move_base with the AMCL I get this warning:

[ WARN] [1352195952.098814110, 3250.301000000]: The origin for the sensor at (182092.21, -2410790.70) is out of map bounds. So, the costmap cannot raytrace for it.

I only get this warning sometimes, don't know the reason. After this warning the robot tries again to move, so I think that the AMCL has made a jump outside the map but in the next iteration it has corrected itself. But it just a supposition, I don't know exactly why I get this warning or if that's the reason why I cant make work the EKF with the AMCL.

I've tested to use the encoder based odometry only and all this problems disappear, I have this problems only when I run the EKF and the AMCL simultaneously.

Does anyone have the same problem?

Here you have the parameters of the AMCL:

<launch>
<node pkg="amcl" type="amcl" name="amcl" output="screen">

  <remap from="scan" to="tof_camera/fake_laser" />
  <remap from="cmd_vel" to="summit_xl_ctrl/command" />

  <!-- Publish scans from best pose at a max of 10 Hz -->
  <param name="odom_model_type" value="diff"/>
  <param name="odom_alpha5" value="0.1"/>
  <param name="transform_tolerance" value="0.2" />
  <param name="gui_publish_rate" value="10.0"/>
  <param name="laser_max_beams" value="30"/>
  <param name="min_particles" value="500"/>
  <param name="max_particles" value="5000"/>
  <param name="kld_err" value="0.5"/>
  <param name="kld_z" value="0.999"/> 
  <param name="odom_alpha1" value="0.2"/>
  <param name="odom_alpha2" value="0.2"/>
  <!-- translation std dev, m -->
  <param name="odom_alpha3" value="0.8"/>
  <param name="odom_alpha4" value="0.2"/>
  <param name="laser_z_hit" value="0.5"/>
  <param name="laser_z_short" value="0.05"/>
  <param name="laser_z_max" value="0.05"/>
  <param name="laser_z_rand" value="0.5"/>
  <param name="laser_sigma_hit" value="1.0"/>
  <param name="laser_lambda_short" value="0.1"/>
  <param name="laser_model_type" value="likelihood_field"/>
  <!-- <param name="laser_model_type" value="beam"/> -->
  <param name="laser_likelihood_max_dist" value="2.0"/>
  <param name="update_min_d" value="0.6"/>
  <param name="update_min_a" value="0.5"/>
  <param name="odom_frame_id" value="odom_combined"/>
  <param name="base_frame_id" value="base_footprint"/>
  <param name="global_frame_id" value="map"/>
  <param name="resample_interval" value="1"/>
  <param name="transform_tolerance" value="0.6"/>
  <param name="recovery_alpha_slow" value="0.0"/> 
  <param name="recovery_alpha_fast" value="0.0"/>  

  <param ...
(more)
2014-01-28 17:27:46 -0500 marked best answer Problems using the navigation stack

Hi

I'm trying to use the navigation stack, but I have some problems.

Well, I've configured the parameters as the tutorial says. Then I use Rviz for setting the estimated position and the goal. Doing that, I can make the robot move, but I get this warning messages in the console:

[ WARN] [1350459884.039970066, 6963.543000000]: Could not get robot pose, cancelling reconfiguration
[ WARN] [1350459887.093712554, 6968.750000000]: Costmap2DROS transform timeout. Current time: 6968.7500, global_pose stamp: 6968.4210, tolerance: 0.3000

I don't know if it's normal to recieve this warnings (I suppose it's not). I think that the reason why I recieve this warnings is because the frequency of my laser scan is only 2 Hz, but I'm not sure.

In addition, the robot is not able to avoid obstacles, and that tells me that I'm missing something.

For more detail, here's my costmap parameters:

local_costmap:
  global_frame: /odom
  robot_base_frame: /base_footprint
  update_frequency: 5.0
  publish_frequency: 2.0
  static_map: false
  rolling_window: true
  width: 6.0
  height: 6.0
  resolution: 0.2 #0.05

global_costmap:
  global_frame: /map
  robot_base_frame: /base_footprint
  update_frequency: 5.0
  static_map: true

Can anyone give me a clue? Thanks in advance ;-)

I'm on Ubuntu 12.04 and ROS Fuerte.

EDITED: More info. I've set the frequency of the laser to the max (8Hz) and the warning continues.

With rosrun tf tf_monitor I get:

RESULTS: for all Frames

Frames:
Frame: /back_left_wheel published by /robot_state_publisher Average Delay: 0.000126582 Max Delay: 0.006
Frame: /back_right_wheel published by /robot_state_publisher Average Delay: 0.000126582 Max Delay: 0.006
Frame: /base_footprint published by /summit_xl_odometry Average Delay: -0.00904412 Max Delay: 0.001
Frame: /base_link published by /summit_xl_tf_node Average Delay: -0.256207 Max Delay: 0
Frame: /front_left_wheel published by /robot_state_publisher Average Delay: 0.000126582 Max Delay: 0.006
Frame: /front_right_wheel published by /robot_state_publisher Average Delay: 0.000126582 Max Delay: 0.006
Frame: /imu_link published by /robot_state_publisher Average Delay: -0.509563 Max Delay: 0
Frame: /odom published by /amcl Average Delay: 0.0235 Max Delay: 0.081
Frame: /openni_depth_frame published by /summit_xl_tf_node Average Delay: -0.00770476 Max Delay: 0
Frame: /tof_link published by /robot_state_publisher Average Delay: -0.509563 Max Delay: 0

All Broadcasters:
Node: /amcl 8.27301 Hz, Average Delay: 0.0235 Max Delay: 0.081
Node: /robot_state_publisher 88.6508 Hz, Average Delay: -0.288324 Max Delay: 0.006
Node: /summit_xl_odometry 98.4556 Hz, Average Delay: -0.00904412 Max Delay: 0.001
Node: /summit_xl_tf_node 101.597 Hz, Average Delay: -0.00769048 Max Delay: 0
2014-01-28 17:27:44 -0500 marked best answer updaterate in libgazebo_ros_imu

Hi

I'm trying to simulate an IMU with the plugin libgazebo_ros_imu, but I have one problem. I've defined in my .urdf the following code:

  <gazebo>
    <controller:gazebo_ros_imu name="imu_controller" plugin="libgazebo_ros_imu.so">
      <alwaysOn>true</alwaysOn>
      <updateRate>50.0</updateRate>
      <bodyName>imu_link</bodyName>
      <topicName>odom/imu</topicName>
      <gaussianNoise>2.89e-08</gaussianNoise>
      <xyzOffsets>0 0 0</xyzOffsets>
      <rpyOffsets>0 0 0</rpyOffsets>
      <interface:position name="imu_position"/>
    </controller:gazebo_ros_imu>
  </gazebo>

I set the frequency to 50 Hz, but when I do rostopic hz I get that the node is publishing at 1000 Hz (more or less). I've checked the plugin source code and I've seen that it gets all the params except the updateRate, so I think that thats the reason why I can't set the frequency I want.

I'm I right? And then, what can I do for changing the frequency?

I'm using Fuerte in Ubuntu 12.04

Thanks in advance. Regards!

2014-01-28 17:27:38 -0500 marked best answer Error with pointcloud_to_laserscan and rviz

Hello

I'm trying to convert a point cloud to a fake laser scan and then visualize it with rviz. For doing that, first I use the pointcloud_to_laserscan stack. I think I have no problem with this part because with rostopic echo I can see a list of points of the laser scan, and all seems right.

The problem starts when I try to visualize this fake laser with rviz. I add a new LaserScan display and I put the topic of the laser scan converted. When I do that, the display status changes to "Error" and I get this warning message on the console:

[ WARN] [1349860717.340263739, 12012.394000000]: MessageFilter [target=/map ]: Dropped 100,00% of messages so far. Please turn the [ros.rviz.message_notifier] rosconsole logger to DEBUG for more information.

Does anyone know why I get this error?

For more detail, there's how I convert the point_cloud to a fake laser scan:

  <!-- openni_manager -->
  <node pkg="nodelet" type="nodelet" name="openni_manager" output="screen" respawn="true" args="manager"/> 

     <!-- fake laser -->
  <node pkg="nodelet" type="nodelet" name="kinect_laser" args="load pointcloud_to_laserscan/CloudToScan openni_manager">
    <param name="output_frame_id" value="/openni_depth_frame"/>
    <param name="range_max" value="10.0"/>
    <param name="range_min" value="0.4"/>
    <param name="angle_max" value="0.383972435"/>
    <param name="angle_min" value="-0.383972435"/>
    <remap from="cloud" to="/tof_camera/depth/points"/>
    <remap from="scan" to="tof_camera/fake_laser"/>
  </node>

I'm in Ubuntu 12.04 and ROS Fuerte. Thanks in advance. Regards.

2014-01-28 17:26:51 -0500 marked best answer Gazebo spawn_model hangs (wrong ros namespace)

Hello

I have a problem with Gazebo. When I try to launch the model of a robot, I get the following message: loading xml from ros parameter model, but I never get to see the robot in the simulator. The funny thing is that yesterday it loaded the model correctly. Also, when I try to launch some model of Gazebo (a table or something simple) I get the same message and I still see nothing. So, I think that it's not a problem of my model.

Where is the problem? Thanks in advance!

I'm working on Ubuntu 12.04 and fuerte.

Regards.

2014-01-28 17:26:25 -0500 marked best answer Image overlapped with Kinect

Hi, I'm new in ROS and this is my first question, so I don't know if I'm going to ask a silly question. I've looked a lot of tutorials and other asked questions and thanks to that I've solved a lot of my doubts, but I'm still having problems.

My purpose: obtain a point cloud from a Kinect mounted in a robot. So far, I have mounted the camera based on the one of the PR2. Using rosbag, I've recorded the data from the rgb and the depth topics. Then, using rxbag, I can visualize perfectly the rgb's images, but when I try to do the same with the depth, I got an overlapped and displaced image. I don't know how to explain it better. Here you have what I get: http://desmond.imageshack.us/Himg337/scaled.php?server=337&filename=pr2depth.jpg&res=landing

And here's what I get with the rgb's topic: http://desmond.imageshack.us/Himg406/scaled.php?server=406&filename=pr2rgb.jpg&res=landing

I don't know if I'm doing something wrong or if whats I see is correct.

I'm using Fuerte in Ubuntu 12.04

Can anyone help? Thanks in advance!

2014-01-07 04:47:57 -0500 received badge  Notable Question (source)
2013-12-18 02:54:15 -0500 received badge  Popular Question (source)
2013-12-16 05:55:08 -0500 asked a question Maximum nodes running under ROS

Hi

That's my question: is there a maximum number of nodes that can be running under ROS?

I made a code that adds nodes in ROS and I've concluded that the maximum number of nodes supported is 100. Above that number a buffer overflow occurs and starts to kill nodes. But it seems a very low number and that surprises me.

Does anyone know whether there is a maximum number of nodes in ROS?

I'm using ROS Fuerte on Ubuntu 12.04. Nodes created are very simple: just send messages to a topic constantly.

Thanks in advance! Regards

2013-06-23 22:03:14 -0500 received badge  Taxonomist
2013-06-12 03:12:54 -0500 received badge  Famous Question (source)
2013-04-09 00:20:38 -0500 received badge  Popular Question (source)
2013-04-09 00:20:38 -0500 received badge  Notable Question (source)
2013-04-08 11:38:27 -0500 received badge  Famous Question (source)
2013-04-08 11:28:10 -0500 commented question EKF with velocity info

No sorry, I finally gave up :S

2013-03-20 15:19:12 -0500 received badge  Famous Question (source)
2013-02-22 10:25:22 -0500 marked best answer Problem with ros::Timer

Hello

I have trouble creating a timer in Ros. I defined a class in which one of its members is the timer callback. To create it, in the constructor of the class I put the following:

timer = nh.createTimer(ros::Duration(0.1), &summit_xl_path_planning::PathPlanningSpin, this);

("timer" is a ros::Timer member of the class)

And then define the callback as below:

void summit_xl_path_planning::PathPlanningSpin(const ros::TimerEvent& e)
{
...
}

Finally in the main summit_xl_path_planning I create a class, to make things work. I run the node using rosrun.

The problem is that I never get to run the timer. The program compiles. When I run everything I put in the constructor is done, but then nothing else happens. I have reviewed the tutorials thousands of times, but I can not see I'm doing wrong. Can anybody help?

I'm using Ubuntu 12.04 and Fuerte.

Thanks in advance and best regards