Ask Your Question

Stephan's profile - activity

2021-08-19 21:24:25 -0600 received badge  Nice Question (source)
2020-06-23 18:01:57 -0600 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?

2020-05-11 02:01:46 -0600 commented answer Ensuring mutual exclusion between different actions

What happens when a new goal comes in while the same action server is already executing one depends on your application.

2020-04-18 14:23:06 -0600 commented answer Ensuring mutual exclusion between different actions

I would implement a specialization of the ActionServer (or of SimpleActionServer) that tries to acquire the lock when a

2020-04-16 11:20:22 -0600 edited answer Ensuring mutual exclusion between different actions

The only way I see to accomplish this is to have a central "broker" that manages the set of actions. You need one place

2020-04-16 11:15:49 -0600 received badge  Rapid Responder (source)
2020-04-16 11:15:49 -0600 answered a question Ensuring mutual exclusion between different actions

The only way I see to accomplish this is to have a central "broker" that manages the set of actions. You need one place

2020-02-13 09:41:10 -0600 received badge  Good Question (source)
2019-10-22 15:42:24 -0600 received badge  Famous Question (source)
2019-04-29 14:30:41 -0600 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 -0600 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 -0600 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 -0600 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 -0600 received badge  Notable Question (source)
2018-08-21 12:26:02 -0600 received badge  Nice Question (source)
2018-08-18 03:40:05 -0600 received badge  Nice Question (source)
2018-08-08 01:30:45 -0600 received badge  Nice Question (source)
2018-07-30 09:58:35 -0600 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 -0600 received badge  Popular Question (source)
2018-07-06 04:43:14 -0600 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 -0600 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 -0600 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 -0600 received badge  Favorite Question (source)
2017-06-26 10:59:54 -0600 commented question Simple nodes taking up 100% CPU

That's possible. Thanks!

2017-06-26 10:37:33 -0600 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 -0600 received badge  Nice Answer (source)
2017-04-21 18:03:03 -0600 received badge  Notable Question (source)
2017-04-21 18:03:03 -0600 received badge  Famous Question (source)
2017-01-03 08:58:45 -0600 received badge  Nice Question (source)
2016-12-08 23:00:53 -0600 received badge  Popular Question (source)
2016-12-05 18:35:04 -0600 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 -0600 received badge  Nice Answer (source)
2016-09-08 03:56:15 -0600 received badge  Nice Answer (source)
2016-04-26 08:41:43 -0600 received badge  Nice Answer (source)
2016-03-10 11:36:08 -0600 received badge  Famous Question (source)
2016-03-10 11:36:08 -0600 received badge  Notable Question (source)
2016-02-08 13:59:17 -0600 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 -0600 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 -0600 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 -0600 received badge  Popular Question (source)
2015-11-03 08:51:17 -0600 received badge  Good Question (source)
2015-10-14 23:08:54 -0600 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 -0600 received badge  Nice Answer (source)
2015-10-08 11:05:12 -0600 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.