Ask Your Question

Stephan's profile - activity

2020-02-13 09:41:10 -0500 received badge  Good Question (source)
2019-10-22 15:42:24 -0500 received badge  Famous Question (source)
2019-04-29 14:30:41 -0500 commented answer viso2 (visual odometry from mono_odometry)

To get better answers to your add-on questions, I think it would be better to open new ones instead of commenting them h

2019-04-28 16:46:08 -0500 commented answer viso2 (visual odometry from mono_odometry)

Maybe something like SVO would be a better fit then? Viso2's mono odometer is not going to work for your use case as it

2019-04-28 16:41:48 -0500 commented answer viso2 (visual odometry from mono_odometry)

Maybe something like SVO would be a better fit then? Viso2 is not going to work for your use case as it needs a fixed di

2019-04-28 02:47:48 -0500 answered a question viso2 (visual odometry from mono_odometry)

Viso2 has been developed for forward looking cameras in cars. For mono VO it needs the camera pitch and distance to the

2018-11-30 07:57:24 -0500 received badge  Notable Question (source)
2018-08-21 12:26:02 -0500 received badge  Nice Question (source)
2018-08-18 03:40:05 -0500 received badge  Nice Question (source)
2018-08-08 01:30:45 -0500 received badge  Nice Question (source)
2018-07-30 09:58:35 -0500 commented answer Why does AMCL post-date tf (~transform_tolerance)?

That could explain it. When looking up the "latest" map->base_link, the TF library looks for the latest common time o

2018-07-12 11:59:23 -0500 received badge  Popular Question (source)
2018-07-06 04:43:14 -0500 asked a question MoveIt! execution of joint group trajectories with "all joints controller"

MoveIt! execution of joint group trajectories with "all joints controller" I have a robot with a couple of joint groups

2018-07-06 03:22:35 -0500 commented answer Why does AMCL post-date tf (~transform_tolerance)?

Still, as the pose that amcl computes is based on the scan, it is as old as the scan itself. If I have a laser scan at t

2018-07-06 03:17:14 -0500 commented answer ROS log file change of time-stamping format

I assume that a similar change needs to be made for roscpp?

2017-06-27 12:09:49 -0500 received badge  Favorite Question (source)
2017-06-26 10:59:54 -0500 commented question Simple nodes taking up 100% CPU

That's possible. Thanks!

2017-06-26 10:37:33 -0500 edited question Simple nodes taking up 100% CPU

Simple nodes taking up 100% CPU I have a bunch of nodes running on a robot and sometimes (not sure after how much runtim

2017-04-26 06:10:24 -0500 received badge  Nice Answer (source)
2017-04-21 18:03:03 -0500 received badge  Notable Question (source)
2017-04-21 18:03:03 -0500 received badge  Famous Question (source)
2017-01-03 08:58:45 -0500 received badge  Nice Question (source)
2016-12-08 23:00:53 -0500 received badge  Popular Question (source)
2016-12-05 18:35:04 -0500 asked a question Why is CATKIN_ENABLE_TESTING set to ON by default?

When running catkin_make on an empty workspace I can see CATKIN_ENABLE_TESTING is ON:

$ mkdir -p /tmp/test_ws/src
$ cd !$
cd /tmp/test_ws/src
$ catkin_init_workspace
Creating symlink "/tmp/test_ws/src/CMakeLists.txt" pointing to "/opt/ros/indigo/share/catkin/cmake/toplevel.cmake"
$ cd ..
$ catkin_make
Base path: /tmp/test_ws
Source space: /tmp/test_ws/src
Build space: /tmp/test_ws/build
Devel space: /tmp/test_ws/devel
Install space: /tmp/test_ws/install
####
#### Running command: "cmake /tmp/test_ws/src -DCATKIN_DEVEL_PREFIX=/tmp/test_ws/devel -DCMAKE_INSTALL_PREFIX=/tmp/test_ws/install -G Unix Makefiles" in "/tmp/test_ws/build"
####
-- The C compiler identification is GNU 4.8.4
-- The CXX compiler identification is GNU 4.8.4
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Using CATKIN_DEVEL_PREFIX: /tmp/test_ws/devel
-- Using CMAKE_PREFIX_PATH: /opt/ros/indigo
-- This workspace overlays: /opt/ros/indigo
-- Found PythonInterp: /usr/bin/python (found version "2.7.6") 
-- Using PYTHON_EXECUTABLE: /usr/bin/python
-- Using Debian Python package layout
-- Using empy: /usr/bin/empy
-- Using CATKIN_ENABLE_TESTING: ON
-- Call enable_testing()
-- Using CATKIN_TEST_RESULTS_DIR: /tmp/test_ws/build/test_results

The default seems to be set here: https://github.com/ros/catkin/blob/5a... What is the reason for this? The example for using that variable includes downloading test data: http://wiki.ros.org/rostest/Writing#W...

Should I set CATKIN_SKIP_TESTING to ON or CATKIN_ENABLE_TESTING to OFF if I don't want to download test data by default?

2016-09-08 05:48:30 -0500 received badge  Nice Answer (source)
2016-09-08 03:56:15 -0500 received badge  Nice Answer (source)
2016-04-26 08:41:43 -0500 received badge  Nice Answer (source)
2016-03-10 11:36:08 -0500 received badge  Famous Question (source)
2016-03-10 11:36:08 -0500 received badge  Notable Question (source)
2016-02-08 13:59:17 -0500 marked best answer Read or write message from/to file

What is the easiest way to load/write a message from/to a file in C++? I want something like this:

void loadMessage(const std::string& filename, std_msgs::Image& image_msg)
{
    // open file and put it's content in img_msg
}
void saveMessage(std_msgs::Image& image_msg, const std::string& filename)
{
    // put message content in file
}

The file has YAML format, for example created by

rostopic pub -1 /image std_msgs/Image > file
2015-12-20 14:27:28 -0500 marked best answer Release non-cmake 3rd party libraries with bloom

I am trying to release gflags with bloom (my final goal is to make the buildfarm create debians for ceres-solver). Unfortunately the port from automake to cmake for gflags is not finished yet.

That's why I want to know if it is possible to make the buildfarm create debians for source code that compiles with ./configure && make && make install instead of cmake. Is there a special build_type for automake that I can use in my package.xml?

If this is not possible, should I inject a simple CMakeLists.txt that calls ExternalProject_Add?

2015-11-28 16:14:24 -0500 marked best answer Release 3rd party tarball with bloom 0.3.5

I am creating release repositories for ceres-solver and it's dependencies glog and gflags.

For glog I want to use the tarball as it has version information, the bare SVN repository does not seem to have tags.

I configured the release repository like this.

Running git-bloom-release groovy gives me the following error:

$ git-bloom-release groovy
Processing release track settings for 'groovy'
What version are you releasing (version should normally be MAJOR.MINOR.PATCH)? 0.3.3

Executing release track 'groovy'
==> bloom-export-upstream https://google-glog.googlecode.com/files/glog-0.3.3.tar.gz tar --tag 0.3.3 --display-uri https://google-glog.googlecode.com/files/glog-0.3.3.tar.gz --name upstream --output-dir /tmp/tmpZgzPa2
usage: bloom-export-upstream [-h] [--tag TAG] [--output-dir OUTPUT_DIR]
                             [--display-uri DISPLAY_URI] [--name NAME] [-d]
                             [--version] [--unsafe]
                             uri {git,hg,svn}
bloom-export-upstream: error: argument type: invalid choice: 'tar' (choose from 'git', 'hg', 'svn')
<== Error running command 'bloom-export-upstream https://google-glog.googlecode.com/files/glog-0.3.3.tar.gz tar --tag 0.3.3 --display-uri https://google-glog.googlecode.com/files/glog-0.3.3.tar.gz --name upstream --output-dir /tmp/tmpZgzPa2'

Is the tarball option not fully supported by bloom yet?

2015-11-13 12:12:24 -0500 received badge  Popular Question (source)
2015-11-03 08:51:17 -0500 received badge  Good Question (source)
2015-10-14 23:08:54 -0500 marked best answer Camera calibration parser in python

Does ROS contain any camera calibration parsers written in python? I would like to have an interface that accepts a (YAML) filename as input, reads the data and gives me a CameraInfo message.

2015-10-14 23:08:54 -0500 received badge  Nice Answer (source)
2015-10-08 11:05:12 -0500 asked a question Why does AMCL post-date tf (~transform_tolerance)?

A comment in the code says

    // We want to send a transform that is good up until a
    // tolerance time so that odom can be used

And the wiki page says

~transform_tolerance (double, default: 0.1 seconds) Time with which to post-date the transform that is published, to indicate that this transform is valid into the future.

I still don't understand why AMCL needs to pretend to be able to see the future.

2015-10-02 04:13:44 -0500 marked best answer Are zero-copy services possible (nodelet + rosservice)?

With nodelets you can have zero-copy message passing via shared pointers. Is there a mechanism to do the same with services? Will data be copied running ros::ServiceClient::call() if both service client and service server are nodelets on the same manager?

2015-09-25 04:35:23 -0500 commented question ROS log file change of time-stamping format

It looks like it just uses the output stream operator of ros::Time : https://github.com/ros/ros_comm/blame...

2015-09-25 04:31:55 -0500 commented question ROS log file change of time-stamping format

I want that, too!

2015-09-23 01:02:09 -0500 received badge  Guru (source)
2015-08-27 16:15:02 -0500 received badge  Famous Question (source)
2015-08-27 04:57:40 -0500 edited question Simple nodes taking up 100% CPU

I have a bunch of nodes running on a robot and sometimes (not sure after how much runtime) very simple nodes such as topic_tools/relay or robot_pose_publisher/robot_pose_publisher take up 100% CPU. A restart of the system brings it back to the normal state (less than 1% CPU for the same process). I attached a gdb session to the relay node while it was consuming 100% and every time I interrupted it it was at CallbackQueue::callAvailable() (as expected, same as when it is at normal CPU usage).

The system does not appear to be on a heavy load when this happens, memory usage is fine and the number of open file descriptors seems reasonable.

Any idea what else I could check?

EDIT:

A little more info about the system:

$ cat /etc/lsb-release 
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=14.04
DISTRIB_CODENAME=trusty
DISTRIB_DESCRIPTION="Ubuntu 14.04.3 LTS"
$ uname -a
Linux beta4 3.13.0-61-generic #100-Ubuntu SMP Wed Jul 29 11:21:34 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
$ dpkg -s ros-indigo-roscpp | grep Version
Version: 1.11.13-0trusty-20150522-1157-+0000

EDIT2:

Apparently this has something to do with wifi. We have robots at specific locations where we observe this behavior and when we disable the wifi interfaces, the system load goes down again. The nodes that take up CPU don't transmit or receive anything over wifi.

2015-08-27 04:54:26 -0500 commented question Simple nodes taking up 100% CPU

The relay is passing LaserScan messages at 15 Hz. It looks like it gets stuck at 100% for a long time. The error is very random. At some point in time one or multiple random C++ nodes grab 100% CPU, both standard ROS nodes and custom (very simple) ones.

2015-08-27 03:13:50 -0500 received badge  Great Answer (source)