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

Tinrik's profile - activity

2019-09-30 15:35:57 -0500 received badge  Taxonomist
2016-04-26 04:46:19 -0500 received badge  Famous Question (source)
2015-12-05 22:55:30 -0500 received badge  Notable Question (source)
2015-11-12 01:47:15 -0500 commented answer PCL + ROS Indigo: include not found if I use catkin_package()

I am not using any .pro file at all; I just open the CMakeLists.txt file.

Also, I already have include_directories(include ${PCL_INCLUDE_DIRS} ${catkin_INCLUDE_DIRS} ) in my CMakeLists.txt. The thing is that catkin_package() is messing up with it, and I don't know why.

2015-11-12 01:45:43 -0500 received badge  Popular Question (source)
2015-11-11 13:39:44 -0500 received badge  Student (source)
2015-11-11 07:51:14 -0500 received badge  Organizer (source)
2015-11-11 06:56:57 -0500 asked a question PCL + ROS Indigo: include not found if I use catkin_package()

Hi,

I have installed ROS Indigo under Ubuntu 14.04. I am trying to create a ROS package that uses the PCL library. I am using QtCreator as IDE.

My main problem is that QtCreator can't find the PCL headers. For example:

#include <pcl/point_types.h>

Therefore it does not autocomplete anything related to PCL. However, it DOES compile if I have PCL code, so I don't know where the error is.

This is my CMakeLists.txt:

cmake_minimum_required(VERSION 2.8.3)
project(data_visualizer)

find_package(catkin REQUIRED COMPONENTS
  roscpp
  rospy
  std_msgs
  visualization_msgs
  tf
)

find_package(PCL REQUIRED)

include_directories(
  ${catkin_INCLUDE_DIRS}
)

include_directories(include ${PCL_INCLUDE_DIRS} ${catkin_INCLUDE_DIRS} )
add_definitions(${PCL_DEFINITIONS})

catkin_package()


file(GLOB_RECURSE SOURCES src/*.cpp src/*.h)
add_executable(${PROJECT_NAME} ${SOURCES})
target_link_libraries(${PROJECT_NAME} ${catkin_LIBRARIES} ${PCL_LIBRARIES})

And my package.xml:

<?xml version="1.0"?>
<package>
  <name>data_visualizer</name>
  <version>0.0.0</version>
  <description>The data_visualizer package</description>

  <!-- One maintainer tag required, multiple allowed, one person per tag --> 
  <!-- Example:  -->
  <!-- <maintainer email="jane.doe@example.com">Jane Doe</maintainer> -->
  <maintainer email="work@todo.todo">work</maintainer>


  <!-- One license tag required, multiple allowed, one license per tag -->
  <!-- Commonly used license strings: -->
  <!--   BSD, MIT, Boost Software License, GPLv2, GPLv3, LGPLv2.1, LGPLv3 -->
  <license>TODO</license>


  <!-- Url tags are optional, but mutiple are allowed, one per tag -->
  <!-- Optional attribute type can be: website, bugtracker, or repository -->
  <!-- Example: -->
  <!-- <url type="website">http://wiki.ros.org/data_visualizer</url> -->


  <!-- Author tags are optional, mutiple are allowed, one per tag -->
  <!-- Authors do not have to be maintianers, but could be -->
  <!-- Example: -->
  <!-- <author email="jane.doe@example.com">Jane Doe</author> -->


  <!-- The *_depend tags are used to specify dependencies -->
  <!-- Dependencies can be catkin packages or system dependencies -->
  <!-- Examples: -->
  <!-- Use build_depend for packages you need at compile time: -->
  <!--   <build_depend>message_generation</build_depend> -->
  <!-- Use buildtool_depend for build tool packages: -->
  <!--   <buildtool_depend>catkin</buildtool_depend> -->
  <!-- Use run_depend for packages you need at runtime: -->
  <!--   <run_depend>message_runtime</run_depend> -->
  <!-- Use test_depend for packages you need only for testing: -->
  <!--   <test_depend>gtest</test_depend> -->
  <buildtool_depend>catkin</buildtool_depend>
  <build_depend>roscpp</build_depend>
  <build_depend>rospy</build_depend>
  <build_depend>std_msgs</build_depend>
  <build_depend>visualization_msgs</build_depend>
  <build_depend>tf</build_depend>
  <build_depend>libpcl-all-dev</build_depend>
  <run_depend>roscpp</run_depend>
  <run_depend>rospy</run_depend>
  <run_depend>std_msgs</run_depend>
  <run_depend>visualization_msgs</run_depend>
  <run_depend>tf</run_depend>
  <run_depend>libpcl-all</run_depend>
  <!-- The export tag contains other, unspecified, tags -->
  <export>
    <!-- Other tools can request additional information be placed here -->

  </export>
</package>

Hint: I notice that if I comment out the line "catkin_package()" from the CMakeLists.txt, then QtCreator is able to locate the PCL headers. Does this sound familiar? Any ideas on how to fix this?

Thanks a lot!

2014-07-07 12:43:26 -0500 commented answer How to I rosbag/record a loosless compressed images

I have a node that processes data from a sensor_msgs/Image topic, and I don't want to modify the code. Can I apply what you just said: record a bag file with compressed images, and then and somehow convert from compressed image to "raw" image when I read directly from the bag?

2014-07-04 16:21:20 -0500 commented answer ApproximateTime Synchronizer executed by multiple nodes: collision?

Yep, see my edited answer!

2014-07-04 15:43:09 -0500 received badge  Notable Question (source)
2014-07-04 15:43:09 -0500 received badge  Famous Question (source)
2014-07-04 15:39:58 -0500 received badge  Notable Question (source)
2014-07-04 15:39:58 -0500 received badge  Famous Question (source)
2014-05-13 09:07:42 -0500 received badge  Popular Question (source)
2014-05-12 10:30:11 -0500 commented question Multiple RGBD cameras, single USB 3.0 controller

That's what I believe; I used USB 3.0 to have plenty of bandwidth. But it might be a driver configuration problem. It seems like one camera interferes with the other one without shutting it down...

2014-05-12 08:23:54 -0500 asked a question Multiple RGBD cameras, single USB 3.0 controller

Hi all,

Quick question: has anyone managed to get 2 or more cameras streaming RGB+D simultaneously when connected to a single USB 3.0 controller?. I have the following setup:

-2 cameras Primesense 1.09 USB 2.0

-USB 3.0 Hub D-Link DUB-1340

-Ubuntu 12.04 64-bit, ROS Hydro

The cameras are connected to the Hub, and this is connected to a single USB 3.0 port on the computer (it only has one USB 3.0 port, the rest are USB 2.0 ports).

I can run the 2 cameras using openni2_launch perfectly, each one of them under a different namespace. However, if I subscribe to the topics using rostopic echo I can only get: 2 RGB channels + 1 Depth channel. In other words: I cannot get the 2 RGB + 2 Depth at the same time. I can however get 0 RGB + 2 Depth working.

I believe it may be a bandwidth issue. However, using USB 3.0 I didn't expect this problem. Is there anything else I need to configure to have more bandwidth?

Thanks.

2014-04-30 22:33:30 -0500 received badge  Popular Question (source)
2014-04-30 22:04:53 -0500 answered a question ApproximateTime Synchronizer executed by multiple nodes: collision?

Any hints? It seems like my callback function is not being called, but there is information being published into the corresponding topics. Is there any way I can "see" what is going on after receiving the data and before the callback (which is not called), or if the node actually receives the data?

Thanks!

EDIT: I finally found what the problem was. It has nothing to do with the software, which is perfectly fine. It seems that my cameras were connected to the same USB 2.0 bus (but different ports), so when I tried to get RGB + Depth from both of them simultaneously there was not enough bandwidth for them and thus there was a collision.

Having the two cameras on different USB buses solved the problem :)

2014-04-29 03:13:04 -0500 received badge  Enthusiast
2014-04-28 18:41:32 -0500 received badge  Famous Question (source)
2014-04-28 18:41:32 -0500 received badge  Famous Question (source)
2014-04-28 18:41:32 -0500 received badge  Famous Question (source)
2014-04-27 01:40:40 -0500 asked a question ApproximateTime Synchronizer executed by multiple nodes: collision?

Hi all,

Right now I have a node RGBDImageProc that does some processing on the incoming data from an RGBD camera. It's a slightly modified version of the one here: https://github.com/ccny-ros-pkg/ccny_...

Now I want to use this node with multiple cameras. What I do is to launch 2 instances of this node, each one inside a different namespace and connected to a different camera. The launching works fine and each camera publishes all the information into independent topics. For instance: /cam1/camera/rgb/..., /cam2/camera/rgb/... I can view the images of both cameras simultaneously using image_viewer so they are publishing properly.

My problem comes at the processing node. Right now it's using an ApproximateTime Synchronizer to process the information from the RGB and Depth information in a single Callback, like this:

RGBDImageProc::RGBDImageProc(const ros::NodeHandle& nh, const ros::NodeHandle& nh_private): nh_(nh), nh_private_(nh_private), rgb_image_transport_(nh_), depth_image_transport_(nh_), config_server_(nh_private_), size_in_(0,0){

//....

// subscribers

sub_rgb_.subscribe (rgb_image_transport_, "/"+cam_name_+"/camera/rgb/image", queue_size_);

sub_depth_.subscribe(depth_image_transport_, "/"+cam_name_+"/camera/depth/image_raw", queue_size_);

sub_rgb_info_.subscribe (nh_, "/"+cam_name_+"/camera/rgb/camera_info", queue_size_);

sub_depth_info_.subscribe(nh_, "/"+cam_name_+"/camera/depth/camera_info", queue_size_);

sync_.reset(new RGBDSynchronizer4(RGBDSyncPolicy4(queue_size_), sub_rgb_, sub_depth_, sub_rgb_info_, sub_depth_info_));

sync_->registerCallback(boost::bind(&RGBDImageProc::RGBDCallback, this, _1, _2, _3, _4)); }

The callback is:

void RGBDImageProc::RGBDCallback( const ImageMsg::ConstPtr& rgb_msg, const ImageMsg::ConstPtr& depth_msg, const CameraInfoMsg::ConstPtr& rgb_info_msg, const CameraInfoMsg::ConstPtr& depth_info_msg) {
std::cout<<"RGBD Callback...\n";
}

The class header contains the following:

private:

ros::NodeHandle nh_;          ///< the public nodehandle
ros::NodeHandle nh_private_;  ///< the private nodehandle

boost::shared_ptr<RGBDSynchronizer4> sync_; ///< ROS 4-topic synchronizer

ImageTransport rgb_image_transport_;    ///< ROS image transport for rgb message
ImageTransport depth_image_transport_;  ///< ROS image transport for depth message

ImageSubFilter sub_rgb_;   ///< ROS subscriber for rgb message
ImageSubFilter sub_depth_; ///< ROS subscriber for depth message

CameraInfoSubFilter sub_rgb_info_;   ///< ROS subscriber for rgb camera info
CameraInfoSubFilter sub_depth_info_; ///< ROS subscriber for depth camera info

and

typedef image_transport::ImageTransport ImageTransport;

typedef image_transport::SubscriberFilter ImageSubFilter;

typedef message_filters::Subscriber<camerainfomsg> CameraInfoSubFilter;

typedef message_filters::sync_policies::ApproximateTime<imagemsg, imagemsg,="" camerainfomsg=""> RGBDSyncPolicy3;

typedef message_filters::sync_policies::ApproximateTime<imagemsg, imagemsg,="" camerainfomsg,="" camerainfomsg=""> RGBDSyncPolicy4;

typedef message_filters::Synchronizer<rgbdsyncpolicy3> RGBDSynchronizer3;

typedef message_filters::Synchronizer<rgbdsyncpolicy4> RGBDSynchronizer4;

If I first run one camera, under the namespace /cam1/..., everything works perfectly, and the RGBDCallback is executed. However, when I start the second camera (with the first one still running), under the namespace /cam2/..., the RGBDCallback is not executed anymore, either for cam1 or for cam2 (in this case, it never runs a single call).

Tracking the error, I found out that it hangs after doing sync_->registerCallback(...) in cam2.

Are the two Synchronizers colliding somehow? How could I solve this problem?

Thank you very much.

P.S.: sorry for the bad code formatting, I don't know how to fix it.

2014-03-13 06:25:24 -0500 received badge  Notable Question (source)
2014-03-13 00:11:12 -0500 received badge  Teacher (source)
2014-03-13 00:11:12 -0500 received badge  Self-Learner (source)
2014-03-12 23:12:15 -0500 answered a question PrimeSense RD1.09+USB3.0+Ubuntu

I finally solved it! For those who are also new to ROS, this is what I did:

First, install openni2. I believe you need Hydro or Groovy for that. As jbinney mentioned, openni2_camera works with USB 3.0. In particular I used openni2_launch: roslaunch openni2_launch openni2.launch

In order to see the images you need to use image_view but with different topics than it appears in the documentation. For example, to see the RGB images, I use rosrun image_view image_view image:=/camera/rgb/image_raw, instead of rosrun image_view image_view image:=/camera/rgb/image_color as in the openni_launch wiki.

Thanks! :)

2014-03-12 10:52:09 -0500 commented question PrimeSense RD1.09+USB3.0+Ubuntu

I'm absolutely new to ROS and I only know basically how to use openni_launch, nothing else. I have also installed hydro which comes with openni2-camera. Could you please tell me the commands to use openni2_camera? Thanks :)

2014-03-12 10:22:45 -0500 received badge  Popular Question (source)
2014-03-12 06:28:56 -0500 edited question PrimeSense RD1.09+USB3.0+Ubuntu

Hi,

I would like to ask if anyone has got to get the PrimeSense RD1.09 RGBD camera working with ROS when connected to a USB 3.0 port under Ubuntu. Right now I am using ROS Fuerte, Ubuntu 12.04.3 (Kernel 3.8.0-31) but cannot get the camera working on the USB 3.0 port (it does work when plugged into a USB 2.0 port). The camera is correctly recognised if I do lsusb. However, it shows the following error message when executing roslaunch openni_launch openni.launch:

terminate called after throwing an instance of 'openni_wrapper::OpenNIException' what(): unsigned int openni_wrapper::OpenNIDriver::updateDeviceList() @ /tmp/buildd/ros-fuerte-openni-camera-1.8.6/debian/ros-fuerte-openni-camera/opt/ros/fuerte/stacks/openni_camera/src/openni_driver.cpp @ 125 : enumerating image nodes failed. Reason: One or more of the following nodes could not be enumerated:

Image: PrimeSense/SensorV2/5.1.2.1: Failed to set USB interface!

Any hint on what I could do? Thanks!

Edit: Sorry for the post duplicates, there seemed to be an error when I created it.

2014-03-12 04:27:43 -0500 received badge  Editor (source)
2014-03-12 04:26:20 -0500 asked a question PrimeSense+USB3.0+Ubuntu?

Hi,

I would like to ask if anyone has got to get the PrimeSense RD1.09 RGBD camera to work with ROS when connected to a USB 3.0 port under Ubuntu. Right now I am using ROS Fuerte, Ubuntu 12.04.3 (Kernel 3.8.0-31) but cannot get the camera working on the USB 3.0 port (it does work when plugged into a USB 2.0 port). The camera is correctly recognised if I do lsusb. However, it shows the following error message when executing roslaunch openni_launch openni.launch:

terminate called after throwing an instance of 'openni_wrapper::OpenNIException' what(): unsigned int openni_wrapper::OpenNIDriver::updateDeviceList() @ /tmp/buildd/ros-fuerte-openni-camera-1.8.6/debian/ros-fuerte-openni-camera/opt/ros/fuerte/stacks/openni_camera/src/openni_driver.cpp @ 125 : enumerating image nodes failed. Reason: One or more of the following nodes could not be enumerated:

Image: PrimeSense/SensorV2/5.1.2.1: Failed to set USB interface!

Any hint on what I could do? Thanks!