[ros-users] Core Dump

sean reynolds seanreynoldscs at gmail.com
Sat Apr 24 16:21:27 UTC 2010


I'm having an issue where my code fails repeatedly, but the launch file
keeps it running, and the robot keeps moving.
I simply want to keep the code from failing repeatedly.

This stack trace happens when the function below is exiting, and the "stack"
in ram is giving control back to the calling function...
Any help would be greatly appreciated.

I have a core dump with the following stack trace:
#6 refers to the line at the very end of the function below... Literally it
is the } closing out the function.
#7 refers to the first line calling this function.




#0  0xb80d7430 in __kernel_vsyscall ()
> (gdb) where
> #0  0xb80d7430 in __kernel_vsyscall ()
> #1  0xb79066d0 in raise () from /lib/tls/i686/cmov/libc.so.6
> #2  0xb7908098 in abort () from /lib/tls/i686/cmov/libc.so.6
> #3  0xb794424d in ?? () from /lib/tls/i686/cmov/libc.so.6
> #4  0xb79d8da8 in __fortify_fail () from /lib/tls/i686/cmov/libc.so.6
> #5  0xb79d8d60 in __stack_chk_fail () from /lib/tls/i686/cmov/libc.so.6
> #6  0x08054e7b in RobotMove::GoToPose (this=0x8c10e58, newPose=
>       {x = 4, y = 0, angleInDegrees = 90})
>     at
> /home/cec/s/s/sdr3/advancedMobileRobotics/robotSLAM/src/robotMove.cpp:56
> #7  0x0805e57a in Robot::ExploreUnknownArea (this=0x806d700,
>     new_command_publisher=0xbfac6314, size=160)
>     at
> /home/cec/s/s/sdr3/advancedMobileRobotics/robotSLAM/src/robot.cpp:161
> #8  0x08060941 in main (argc=0, argv=0xbfac63f4)
>     at
> /home/cec/s/s/sdr3/advancedMobileRobotics/robotSLAM/src/robotSLAM.cpp:70
>


This stack trace comes when I exit a function in my code.
The function is:

void RobotMove::GoToPose(Pose newPose){
>     xDestination = newPose.getX();
>     yDestination = newPose.getY();
>
>     double distance = closenessCutOff;
>     while (distance >= closenessCutOff) {
> //    cout << "Setup";
>
>         Pose currentPosition = (*masterControl).GetCurrentPosition();//
>
>         Vector avoidVector = (*masterControl).GetAvoidVector();
> //avoidVector.debug();
>         Vector driveVector(currentPosition.getX(), currentPosition.getY(),
> xDestination, yDestination);
>         distance = driveVector.getDistance();
>         TargetFunction(driveVector);
> //driveVector.debug();
>         driveVector.add(avoidVector);
> //driveVector.debug();
>         driveAlongVector(driveVector, currentPosition, maxSpeed, minSpeed,
> angleDampener);
> //cout << endl;
>     }
>     distance = 360;
>     while(distance >= Vector::dtor(65)){
>
>     //    Vector avoidVector = (*masterControl).GetAvoidVector();
>         Pose currentPosition =
> (*masterControl).GetCurrentPosition();//((*position).GetXPos(),
> (*position).GetYPos(), Vector::rtod((*position).GetYaw()));
>         Vector directionVector(.05, newPose.getAngle(), true);
>         driveAlongVector(directionVector, currentPosition, maxSpeed, 0,
> Vector::dtor(45));
>         distance = abs(fixAngle(Vector::dtor(currentPosition.getAngle()) -
> Vector::dtor(newPose.getAngle())));
>         //cout << "distance:" << distance << endl;
>     }
>     //(*masterControl).SetRobotSpeed(0, 0);
>
>
> }
>


And it is called from:

>         eachVantage = Pose(4, 0, 90);
>         (*robotDriver).GoToPose(eachVantage);
>         eachVantage = Pose(4, 4, 180);
>         (*robotDriver).GoToPose(eachVantage);
>         eachVantage = Pose(-4, 4, -90);
>         (*robotDriver).GoToPose(eachVantage);
>         eachVantage = Pose(-4, 0, 0);
>         (*robotDriver).GoToPose(eachVantage);
>         eachVantage = Pose(0, 0, 0);
>         (*robotDriver).GoToPose(eachVantage);
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osuosl.org/pipermail/ros-users/attachments/20100424/5f24f5f8/attachment-0002.html>


More information about the ros-users mailing list