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

PKG's profile - activity

2022-08-08 08:03:50 -0500 received badge  Nice Answer (source)
2022-05-14 04:17:05 -0500 received badge  Great Question (source)
2017-03-14 09:49:27 -0500 marked best answer Moving robot through waypoints along a cubic spline path

After going through the trajectory filter tutorials, I have two fundamental doubts:

  1. What is the meaning of the output given by the server? Is it the intermediate waypoints - interpolated by the spline smoother? Or is it spline coefficients?

  2. How can I use the output of the trajectory filter server to make the robot move along a cubic spline path? There seems to be no tutorial on exactly this point.

2016-03-17 13:55:40 -0500 marked best answer Compilation error on Arduino sketch with ros_lib

I tried to run the ros_lib HelloWorld program on an Arduino Uno, but got the following error:

In file included from /home/turtlebot/sketchbook/libraries/ros_lib/ros.h:38:0, from button_example.cpp:5: /home/turtlebot/sketchbook/libraries/ros_lib/ros/node_handle.h: In member function ‘void ros::NodeHandle_<hardware, max_subscribers,="" max_publishers,="" input_size,="" output_size="">::logdebug(const char*)’: /home/turtlebot/sketchbook/libraries/ros_lib/ros/node_handle.h:414:13: error: ‘DEBUG’ is not a member of ‘rosserial_msgs::Log’

Background: I have groovy installed on my netbook . I used the instructions here with the rosbuild option to build rosserial_arduino on the netbook. I then moved the ros_lib libraries to the relevant Arduino folder and tried to run the example sketches on the Arduino.

2016-02-15 15:30:10 -0500 received badge  Good Question (source)
2015-10-06 22:54:24 -0500 received badge  Good Question (source)
2015-08-20 14:57:01 -0500 received badge  Notable Question (source)
2015-08-20 14:57:01 -0500 received badge  Famous Question (source)
2014-09-15 15:52:32 -0500 received badge  Famous Question (source)
2014-07-04 10:18:43 -0500 received badge  Famous Question (source)
2014-07-01 05:14:40 -0500 received badge  Famous Question (source)
2014-06-16 09:59:49 -0500 received badge  Notable Question (source)
2014-06-02 20:20:30 -0500 marked best answer Motion planning using carrot planner

I'm unable to get simple carrot planner code , for motion planning, up and running.

The problem I'm trying to write code for is: to use carrot planner to move the erratic gazebo robot from a start point to end point.Here are the problems I am facing:

(1) I doubt if my design is correct, or if there's a simpler way to solve the above problem. Currently, I start erratic_wg.launch within simulator_gazebo. Next, I have a tf::listener instance running in a separate program, excerpts from which are given below. The listener uses the carrot planner while transforming from base_link to map:

void transformPoint(const tf::TransformListener& listener) 
{

         geometry_msgs::PointStamped laser_point;
         laser_point.header.frame_id = "base_link";
              ...
         tf::TransformListener mytf(ros::Duration(10));

         costmap_2d::Costmap2DROS costmap("my_costmap", mytf);
         carrot_planner::CarrotPlanner cp  ;
         cp.initialize("my_carrot_planner", &costmap);
         try
         {
                geometry_msgs::PointStamped base_point;
                listener.transformPoint("map", laser_point, base_point);

                geometry_msgs::PoseStamped start  ;
                start.pose.position.x = 0 , start.pose.position.y = 0,
                start.pose.position.z = 0;
                geometry_msgs::PoseStamped end;
                end.pose.position.x = 5 , end.pose.position.y = 5,
                end.pose.position.z = 0;

                std::vector<geometry_msgs::PoseStamped> plan;
                cp.makePlan(start, end, plan);
                // Should I send a cmd_vel message now for each step of the plan?
        }
}

(2) When my costmap is initialized as above, the listener code segfaults. I have traced this to the constructor of Costmap2DPublisher called within Costmap2DROS constructor, but haven't gone deeper than this. I am using ros version 1.2.4 and the older version of the navigation stack (i.e. which contained nav_view). I am not sure how to specify the navigation stack version more precisely (i.e. repo revision, etc.). Also, the latest navigation stack doesn't build , as pcl_ros doesn't compile on my ros. So I stuck with a previous version I had downloaded around Nov. 2010. I can provide further details if necessary.

2014-05-27 02:17:41 -0500 received badge  Popular Question (source)
2014-05-22 16:19:37 -0500 asked a question Unable to launch turtlebot_playground on indigo

Launching turtlebot_playground on indigo (Ubuntu Trusty) throws up the errors:

[ERROR] [1400811137.391203936]: Failed to load nodelet [/cmd_vel_mux] of type [yocs_cmd_vel_mux/CmdVelMuxNodelet]: Could not find library corresponding to plugin yocs_cmd_vel_mux/CmdVelMuxNodelet. Make sure the plugin description XML file has the correct name of the library and that the library actually exists.
[FATAL] [1400811137.391468550]: Service call failed!
[ERROR] [1400811137.540924502]: Failed to load nodelet [/depthimage_to_laserscan] of type [depthimage_to_laserscan/DepthImageToLaserScanNodelet]: Could not find library corresponding to plugin depthimage_to_laserscan/DepthImageToLaserScanNodelet. Make sure the plugin description XML file has the correct name of the library and that the library actually exists.
[FATAL] [1400811137.541236510]: Service call failed!

despite building both yocs_cmd_vel and depthimage_to_laserscan libraries.

What more should I do to prevent the above errors? Or do you recommend me to downgrade to hydro (if that's possible on Trusty)?

2014-04-20 14:21:46 -0500 marked best answer An interruptible version of nav stack?

This question is related to my earlier one on the nav stack.

Suppose I'm sending move_base a goal; I want to be able to interrupt move_base during its plan execution. Afaik, the current nav stack doesn't allow this.

Is it better to design an "interruptible" nav stack, or are there other alternatives?

As an example of alternative: I could get a global plan from the ~make_plan , and directly use cmd_vel to navigate between waypoints. These commands can be turned off when an interrupt flag is set.

2014-04-20 12:54:12 -0500 marked best answer Suggestions for a small ground rover that runs ROS?

I understand that this question might be somewhat out of scope here. But I hope that answers.ros.org is better than the mailing list. Please feel free to correct me otherwise.

Can you recommend a small ground rover which:

  • has max dimension of within 1 foot (somewhere between small toy rovers and a Clearpath Husky)
  • fairly light and easy to lift by hand (<6 kg)
  • fairly cheap either to buy or to build (maybe around USD 600)
  • is capable of navigating in fairly rough terrain (like rocks or swamp)
  • has a well-known slip model for its wheels
  • can either receive command velocities over a wireless link remotely or can physically support a netbook running ROS

I can't think of anything to tag this question with :-(

2014-04-20 12:54:12 -0500 marked best answer Rosbag doesn't record cmd_vel on remote master

I'm running Electric on Natty and have the following peculiar issue.

When I run rosbag -a on the above host, the bag output records cmd_vel. However, when I collect rosbag output after setting ROS_MASTER_URI to a different host (which runs diamondback on Lucid), I don't get cmd_vel recorded. Even

shell> rosbag record cmd_vel -a

fails to record cmd_vel in such a case, although all other topics are logged. Note that cmd_vel is being published always. What could be the problem?

Updated after Lorenzo's answer rostopic echo /cmd_vel gives the right output in such a case.

2014-04-20 12:49:41 -0500 marked best answer How to get /fix on NMEA data emitted on a TCP port

I have a process emitting NMEA packets, similar to what gpsd does, on a TCP port . How do I use gspd_client on this port so that I can get the fix and extended_fix rostopics? Is there any other way to get a /fix quickly?

2014-04-20 12:48:01 -0500 marked best answer Announcing a new ros package

I've developed a new ros package and would like to announce its release on the ROS wiki announcements page. How can I?

2014-04-20 12:42:34 -0500 marked best answer Yaw angle of lse_xsens_mti behaves weirdly

I ran the lse_xsens_mti driver on my robot . I had it turn 360 degrees at a uniform velocity, and computed the Yaw angle output by the driver data in two ways:

  1. Using the tf::getYaw() function on the quat formed by the orientation.x,y,z,w values output by imu/data.

  2. By atan2(w,z)*2 on the z and w values.

In both cases, the Yaw angle didn't vary uniformly with time as the robot turned. What could be wrong?

2014-04-20 12:42:24 -0500 marked best answer Writing a new motion planner

I am writing my own planner , called SplineBasedPlanner . It takes in a set of waypoints, and interpolates them with a special kind of spline (not the ones already implemented by ROS). The spline is designed so that a vehicle ,whose params are specified in config files, can traverse the spline smoothly. I want this to plug into move_base.

However, I am confused about what kind of interface (i.e. API) I should provide to do so. Should SplineBasedPlanner resemble base_local_planner's interface? Or should it be more like TrajectoryPlanner? Are there multiple choices?

I'll be glad to provide more specific information if needed.

Update 1: From responses below , I really want both both local and global versions for the SplineBasedPlanner.

2014-04-20 12:27:15 -0500 marked best answer Preventing move base from executing a queued-up goal

I have a problem where I have a set of goals sent to my (physical) robot every few seconds , from a subscriber's callback. The robot is slow and takes a while to reach the next goal. By this time, a huge list of goals have piled up in the action client's queue.

How can I get only the last goal (i.e. the one at the tail end of the queue) to execute?

I want to drop all intermediate goals.

2014-04-20 12:25:44 -0500 marked best answer When move_base rotates instead of going straight ahead

I am facing a peculiar problem with move_base. I am having it read scan input from a hokuyo node laser. When there are no obstacles close by (seen by rviz), I send it a goal of 10m straight ahead, this is within the costmap. In this case, I expect move base to move smoothly ahead; instead, it causes my (physical) robot to rotate continuously in place. I have not enabled rotate recovery. Instead, I find move_base publishes a constant vz velocity.

Can I know the circumstances when this occurs? I can include my yaml files if this is not specific enough.

Update: When I give the robot a goal that requires it to turn (say 90 degrees) and then move ahead, the robot turns, and keeps turning continuously forever without moving ahead. This seems to occur when I make a slight change in params.

Please see my config files here for a config that reproduces this on my robot http://pastebin.com/RriDYkS4

2014-04-20 12:25:35 -0500 marked best answer GPS readings getting swapped

Two of my GPS readings get swapped as follows:

I have a robot (named raven) which runs a gps and uses the gpsd_client and utm_odometry to publish on a topic named raven_gps_odom. Similarly I have a laptop(named uav) which runs another gps and publishes on laptop_gps_odom. The laptop's ROS_MASTER is set to raven and the two run on the same network. The config files are here .

When I do a rostopic echo laptop_gps_odom and rostopic echo /raven_gps_odom several times consecutively I find that their gps readings get swapped every 10 seconds or so.

Why is this so?

2014-04-20 12:24:54 -0500 marked best answer How to stop stageros from publishing its transforms?

How can I stop stageros from publishing its transforms and all of its published topics? Is there a simple remapping possible?

2014-04-20 12:24:41 -0500 marked best answer Stageros crashes frequently on launch

I'm having a recurring problem with stageros crashing immediately on launching any of the launch files in navigation_stage.

I use diamondback, and the nav stack downloaded from the ROS repositories. Occasionally on launching the files in navigation_stage, stageros crashes with the following log:

http://pastebin.com/VFHuxJMp

Once this happens, roslaunch doesn't quit by itself, I have to do a kill -9. Also, subsequent launches of these files leads to stageros crash.

I generally resolve this problem by rebooting by system. This works nearly always.

Any better ideas or suggestions?

2014-04-20 12:24:40 -0500 marked best answer costmap_2d requires macros.h header to build

On a fresh checkout of diamondback-full on Lucid, I was unable to get costmap_2d to build. It kept complaining of not finding ROS_DEPRECATED and ROS_INLINE_FORCE. I was able to overcome this problem by including macros.h in every src/*.cpp file.

Is there a better way of getting a build? What am I doing wrong?

Update after Eric's comment: I followed the instructions here:http://www.ros.org/wiki/diamondback/Installation/Ubuntu. Generally I go to my desired packages and do a rosmake && make. My std_msgs failed to build , citing "Header.h" was absent. I resolved the issue by manually copying msg_gen/include../Header.h to std_msgs/include. rosconsole had an unmet dependency of rostime, which I added in the manifest.xml and rebuilt.

2014-04-20 12:24:37 -0500 marked best answer move_base scrapes obstacles instead of staying clear

I'm having a situation where move_base's planning causes my robot to scrape against obstacles as it turns away from them.

What parameter should I change to ensure that move_base turns away from obstacles well before hitting them? I've tried increasing the clearing & inflation radii, and also expanding the robot footprint. I can include my yaml files if needed.

2014-04-20 12:24:35 -0500 marked best answer Obstacles persist in costmap even after they move out

I am running hokuyo laser and move_base on a physical robot, and am running rviz to monitor the obstacles. If I introduce an obstacle in front of the robot, costmap_2d sees raw & inflated obstacles, and shows them as coloured cells in rviz. If I move the obstacle away & out of the laser range (say to the left) , the cells corresponding to the obstacle move to the left and stay there (at the left, within the laser range and within the costmap). I would have expected these cells to get cleared of obstacles.

Which parameter am I getting wrong? My costmap_common_params are the same as here . I can include more data or screenshots as needed.

2014-04-20 12:24:33 -0500 marked best answer utm_odometry_node fails to build

On a fresh checkout of gps_common , my utm_odometry_node fails to build, citing the error:

Linking CXX executable ../bin/utm_odometry_node CMakeFiles/utm_odometry_node.dir/src/utm_odometry_node.o: In function `ros::serialization::Stream::advance(unsigned int)':

/opt/ros/diamondback/ros/core/roslib/include/ros/serialization.h:675: undefined reference to `ros::serialization::throwStreamOverrun()'

/opt/ros/diamondback/ros/core/roslib/include/ros/serialization.h:675: undefined reference to `ros::serialization::throwStreamOverrun()'

/opt/ros/diamondback/ros/core/roslib/include/ros/serialization.h:675: undefined reference to `ros::serialization::throwStreamOverrun()'

/opt/ros/diamondback/ros/core/roslib/include/ros/serialization.h:675: undefined reference to `ros::serialization::throwStreamOverrun()'

/opt/ros/diamondback/ros/core/roslib/include/ros/serialization.h:675: undefined reference to `ros::serialization::throwStreamOverrun()'

CMakeFiles/utm_odometry_node.dir/src/utm_odometry_node.o:/opt/ros/diamondback/ros/core/roslib/include/ros/serialization.h:675: more undefined references to `ros::serialization::throwStreamOverrun()' follow collect2: ld returned 1 exit status

The issue seems to be that throwStreamOverrun() alone is not defined in serialization.h; it's defined in serialization.cpp. I'm running ROS diamondback on Lucid.

Is there a simple workaround?

2014-04-20 12:24:33 -0500 marked best answer move_base's obstacles don't match laser scan output

I have a (physical) robot with hokuyo laser mounted. I use rviz to see the raw scans. I also run move_base and subscribe to /move_base_node/local_costmap/obstacles on rviz to see the cells marked as obstacles by move_base.

One phenomenon I notice is that depending on the minimum obstacle height in costmap_common_params.yaml, move_base either sees no obstacles or sees obstacles in every cell. What I expect on rviz is that move_base marks a cell as an obstacle precisely when the laser scan indicates there's an obstacle on the cell. I have been trying to fine tune min_obstacle_height to this. Below 0.21 m, move_base marks every cell as an obstacle; above this, it sees no obstacle at all!

I don't know how to deal with this problem. My costmap_common_params file is:

map_type: costmap

transform_tolerance: 0.3

obstacle_range: 2.0

raytrace_range: 1.5

inflation_radius: 2.5 //has to fine tune the parameter

observation_sources: laser_scan_sensor

laser_scan_sensor: {sensor_frame: laser, data_type: LaserScan, topic: /scan, expected_update_rate: 0.2, observation_persistence: 2.0, marking: true, clearing: true, min_obstacle_height: 0.20, max_obstacle_height: 2.5}

Update after tfoote's comment

Screenshot of rviz with obst height = .21 m :http://tiny.cc/a96op

Screenshot of rviz with obst height = .20 m: http://tiny.cc/yv4k5

Please see the captions of the images for more detail.

2014-04-20 12:24:05 -0500 marked best answer Problems with laser scan

I'm running hokuyo node and move_base on my robot, and found 2 issues in the operation:

(1) Obstacles seen when there are none around: Laser scan showed a long line comprising an obstacle when there was clearly none.

(2) Despite seeing obstacles close by, move_base collides with them. I'm sending scans in the /odom reference frame and using an identity transform for localization. I'm guessing this is an issue with robot base footprint?

2014-04-20 12:23:50 -0500 marked best answer Setting the grid size in costmap

Where can I set the cell size or grid size in costmap 2d? This is the size of the cells into which the map is divided. I am not sure whether this has to be done in costmap or map_server ? I can't find this in the documentation as well.

2014-04-20 12:23:50 -0500 marked best answer The significance of acceleration limits

This is a sequel to my earlier question here. I am trying to get move_base navigate through a set of goals. My config files are exactly those given in the earlier question. I am running move_base on a robot , which is very heavy - around 200 kg. I find that move_base's velocity commands move the robot very slightly every 10 minutes - a few mm for a goal of a few metres. I wonder if acceleration limits are significant here?

Note: With plain cmd_vel, the robot moves much faster. I don't have sensing nodes yet , so am publishing on /scan using the code here .

Update after Eric's comment: I determined the acc/vel limits, and when I ran cmd_vel commands at a very high frequency (3KHz), rxplot showed /odom/..linear/x rising to /cmd_vel/linear/x quite rapidly and the robot was moving very smoothly. The problem is, move_base doesn't send out cmd_vel commands at this frequency, it just sends it once ; this isn't enough to sustain motion. What param should I adjust in config? Changing controller frequency doesn't help. Or should I hack into move_base code and force it to transmit cmd_vel commands for say 1s continuously?

Update 2: I did the rostopic hz part & found that, even with a given controller frequency of 10KHz , move_base was sending out commands only @ around 600 Hz. I'm unable to understand this discrepancy. Should I send you more data?

Update 3: I have fixed this, finding a concurrent process running that was publishing zeroes to /cmd_vel. So the cmd_vel publisher causes the robot to run smoothly @ 20 Hz. But doing the same thing for move_base causes rostopic hz /cmd_vel to report .1 Hz! I really can't figure out why?

2014-04-20 12:23:48 -0500 marked best answer Transforming odom to base-link and then to map

For a robotic application, I get odometry on /odom. However, I don't have a robot state publisher, so I'm publishing my own transforms. I want to know whether they are right:

  1. odom->base_link: identity transform

  2. map->base_link: When tf starts, I note the pose given by odometry. Then as the robot moves to a new position, I take the new odometry readings and compute the new pose. The values in new_pose-old_pose are broadcast.

2014-04-20 12:23:44 -0500 marked best answer Unable to send navigational goals on own robot

I am unable to send simple navigational goals to my own (physical) robot, with the following specs:

It runs diamondback on an internal computer, and ROS commands go directly to its motor controllers. I use a myrobot.launch file for this. In addition, I use an empty map server node, and a move base node very similar to the one in stage's navigation tutorial. The move base node has its static_map parameters both set to false. I can see a move_base/goal and move_base_simple/goal in rostopic list.

Now, if I build simple_navigation_goals.cpp and send the goal of moving 1 m forward, the Action client waits forever for the server to come up. (This doesn't happen with, for example,when I run simulations on gazebo / stage, when I am promptly able to connect to the action server and see the result.) This may sound silly, but when I comment out the stageros node in move_base_amcl_10cm.launch in stage navigation tutorial, I get the same effect as above - the client waits forever for the server to come up. Note that without the stageros node, move_base_amcl.launch looks very much like my map-server + move_base combination.

I am unable to make sense of what's happening and would like to know how to connect with move_base action server.

Update after Eric's comment:

map server : move base launch file

Our costmap files : Base local planner Global costmap Local costmap Costmap common params

Also, rostopic pub to move_base/goal or move_base_simple/goal hangs after latching the message.

2014-04-20 12:23:42 -0500 marked best answer Adapting Cubic Spline Traj Controller to run on Erratic

This is a follow up to my earlier query on cubic splines.

I've got the Cubic Spline controller working on pr2_arm. I want to know how I can strip PR2's files to work with move_base instead, and get the Erratic robot to follow a Cubic spline path. I'm totally in the dark about this, and would like to get your helpful pointers.