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

jmueller's profile - activity

2020-03-03 12:44:45 -0500 received badge  Taxonomist
2018-09-28 03:19:24 -0500 received badge  Famous Question (source)
2017-07-10 10:06:25 -0500 received badge  Student (source)
2017-01-10 00:54:02 -0500 received badge  Notable Question (source)
2016-06-24 02:15:26 -0500 received badge  Popular Question (source)
2016-04-26 04:34:34 -0500 received badge  Famous Question (source)
2016-04-26 04:34:34 -0500 received badge  Notable Question (source)
2016-04-26 04:34:34 -0500 received badge  Popular Question (source)
2016-02-19 01:14:13 -0500 commented question actionlib done_cb does not get called/throws errors

In Case anyone stumbles upon this: It seems as if the "goal handle not tracked" issue only arises with rather large processor loads. Looking at the feedback messages can be used to get around not getting messages, even though it's not the nicest way. For now, this seems to work for me.

2016-02-11 02:33:41 -0500 received badge  Enthusiast
2016-02-10 04:06:50 -0500 commented question actionlib done_cb does not get called/throws errors

Okay, I left that in my head a little and noticed: I can actually find that I don't get feedback and send the goal again when I get no feedback for significantly longer than I would expect. Not exactly the cleanest way, but I will see if this works...

2016-02-06 08:03:03 -0500 asked a question actionlib with own spinning

Hi everyone,

when trying to get around this issue(the defined done_cb does not always get called even though a result message is being sent) I had the idea that I could use the usual ros::spin() instead of spinning up a separate thread for the action. So I am basically initializing the actionclient like this:

typedef actionlib::SimpleActionClient<flyToAction> Client;
Client* ac_;
...
static Client ac(action_name, false);
ac.waitForServer();
ac_ = &ac;

Which does work (almost) fine with the flag set to true (= spin up an own thread for messaging) - the issue that I have with that is described in the link above.

For reference, I am sending new goals as:

ac_->sendGoal(  actionGoal,
                boost::bind(&nodeToCoordinateConverter::doneCB, this, _1, _2),
                Client::SimpleActiveCallback(),
                boost::bind(&nodeToCoordinateConverter::feedbackCB, this, _1));
...
while (!arrived)
{
   ros::spinOnce();
   ros::Duration(0.1).sleep();
}

I.e. with a done_cb and a feedback_cb. In the done_cb I set the global variable arrived to true, so the loop should exit then. I expected that the ros::spinOnce() would also handle the callbacks from the action in this case, but it doesn't. Am I missing some implicit definition of another CallbackQueue that I need to define a spinner for? After reading the documentation that says the user must call spin() himself I thought the repeated calling of spinOnce() should be sufficient?

Cheers Joachim

2016-02-06 03:38:01 -0500 commented question actionlib done_cb does not get called/throws errors

Okay, I take that back: it still occurs. Interestingly, all the messages of the action just stop, all that is, but the status messages.

2016-02-05 01:10:47 -0500 commented question actionlib done_cb does not get called/throws errors

So, I actually tried the idea of logging the action messages together with the remaining stuff in a bag file - and at least for 50 runs (each one taking about 6 Minutes +starting/shutdown, bagfile parsing) the not calling issue did not occur. Could it be the fact that there are now 2 subscribers?

2016-02-04 09:57:45 -0500 asked a question actionlib done_cb does not get called/throws errors

Hi everyone,

after searching through quite a bit of code and questions I gave up and am now posting my question here. I followed the SimpleActionClient/Server Tutorials to write an action for a robot to move from one pose to another (ROS Indigo@Ubuntu 14.04). This is used in a fairly large (and admittedly a little ugly) piece of code that also does some thread juggling and uses multiple Callback Queues. Most of the time, it does it's job and I'm currently running it through a bunch of simulations with a simulated moving robot. While doing so (and only while in the simulations) I have been seeing error messages occasionally that seem to go back to line 443 in simple_action_client.h:

[ERROR] [1454599109.360150730]: Got a callback on a goalHandle that we're not tracking.                 This is an internal SimpleActionClient/ActionClient bug.                 This could also be a GoalID collision

As it mentioned there, I'm putting this off as an internal actionClient bug. It does not affect me for the feedback (as in the link above) but for finished goals. I adapted to that by checking against DONE and LOST in my done_cb:

void nodeToCoordinateConverter::doneCB( const actionlib::SimpleClientGoalState& state,
                                    const flyToResultConstPtr& result){
ROS_DEBUG_STREAM("Finished in state " << state.toString());
ROS_INFO_STREAM("Ended up at " << result->actual.x << " " << result->actual.y << " " << result->actual.z << " " << result->actual.yaw);

if (state == actionlib::SimpleClientGoalState::SUCCEEDED)
{
    arrived = true;
}
else if (state == actionlib::SimpleClientGoalState::LOST)
{
    ROS_WARN("Goal is in state LOST, will assume that I reached the goal...");
    arrived = true;
}}

I'm just mentioning this here in case it might be related to my actual problem.

What happens occasionally is that the whole goal processing just freezes, not calling this callback. Right before setting my goal as succeeded, I give a short info that my goal succeeded like this:

ROS_INFO_STREAM(action_name_ << " succeeded!");
// set the action state to succeeded
as_.setSucceeded(result_);

And usually, my console output will look like this for a goal:

Getting status over the wire.
fly_to succeeded!
Trying to transition to WAITING_FOR_RESULT
Transitioning CommState from ACTIVE to WAITING_FOR_RESULT
Trying to transition to DONE
Transitioning CommState from WAITING_FOR_RESULT to DONE
Transitioning SimpleState from [ACTIVE] to [DONE]
Finished in state SUCCEEDED
Ended up at 32.0361 17.5783 1.502 2.74032

Where the second line is the last from my Server and the two last lines are the first from my client done_cb. Now, sometimes, this just stops for one agent after the message:

fly_to succeeded!

But I don't get any of the further down messages. I looked a little through the simple_action_server_imp.h file and traced my call (through here and here) to publishing on some topic, nothing much can go wrong there (in my opinion). I know that on the other side, the first message

Trying to transition to WAITING_FOR_RESULT

Must come from the CommStateMachine<actionspec>::transitionToState call in /opt/ros/indigo/include/actionlib/client/comm_state_machine_imp.h:CommStateMachine<actionspec>::transitionToState:456 - but I don't know by what ... (more)

2013-08-08 14:22:07 -0500 received badge  Famous Question (source)
2013-07-08 06:44:50 -0500 marked best answer Problem using the provided groovy RPi Image

Hi Everyone!

So I was going for a quick test using the image provided here: ros.org/wiki/groovy/Installation/Raspbian/Source (sorry, I'm new here and not allowed to post Hyperlinks). After I flashed it to an SDcard and booted I found that ROS does not seem to be present at all (echo $ROS_DISTRO returns nothing, the different ROS_ variables are not present). I also tried setting up my WiFi, with no success (Dongle visible in lsusb, but not in lsmod, nor in ifconfig). When I tried to use the wpa_gui from the X environment, the Pi did not respond to keyboard or mouse input anymore. All the devices mentioned before are connected using a powered USB-hub. As a matter of fact, the Pi itself is powered from that hub.

So now I am wondering: either I am doing strange mistakes at many places or the image provided does not work (the way I think it should - Maybe I misunderstood the introductory text and only the source should be present. But what sense would be in that?). Has anyone tested the functionality of the mentioned image and could give me a hint as to what it is?

Cheers

2013-07-08 01:50:23 -0500 commented answer use chroot to rosmake

So, as expected,this works :) I also used my Pi's SD card (setup described http://www.raspberrypi.org/phpBB3/viewtopic.php?f=31&t=8478 (here)),but did have to comment out the contents of /etc/ld.so.preload, as described by kinsa http://xecdesign.com/qemu-emulating-raspberry-pi-the-easy-way/ (here)

2013-07-07 23:26:42 -0500 commented answer use chroot to rosmake

Oh, this looks very promising- I can't believe I did not think about setting up ROS in the chroot environment, but I am installing it at this moment. I will have to figure out the easiest way to get my executables to the pi later on-this will probably be using the SD card image itself for the chroot

2013-07-03 22:31:38 -0500 received badge  Notable Question (source)
2013-06-12 10:57:52 -0500 received badge  Popular Question (source)
2013-06-11 06:01:53 -0500 asked a question use chroot to rosmake

Hi everyone,

I read on multiple places about using chroot and qemu to compile ROS on a Raspberry Pi (the same will probably be done for other systems). There, it comes down to somehow map the calls of gcc to use the ARM-gcc and produce ARM binaries. Now what I want to do is compile new ROS nodes for ARM, actually using the convenient rosmake. Is that possible?

I went down some roads, none with actual success (for reference: http://www.raspberrypi.org/phpBB3/viewtopic.php?f=31&t=8478, http://sentryytech.blogspot.de/2013/02/faster-compiling-on-emulated-raspberry.html and also this: http://pastebin.com/4Jp1WPTb modified for ubuntu to my best belief - I apologize for the inconvenience, but I am not allowed to post links here). So instead of stating what I tried here right now and listing the errors I encountered (which would be cumbersome for everyone involved, as I don't really know what I am doing, but could be done) I wanted to ask if someone already managed to get ros commands running on an emulated system or has set up a cross-compile variant of rosmake? There might be a documented way out there, but I am lost right now.

All hints are appreciated :)

Edit: This one will not work for what I intend: http://www.ros.org/wiki/eros/Tutorials/Partial%20Cross. It says so explicitly: "No Nodes!"

Another Edit: So I finally set up sb2 and proved it working by compiling a sample program for ARM (sb2 gcc foo.c -o foo-arm). However, if I run the whole rosmake in sb2, my packages get skipped because of "No rule to make target None". I don't see where this leads me, but I suppose I'd need to pack the individual gcc commands into an sb2 "environment". I also had a look at the rostoolchain.cmake file in $ROS_ROOT, but that seems to be ignored. What do I have to do in order for my distribution to take notice of that one?

2013-06-11 02:43:18 -0500 answered a question unable to setup chroot environment

Hey there, I just stumbled upon your question with some other issue, and am not a pro on this myself, but I would think that you did not mount your Pi's SD card to /mnt using

sudo mount /dev/sdc2 /mnt

or probably some other path, like "/dev/mmcblk0p2" instead of "/dev/sdc2" (which is what I am using). You can find which path it is by calling "sudo fdisk -l" once without the card inserted and once with it. Spot the difference ;)

Then try to copy again.

Also, if you just want to use ROS on the RPi, have a look at my attempt here: http://answers.ros.org/question/63705/problem-using-the-provided-groovy-rpi-image/#64027 (darn, I'm still not allowed to post links...)

2013-06-09 20:35:23 -0500 received badge  Famous Question (source)
2013-06-05 08:14:02 -0500 received badge  Self-Learner (source)
2013-06-05 08:14:02 -0500 received badge  Teacher (source)
2013-05-31 11:34:41 -0500 received badge  Notable Question (source)
2013-05-30 21:29:37 -0500 received badge  Editor (source)
2013-05-30 21:23:56 -0500 answered a question Problem using the provided groovy RPi Image

Thanks so much to balto and davinci!

The download balto indicated (http://www.raspberrypi.org/phpBB3/viewtopic.php?f=37&t=6552&p=354127) is a little cumbersome (the fourth attempt did finally work w/o a CRC error), but the image itself works like a charm. Of course, the setup.bash needs to be sourced to use groovy (I used source /opt/ros/groovy/ros_catkin_ws/install_isolated/setup.bash and echo "source ~/catkin_ws/devel/setup.bash >> ~/.bashrc, the latter may be sufficient, followed by the usual source ~/.bashrc), but WiFi works instantly (with a Realtek-Chipset on the WiFi dongle). It does, however, barely fit on a 16GB SD card. As stated on the RPi forum, one might want to remove the two swapfiles used during compilation from "/" (sudo rm /swapfile*) to gain around 4GB of space.

EDIT: After some hazzle with the Image I swapped over to a stock image and installed ROS using a repository. The steps taken are described in a tutorial: http://www.ros.org/wiki/asctec_mav_framework/Tutorials/Raspberry%20Pi%20Setup (humm... in the preview the link worked, but for the final version, it is parsed completely different. Funny!) - it does not lead to a full ROS install, but should work for most basic stuff. You will most likely only want the first steps.

2013-05-29 01:03:53 -0500 received badge  Popular Question (source)