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

Jbot's profile - activity

2021-02-09 06:24:11 -0500 received badge  Good Answer (source)
2020-01-16 00:00:23 -0500 received badge  Nice Answer (source)
2017-10-05 04:52:57 -0500 received badge  Nice Answer (source)
2016-08-08 00:23:14 -0500 marked best answer Object recognition capture unable to find Pose

I have an Ubuntu 12.10 with ROS groovy configuration. I use a kinect on a USB2.0 port.

I would like to use the object_recognition package but I don't succeed in make the capture tool work. I succeed capturing my textured_plane but impossible to have a 3D position displayed when I track the features.

Here is my command line for capturing my textured plane :

rosrun object_recognition_capture orb_template -o my_textured_plane --res sxga --fps 15

But when I try to see the position tracking, no position is outputed in the video

rosrun object_recognition_capture orb_track --track_directory my_textured_plane --res sxga --fps 15

But, if I show the matches, the features detection seems to work quite well. image description

So I try some different parameters (more feature points, less threshold ...) but the position never appears.

Does anyone have a clue on why the 3D position is not display while the features are correctly detected?

PS : I also try rosrun object_recognition_capture capture -i my_textured_plane --seg_z_min 0.01 -o silk.bag --preview --res sxga --fps 15 but no object is detected.

2016-05-30 19:45:46 -0500 received badge  Nice Answer (source)
2016-05-13 02:16:02 -0500 commented question How to not use laser data for navigation?

Can you show us your YAML files to see the parameters you use ?

2016-05-11 09:07:10 -0500 received badge  Nice Answer (source)
2016-05-11 05:05:48 -0500 answered a question hector_mapping_parameters

The slam present in the hector package use multiple maps for position estimation. Theses maps each have different resolution (divided by 2 I think). So, if you have a resolution of 0.01, and map_multi_res_levels = 3, you will have :

  • a map with resolution of 0.01
  • a map with resolution of 0.02
  • a map with resolution of 0.04

The algorithme will use these 3 maps to compute the best position estimation.

2016-05-11 04:13:27 -0500 answered a question what's the differences between action and services?

The main difference is the possibility to have a feedback when using action. When you use service, you can only have a result at the end of the service.

For example, you make a service and an action "goToPoint" :

  • The service will answer you at the end if you have reached the desired point
  • The action will send you every X milliseconds how many meters remain to do to arrive to the desired point
2016-05-11 04:07:42 -0500 answered a question Convert sensor_msgs::PointCloud2ConstPtr to pcl::PointCloud<pcl::PointXYZ>::Ptr

To convert PCLPointCloud2::Ptr to PointCloud<pcl::pointxyz> , you have to use the function "fromPCLPointCloud2".

For example :

pcl::PCLPointCloud2::Ptr cloud_filtered (new pcl::PCLPointCloud2 ());
pcl::PointCloud<pcl::PointXYZ>::Ptr cloud_filtered1 (new pcl::PointCloud<pcl::PointXYZ>()); 

pcl::fromPCLPointCloud2(*(cloud_filtered), *(cloud_filtered1));
2016-05-10 05:13:44 -0500 answered a question Local costmap static without any sensor information

To enable the inflation in static map, you have to add some plugins in your yaml such as :

   plugins:
     - {name: static_layer,            type: "costmap_2d::StaticLayer"}
     - {name: inflation_layer,         type: "costmap_2d::InflationLayer"}

You can refer to the turtlebot navigation yaml files if you need examples : https://github.com/turtlebot/turtlebot_apps/blob/indigo/turtlebot_navigation/param/global_costmap_params.yaml

2016-05-10 05:05:15 -0500 answered a question How to change height of the point cloud slice?

Hi,

I think you can do this by editing the turtlebot_bringup / 3dsensor.launch file.

In this file, you will find the parameter "scan_height".

Just change the value (10 by default) with the value you want, for example :

<param name="scan_height" value="50"/>
2015-10-14 13:23:39 -0500 received badge  Good Question (source)
2015-01-18 10:23:20 -0500 received badge  Taxonomist
2014-11-13 09:08:50 -0500 answered a question Multiple roscores synchronize

You can try the packages FKIE or ROCON.

2014-10-14 07:45:51 -0500 received badge  Great Answer (source)
2014-10-14 07:45:51 -0500 received badge  Guru (source)
2014-08-01 06:50:02 -0500 commented answer SMACH tutorial: ImportError: No module named msg

Great! This work for me, thanks !

2014-08-01 06:50:02 -0500 received badge  Commentator
2014-07-25 02:16:11 -0500 received badge  Famous Question (source)
2014-02-12 20:12:02 -0500 received badge  Notable Question (source)
2014-02-12 07:41:25 -0500 received badge  Popular Question (source)
2014-02-12 02:43:52 -0500 asked a question ROS path planner and inflation

I have recently made a node to compute a path for my robot using lidar sensor. To do this, I use a costmap ( costmap_2d::Costmap2DROS ) and a planner ( navfn::NavfnROS ). I have configured the inflation radius but it seems that the planner don't take the correct value every time. For your information, I use ROS HYDRO (when I used Groovy, I haven't this issue).

You can find a part of my config file here :

  inflater:
    robot_radius: 0.139
    inflation_radius: 0.14
    cost_scaling_factor: 10.0

  plugins:
    - 
      name: obstacles
      type: "costmap_2d::ObstacleLayer"
    - 
      name: inflater
      type: "costmap_2d::InflationLayer"

Here is a video of the problem : http://www.youtube.com/watch?v=_X5llN...

In the video, you can see in gray the unoccupied cells, and in black the occupied/inflated cells. In color (some kind of rainbow) is the potential computed to acheive the asked goal (red arrow). Finally, in green is the computed path every 2 seconds. As you can see, the potential sometime are going on the occupied cells so it seem the inflation radius is changing.

Have you ever seen this problem? Do you have a solution to that ?

The code used to compute the path :

void TrajectoryManager::computePath(void)
{
    std::vector<geometry_msgs::PoseStamped> global_plan;
    nav_msgs::Path tmp_path;

    while (sem < 1) {
            usleep(10000);
    }
    sem = 0;

    //make sure we have a costmap for our planner
    if(planner_costmap_ == NULL){
            ROS_ERROR("move_base cannot make a plan for you because it doesn't have a costmap");
            //return false;
    }

    tf::Stamped<tf::Pose> global_pose;
    if(!planner_costmap_->getRobotPose(global_pose)){
            ROS_ERROR("move_base cannot make a plan for you because it could not get the start pose of the robot");
            //return false;
    }

    geometry_msgs::PoseStamped start;
    //if the user does not specify a start pose, identified by an empty frame id, then use the robot's pose
    //if(req.start.header.frame_id == "")
    tf::poseStampedTFToMsg(global_pose, start);

    current_pose = start;

    if(planner_->makePlan(start, final_pose, global_plan)){
            //ROS_ERROR("planner makes plan");
            if(!global_plan.empty()){
                    global_plan.push_back(final_pose);
                    //ROS_ERROR("globalplan filled");
            }
    }

    tmp_path.header.frame_id = map_name;
    tmp_path.poses = global_plan;

    // lock
    my_path = tmp_path;
    // unlock
    sem = 1;

}

Thanks in advance.

2014-01-28 17:23:19 -0500 marked best answer Navigation stack never reach goal

Hi everybody !

I have some trouble implementing the navigation stack for my own custom robot. It has an arduino which do the position estimation and send it to ROS inside my computer. The TF and odom messages are OK, I display them in RVIZ and the position is fine. Then I do a "dummy laser" which always send a laser a 3meters (I don't want to use a laser for now).

=> My robot in RVIZ turning on himself.

The global planner seems to be OK, the path to go the goal is fine, but the robot does not follow the line, so mayby the problem come from the local planner.

Anyone ever had this problem ? Or do you think what can be wrong in my configuration ?

Here is my setup for the navigation stack :

base local planner :

TrajectoryPlannerROS:

  max_vel_x: 0.1
  min_vel_x: 0.01
  max_rotational_vel: 1.0
  min_in_place_rotational_vel: 0.4

  acc_lim_th: 0.05
  acc_lim_x: 0.005
  acc_lim_y: 0.0

  holonomic_robot: false

costmap common param :

obstacle_range: 2.5
raytrace_range: 3.0
robot_radius: 0.1
inflation_radius: 0.4

observation_sources: laser_scan_sensor

laser_scan_sensor: {sensor_frame: laser_frame, data_type: LaserScan, topic: /scan, marking: true, clearing: true}

global costmap :

global_costmap:
  global_frame: map
  robot_base_frame: base_link
  update_frequency: 3.0
  static_map: false
  rolling_window: true
  width: 3.0
  height: 3.0
  resolution: 0.005
  origin_x: -1.5
  origin_y: -1.5

local costmap :

local_costmap:
  global_frame: odom
  robot_base_frame: base_link
  update_frequency: 4.0
  publish_frequency: 4.0
  static_map: false
  rolling_window: true
  width: 3.0
  height: 3.0
  resolution: 0.01
  origin_x: -1.5
  origin_y: -1.5

odom and map are the same thing.

I have also sometime this warning : "Control loop missed its desired rate of 20.0000Hz... the loop actually took 0.2422 seconds"

Thanks,

Jbot

2014-01-28 17:22:52 -0500 marked best answer ros-electric : package => motion_planning_common

Hi,

I recently install ROS Electric (before I had Diamondback). But, with this new release, I can't find the package "motion_planning_common".

I use Ubuntu 11.04 and this package does not appear in the package manager (synaptic) but in the Diamondback version, it appears...

Do you know if this package is plan to be added ? I need it for my robot and installing the Diamondback version does not seem to work.

Thanks, Jo

2013-12-09 20:35:00 -0500 answered a question AMCL laser skipping scan

Try to add in your launch file the remap parameter in your amcl node :

   <node name="amcl" pkg="amcl" type="amcl" output ="screen">
   -> <remap from="scan" to="scan2" />
   <param name="odom_model_type" value="omni"/>

This allow amcl to use scan2 instead of scan topic.

You'll have to do the same thing in your laser_scan_matcher node.

2013-10-24 21:55:53 -0500 answered a question how to convert my CAD files to .xml format so that ROS recognizes it ?

If you are using SolidWorks, you can try sw_urdf_exporter

2013-10-07 22:52:31 -0500 received badge  Enlightened (source)
2013-10-07 22:52:31 -0500 received badge  Good Answer (source)
2013-09-30 23:46:36 -0500 commented answer Object recognition capture unable to find Pose

After a try, it seems that it works wih the standard template. I have upvote your answer but there is still a bug when using our own textured plane.

2013-09-29 22:42:22 -0500 commented answer Object recognition capture unable to find Pose

I will try this tonight but I wanted to use my own textured plane.

2013-09-26 04:48:56 -0500 received badge  Great Question (source)
2013-09-25 09:13:58 -0500 received badge  Favorite Question (source)
2013-09-24 21:33:44 -0500 commented question Object recognition capture unable to find Pose

Thanks, I will mail him to see if I can help

2013-09-24 20:18:44 -0500 received badge  Famous Question (source)
2013-09-19 15:29:25 -0500 received badge  Notable Question (source)
2013-09-19 14:16:56 -0500 received badge  Good Question (source)