AgileX LIMO Motion Planning
During the fall 2024 semester at Boston University, our ME416 team — Miso Sukkar, Anvitha Nekkanti, and Aric Peng — was tasked with developing and testing path planning and control systems for the AgileX LIMO robot. The goal of the lab was to design feedforward and feedback controllers that would allow the robot to follow an optimal path, while also integrating motion capture data for real-time position correction and evaluation. Over the course of the lab, we explored the fundamentals of trajectory generation, controller tuning, and multi-phase integration — culminating in a robust hybrid control system capable of navigating complex obstacle courses. A video summarising our results is below.
Phase 1 — Feedforward and Feedback Control
Our first step was to build a feedforward controller for the LIMO, using a mathematical model of its motion. The LIMO’s turning radius was measured to be approximately 0.42 m, and its maximum forward velocity was around 0.25 m/s. With these values, we programmed a simple controller in MATLAB that computed the duration of each segment of a Dubins path — an optimal path consisting of straight lines and fixed-radius turns between two poses in a 2D plane.
In this setup, each segment of the Dubins path was categorized as a left turn, right turn, or straight line, and corresponding steering and drive commands were sent to the robot. The control loop used discrete time steps of 0.3 seconds, which matched the LIMO’s communication requirements. This approach worked reliably, moving the LIMO from start to goal with consistent heading accuracy. Position errors of around 8 cm were observed — mostly due to unmodeled dynamics such as friction and motor lag, which pure feedforward control cannot reject.
Once the feedforward baseline was established, we implemented a feedback controller to improve precision. The feedback loop relied on motion capture data collected from BU’s RASTIC OptiTrack system, which tracks reflective markers on the robot with millimeter-level accuracy. Using the NatNet SDK, we accessed position and orientation data in real time and transformed it into a convenient coordinate system aligned with the room’s XY plane.
With this live data, we implemented a PID controller that corrected the LIMO’s steering based on cross-track error — the perpendicular distance from its current position to the desired path. The Dubins trajectory was discretized into waypoints, and the PID controller dynamically adjusted the steering angle to minimize error. After tuning, the PD configuration (integral term disabled) performed best, achieving stable, accurate tracking of the path. The robot followed the plotted Dubins curves smoothly, confirming the controller’s effectiveness.
Phase 2 — A* Path Planning
In the second phase, we expanded our system with autonomous path planning. We selected the A* algorithm as the optimal choice due to its efficiency in finding the least-cost path based on both actual and heuristic distances. Unlike Depth-First or Breadth-First Search, A* intelligently balances exploration and cost minimization, making it ideal for real-time robotic navigation.
We used MATLAB’s plannerHybridAStar function to generate paths around obstacles in a simulated arena. The LIMO’s non-holonomic constraints — meaning it cannot move sideways and has a limited turning radius — were key considerations when defining the environment. A smaller grid size was chosen to produce smoother, more feasible paths that respected the robot’s minimum turning radius.
Once the path was generated, we scaled it to match the dimensions of the physical arena and executed it on the LIMO. During testing, we observed that the LIMO’s actual maximum velocity was closer to 0.18 m/s, not the initially assumed 0.25 m/s, which affected timing and control accuracy. After re-tuning, path-following performance improved significantly. Some small deviations during turns were still observed, likely due to wheel slip and steering limitations — effects that we later addressed with combined control strategies.
Phase 3 — Integrating Feedforward and Feedback Control
In the final phase, we merged the two approaches to create a hybrid feedforward-feedback controller. This design used a feedforward term based on the curvature of the upcoming path segment, allowing the robot to anticipate turns, while the feedback loop corrected for real-world disturbances. By tuning the proportional, derivative, and feedforward gains, we achieved a balance between responsiveness and stability.
The resulting controller was highly robust — the LIMO could follow paths with remarkable precision, even recovering gracefully from small collisions or bumps. The combined use of OptiTrack feedback, A*-generated trajectories, and feedforward curvature compensation made the system both stable and adaptable.
We successfully navigated all three assigned obstacle courses using this configuration. Scaling the environment and coordinate systems correctly was critical for success — particularly when converting from the 1×1 m grid of the MATLAB model to the 0.5×0.5 m physical arena. Once properly scaled and aligned, the robot tracked paths nearly perfectly.
Challenges and Observations
Despite the success of the hybrid controller, a few challenges arose. In crowded testing environments, nearby LIMO robots sometimes interfered with the OptiTrack motion capture, causing noisy “jumps” in the recorded trajectory. Reflective surfaces in the room occasionally distorted marker recognition as well. Additionally, on the final obstacle course, the goal point was positioned too close to a boundary, leading to collisions when the LIMO attempted to complete the path — a reminder of the importance of buffer zones in real-world planning.
Conclusion
Through this lab, our team gained hands-on experience integrating path planning, feedback control, and motion capture into a unified system. We learned how to tune PID parameters effectively, implement feedforward curvature control, and handle real-world factors like scaling and noise. Most importantly, we saw how combining model-based and sensor-based control yields far more robust performance than either alone.
The hybrid system we developed not only demonstrated strong theoretical understanding but also reflected the practical challenges and creativity inherent to real-world robotics — a rewarding step forward in our journey as controls engineers.




Comments