[ros-users] Generic interface for Ackermann Steering based robots

Stefan Kohlbrecher stefan.kohlbrecher at googlemail.com
Sat Jan 28 16:52:19 UTC 2012


we use a Ackermann-driven based UGV for search and rescue scenarios.
It is based on a Kyosho Twinforce RC chassis (image for example here:
http://www.gkmm.tu-darmstadt.de/rescue/?q=node/8 ). We also use the
sbpl_lattice_planner for generating motion plans, but found the
navigation stack to be suboptimal for our application, as the vehicle
dynamics plus harsh terrain of the NIST standard arenas used for
RoboCup Rescue violates some of the assumptions made in the navigation
stack. For a 100kg+ platform moving on flat ground, the assumption
that odometry provides a stable short term reference frame for example
is very reasonable. For a <10kg vehicle going over pitch/roll ramps
OTOH there basically is no trustable odometry (see for example 1:05 in
this video: http://www.youtube.com/watch?v=nI1DWboC73w ,shows only
reactive driving as our planner back then did not work correctly)
So our current approach is to use SBPL based plans and not use a local
planner as provided by the navigation stack. The whole plan (generated
from SBPL or another planner) is sent to the vehicle controller, which
then closely follows it. The low level control system of the UGV
incorporates  a EKF-based INS that fuses data from inertial/magnetic
(IMU) sensors, SLAM pose estimates and wheel encoders and thus can
follow the plan nicely. I'll try to make a video of it in simulation
in the next few days. The code is not available in our open source
repository, but that might change if interest is there.


2012/1/27 Austin Hendrix <legotown at aol.com>:
> My personal robot is a ackermann-styke rover based on a traxxas slash. I have most of thenavigation stack up and running; in particular, my base subscribes to cmd_vel in the same way as a traditional base, and publishes the standard odometry messages and frames for the navigation stack. I'm using the sbpl_lattice_planner as the global navigation planner, and a custom local planner that deals with the constraints of an ackermann base.
> The stack with my local planner is at https://github.com/trainman419/Senior-Project/tree/interrupts/ros/ackermann_local_planner . It's a start, but it has a bug in that it doesn't deal with points on the path where the robot reverses direction; rather than target the reverse point, it targets some point past the reverse.
> My robot and navigation stack configuration is in this package: https://github.com/trainman419/Senior-Project/tree/interrupts/ros/dagny . Note that I have the navigation stack parameters tuned well below normal, becuase I am running a very slow processor (500MHz AMD Geode).
> -Austin
> Piyush <piyushk at gmail.com> wrote:
>>Hi ROS users,
>>I was wondering whether there was some interest in the community to
>>develop a common interface for Ackermann steering based robots. We
>>have an autonomous car using ROS (utexas-art-ros-pkg) for which we use
>>a proprietary message format to control the driver. We are now trying
>>to port over the code-base for a number of smaller robots based on the
>>traxxas platform to ROS. We were hoping to discuss the driver
>>interface along with an interface for some basic GPS based navigation
>>for the traxxas robots.
>>In case there are existing examples for this this type of work
>>already, I would appreciate it if someone could point them to me.
>>ros-users mailing list
>>ros-users at code.ros.org
> _______________________________________________
> ros-users mailing list
> ros-users at code.ros.org
> https://code.ros.org/mailman/listinfo/ros-users

More information about the ros-users mailing list