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

pwong's profile - activity

2021-02-03 11:38:13 -0500 received badge  Nice Question (source)
2019-09-04 16:54:08 -0500 received badge  Famous Question (source)
2019-08-13 16:35:33 -0500 received badge  Nice Answer (source)
2019-01-28 13:19:08 -0500 marked best answer Velodyne HDL-32E to laserscan

I'm planning to use gmapping to create the 3D environment for our robot, so I'm assemble a tilting hokuyo laser scanner and using the corresponding driver.

For long term, I plan to use the velodyne laser scanner. The issue is the velodyne package appears to be outputting in pointcloud2 format, instead of laserscan format.

I see options such as using the pointcloud_to_laserscan to create the map. There is also ethzasl package I saw recommended on another post, but we need loop closer.

I basically would like to hear your experiences with using a velodyne lidar for a fast/higher quality 3D map or if the tilting hokuyo would be a viable permanent solution.

Any advice is greatly appreciated!

2018-10-09 22:53:16 -0500 received badge  Good Question (source)
2017-06-20 13:27:55 -0500 marked best answer Extrapolation Error and AMCL

Its my first time trying to get the navigation stack up and running. After fiddling with the .yaml files, I've gotten it to move with RVIZ. There are some issues I'm running into.

The robot is having issues localizing. My set up follows the http://wiki.ros.org/navigation/Tutorials/RobotSetup tutorials, but only have a laser scanner as an input.

Here's the error generated by move_base.launch.

[ERROR] [1385945596.417775629]: Extrapolation Error: Lookup would require extrapolation into the future.  Requested time 1385945596.400712013 but the latest data is at time 1385945596.309387000, when looking up transform from frame [odom] to frame [map]

[ERROR] [1385945596.417830096]: Global Frame: odom Plan Frame size 305: map

[ WARN] [1385945596.417853423]: Could not transform the global plan to the frame of the controller

After reading up on some other posts on answers.ros, to see what could be the problem, I took a look at my transforms, and I don't think thats it.

Here is the tf_monitor report.

RESULTS: for all Frames

Frames:
Frame: /base published by /base_ctrl_odom Average Delay: 0.000454951 Max Delay: 0.000718333
Frame: body published by /robot_state_publisher Average Delay: -0.499598 Max Delay: 0
Frame: bracket published by /robot_state_publisher Average Delay: 0.000529436 Max Delay: 0.000995636
Frame: bracket_90 published by /robot_state_publisher Average Delay: -0.499596 Max Delay: 0
Frame: hokuyo published by /robot_state_publisher Average Delay: -0.499597 Max Delay: 0
Frame: hokuyo_90 published by /robot_state_publisher Average Delay: -0.499597 Max Delay: 0
Frame: left_wheel published by /robot_state_publisher Average Delay: 0.000526063 Max Delay: 0.000993213
Frame: odom published by /amcl Average Delay: 0.0103003 Max Delay: 0.0867516
Frame: right_wheel published by /robot_state_publisher Average Delay: 0.000528483 Max Delay: 0.000995021
Frame: servo published by /robot_state_publisher Average Delay: -0.4996 Max Delay: 0

All Broadcasters:
Node: /amcl 41.432 Hz, Average Delay: 0.0103003 Max Delay: 0.0867516
Node: /base_ctrl_odom 5.82941 Hz, Average Delay: 0.000454951 Max Delay: 0.000718333
Node: /robot_state_publisher 60.1176 Hz, Average Delay: -0.420926 Max Delay: 0.000994623

I also ran

>rosrun tf tf_echo odom map

But there wasn't anything that threw a red flag at me.

There were three of those errors thrown when I was running the navigation stack. The room I'm using was fairly large. I used rviz to set an initialpose. After I did that, sending a it a goal didn't go too well. It moved a lot farther than it was suppose to, and I had to shut it off before it had a chance to try to complete the path. It also did a lot of extra rotating even though it was sent a straight path.

What additional information would be helpful to debug this issue? I'm not too sure where to look myself.

Thank you!


Edit: After reducing the size of the local cost map back down to the original size of 6x6 @ 0.5 resolution, the extrapolatoin error went away.

There weren't any grid cells with ... (more)

2017-06-20 13:27:55 -0500 received badge  Good Answer (source)
2017-04-28 20:09:26 -0500 commented answer Do not allow the robot to plan in unknow region for navigation. Parameters to set apart from allow_unknown

songvanmino, Did setting the param "allow_unknown: false" not do it for you?

2017-03-29 20:44:44 -0500 received badge  Great Question (source)
2017-02-17 15:21:18 -0500 marked best answer Do not allow the robot to plan in unknow region for navigation. Parameters to set apart from allow_unknown

Hi all,

I want to make sure that the robot does not plan through the unknow regions of the map. The map looks as follows:

image description

I have set the allow unknown parameter in "base_global_planner_param.yaml" as follows:

NavfnROS:
  allow_unknown: false

and also set the track unknow region parameter in

global_costmap:
  map_type: costmap
  global_frame: map
  robot_base_frame: base_link
  track_unknown_space: true
  unknown_cost_value: 0
  update_frequency: 5.0
  static_map: true

It still plans a path as shown in above image. I have also played with unknown_cost_value parameter, (both 0 and 255), and still no avail.

The objective is to make sure that the robot does not plan apart from a specific region. I intended to edit the map so that i make all the regions grey where i do not want to plan them.

I use a preloaded map and not a live map from gmapping.

Any suggestions are appreciated.

Thanks,

2016-10-13 00:22:05 -0500 commented answer Adding roll and pitch from offset IMU to base frame

Alex, I'm not sure how you are using your /imu frame, so I cant really answer your first question. In my application, my /base_link is connected to my /odometry frame, so all I had to do was put the roll/pitch straight into my /odometry frame, and my laser scan was fine.

2016-09-13 19:14:05 -0500 marked best answer rostopic pub multiarray

Quick question, how do I publish a multiarray? I use rostopic a lot, and its tremendously helpful. One thing I was never able to figure out, was how publish a multiarray(I also wasn't able to find a post on it).

This is the format it provides:

rostopic pub /topic_name std_msgs/Float32MultiArray "layout:
  dim:
  - label: ''
    size: 0
    stride: 0
  data_offset: 0
data:
- 0"

That can publish a single element multiarray, but I couldn't figure out how to add another element on that array.

I've tried...

rostopic pub /topic_name std_msgs/Float32MultiArray "layout:
  dim:
  - label: ''
    size: 0
    stride: 0
  data_offset: 0
data:
- [0.0, 1.0]"

and a bunch of other variants, but nothing works. If someone can help with the syntax, that would be appreciated!

2016-05-23 13:40:36 -0500 received badge  Nice Question (source)
2016-05-09 20:54:02 -0500 received badge  Enlightened (source)
2016-05-09 20:54:02 -0500 received badge  Guru (source)
2016-03-02 05:09:00 -0500 received badge  Famous Question (source)
2016-02-10 17:12:15 -0500 marked best answer gmapping issues with laser pose

I'm working on creating a server map using the tutorial:

<a href="http://wiki.ros.org/slam_gmapping/Tutorials/MappingFromLoggedData">http://wiki.ros.org/slam_gmapping/Tutorials/MappingFromLoggedData</a>

The odometry data is being published, and I have a hokuyo utm-30lx laser scanner published as well. My robot is being modeled with a urdf file.

I made sure the hokuyo was perfectly horizontal and then start recording my bag file with this:

>rosbag record -O mylaserdata /scan /tf

After the recording, it plays back into rviz fairly well. Even with all of the scan overlap, it still resembled the room recorded.

The issue comes when I try to turn it into a map with:

>rosrun gmapping slam_gmapping scan:=scan

as soon as I start playing the bag file, it gives me this warning:

[ WARN] [1384916667.376566157, 1384914870.078301371]: Failed to compute laser pose, aborting initialization ("base_link" passed to lookupTransform argument target_frame does not exist. )

This warning repeatedly keeps coming up as the bag is playing. I've also tried:

>rosrun gmapping slam_gmapping scan:=base_scan _odom_frame:=odom

But it gives me the same warning.

  1. Am I not correctly recording my tf data into the bag file? Shouldn't the urdf provide the laser pose?

  2. The robot_state_publisher is in the topic named '/tf'. Why isn't it my base link from my urdf file? rosbag wouldn't record my base link when I tried.

  3. On a somewhat different note, if my odometry data isn't too accurate, what does it mean for gmapping and using the Navigation Stack?

Advice would be greatly appreciated! Thank you.

Edit: I've tried to create the map live with rviz. Similar to how the map was made here.

<a href="http://wiki.ros.org/pr2_simulator/Tutorials/BuildingAMapInSimulation">http://wiki.ros.org/pr2_simulator/Tutorials/BuildingAMapInSimulation</a>

Unfortunately, it still gives me the same error. I thought the error came from the target frame, and tried setting that on rviz. Still nothing.

I also double checked my urdf file, and I don't believe the issue is there. The laser scan is leveled to the laser scanner visualized modeled on the urdf file.

2016-02-10 17:12:14 -0500 received badge  Self-Learner (source)
2015-10-30 00:04:02 -0500 received badge  Notable Question (source)
2015-10-23 04:06:39 -0500 received badge  Popular Question (source)
2015-10-22 13:32:13 -0500 asked a question Understanding master.log

I'm running ros indigo on ubuntu 14.04. I'm having some stability issues regarding nodes being able to subscribe to each other over time. Just trying to do some investigating, I've noticed that some nodes constantly looks for new params and the master log keeps publishing this. Is this normal?

[rosmaster.master][INFO] 2015-10-22 11:04:34,134: +PARAM [/amcl/initial_pose_y] by /amcl
[rosmaster.master][INFO] 2015-10-22 11:04:34,135: +PARAM [/amcl/initial_pose_a] by /amcl
[rosmaster.master][INFO] 2015-10-22 11:04:34,135: +PARAM [/amcl/initial_cov_xx] by /amcl
[rosmaster.master][INFO] 2015-10-22 11:04:34,136: +PARAM [/amcl/initial_cov_yy] by /amcl
[rosmaster.master][INFO] 2015-10-22 11:04:34,137: +PARAM [/amcl/initial_cov_aa] by /amcl

I'm also looking for documents or anything would would show me how to understand the master.log, so I know if something is behaving properly or not.

Thank you!

2015-10-22 10:33:13 -0500 received badge  Famous Question (source)
2015-10-19 12:36:27 -0500 received badge  Necromancer (source)
2015-10-19 12:36:27 -0500 received badge  Self-Learner (source)
2015-10-10 16:20:05 -0500 received badge  Famous Question (source)
2015-10-10 09:54:39 -0500 received badge  Nice Question (source)
2015-10-09 10:44:38 -0500 edited question Managing log files

I've noticed that every time I have a new node subscribe to a topic, a new file gets created on .ros/log called rostopic_xxxx_xxxxxxxxxxxxx.log

I run rosbag at 1 minute intervals so I create a ton of files, to a point where a rm rostopic* would fail because there are so many files. This folder just gets to be so clustered that if I try to use it when I need it, I have a hard time finding what I need.

Here are a few specific questions I would like to ask about managing the logging:

  1. Is there a way to limit writing of the rostopic_xxxx_xxxxxxxxxxxxx.log files?

  2. Whats the reason for the rostopic.log files to not get written into folders?

  3. Is there something built in I can configure without writing a script to manage the files?

  4. When does a new folder like ~/.ros/log/fdfa58c8-cf58-11e4-b18e-78d00420d50e get written?

I'll edit the post as I find out more about it.

Thanks!

Edit:

Long since I've made the question, but I have learned more about it since. Here's a couple answers I've figured out.'

  1. rostopic.log is created every time an 'rostopic echo' is called, or running a node. Only when ros is run through roslaunch, all of the nodes are inside a folder.

  2. Just better house keeping with rosclean worked out for me.

  3. See answer 1.

2015-10-09 10:28:14 -0500 received badge  Famous Question (source)
2015-10-09 10:26:49 -0500 marked best answer Adding roll and pitch from offset IMU to base frame

The ground usually isn't completely flat, so what I like to do is add a roll and pitch from an IMU to correct the laser scan frame before using it for gmapping and amcl.

I was planning to use http://wiki.ros.org/hector_imu_attitu... to publish base_frame with the roll and pitched added, and add the laser frame to base_frame.

The IMU on the robot is offset by a translation and rotation from the actual base link. hector_imu_attitude_to_tf just takes roll and pitch from sensor_msgs/Imu published, and publishes the TF. But what I need to do, is find roll and pitch of base frame from my IMU, and not just take the roll and pitch directly from the IMU itself.

Is there a way to find roll/pitch of base_frame from using TF as it is? Or is it something which requires calculation on my end and republish the IMU message before sending it into hector_imu_attitude_tf?

The system being run is ROS indigo on ubuntu 14.04. Thank you!

2015-10-09 10:26:42 -0500 answered a question Adding roll and pitch from offset IMU to base frame

I was over thinking it. As long as the IMU was mounted on the robot rigidly, the roll and pitch doesn't need additional transforms/conversions done to the values themselves.

I ended up not using the hector_imu_attitude_to_tf node. My constraint was having an IMU be mounted with a rotation of -3.14 radians(in the x direction). I subscribed to the imu topic(add the offset), then included the roll/pitch to the base_link transform and odometry.

I don't think the hector_imu_attitude_to_tf_node allows for an imu which is mounted in a different orientation as the base_link.

2015-09-28 11:37:27 -0500 received badge  Notable Question (source)
2015-09-24 21:35:21 -0500 received badge  Taxonomist
2015-09-14 19:53:29 -0500 edited answer Do not allow the robot to plan in unknow region for navigation. Parameters to set apart from allow_unknown

Turns out it was a misuse of using the clear cost map service on my end which was causing the path planning issue. Adding the "base_global_plannar_params.yaml" file with "allow_unknown: false" did fix the problem. If someone can confirm this was the proper fix, please let me know.