running move_base and stageros at 100Hz

classic Classic list List threaded Threaded
9 messages Options
Reply | Threaded
Open this post in threaded view
|

running move_base and stageros at 100Hz

FrederikHeger
I am trying to switch from running move_base with the default trajectory_planner_ros and a stage simulation at 10Hz (working) to the same thing but running at 100Hz. This is in preparation of running things on a real robot in the future.

I changed the controller_frequency parameter in move_base.xml (changed to 100) and the interval_sim parameter (changed to 10) in the world file used for stage. I also noticed a number of places in trajectory_planner.cpp where ".1" was hardcoded as the time increment. I changed those to ".01".

Trying to run what used to work at 10Hz, I now see a robot that moves way faster than it did before. It looks like there is still something assuming things are running at 10Hz.

Any suggestions on where to look or how to approach this issue better would be appreciated.

Thanks,
Fred
Reply | Threaded
Open this post in threaded view
|

Re: running move_base and stageros at 100Hz

Eitan Marder-Eppstein
Fred,

On Tue, Nov 30, 2010 at 3:39 PM, FrederikHeger <[hidden email]> wrote:

I am trying to switch from running move_base with the default
trajectory_planner_ros and a stage simulation at 10Hz (working) to the same
thing but running at 100Hz. This is in preparation of running things on a
real robot in the future.

I changed the controller_frequency parameter in move_base.xml (changed to
100) and the interval_sim parameter (changed to 10) in the world file used
for stage. I also noticed a number of places in trajectory_planner.cpp where
".1" was hardcoded as the time increment. I changed those to ".01".

A couple of things here. First off, you shouldn't have to change the controller_frequency parameter to 100Hz to get decent behavior on a real robot. In fact, depending on the machine you're using on your robot, you may have trouble with CPU usage when trying to run the local planner that quickly. Is there any reason in particular that you need to control your base at 100Hz? We've found control rates of between 10-20Hz to work pretty well on our robot here.

Second, the ".1" hard-coded time increment when using dwa for the local planner should really be a parameter, I've ticketed it here: https://code.ros.org/trac/ros-pkg/ticket/4601]
 

Trying to run what used to work at 10Hz, I now see a robot that moves way
faster than it did before. It looks like there is still something assuming
things are running at 10Hz.

I bet you got the hard coded ".1" in the trajectory_planner_ros.cpp file, but those are only used simulating trajectories that rotate in place... there are probably some that you missed in the trajectory_plannner.cpp file. Still not sure how I never noticed that stuff being hard coded.

Hope this helps,

Eitan
 

Any suggestions on where to look or how to approach this issue better would
be appreciated.

Thanks,
Fred
--
View this message in context: http://ros-users.122217.n3.nabble.com/running-move-base-and-stageros-at-100Hz-tp1996011p1996011.html
Sent from the ROS-Users mailing list archive at Nabble.com.
_______________________________________________
ros-users mailing list
[hidden email]
https://code.ros.org/mailman/listinfo/ros-users


_______________________________________________
ros-users mailing list
[hidden email]
https://code.ros.org/mailman/listinfo/ros-users
Reply | Threaded
Open this post in threaded view
|

Re: running move_base and stageros at 100Hz

Eric Perko
In reply to this post by FrederikHeger
Fred,

We ran into the Stage simulation time thing as well. See this thread on the Player-Stage list for some details: http://old.nabble.com/Stage-Update-Rate-td29948041.html .

Suffice to say, there are indeed parts of Stage that assume a 10Hz update rate and, when that update is different, can cause your robot to move at a multiple of normal speed within Stage (while still reporting the correct velocities.. it was fun trying to figure that one out).

- Eric

On Tue, Nov 30, 2010 at 6:39 PM, FrederikHeger <[hidden email]> wrote:

I am trying to switch from running move_base with the default
trajectory_planner_ros and a stage simulation at 10Hz (working) to the same
thing but running at 100Hz. This is in preparation of running things on a
real robot in the future.

I changed the controller_frequency parameter in move_base.xml (changed to
100) and the interval_sim parameter (changed to 10) in the world file used
for stage. I also noticed a number of places in trajectory_planner.cpp where
".1" was hardcoded as the time increment. I changed those to ".01".

Trying to run what used to work at 10Hz, I now see a robot that moves way
faster than it did before. It looks like there is still something assuming
things are running at 10Hz.

Any suggestions on where to look or how to approach this issue better would
be appreciated.

Thanks,
Fred
--
View this message in context: http://ros-users.122217.n3.nabble.com/running-move-base-and-stageros-at-100Hz-tp1996011p1996011.html
Sent from the ROS-Users mailing list archive at Nabble.com.
_______________________________________________
ros-users mailing list
[hidden email]
https://code.ros.org/mailman/listinfo/ros-users


_______________________________________________
ros-users mailing list
[hidden email]
https://code.ros.org/mailman/listinfo/ros-users
Reply | Threaded
Open this post in threaded view
|

Re: running move_base and stageros at 100Hz

Eitan Marder-Eppstein
That makes a lot more sense. I guess missing the "0.1" would mean you think that you can accelerate faster than you actually can up to some maximum speed, but that maximum speed should still be the same as at 10Hz once you reach it. That sounds like a real pain to find.

-Eitan

On Tue, Nov 30, 2010 at 4:03 PM, Eric Perko <[hidden email]> wrote:
Fred,

We ran into the Stage simulation time thing as well. See this thread on the Player-Stage list for some details: http://old.nabble.com/Stage-Update-Rate-td29948041.html .

Suffice to say, there are indeed parts of Stage that assume a 10Hz update rate and, when that update is different, can cause your robot to move at a multiple of normal speed within Stage (while still reporting the correct velocities.. it was fun trying to figure that one out).

- Eric

On Tue, Nov 30, 2010 at 6:39 PM, FrederikHeger <[hidden email]> wrote:

I am trying to switch from running move_base with the default
trajectory_planner_ros and a stage simulation at 10Hz (working) to the same
thing but running at 100Hz. This is in preparation of running things on a
real robot in the future.

I changed the controller_frequency parameter in move_base.xml (changed to
100) and the interval_sim parameter (changed to 10) in the world file used
for stage. I also noticed a number of places in trajectory_planner.cpp where
".1" was hardcoded as the time increment. I changed those to ".01".

Trying to run what used to work at 10Hz, I now see a robot that moves way
faster than it did before. It looks like there is still something assuming
things are running at 10Hz.

Any suggestions on where to look or how to approach this issue better would
be appreciated.

Thanks,
Fred
--
View this message in context: http://ros-users.122217.n3.nabble.com/running-move-base-and-stageros-at-100Hz-tp1996011p1996011.html
Sent from the ROS-Users mailing list archive at Nabble.com.
_______________________________________________
ros-users mailing list
[hidden email]
https://code.ros.org/mailman/listinfo/ros-users


_______________________________________________
ros-users mailing list
[hidden email]
https://code.ros.org/mailman/listinfo/ros-users



_______________________________________________
ros-users mailing list
[hidden email]
https://code.ros.org/mailman/listinfo/ros-users
Reply | Threaded
Open this post in threaded view
|

Re: running move_base and stageros at 100Hz

Eric Perko
It actually looked like it was a problem where one part of Stage was advancing by timesteps of 0.1 seconds at 20Hz (this would be whatever determines where the robot ends up in the Stage GUI and therefore where the data is simulated from) and another part of Stage was advancing by timesteps of 0.05 seconds at 20Hz (the position model that actually reports a location in order to simulate odometry). Basically, we'd tell the robot to go 2.5 meters forward, the odometry that ROS was outputting based on the position model would report 2.5 meters forward, but the robot would have moved 5 meters forward in the Stage GUI. It was always a multiple of the new update rate/10Hz... so for example it moves twice as far with a 20Hz update as a 10Hz update. It was quite entertaining to watch the robot teleport around with an update rate of 50 or 100Hz :)

We never did find the exact spot that was causing the problem even after digging through a good bit of the Stage source, but it looked like 10Hz was pretty well assumed throughout all of Stage.

- Eric

On Tue, Nov 30, 2010 at 7:07 PM, Eitan Marder-Eppstein <[hidden email]> wrote:
That makes a lot more sense. I guess missing the "0.1" would mean you think that you can accelerate faster than you actually can up to some maximum speed, but that maximum speed should still be the same as at 10Hz once you reach it. That sounds like a real pain to find.

-Eitan


On Tue, Nov 30, 2010 at 4:03 PM, Eric Perko <[hidden email]> wrote:
Fred,

We ran into the Stage simulation time thing as well. See this thread on the Player-Stage list for some details: http://old.nabble.com/Stage-Update-Rate-td29948041.html .

Suffice to say, there are indeed parts of Stage that assume a 10Hz update rate and, when that update is different, can cause your robot to move at a multiple of normal speed within Stage (while still reporting the correct velocities.. it was fun trying to figure that one out).

- Eric

On Tue, Nov 30, 2010 at 6:39 PM, FrederikHeger <[hidden email]> wrote:

I am trying to switch from running move_base with the default
trajectory_planner_ros and a stage simulation at 10Hz (working) to the same
thing but running at 100Hz. This is in preparation of running things on a
real robot in the future.

I changed the controller_frequency parameter in move_base.xml (changed to
100) and the interval_sim parameter (changed to 10) in the world file used
for stage. I also noticed a number of places in trajectory_planner.cpp where
".1" was hardcoded as the time increment. I changed those to ".01".

Trying to run what used to work at 10Hz, I now see a robot that moves way
faster than it did before. It looks like there is still something assuming
things are running at 10Hz.

Any suggestions on where to look or how to approach this issue better would
be appreciated.

Thanks,
Fred
--
View this message in context: http://ros-users.122217.n3.nabble.com/running-move-base-and-stageros-at-100Hz-tp1996011p1996011.html
Sent from the ROS-Users mailing list archive at Nabble.com.
_______________________________________________
ros-users mailing list
[hidden email]
https://code.ros.org/mailman/listinfo/ros-users


_______________________________________________
ros-users mailing list
[hidden email]
https://code.ros.org/mailman/listinfo/ros-users



_______________________________________________
ros-users mailing list
[hidden email]
https://code.ros.org/mailman/listinfo/ros-users



_______________________________________________
ros-users mailing list
[hidden email]
https://code.ros.org/mailman/listinfo/ros-users
Reply | Threaded
Open this post in threaded view
|

Re: running move_base and stageros at 100Hz

Jack O'Quin
On Tue, Nov 30, 2010 at 6:35 PM, Eric Perko <[hidden email]> wrote:

> It actually looked like it was a problem where one part of Stage was
> advancing by timesteps of 0.1 seconds at 20Hz (this would be whatever
> determines where the robot ends up in the Stage GUI and therefore where the
> data is simulated from) and another part of Stage was advancing by timesteps
> of 0.05 seconds at 20Hz (the position model that actually reports a location
> in order to simulate odometry). Basically, we'd tell the robot to go 2.5
> meters forward, the odometry that ROS was outputting based on the position
> model would report 2.5 meters forward, but the robot would have moved 5
> meters forward in the Stage GUI. It was always a multiple of the new update
> rate/10Hz... so for example it moves twice as far with a 20Hz update as a
> 10Hz update. It was quite entertaining to watch the robot teleport around
> with an update rate of 50 or 100Hz :)
> We never did find the exact spot that was causing the problem even after
> digging through a good bit of the Stage source, but it looked like 10Hz was
> pretty well assumed throughout all of Stage.

Is this problem found in the ROS-packaged stage version 3.2.2?
--
 joq
_______________________________________________
ros-users mailing list
[hidden email]
https://code.ros.org/mailman/listinfo/ros-users
Reply | Threaded
Open this post in threaded view
|

Re: running move_base and stageros at 100Hz

Eric Perko
Yup. This was just maybe a month or month and a half ago with C-Turtle, and it looks like Stage was updated to 3.2.2 long before then.

- Eric

On Tue, Nov 30, 2010 at 7:51 PM, Jack O'Quin <[hidden email]> wrote:
On Tue, Nov 30, 2010 at 6:35 PM, Eric Perko <[hidden email]> wrote:
> It actually looked like it was a problem where one part of Stage was
> advancing by timesteps of 0.1 seconds at 20Hz (this would be whatever
> determines where the robot ends up in the Stage GUI and therefore where the
> data is simulated from) and another part of Stage was advancing by timesteps
> of 0.05 seconds at 20Hz (the position model that actually reports a location
> in order to simulate odometry). Basically, we'd tell the robot to go 2.5
> meters forward, the odometry that ROS was outputting based on the position
> model would report 2.5 meters forward, but the robot would have moved 5
> meters forward in the Stage GUI. It was always a multiple of the new update
> rate/10Hz... so for example it moves twice as far with a 20Hz update as a
> 10Hz update. It was quite entertaining to watch the robot teleport around
> with an update rate of 50 or 100Hz :)
> We never did find the exact spot that was causing the problem even after
> digging through a good bit of the Stage source, but it looked like 10Hz was
> pretty well assumed throughout all of Stage.

Is this problem found in the ROS-packaged stage version 3.2.2?
--
 joq
_______________________________________________
ros-users mailing list
[hidden email]
https://code.ros.org/mailman/listinfo/ros-users


_______________________________________________
ros-users mailing list
[hidden email]
https://code.ros.org/mailman/listinfo/ros-users
Reply | Threaded
Open this post in threaded view
|

Re: running move_base and stageros at 100Hz

Jack O'Quin
On Tue, Nov 30, 2010 at 7:06 PM, Eric Perko <[hidden email]> wrote:
> Yup. This was just maybe a month or month and a half ago with C-Turtle, and
> it looks like Stage was updated to 3.2.2 long before then.

Yes, 3.2.2 is the ROS cturtle version. It was the latest stage release
at the time cturtle was frozen.

Is there a patch to fix that bug?
--
 joq
_______________________________________________
ros-users mailing list
[hidden email]
https://code.ros.org/mailman/listinfo/ros-users
Reply | Threaded
Open this post in threaded view
|

Re: running move_base and stageros at 100Hz

Michael_Quinlan
This post has NOT been accepted by the mailing list yet.
It looks like nobody patched stage ... I'm noticing the problem when making stage run at 20hz (our robot travels about twice as fast).

I'm going to try and fix it for my case and then maybe a generic patch if I can work out how do that in stage. But if somebody else has already fixed it then a patch would be great.