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

spmaniato's profile - activity

2022-11-03 09:11:28 -0500 received badge  Famous Question (source)
2022-11-03 09:11:28 -0500 received badge  Notable Question (source)
2022-09-10 23:09:59 -0500 received badge  Guru (source)
2022-09-10 23:09:59 -0500 received badge  Great Answer (source)
2022-08-28 03:15:39 -0500 received badge  Nice Answer (source)
2022-06-22 20:36:23 -0500 received badge  Guru (source)
2022-06-22 20:36:23 -0500 received badge  Great Answer (source)
2022-04-01 05:24:00 -0500 received badge  Nice Question (source)
2022-03-31 09:54:07 -0500 received badge  Good Answer (source)
2022-02-19 11:46:53 -0500 received badge  Nice Question (source)
2021-07-17 09:45:07 -0500 marked best answer How to RUN rosdep init and update in Dockerfile

What's the correct way of running sudo rosdep init followed by rosdep update in a Dockerfile?

Looking at OSRF's indigo-ros-core Dockerfile, there's a simple:

RUN rosdep init \
    && rosdep update

However, running rosdep update like that in my own Dockerfile results in a warning, since it was essentially run with sudo. In turn, this results in rosdep install not finding dependencies later on.

So, since I'll be running this Docker image on a Raspberry Pi 3, I've been trying the Docker-raspbian-ros-indigo Dockerfile, which sets up a new user, pi, and then runs the rosdep commands as that user (see link for details).

USER pi
RUN sudo rosdep init
RUN rosdep update

But trying to build my Dockerfile like that gives me the following error message:

Step 12 : RUN sudo rosdep init
---> Running in d10888b83a25
sudo: effective uid is not 0, is /usr/bin/sudo on a file system with the 'nosuid' option set or an NFS file system without root privileges?

I also tried the trick from osblinnikov/ros-docker. In a nutshell:

RUN adduser --gecos "ROS User" --disabled-password ros
RUN usermod -a -G dialout ros
USER ros
RUN HOME=/home/ros rosdep update
# ...
RUN rosdep install --from-paths src --ignore-src --rosdistro $ROS_DISTRO -y

However, the rosdep install commands fails with:

Step 20 : RUN rosdep install --from-paths src --ignore-src --rosdistro $ROS_DISTRO -y
 ---> Running in 3be8cdf3c72a
sudo: no tty present and no askpass program specified
ERROR: the following rosdeps failed to install
  apt: command [sudo -H apt-get install -y python-mock] failed
executing command [sudo -H apt-get install -y python-mock]
The command '/bin/sh -c rosdep install --from-paths src --ignore-src --rosdistro $ROS_DISTRO -y' returned a non-zero code: 1

Update: This last error was resolved by:

  • letting the ros user execute commands as sudo without password (ros ALL=(ALL) NOPASSWD: ALL)
  • and also adding RUN sudo apt-get update before rosdep install in order to update the package lists
2021-07-14 13:03:53 -0500 received badge  Good Answer (source)
2021-07-01 11:30:38 -0500 received badge  Good Answer (source)
2021-05-30 20:39:39 -0500 received badge  Great Answer (source)
2021-05-30 20:39:39 -0500 received badge  Guru (source)
2021-04-23 05:35:45 -0500 received badge  Good Question (source)
2021-04-23 05:35:42 -0500 marked best answer How does rospy.Timer behave if it triggers while the previous callback is still busy?

I'm using a rospy.Timer (periodic, not one-shot) to handle a long-running process in a non-blocking way. I only want one instance of the process to be running at any one time. Therefore, I thought I would have to implement some sort of lock in order to prevent subsequent Timer callbacks from triggering new instances of the process.

However, it seems like I didn't have to! Subsequent callbacks are not called if the previous one is still working. Or are they added to a queue like subscriber callbacks? Either is a good thing in my use case, but where can I find out more about it? It's not mentioned in http://wiki.ros.org/rospy/Overview/Ti... from what I can tell.

2021-01-11 04:44:06 -0500 received badge  Nice Question (source)
2020-10-18 02:20:25 -0500 received badge  Good Answer (source)
2020-09-08 06:50:05 -0500 received badge  Nice Answer (source)
2020-05-06 20:39:36 -0500 received badge  Good Answer (source)
2020-04-24 07:04:30 -0500 received badge  Nice Answer (source)
2020-03-14 01:48:18 -0500 received badge  Nice Question (source)
2020-02-07 16:34:26 -0500 received badge  Good Answer (source)
2020-01-16 15:15:59 -0500 received badge  Notable Question (source)
2019-12-03 08:41:13 -0500 received badge  Nice Answer (source)
2019-11-22 16:21:51 -0500 received badge  Guru (source)
2019-11-22 16:21:51 -0500 received badge  Great Answer (source)
2019-11-21 02:14:19 -0500 received badge  Famous Question (source)
2019-11-21 02:14:19 -0500 received badge  Notable Question (source)
2019-08-14 02:31:08 -0500 received badge  Nice Answer (source)
2019-07-17 04:05:48 -0500 received badge  Nice Answer (source)
2019-07-16 04:18:42 -0500 received badge  Taxonomist
2019-06-27 04:44:55 -0500 received badge  Nice Answer (source)
2019-06-21 17:11:30 -0500 marked best answer Passing LDFLAGS and CPPFLAGS to catkin_make

I want to use rosbridge on Mac OS X, which depends on rosauth, which in turn depends on libssl-dev

I've installed openssl on OS X via Homebrew, but it's keg-only since Apple uses its own libraries. Therefore, compilation of rosauth fails with:

[ 99%] Building CXX object rosauth/CMakeFiles/ros_mac_authentication_test.dir/test/ros_mac_authentication_test.cpp.o
[ 99%] Building CXX object rosauth/CMakeFiles/ros_mac_authentication.dir/src/ros_mac_authentication.cpp.o
/Users/smaniato/Cornell/Research/Projects/behaviors_ws/src/rosauth/src/ros_mac_authentication.cpp:15:10: fatal error: 'openssl/sha.h' file not found
#include <openssl/sha.h>

Homebrew says that I have to manually add the following build variables:

LDFLAGS:  -L/usr/local/opt/openssl/lib
CPPFLAGS: -I/usr/local/opt/openssl/include

How do I pass those to catkin_make? I tried the following but it didn't work:

catkin_make -D LDFLAGS=-L/usr/local/opt/openssl/lib CPPFLAGS=-I/usr/local/opt/openssl/include

I'm also OK with modifying CMakeLists.txt, since I'm building from source. Thanks!

2019-05-25 07:38:01 -0500 received badge  Famous Question (source)
2019-05-02 17:12:39 -0500 received badge  Nice Question (source)
2018-12-07 08:12:56 -0500 received badge  Famous Question (source)
2018-11-19 04:14:36 -0500 received badge  Popular Question (source)
2018-07-25 14:06:28 -0500 marked best answer Simulating range sensors in Stage and publishing to ROS

According to the Stage Manual ( http://rtv.github.io/Stage/group__mod... ), the generic ranger model that was introduced in Stage 4 should be able to simulate both laser rangefinders and (sonar or IR) range sensors. However, it doesn't look like stage_ros can handle range sensors. I'm inferring that based on the topics published by the stage_ros node and the fact that it doesn't include sensor_msgs/Range.

Is it just a missing feature that I could implement or am I misunderstanding the ranger model?

References:

2018-07-25 14:05:24 -0500 received badge  Nice Answer (source)
2018-07-25 03:27:21 -0500 marked best answer TF Listener for static transforms exclusively

Is there a way to listen to only the static transforms in a TF tree (e.g. base_link --> base_laser_link) without instantiating an entire tf::TransformListener object, which "receives and buffers all coordinate frames that are broadcasted in the system" ? Can tf::MessageFilters be used for something like that?

2018-07-19 09:51:08 -0500 marked best answer Tuning AMCL's diff-corrected and omni-corrected odom models

I just read the discussion on amcl's incorrect odometry models. See:

I was wondering if anyone has figured out how to properly tune the parameters odom_alpha1 through odom_alpha5 (relative to the "incorrect" models). The consensus seems to be that the old defaults (0.2) don't work properly with the corrected models. I tried a few things, such as lowering them by an order of magnitude, but didn't get decent results.

PS. To be more specific, here's my experience with a made-up omni-drive robot in Stage (drive "omni") and the omni-corrected odom model. If I tell the DWAPlanner to treat the robot as nonholonomic (holonomic_robot: false), then AMCL does OK. If I let it command lateral velocities (holonomic_robot: true and same y velocity params as x params), all hell breaks loose. Interestingly, it's mainly the position that's off, not the orientation.