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

agbj's profile - activity

2022-05-05 01:31:19 -0500 received badge  Famous Question (source)
2018-09-18 07:11:19 -0500 received badge  Famous Question (source)
2017-05-23 04:49:51 -0500 received badge  Notable Question (source)
2017-05-10 16:02:12 -0500 marked best answer Inform move_base about blocked plan

I saw that we can signal move_base that the path is blocked in order to recalculate the global plan as quoted in the next sentence.

~planner_frequency (double, default: 0.0)

The rate in Hz at which to run the global planning loop. If the frequency is set to 0.0, the global planner will only run when a new goal is received or the local planner reports that its path is blocked.

My question is: what is the mechanism in the local planner to inform move base that the path is blocked?

Another question that comes to mind is the centralized architecture problem : If everything is controlled by the ROS master what happens if this entity fails? Does the ROS framework have control mechanisms to recover or stop everything if there is nothing that can be done to recover?

2017-05-10 16:02:12 -0500 received badge  Scholar (source)
2017-05-09 05:30:19 -0500 received badge  Popular Question (source)
2017-05-08 10:49:06 -0500 edited question Inform move_base about blocked plan

Inform about blocked plan I saw that we can signal move_base that the path is blocked in order to recalculate the global

2017-05-08 10:47:39 -0500 commented question Inform move_base about blocked plan

Thank you. And if the master fails during the connections establishment?

2017-05-08 10:45:45 -0500 edited question Inform move_base about blocked plan

Inform about blocked plan I saw that we can signal move_base that the path is blocked in order to recalculate the global

2017-05-08 10:45:40 -0500 edited question Inform move_base about blocked plan

Inform blocked plan and rosmaster fail I saw that we can signal move_base that the path is blocked in order to recalcula

2017-05-08 05:28:01 -0500 commented question Inform move_base about blocked plan

Thank you. One question answered.

2017-05-08 05:27:50 -0500 commented question Inform move_base about blocked plan

Thank you. One question solved.

2017-05-08 05:13:11 -0500 edited question Inform move_base about blocked plan

Inform blocked plan and rosmaster fail I saw that we can signal move_base that the path is blocked in order to recalcula

2017-05-08 04:42:43 -0500 asked a question Inform move_base about blocked plan

Inform blocked plan and rosmaster fail I saw that we can signal move_base that the path is blocked in order to recalcula

2017-04-21 08:57:43 -0500 commented question Gazebo Plugin Crashes: undefined Symbol "ZTIN6Gazebo20GazeboCameraUtilsE"

The problem is in your CMakeLists. Either you don't search for the required package in find_package macro or you don't i

2017-04-17 15:53:50 -0500 received badge  Teacher (source)
2017-04-17 04:11:38 -0500 answered a question car with steering control urdf model: teb_local_planner

My approach to simulate a car like robot was to develop a SDF model because it has a revolute2 joint that allow the wheels to rotate around two different axis simultaneous. In my case URDF is made just for RVIZ visualization and to define the transformations between robot's frames. Hope it helps. Any doubt feel free to ask

2017-04-10 06:55:19 -0500 commented answer Ground truth from the jackal robot

To compare between odometry and the real position you have to develop a node that compares the odometric information with the information given by the plugin that Stefan Kohlbrecher mencioned

2017-04-10 06:51:37 -0500 commented answer Ground truth from the jackal robot

gmapping is a SLAM node. If configured properly it will give you the transform that you pretend and build the map that you can store later. If you have already a map you can run only a localization node like amcl that also gives you the transform between map and odom.

2017-04-10 06:51:37 -0500 received badge  Commentator
2017-04-10 05:29:25 -0500 received badge  Notable Question (source)
2017-04-10 05:27:24 -0500 commented answer Ground truth from the jackal robot

This odometry node publish the transform between the odom frame and the chassis_link as well. So, from what you said i think that you need a localization node as well as a map. Think about it before pass the code to the real robot. Any doubt just ask

2017-04-10 05:26:53 -0500 commented answer Ground truth from the jackal robot

Let me explain the process: Normally the map frame appear when you have a localization node like amcl that publishes a transform from the map frame to the odom frame. The odom frame is typically created by the node that publish the odometry. Next comment please

2017-04-10 05:20:40 -0500 received badge  Famous Question (source)
2017-04-10 04:23:23 -0500 received badge  Supporter (source)
2017-04-10 04:20:18 -0500 commented answer robot_localization ukf not publishing map->odom

The frame between map and odom is being published by the ukf node, but it is incorrect because in rviz the robot just stands still and i think it is because I am publish both the pose and odometry in the odom frame. When I use only my localization node the robot is able to localize itself reasonably

2017-04-10 04:12:39 -0500 commented answer Ground truth from the jackal robot

What you want is the real pose of the robot that gazebo can give you. That being said, the position that the robot think it is is given by the transform between the map and the base_link frame.

2017-04-10 04:08:36 -0500 commented answer Ground truth from the jackal robot

Normally in a scenario with localization you have at least two frames that are the map and base_link frame and if you are using odometry i have the odom frame as well. The map frame is fixed in the world and the base_link is fixed to your robot. Read the next comment please

2017-04-10 04:00:08 -0500 commented answer robot_localization ukf not publishing map->odom

Thank you for the answer but to publish both the pose and odometry in the same frame to get the transform from map to odom. I think i have to publish the odometric information in the map frame. Correct me if I am wrong. But the node that publishes the odometry does not know how to transform the pose

2017-04-07 08:44:48 -0500 answered a question Ground truth from the jackal robot

You can create a model plugin for jackal. Through this plugin you can easily extract the real pose of the model pose and publish this information to a ROS topic.

See this link: gazebo model plugin

2017-04-05 09:44:17 -0500 answered a question Connect Gazebo SDF model to ROS

A SDF model can only be used inside gazebo. Rviz and other ROS related software uses only URDF. However you can add to your URDF gazebo tags that allow your URDF model to be deployed inside gazebo because this simulator converts, under the hood, your URDF model to an SDF model.

2017-04-05 09:31:52 -0500 answered a question Publishing 2D Array with sensor_msgs/Image

First of all try to use std::vector instead of raw pointers. It is best practice to do so. Your code is in c-style, not cpp style. Your problem can be solved doing what i have mentioned.

int** pointCloud; //double pointer for 2D Array with dimension sizeX and sizeY
std::vector<uint8_t> rasterImage; //array-variable
int sizeX; //amount of pixel along X-axis
int sizeY; //amount of pixel along Y-axis
int index; //represents value of reflected power

pointCloud = new int* [sizeX];
for (int x = 0; x < sizeX; x++)
{
    pointCloud[x] = new int [sizeY];
    for (int y = 0; y < sizeY; y++)
    {
        int index = (sizeX * y) + x;
        pointCloud[x][y] = rasterImage[index];
    }
}

for (int y = 0; y < sizeY; y++) { for (int x = 0; x < sizeX; x++) { printf("%d ", pointCloud[x][y]); } printf("\n"); }

sensor_msgs::Image depth_image;

depth_image.height = sizeY;
depth_image.width = sizeX;
//depth_image.encoding = rgb8;
depth_image.is_bigendian = false;
depth_image.step = sizeX * sizeY;
depth_image.data = rasterImage;
2017-04-03 02:25:17 -0500 received badge  Notable Question (source)
2017-04-01 09:55:46 -0500 commented question how to create a the launch file xml

Typically the .launch files stay inside a catkin package in the folder launch. Not sure if this is the answer that you pretend. If not please be more explicit

2017-04-01 09:44:22 -0500 commented question kinetic python3 turtlebot

I never mixed python 3 with ROS but do you tried to install python3 through the repositories and not through anaconda?

2017-03-31 04:27:07 -0500 received badge  Popular Question (source)
2017-03-29 10:49:34 -0500 received badge  Editor (source)
2017-03-29 10:39:24 -0500 asked a question robot_localization ukf not publishing map->odom

I am trying to use the ukf node in the robot_localization but this node is not publishing the transform from the frame map to odom and the following error message appear: Could not obtain transform from odom to map. Error was "map" passed to lookupTransform argument target_frame does not exist. My config file is the following:

frequency: 30

sensor_timeout: 0.1

two_d_mode: true

transform_time_offset: 0.0

transform_timeout: 0.0

print_diagnostics: true

debug: false

debug_out_file: ~/.ros/robot/rDebug.log


map_frame: map             
odom_frame: odom            
base_link_frame: base_link  
world_frame: map           


odom0: odom


odom0_config: [true,  true,  false,
               false, false, true,
               false, false, false,
               false, false, false,
               false, false, false]


odom0_queue_size: 2


odom0_nodelay: false


odom0_differential: false


odom0_relative: false


odom0_pose_rejection_threshold: 5
odom0_twist_rejection_threshold: 1


pose0: pose
pose0_config: [true,  true,  false,
               false, false, true,
               false, false, false,
               false, false, false,
               false, false, false]
pose0_differential: true
pose0_relative: false
pose0_queue_size: 5
pose0_rejection_threshold: 2  
pose0_nodelay: false


use_control: true

stamped_control: false

control_timeout: 0.2

control_config: [true, false, false, false, false, true]

acceleration_limits: [1.3, 0.0, 0.0, 0.0, 0.0, 3.4]

deceleration_limits: [1.3, 0.0, 0.0, 0.0, 0.0, 4.5]

acceleration_gains: [0.8, 0.0, 0.0, 0.0, 0.0, 0.9]

deceleration_gains: [1.0, 0.0, 0.0, 0.0, 0.0, 1.0]


process_noise_covariance: [0.05, 0,    0,    0,    0,    0,    0,     0,     0,    0,    0,    0,    0,    0,    0,
                           0,    0.05, 0,    0,    0,    0,    0,     0,     0,    0,    0,    0,    0,    0,    0,
                           0,    0,    0.06, 0,    0,    0,    0,     0,     0,    0,    0,    0,    0,    0,    0,
                           0,    0,    0,    0.03, 0,    0,    0,     0,     0,    0,    0,    0,    0,    0,    0,
                           0,    0,    0,    0,    0.03, 0,    0,     0,     0,    0,    0,    0,    0,    0,    0,
                           0,    0,    0,    0,    0,    0.06, 0,     0,     0,    0,    0,    0,    0,    0,    0,
                           0,    0,    0,    0,    0,    0,    0.025, 0,     0,    0,    0,    0,    0,    0,    0,
                           0,    0,    0,    0,    0,    0,    0,     0.025, 0,    0,    0,    0,    0,    0,    0,
                           0,    0,    0,    0,    0,    0,    0,     0,     0.04, 0,    0,    0,    0,    0,    0,
                           0,    0,    0,    0,    0,    0,    0,     0,     0,    0.01, 0,    0,    0,    0,    0,
                           0,    0,    0,    0,    0,    0,    0,     0,     0,    0,    0.01, 0,    0,    0,    0,
                           0,    0,    0,    0,    0,    0,    0,     0,     0,    0,    0,    0.02, 0,    0,    0,
                           0,    0,    0,    0,    0,    0,    0,     0,     0,    0,    0,    0,    0.01, 0,    0,
                           0,    0,    0,    0,    0,    0,    0,     0,     0,    0,    0,    0,    0,    0.01, 0,
                           0,    0,    0,    0,    0,    0,    0,     0,     0,    0,    0,    0,    0,    0,    0.015]


initial_estimate_covariance: [1e-9, 0,    0,    0,    0,    0,    0,    0,    0,    0,     0,     0,     0,    0,    0,
                              0,    1e-9, 0,    0,    0,    0,    0,    0,    0,    0,     0,     0,     0,    0,    0,
                              0,    0,    1e-9, 0,    0,    0,    0,    0,    0,    0,     0,     0,     0,    0,    0,
                              0,    0,    0 ...
(more)
2017-02-16 01:33:53 -0500 received badge  Popular Question (source)