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

Per Lenander's profile - activity

2013-04-07 05:19:58 -0500 marked best answer Problem setting up rosserial_arduino

Hello!

I am working on a project using ROS, and I want to integrate external hardware using an Arduino. So I thought that using the rosserial_arduino library would work wonders... I ran into trouble however.

The arduino running the basic hello world code does not seem to be sending any serial data. The receiving python node never seems to connect, and if you bring up the internal serial monitor in the arduino IDE no data is sent from the board. Running nh.initNode() seems to kill all serial communication. If I comment that line and use Serial.begin(...) in setup and Serial.print(...) in the loop everything still works. I've been working on this for two days now and is just about ready to give up and use another frontend on the computer and write my own communication using the Serial commands...

I use Ubuntu 11.04 (Natty), ros-electric from the repos, ros-electric-rosserial from the repos and arduino from the repos. I have also tried rosserial from hg, but the result is the same. I have a Duemilanove 168. I have tried on several computers with the same setup, and on two different arduinos.

2013-02-11 07:36:57 -0500 received badge  Nice Question (source)
2012-10-16 20:52:39 -0500 marked best answer Activating OpenNi depth registration by default

Hello!

My problem is the following: I use the openni_kinect package to get rgb/depth feeds from my kinect. I start the ROS nodes for this by using

roslaunch openni_launch openni.launch

My program needs depth registration to function properly (disabled by default), so far I have enabled this by running

rosrun dynamic_reconfigure reconfigure_gui

and setting the parameter manually, but it is quickly getting old. Is there a way to turn the depth registration on by default in my roslaunch?

2012-09-10 00:38:00 -0500 received badge  Famous Question (source)
2012-08-21 07:12:26 -0500 received badge  Famous Question (source)
2012-08-21 07:12:26 -0500 received badge  Notable Question (source)
2012-08-20 04:22:54 -0500 received badge  Popular Question (source)
2012-08-20 04:22:54 -0500 received badge  Famous Question (source)
2012-08-20 04:22:54 -0500 received badge  Notable Question (source)
2012-08-16 09:31:11 -0500 received badge  Famous Question (source)
2012-05-21 23:15:13 -0500 received badge  Notable Question (source)
2012-05-19 06:02:46 -0500 received badge  Notable Question (source)
2012-03-29 12:32:45 -0500 received badge  Good Question (source)
2012-03-29 12:30:46 -0500 received badge  Popular Question (source)
2012-03-15 04:23:20 -0500 received badge  Nice Question (source)
2012-03-07 21:53:15 -0500 received badge  Popular Question (source)
2012-02-03 16:20:58 -0500 received badge  Popular Question (source)
2011-12-21 20:39:19 -0500 commented answer Successful use of wifi_comm?
I have the exact same problem you had (with foreign relay, not wifi_comm) and I've tried the above solution, but without improvement. I still get the empty topic popping up on the foreign master without any data in it: http://answers.ros.org/question/3388/foreign_relay-problem
2011-12-20 23:23:50 -0500 asked a question foreign_relay problem

Hi!

I'm trying to get a multimaster setup working. I have several computers/robots with identical hardware trying to talk to each other using foreign_relay from the multimaster_experimental stack.

I run something along the lines of:

rosrun foreign_relay foreign_relay adv http://OtherRobot:11311 test test

Then I start some topic on the local master:

rostopic pub -r 10 test std_msgs/String "hello"

Echoing the topic shows hello as expected.

I can also see a message from the foreign_relay that the topic has been registered on the foreign master with the correct message type. Checking the foreign master, the topic has indeed been started there, but there is no data being sent on it (no "hello" reaching the foreign master). I tried the above simulation using foreign_relay sub instead but with the same result.

I read this question: http://answers.ros.org/question/1040/help-troubleshooting-foreign-relay

This guy seems to have had the same problem as me, but his solution did not work for me. The two computers are already on the same subnet (on the same linksys router, with both computers having static IPs).

UPDATE: I tried the same setup, same commands on two different computers, connected to an entirely different network and I got the exact same result.

I also tried the solution suggested in http://answers.ros.org/question/1554/successful-use-of-wifi_comm but setting the ROS_IP and ROS_MASTER_URI in .bashrc and sourcing it did not help.

How come that master A can clearly connect to master B and register a topic there, but that sending data on the same topic doesn't work?

2011-12-20 23:09:51 -0500 commented answer Using Openni_launch in a multirobot system
I was trying for the same kind of setup with tf_prefix but couldn't get it set up properly, can you set the tf_prefix parameter in the <group> tag of the top level launch file? Sadly this setup won't work for me either way because I have limited bandwidth to work with. TF is too bandwidth intensive.
2011-12-15 01:57:47 -0500 commented answer Using Openni_launch in a multirobot system
Might not seem like such a problem at first (since the tf representation of the Kinect is static), but consider that tf only allows one parent for each frame... hence, the tf-kinect frame can only be attached to one robot.
2011-12-15 01:55:59 -0500 commented answer Using Openni_launch in a multirobot system
Yeah, I've also met problems with the Kinect launch files in general, where sometimes (more than I would like) it simply doesn't work and the only way to fix it is to relaunch the driver.
2011-12-15 01:54:42 -0500 commented answer Using Openni_launch in a multirobot system
The additional problem you will probably find out about soon is that even if you put nodes in a namespace, tf doesn't push down names. Hence, if you use tf in your system and run multiple robots, from the tf point of view there will only be one Kinect.
2011-12-13 20:08:33 -0500 received badge  Editor (source)
2011-12-13 04:01:12 -0500 asked a question Using Openni_launch in a multirobot system

Hello!

I am currently working on a huge project where several identical robots will work together using ROS as the framework. There will be a central roscore, with the same nodes/topics launched on each robot, but under different namespaces. I have successfully implemented this in my launchfiles using a group tag, but quickly hit another snag:

tf doesn't allow for namespaces the same way that nodes/topics do. I managed to solve this problem as well by setting the tf_prefix parameter for every node using tf (using some really ugly launchfile arguments).

The problem I'm standing before right now is a bit more difficult though. Each of the robots has a Kinect equipped, so the system will contain multiple Kinects, both nodes, topics and tf transforms.

Every approach I've tried so far has failed here. I can get the nodes/topics in the correct namespace, but I am unable to do the same for the Kinect.

I am using the

roslaunch openni_launch openni.launch

file to start the Kinect (which works fine in single robot systems).

Is there a way to have multiple Kinects in the same ROS system? Preferably not by changing the "camera" argument, since it would make the rest of the code unmanageable.

EDIT: I found this post: http://answers.ros.org/question/103/how-can-multiple-robots-communicate-using-ros where the answer suggests to use multiple masters. This would probably solve my problem at the expense of a few hours of coding. Still, it would be interesting to see if a single master solution is possible using openni_launch.

2011-11-24 05:47:19 -0500 commented answer Text to speech voices
Running Ubuntu 11.04 with the latest audio_common stack, I had the same problem as described above. I applied the last part of the solution (Set the voice to the null string, or "" in C++) and this works for me.
2011-11-15 19:32:47 -0500 commented answer Activating OpenNi depth registration by default
Thanks! I picked the second alternative since I prefer not to change the ROS files (then my system can work on a clean ROS install)
2011-11-15 19:31:52 -0500 marked best answer Activating OpenNi depth registration by default

A simple solution is to edit the openni_kinect/openni_launch/launch/includes/device.launch file and add the following param setting to the driver nodelet

<param name="depth_registration" value="true" />

An alternative solution which works for me is to use the dynparam command-line tool from inside your own launch script, e.g.

<node pkg="dynamic_reconfigure" type="dynparam" name="dynparam" args="set /camera/driver depth_registration true" />

which avoids the need to edit the launch files in the openni_kinect package.