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

baronep's profile - activity

2019-05-14 05:50:46 -0500 received badge  Necromancer (source)
2019-02-11 13:25:09 -0500 marked best answer Slow build time

I am experiencing very slow builds (and I have been for a while) using catkin_make building the ROS navigation stack. I have tried -DCMAKE_BUILD_TYPE=Release, --use-ninga, ccache, etc but the problem still persists. Specifically, clean builds sometimes take me over an hour on a modern machine (i7 w/ 8GB RAM).

The build process proceeds rather quickly until it seems to stall out at 100%. A quick htop reveals that the culprit is a couple of linking threads that are taking 100% CPU and often are costmap_2d or trajectory planner related.

Has anyone seen this before or have any insight on how to fix this?


Additional Information

OS: Ubuntu 16.04.5 LTS  
gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.10)  
cmake version 3.5.1  
ROS Version: Kinetic 

ROS Install: ROS installed from .debs (desktop-full) and upgraded w/ apt

Steps to reproduce:

mkdir -p ~/test/src  
cd ~/test/src  
catkin_init_workspace  
git clone https://github.com/ros-planning/navigation.git  
git checkout kinetic-devel  
cd ..
catkin_make  
... wait ...

Total Build Time: 22.5 min

The build got to 100% after <5min with the last message printed ... `

[100%] Built target move_base_node 
Then 15 min later ...
[100%] Built target costmap_2d_cloud
[100%] Built target costmap_2d_markers
Base path: /home/patrick/test
Source space: /home/patrick/test/src
Build space: /home/patrick/test/build
Devel space: /home/patrick/test/devel
Install space: /home/patrick/test/install
####
#### Running command: "cmake /home/patrick/test/src -DCATKIN_DEVEL_PREFIX=/home/patrick/test/devel -DCMAKE_INSTALL_PREFIX=/home/patrick/test/install -G Unix Makefiles" in "/home/patrick/test/build"
####
####
#### Running command: "make -j6 -l6" in "/home/patrick/test/build"
####

The full output of catkin_make is available here ... https://pastebin.com/ZkFUqU2s


Additional Information - Second Round

Memory consumption during the first 5 minutes of the build ...

patrick@patrick:~/test$ free -mh
              total        used        free      shared  buff/cache   available
Mem:           7.2G        4.1G        222M        1.1G        2.9G        1.5G
Swap:          7.4G        3.2G        4.3G

After reaching the 100% ...

patrick@patrick:~/test$ free -mh
              total        used        free      shared  buff/cache   available
Mem:           7.2G        4.6G        180M        1.2G        2.5G        1.0G
Swap:          7.4G        3.2G        4.2G

It looks like there should be plenty of free memory right?

Also, here are the processes that are "stalling" out in the second 15min of the build ... https://pastebin.com/CDb2qLQs

Specifically, the /usr/bin/ld threads (there are 2, costmap_2d_cloud and costmap_2d_markers) which are taking 100% CPU

2018-09-19 23:17:48 -0500 received badge  Famous Question (source)
2018-09-17 11:10:36 -0500 answered a question Slow build time

I was able to reduce my build time of the navigation stack by 75% by simply disabling the following targets in the costm

2018-09-14 13:35:14 -0500 received badge  Organizer (source)
2018-09-14 13:12:46 -0500 commented question Slow build time

Just an observation, if I comment out the costmap_2d_cloud and costmap_2d_markers targets in the CMakelists.txt, my buil

2018-09-13 11:12:07 -0500 received badge  Notable Question (source)
2018-09-13 11:07:20 -0500 commented question Slow build time

Added additional information above

2018-09-13 11:07:07 -0500 edited question Slow build time

Slow build time I am experiencing very slow builds (and I have been for a while) using catkin_make building the ROS navi

2018-09-13 11:04:46 -0500 received badge  Favorite Question (source)
2018-09-13 10:04:09 -0500 edited question Slow build time

Slow build time I am experiencing very slow builds (and I have been for a while) using catkin_make building the ROS navi

2018-09-13 10:03:36 -0500 commented question Slow build time

Added additional information in the post above

2018-09-13 10:02:58 -0500 edited question Slow build time

Slow build time I am experiencing very slow builds (and I have been for a while) using catkin_make building the ROS navi

2018-09-13 10:02:58 -0500 received badge  Editor (source)
2018-09-13 03:21:40 -0500 received badge  Popular Question (source)
2018-09-12 19:29:41 -0500 asked a question Slow build time

Slow build time I am experiencing very slow builds (and I have been for a while) using catkin_make building the ROS navi

2017-09-28 20:42:50 -0500 answered a question clearing costmap using move_base/clearCostmap service

Resurrecting this thread a few years later. We are seeing this exact issue running indigo. Does anyone know if this issu

2016-09-01 17:15:26 -0500 commented question UM7 accel drift

Yes I did. The UM7 (and all accelerometers) are very sensitive to mechanical strain, temperature and a variety of other factors. As such, you need to calibrate the accelerometer fairly frequently. I would suggest the CH Robotics utility to do this

2016-09-01 15:34:34 -0500 received badge  Famous Question (source)
2016-04-22 11:33:58 -0500 received badge  Famous Question (source)
2016-04-01 04:15:51 -0500 received badge  Good Question (source)
2016-04-01 04:12:30 -0500 received badge  Nice Answer (source)
2016-03-31 15:22:04 -0500 received badge  Necromancer (source)
2016-03-31 15:22:04 -0500 received badge  Teacher (source)
2016-03-31 15:22:04 -0500 received badge  Self-Learner (source)
2016-03-31 15:21:26 -0500 received badge  Nice Question (source)
2016-03-31 10:53:01 -0500 answered a question Planner for Car-Like Robot

So since posting this question, one of the base local planners has been extended to incorporate the kinodynamic constraints associated with an ackermann drive vehicle. Check out

TEB_LOCAL_PLANNER

I have not managed to get it running too robustly but that may just be a problem with my configuration. Good luck

2016-03-25 18:45:43 -0500 received badge  Notable Question (source)
2016-03-18 14:42:24 -0500 received badge  Popular Question (source)
2016-03-17 20:14:29 -0500 asked a question How to use robot_localization /odometry/filtered

So I have two robot_localization nodes setup. The first fuses the vehicle odometry and the imu data. The second will add in GPS and hector_slam pose estimates.

My question is, should I fuse the output of the first node (/odometry/filtered) into the second node or should I re-fuse the vehicle odometry and imu data? If the former, the second (map) robot_localization node never publishes anything if I fuse the output of the first directly. (Also, the navsat node doesn't work with the /odometry/filtered data either).

Here is a sample /odometry/filtered message (output from the first node).

header: 
  seq: 235
  stamp: 
    secs: 1455846048
    nsecs: 782704923
  frame_id: odom
child_frame_id: base_link
pose: 
  pose: 
    position: 
      x: 0.060692385786
      y: 8.51043448483e-06
      z: 0.0
    orientation: 
      x: 0.0
      y: 0.0
      z: 7.45214107357e-05
      w: 0.999999997223
  covariance: [0.39148006559512866, -1.0221015344746652e-08, 0.0, 0.0, 0.0, 7.160358808761269e-08, -1.0221015344746746e-08, 0.39152977031124553, 0.0, 0.0, 0.0, 6.453229401104118e-05, 0.0, 0.0, 3.332912064876806e-07, 1.341899911334871e-24, 5.233156817556127e-19, 0.0, 0.0, 0.0, 1.3418999113348712e-24, 3.3324912207294784e-07, -1.6669589116712293e-32, 0.0, 0.0, 0.0, 5.233156817556124e-19, -1.6669590914679116e-32, 3.3324912207294784e-07, 0.0, 7.160358808761269e-08, 6.453229401104114e-05, 0.0, 0.0, 0.0, 0.0773158946732772]
twist: 
  twist: 
    linear: 
      x: -0.000285365096838
      y: 0.0
      z: 0.0
    angular: 
      x: 0.0
      y: 0.0
      z: 5.54621444365e-05
  covariance: [0.0019138416154638686, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0019138416154638686, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 3.332701589929017e-07, 1.9950504214512513e-31, 1.2764323815697058e-27, 0.0, 0.0, 0.0, 1.9950504214512495e-31, 3.330812024673111e-07, -1.34664748772665e-39, 0.0, 0.0, 0.0, 1.276432381569705e-27, -1.5229681057398406e-38, 3.330812024673111e-07, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04978277263316132]

And here is my localization launch file ...

<!-- Launch file for ekf_localization_node -->

<!-- Layer 1 Localization: Odometry Frame -->
<launch>
    <node pkg="tf" type="static_transform_publisher" name="tach_odom123" args="0 0 0 0 0 0 1 odom tach_odom 100" />
    <node pkg="rsl_rover" type="imu_overrid_covariance.py" name="IOC" />
    <!--    <node pkg="rsl_rover" type="virt_yaw_sensor.py" name="VirtYaw" output="screen"/> -->
    <node pkg="imu_complementary_filter" type="complementary_filter_node" name="complementary_filter_node" >
    <remap from="imu/data_raw" to="imu/data_cov" />
    <remap from="imu/mag" to="imu/mag" />
    <remap from="imu/data" to="imu/data_filtered" />
    <param name="do_bias_estimation" value="true"/>
    <param name="do_adaptive_gain" value="true"/>
    <param name="use_mag" value="false"/>
    <param name="gain_acc" value="0.01"/>
    <param name="gain_mag" value="0.01"/>
    </node>

    <node pkg="robot_localization" type="ekf_localization_node" name="odom_localization" clear_params="true" output="screen">

      <param name="frequency" value="30"/>
      <param name="sensor_timeout" value="0.1"/>
      <param name="two_d_mode" value="true"/>

      <param name="map_frame" value="map"/>
      <param name="odom_frame" value="odom"/>
      <param name="base_link_frame" value="base_link"/>
      <param name="world_frame" value="odom"/>

      <param name="transform_time_offset" value="0.0"/>

      <param name="odom0" value="/VehicleTach"/>
      <param name="imu0" value="imu/data_filtered"/>

      <rosparam param="odom0_config">[false, false, false,
                                      false, false, false,
                                      true,  true, false,
                                      false, false, false,
                                      false, false, false]</rosparam>

                  <!--      <rosparam param="odom1_config ...
(more)
2016-01-29 01:46:06 -0500 received badge  Notable Question (source)
2015-12-16 04:22:50 -0500 received badge  Popular Question (source)
2015-12-14 17:47:15 -0500 asked a question UM7 accel drift

I am experiencing some odd behavior with my CH Robotics UM7 IMU that I recently purhcased. When the unit is just sitting on the table, it reads 9.2 instead of 9.8 m/s/s for acceleration. I can find instructions on how to zero the rate gyros but nowhere does it mention calibrating the accelerometers. Has anyone run into something similar before with these IMUs or any other unit? I have included an example message


header: 
  seq: 3506
  stamp: 
    secs: 1450136355
    nsecs: 252817294
  frame_id: imu_link
orientation: 
  x: -0.0238677723
  y: 0.0203094265
  z: -0.9840840295
  w: -0.1747282065
orientation_covariance: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
angular_velocity: 
  x: -0.000581685356641
  y: -0.000610669209776
  z: 7.07960511619e-05
angular_velocity_covariance: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
linear_acceleration: 
  x: -0.0682945557769
  y: 0.22608049971
  z: 9.21032193719
linear_acceleration_covariance: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
2015-09-08 10:19:41 -0500 received badge  Famous Question (source)
2015-09-08 10:12:35 -0500 commented answer Planner for Car-Like Robot

I have been monitoring this interest group and it doesn't look like there has been any movement in the past year.

2015-09-08 10:11:13 -0500 received badge  Supporter (source)
2015-09-08 10:11:07 -0500 received badge  Famous Question (source)
2015-09-06 21:33:17 -0500 received badge  Notable Question (source)
2015-09-05 10:21:38 -0500 received badge  Student (source)
2015-09-05 07:28:19 -0500 received badge  Popular Question (source)
2015-09-04 15:46:17 -0500 answered a question cmd_vel(geometry_msgs::Twist) to ackermann_msgs

Not sure if you still need to know, but ...

http://planning.cs.uiuc.edu/node658.html

Theta_dot would be angular.z and phi is steering angle

2015-09-04 12:26:00 -0500 asked a question Planner for Car-Like Robot

Let me begin by saying that I have done my obligatory "google-ing" and I know there has been discussion, but I have not found a satisfactory answer and therefore I am asking here ...

I am trying to come up with a solution for path planning for a large, custom UGV (essentially a drive-by-wire utility vehicle). I understand that the ros nav packages generally do not support "Ackermann steering" vehicles. I would like to solicit opinions on how I should proceed, here are a couple paths forward that I can see ...

1) Write custom base_local_planner and base_global_planners which take into account the kinematic constraints of an Ackermann steering vehicle

2) Use a library like MoveIt (is this even possible?)

3) Start from scratch and ditch move_base and everything inside

I see blog posts and such of people using ROS on their steered vehicles, but the documentation of such systems seems to be lacking. Any advice would be well appreciated!

2015-08-27 00:21:34 -0500 received badge  Enthusiast
2015-08-27 00:21:33 -0500 received badge  Enthusiast
2015-08-24 12:44:09 -0500 commented answer SICK LMS221 w/ sicktoolbox_wrapper

I was able to wireshark the comms using the -x and -v socat options. It looks like the commands being sent by sicktoolbox wrapper are being split up into multiple serial write operations and the laser is not responding. I'm going to try the socat rawer and nodelay options.

2015-08-21 17:14:18 -0500 received badge  Notable Question (source)