Ask Your Question

Astra Camera Shows in rviz, Invalid device number in openni2

asked 2019-01-22 10:13:35 -0600

teddybouch gravatar image

updated 2019-01-23 02:11:31 -0600

gvdhoorn gravatar image

Edit: Thanks to @gvdhoorn for the input - I think that it's confirming what I seem to be finding out. By simply running the Astra drivers in place of the OpenNI2 drivers, I'm able to see the images from the Turtlebot as explained in the tutorial. I think that, with the new sensor, I simply have to use the Orbec drivers rather than the OpenNI drivers.

The problem now becomes that, once I get to the point in the tutorial that I'm using roslaunch turtlebot_bringup 3dsensor.launch on the Turtlebot and roslaunch turtlebot_rviz_launchers view_robot.launch on the workstation, the frames are not correctly configured to work with everything else. Here's what I've done so far to try to address the configuration issue:

  • 3dsensor.launch appears to use the TURTLEBOT_3D_SENSOR environment variable to get the appropriate launch.xml file, so I don't think that there are any changes necessary here. However, there are a number of variables that get re-mapped here that I think may be relevant to getting what the Astra driver outputs to match up to what the Turtlebot looks for.
  • In /opt/ros/indigo/share/turtlebot_bringup/launch/includes/3dsensor, I copied kinect.launch.xml to astra.launch.xml, the only difference between the files being that the include portion points to astra_launch/launch/astra.launch rather than freenect_launch/launch/freenect.launch. If I understand correctly, this configures the system to use the launch file from the Astra driver when the 3dsensor.launch file is used to start the 3d sensor system on the turtlebot.
  • I notice that the freenect package appears to have a file that points to kinect_frames.launch in the rgbd_launch project, which looks like it defines transforms for the camera. Simply making a copy of that file over to the astra_launch project and linking it to the astra.launch file doesn't appear to fix the problem. I'm still getting an error in rviz saying that camera_rgb_optical_frame does not exist. Since this frame is defined by what is now astra_frames.launch, I'm guessing that this reference frame has to match an existing reference frame in the overall robot model to link the two? Because camera_rgb_optical_frame is not an option in the Global Options->Fixed Frame or the Grid->Reference Frame

I think that I need to look for some kind of tutorial on reference frames to better understand what is going on here and how I might be able to resolve it. Again, any help is appreciated. Thanks!

I'm working my way through the Turtlebot tutorials ( ), and I'm currently at the stage where I'm testing the 3D sensor. I'm running into a few problems since the Turtlebot that I purchased came with ROS installed on the laptop, but apparently not correctly configured. The sensor that came included is the Orbec Astra, which I had to go out separately to find drivers and such for. I can ... (more)

edit retag flag offensive close merge delete



I'm not an expert on this topic, so take this as additional input, but: I believe the tutorial you link to assumes a "regular" TB2 (ie: old one) that came with either a Kinect or an Xtion.

After those became (very) hard to purchase, a switch was made to the Astra. I'm not sure OpenNI ..

gvdhoorn gravatar image gvdhoorn  ( 2019-01-22 11:28:42 -0600 )edit

.. stuff can be used with that camera, but again, I'm not an expert.

The driver (most likely) doesn't care about the URDF. What would be important would be for the respective topics to exist after you've launched the driver. Seeing as you can see a pointcloud in RViz, I would say they are, and ..

gvdhoorn gravatar image gvdhoorn  ( 2019-01-22 11:29:48 -0600 )edit

.. you should be able to continue from there.

I'm not sure what the status of the Astra integration into the TB2 pkgs is. I've never used/needed it, as I only have old TB2s here, with Kinects.

gvdhoorn gravatar image gvdhoorn  ( 2019-01-22 11:30:39 -0600 )edit

1 Answer

Sort by ยป oldest newest most voted

answered 2019-01-23 02:13:12 -0600

gvdhoorn gravatar image

updated 2019-01-24 03:09:13 -0600

Have you checked the Kinetic version of the Turtlebot packages? That has standardised on the Astra. See Alternative 3D Sensor Setup fi.

It appears the (recent) Indigo version of turtlebot_bringup already seems to include infrastructure for the Astra, so you may want to check whether you have the latest upgrades for Indigo on your system as well.


using the tutorials on , I thought that I was still meant to be using the OpenNI drivers [..]

thing is: those tutorials were created by members of the community.

Software evolves, and if artefacts like those tutorials don't get updated, you run into situations like this.

It's really unfortunate, but it's a common problem with documentation and support material.

The sources are hosted at turtlebot/ Perhaps you could submit a PR that makes this clearer for future readers? You're in a unique position to do so, having just overcome the confusion of trying to understand the current material and mapping your insights to a newer version of the software stack.

edit flag offensive delete link more


Thanks - I am actually a little hamstrung in that my work environment limits my access to the Internet, so one of the reasons we bought this particular robot was that it was supposed to come with ROS installed and ready to go. Since that's not the case already, I'll try that. Thanks!

teddybouch gravatar image teddybouch  ( 2019-01-23 07:49:40 -0600 )edit

I think that this is working now. I took your advice and re-installed ROS and turtlebot, using the Kinetic version. Astra is supported by default as you said - what confused me for a little bit is that, using the tutorials on , I thought that I was still meant to be using the...

teddybouch gravatar image teddybouch  ( 2019-01-23 15:23:36 -0600 )edit

...OpenNI drivers. If I run astra_launch where it says to run openni_launch, everything works fine, and the turtlebot_bringup 3dsensor.launch works just fine, too. I'd like to give you credit for the solution. Would you mind writing this up as an answer so I can do so?

teddybouch gravatar image teddybouch  ( 2019-01-23 15:25:25 -0600 )edit

Thank you again for the help! And I'd be happy to contribute - PR is a pull request? If I'm understanding the process correctly, I'll pull the repository, make changes to the tutorial files, and then submit a request that those changes get pulled into the main? If that's the case, I'm going to have

teddybouch gravatar image teddybouch  ( 2019-01-25 09:26:24 -0600 )edit

to figure out a way to do that from home, since our security policies at work prevent that kind of thing. But it would be nice to give back after all the help the open source community has given me!

teddybouch gravatar image teddybouch  ( 2019-01-25 09:27:17 -0600 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower


Asked: 2019-01-22 10:13:35 -0600

Seen: 191 times

Last updated: Jan 24 '19