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

Yannis's profile - activity

2014-09-05 19:04:13 -0500 received badge  Famous Question (source)
2014-01-28 17:26:27 -0500 marked best answer override default obstacle avoidance in turtlebot navigation

I have built an obstacle avoidance algorithm based on 3D optical flow via PointCloud on a TurtleBot platform. I would like to test it with the navigation stack but the obstacle avoidance is already implemented by default. I would like the robot to ignore the obstacles that are not on the map. Can I remove the automatic obstacle avoidance or deactivate it to plug in my node (or code) ? That would be of great help, since I don't have much time to write by myself whole global and local planners. If I set the static_map parameter of local_costmap_params.yaml to true, will it do the trick ? Thank you for your suggestions.

2012-12-21 04:34:30 -0500 received badge  Notable Question (source)
2012-11-05 21:35:22 -0500 received badge  Popular Question (source)
2012-09-07 06:05:25 -0500 received badge  Popular Question (source)
2012-09-07 06:05:25 -0500 received badge  Famous Question (source)
2012-09-07 06:05:25 -0500 received badge  Notable Question (source)
2012-08-17 00:28:35 -0500 received badge  Famous Question (source)
2012-08-17 00:28:35 -0500 received badge  Notable Question (source)
2012-08-17 00:28:35 -0500 received badge  Popular Question (source)
2012-08-16 05:50:47 -0500 received badge  Famous Question (source)
2012-08-16 05:50:47 -0500 received badge  Notable Question (source)
2012-08-16 05:50:47 -0500 received badge  Popular Question (source)
2012-07-30 20:45:58 -0500 commented answer Gazebo simulations not repeatable

Thank you very much for all the details, I am going to try to make it a little bit better, but it was mostly to understand the origin of the randomness, to explain it in my work report more than to solve it. That is very good to know, and I hope those points can be solved in the next versions

2012-07-30 20:16:00 -0500 commented answer Gazebo simulations not repeatable

Thank you for the information. In order to minimize the randomness (except on randomly_reorder_constraints), is it possible for me to manually synchronize the physics and sensor generation ? Same thing for synchronizing my process with the others, how can I do it ?

2012-07-30 20:13:28 -0500 received badge  Scholar (source)
2012-07-30 19:20:24 -0500 asked a question Gazebo simulations not repeatable

I have been using an custom obstacle avoidance node in gazebo simulator with Turtlebot. It is based on image and poincloud inputs, and gives an angular velocity in output. I ran my code with two identical simulations (an big simulated room with one box) to study the repeatability of my algorithm. Each time, the trajectories are different. So to verify that it was not coming from my code, I fed the same recorded bag file of images and pointclouds to my code, an it produces exact same behaviour. So the simulator seems to bring some randomness, but I cannot figure out the precise source of the problem since there is not much documentation on how the world, objects and robot are simulated, how the simulated images and pointclouds are rendered. So I need your help, to help me narrow down the origin of randomness between simulations. Does it come from the image and pointcloud generation ? Or from the odometry from a model small inaccuracy ? Here are the parameters I use:

<physics:ode>
  <stepTime>0.001</stepTime>
  <gravity>0 0 -9.8</gravity>
  <cfm>0.000000000001</cfm>
  <erp>0.2</erp>
  <quickStep>true</quickStep>
  <quickStepIters>100</quickStepIters>
  <quickStepW>1.3</quickStepW>
  <contactMaxCorrectingVel>100.0</contactMaxCorrectingVel>
  <contactSurfaceLayer>0.001</contactSurfaceLayer>
  <updateRate>1000</updateRate>
</physics:ode>

<geo:origin>
  <lat>37.4270909558</lat><lon>-122.077919338</lon>
</geo:origin>

<rendering:gui>
  <type>fltk</type>
  <size>480 320</size>
  <pos>0 0</pos>
  <frames>
    <row height="100%">
      <camera width="100%">
        <xyz>0 0 10</xyz>
        <rpy>0 90 90</rpy>
      </camera>
    </row>
  </frames>
</rendering:gui>


<rendering:ogre>
  <ambient>1.0 1.0 1.0 1.0</ambient>
  <sky>
    <material>Gazebo/CloudySky</material>
  </sky>
  <grid>false</grid>
  <maxUpdateRate>10</maxUpdateRate>
</rendering:ogre>

<model:physical name="gplane">
  <xyz>0 0 0</xyz>
  <rpy>0 0 0</rpy>
  <static>true</static>

  <body:plane name="plane">
    <geom:plane name="plane">
       <laserRetro>2000.0</laserRetro>
      <mu1>50.0</mu1>
      <mu2>50.0</mu2>
      <kp>1000000000.0</kp>
      <kd>1.0</kd>
      <normal>0 0 1</normal>
      <size>51.3 51.3</size>
      <segments>10 10</segments>
      <uvTile>100 100</uvTile>
      <material>Gazebo/GrayGrid</material>
    </geom:plane>
  </body:plane>
</model:physical>
2012-07-19 21:47:45 -0500 asked a question Plot trace of the robot in gazebo

I was wondering if there was an existing tool to plot the trace of the robot in gazebo while the robot is progressing. I want to have it in Gazebo to obtain at the end the world with walls and obstacles, the robot and the path it achieved. In Rviz I would have to first map the world, then use the heavy amcl navigation and plot somehow the obstacles and then plot the trace. That's why I'd like it in Gazebo, to have already all the world and make a final screenshot with all the places the robot has been.

2012-07-08 18:15:17 -0500 answered a question override default obstacle avoidance in turtlebot navigation

To "remove" the automatic obstacle avoidance on the amcl navigation, I modified a setting : obstacle_range in turtlebot_navigation package, in costmap_common_params.yaml. So I put it to 0.05, like that no obstacle will be detected unless it's almost touching the robot.

2012-07-08 18:12:27 -0500 answered a question Turtlebot pose wrong when other velocity input

Actually, this problem of wrong pose of the robot was coming from a bad gyroscope. I managed to narrow down the problem there, observing the imu data. I deactivated the gyro to prevent this problem (has_gyro = false), but the localization becomes less precise. I guess I will have to change this gyro.

2012-07-04 21:56:36 -0500 commented question Flat PointCloud with Turtlebot simulated kinect

Ok, so it worked with the two Nvidia graphic card right ? I think I'll buy one, because I tried on a desktop that had integrated graphics and I got the same problem.

2012-07-03 22:46:45 -0500 received badge  Necromancer (source)
2012-07-03 22:46:45 -0500 received badge  Teacher (source)
2012-07-03 18:51:40 -0500 commented answer Kinect + Gazebo

When trying to display the /camera/depth/points in Rviz, the only thing displayed is a flat PointCloud, approximately at 1meter from the robot. Any idea what would be the cause ? It is the same as pointed out on this issue: http://answers.ros.org/question/36801/flat-pointcloud-with-turtlebot-simulat

2012-07-03 18:48:27 -0500 answered a question Where can turtlebotsim camera/depth data be found?

If you want to display the /camera/depth/points use Rviz. Subscribe to the PointCloud2 topic /camera/depth/points and it will display it. However, for some people (like me), the data displayed is a flat PointCloud. I hope for you it works. Have you solved your problem ?

2012-07-03 15:39:49 -0500 received badge  Supporter (source)
2012-07-03 15:39:31 -0500 commented question Flat PointCloud with Turtlebot simulated kinect

I am having exactly the same problem, and cannot figure out what is wrong. Some other answers say that it could be a problem of graphic card, which one are you using ?

2012-06-25 19:56:34 -0500 commented answer Turtlebot pose wrong when other velocity input

I don't need to publish odometry to the navigation stack, it already does it on its own. The navigation is still running in background when I avoid the obstacle, I just choose to discard the velocity command from it, but the robot should still know where it is.

2012-06-25 05:10:10 -0500 commented question Turtlebot pose wrong when other velocity input

In my obstacle avoidance, I don't use any odometry. I just set an the appropriate angular speed to avoid, and when no obstacle is detected afterwards, the navigation (that was still running when avoiding) should have found from the automatically updated localization a new path to reach the goal.

2012-06-25 01:09:52 -0500 asked a question Turtlebot pose wrong when other velocity input

I have built a node with the purpose of avoiding obstacles with the 3D optical flow via the Kinect on a Turtlebot. To include this behaviour in the navigation, I first removed the automatic obstacle avoidance (obstacle_range parameter set to 1cm in costmap_common_params.yaml inside the turtlebot_navigation package). Then I remapped the output velocity command of move_base to my node velocity subscription, and remapped the input velocity command of turtlebot_node to my node velocity publication. This is done in order to select in my node, which velocity I will publish: the one coming from the navigation or the one coming from the obstacle avoidance (angular.z speed). This works, and gives the appropriate obstacle avoidance behaviour, but the robot does not come back to its path to reach the goal. The navigation is still running during the obstacle avoidance (even though the velocities published by move_base are not used), but it does not seem to update correctly its pose in Rviz and generate a new trajectory. In Rviz, the robot still believes to be on the right path and go straight forward, whereas in reality the robot has turned. At some point, it gets lost. Any clue where the odometry update does not do its job and the trajectory planner does not generate a new path ? I need the robot to reach the goal after avoiding the obstacle, so to re-join the path.

I precise that the navigation continues to run while I avoid the obstacle, and the path is updated automatically via the odometry by the trajectory_planner_ros node (lines 396-411):

// Set current velocities from odometry

geometry_msgs::Twist global_vel;

odom_lock_.lock();
global_vel.linear.x = base_odom_.twist.twist.linear.x;
global_vel.linear.y = base_odom_.twist.twist.linear.y;
global_vel.angular.z = base_odom_.twist.twist.angular.z;
odom_lock_.unlock();

tf::Stamped<tf::Pose> drive_cmds;
drive_cmds.frame_id_ = robot_base_frame_;

tf::Stamped<tf::Pose> robot_vel;
robot_vel.setData(btTransform(tf::createQuaternionFromYaw(global_vel.angular.z), btVector3(global_vel.linear.x, global_vel.linear.y, 0)));
robot_vel.frame_id_ = robot_base_frame_;
robot_vel.stamp_ = ros::Time();

If it can help, I looked up for robot_pose_ekf/odom during the navigation process. When there is no obstacle, the pose displayed is correct, when there is an obstacle (My node feeding other velocities to turtlebot_node than the one from the navigation), the robot pose becomes wrong. Any idea why introducing other velocities can mess up the odometry ? I precise that /odom values are good, only robot_pose_ekf/odom is wrong.

2012-06-08 05:21:02 -0500 received badge  Nice Question (source)