TECHNOLOGY PLATFORM
Viroteq motion planning is the AI layer that turns a stacking decision into a safe, fast, collision-free robot trajectory. Sub-10ms path computation keeps cycle time tight, joint-limit and singularity optimisation keeps movement smooth, and payload-aware planning keeps every pick and place provably collision-free. As a result, the planner never becomes the bottleneck inside a Viroteq cell — instead, it unlocks the full speed of FANUC, ABB, KUKA, Universal Robots, Yaskawa, and Stäubli arms running in real production.

Path computation per pick
FANUC, ABB, KUKA, UR, Yaskawa
Multi-axis kinematics support
Deployed cells worldwide
Motion planning is the difference between a robot that looks impressive in a demo video and a robot that earns its keep on a real production line. Generic path-planning libraries can find a route from A to B, but a production-grade trajectory engine must compute that path inside a tight cycle window, validate it against every joint limit, every singularity, and every obstacle in the cell, and stay deterministic across millions of repetitions per year.
Joint limits are the first hurdle. A six-axis robot has six hard mechanical stops, and a naïve planner happily plans toward configurations that hit them mid-cycle. Singularities are the second — robot poses where small Cartesian moves require huge joint velocities, which trip safety controllers and stall the line. Furthermore, collision avoidance is not just about the robot body. The gripper, the payload, and the dynamically changing pallet stack all have to be modelled, otherwise the planner produces trajectories that crash into freshly placed cases.
Payload-aware trajectories add another axis of complexity. A 25 kg case carried at full reach behaves very differently from an empty gripper at the same pose — accelerations, inertias, and safe approach angles all shift. Open-source libraries like MoveIt for ROS provide good academic baselines, but turning them into something safe enough to run unattended on a 24/7 line requires substantial engineering on top.
Viroteq’s technology platform closes that gap. The engine runs at the edge on Industrial PCs, validates against the full cell model on every cycle, and integrates with the safety architecture defined by industry-standard practices. Therefore, every trajectory is provably collision-free before the controller receives it, and the line runs at full robot speed without compromise.


Every Viroteq planning cycle starts with a grasp pose produced by the StackrBrain runtime. The grasp pose describes where the gripper must approach the item, the goal pose describes where it must place the item on the pallet, and the cell model describes everything that must not be touched in between.
First, the planner runs a sampling-based path search through joint space using RRT-style and PRM-style algorithms, trained on production data to bias the sampler toward fast, smooth candidates. Next, an optimisation pass smooths the candidate path, removes redundant via-points, and respects joint velocity and acceleration limits. Then a final validation step checks the trajectory against every obstacle in the cell, the payload swept volume, and the safety zones defined for the cell.
Finally, the validated trajectory streams to the robot controller — FANUC, ABB, KUKA, Universal Robots, Yaskawa, or Stäubli — through native interfaces or the appropriate motion bridge. The whole pipeline runs in under 10 ms for typical six-axis arms, so it slots inside the cycle window of even the fastest palletizing automation stations.
Three Viroteq products rely on the same motion planning engine — RobotStackr OS for consistent palletizing runs, RobotStackr OTF for mixed-case real-time stacking, and RobotDepalr for inbound depalletizing. Therefore, one runtime drives every robot in the cell across palletizing, depalletizing, and mixed workflows.

RobotStackr OS uses the trajectory engine to drive consistent single-SKU palletizing at full robot speed. Pre-validated patterns combined with optimised joint-space paths deliver maximum throughput without singularity stalls or collision events.

RobotStackr OTF re-plans every trajectory in under 10 ms as cases arrive in unknown sequence. Real-time replanning makes mixed-case palletizing as smooth as single-SKU, with no pre-programmed paths and no manual teach steps.

RobotDepalr uses the trajectory engine to clear inbound pallets layer by layer, replanning around tilted, shifted, or partially picked stacks. Therefore, every pick avoids neighbouring cases and the cell stays productive even when supplier pallets arrive imperfectly stacked.
Full kinematic and dynamic collision checks against robot body, gripper, payload, pallet stack, and safety zones. Every trajectory is provably collision-free before the controller receives it, which keeps the cell safe at full robot speed and prevents costly crash events on unattended shifts.
Trajectories stay clear of hard joint stops and kinematic singularities through joint-space optimisation. The planner scores candidate paths on reach margin and smoothness, then rejects anything that would force costly mid-cycle reorientation. Therefore, the robot runs predictable, repeatable, full-speed cycles every time.
The planner factors in payload mass, inertia, and swept volume on every cycle. As a result, it picks safe approach angles, respects acceleration limits when carrying heavy items, and validates clearance for tall or wide payloads. The same engine handles empty grippers and 30 kg cases without operator intervention.
Motion planning is the algorithmic process by which a robot decides how to move from a start pose to a goal pose without hitting obstacles, exceeding joint limits, or entering singular configurations. In robotic palletizing, it converts a high-level instruction such as “pick this case and place it at coordinate X, Y, Z” into a fully validated joint-space trajectory that the robot controller can execute. Good path computation is fast, deterministic, and provably collision-free — which is why it sits at the heart of every robotic palletizing cell that runs reliably at full speed.
Furthermore, the topic matters because the alternative — manually programmed waypoints — does not scale to mixed-case workloads, dynamic pallet stacks, or changing item geometries. As a result, modern AI-powered path computation is what makes brand-agnostic robotic palletizing economically viable across every industry Viroteq serves.
FMCG bottling, canning, and packaging lines where the planner has to slot inside an aggressive cycle window. Sub-10ms path computation keeps every pick at full robot speed.
Building-materials and industrial distribution where each pallet contains a different mix. The planner replans every trajectory for each new SKU sequence without manual teach steps.
Sub-zero environments where motion smoothness matters for gripper longevity and product integrity. The engine optimises acceleration profiles to avoid thermal-shock-related issues on cold cases.
Dual-arm depalletizing or twin-cell palletizing where two robots share a workspace. The planner negotiates time-synchronised trajectories so the arms never collide and hand-offs stay seamless.
Yard and outdoor depalletizing cells where wind, weather, and uneven ground change the cell model dynamically. The engine revalidates trajectories on every cycle to stay safe.
Building-materials and industrial parts above 25 kg where payload-aware trajectories keep accelerations safe and approach angles respectful of gripper, robot, and worker safety.

The trajectory engine sustains 1000+ cases per hour with sub-10ms path computation and joint-optimal moves on six-axis FANUC, ABB, and KUKA arms.

Time-synchronised trajectory coordination across two or more robots sharing a workspace, with conflict resolution and negotiated hand-off zones for seamless cycles.

Payload-aware path computation for 25 to 50 kg items — accelerations, inertias, and approach angles are validated on every cycle for safe heavy lifting.
Trajectory computation per pick
Cells running Viroteq trajectory AI
Trajectory validation reliability

A path-planning engine that works in an academic demo is not the same thing as one that survives a 24/7 production floor. Real cells have hard joint limits that vary by robot vendor, kinematic singularities that trip safety controllers, and payloads that change inertial behaviour every cycle. Viroteq’s planner treats all of these as first-class constraints rather than corner cases.
Joint-limit handling is built into the optimiser. Every candidate trajectory is scored on reach margin so the planner naturally prefers paths that stay clear of mechanical stops. Singularity avoidance uses the manipulability index — a measure of how far the robot is from a singular configuration — to steer the search away from poses that would force enormous joint velocities to track small Cartesian moves. Furthermore, payload effects feed into the dynamic check: a 30 kg case at full reach gets a different acceleration profile than the same robot moving empty.
Safety zones are integrated directly into the planning model. Light curtains, fence boundaries, and dynamic obstacles from vision and sensor inputs all become exclusion volumes that no candidate trajectory may enter. As a result, every plan is consistent with the safety architecture defined by industry-standard practices such as ISO 10218 robot safety standards, which guides how collaborative and industrial robots must behave around people.
Finally, the engine balances time-optimal versus energy-optimal trajectories. A time-optimal trajectory minimises cycle time and maximises throughput. An energy-optimal one minimises joint accelerations and reduces wear on the gripper, robot, and mechanical structure. Customers can tune the trade-off through configuration. Therefore, the same runtime serves a high-speed FMCG line that prioritises cases-per-hour and a heavy-payload industrial cell that prioritises long-term mechanical life — without forking the software stack.
The Viroteq planner is brand-agnostic by design. Native interfaces exist for FANUC, ABB, KUKA, Universal Robots, Yaskawa, and Stäubli, so the same runtime drives every robot in the cell without vendor SDKs, proprietary teach pendants, or middleware boxes. Communication runs over REST API and WebSocket, which keeps the integration surface small and reviewable for plant IT teams. Furthermore, the planner accepts standard Denavit-Hartenberg parameters as well as custom kinematic chains, so non-standard arms, gantries, and seven-axis robots are supported through configuration rather than scripting.
As a result, the trajectory engine travels with the customer rather than the robot vendor. Mixed-brand fleets across cells keep one operator workflow, one HMI, and one set of API endpoints. In addition, the runtime sits on Industrial PCs inside the cell, so path-computation latency is bounded at the controller rather than the cloud, and the line stays operational during external network outages or audits.
Native trajectory bridge for FANUC R-30iB and R-30iA controllers via Stream Motion and PC interfaces.
Trajectory streaming for IRC5 and OmniCore controllers through Externally Guided Motion interfaces.
KUKA KR C4 and KR C5 controllers driven via RSI for low-latency trajectory streaming.
UR3, UR5, UR10, UR16 and UR20 cobots driven through the Real-Time Data Exchange for collaborative trajectory control.
Book a personalised demo and watch sub-10ms collision-free trajectories drive your robot of choice — FANUC, ABB, KUKA, UR, Yaskawa, or Stäubli — in a real Viroteq palletizing cell.
Bring your robot brand, payload spec, and cell layout — Viroteq specialists will map a motion planning deployment path that fits inside your existing cell and keeps the line running.
| Cookie | Duration | Description |
|---|---|---|
| cookielawinfo-checkbox-advertisement | 1 year | Set by the GDPR Cookie Consent plugin, this cookie records the user consent for the cookies in the "Advertisement" category. |
| cookielawinfo-checkbox-analytics | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Analytics". |
| cookielawinfo-checkbox-functional | 11 months | The cookie is set by GDPR cookie consent to record the user consent for the cookies in the category "Functional". |
| cookielawinfo-checkbox-necessary | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookies is used to store the user consent for the cookies in the category "Necessary". |
| cookielawinfo-checkbox-others | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Other. |
| cookielawinfo-checkbox-performance | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Performance". |
| CookieLawInfoConsent | 1 year | CookieYes sets this cookie to record the default button state of the corresponding category and the status of CCPA. It works only in coordination with the primary cookie. |
| elementor | never | The website's WordPress theme uses this cookie. It allows the website owner to implement or change the website's content in real-time. |
| viewed_cookie_policy | 11 months | The cookie is set by the GDPR Cookie Consent plugin and is used to store whether or not user has consented to the use of cookies. It does not store any personal data. |
| Cookie | Duration | Description |
|---|---|---|
| _lscache_vary | 2 days | Litespeed sets this cookie to provide the prevention of cached pages. |
| Cookie | Duration | Description |
|---|---|---|
| CONSENT | 2 years | YouTube sets this cookie via embedded YouTube videos and registers anonymous statistical data. |
| _ga | 1 year 1 month 4 days | Google Analytics sets this cookie to calculate visitor, session and campaign data and track site usage for the site's analytics report. The cookie stores information anonymously and assigns a randomly generated number to recognise unique visitors. |
| _ga_* | 1 year 1 month 4 days | Google Analytics sets this cookie to store and count page views. |
| Cookie | Duration | Description |
|---|---|---|
| VISITOR_INFO1_LIVE | 5 months 27 days | YouTube sets this cookie to measure bandwidth, determining whether the user gets the new or old player interface. |
| YSC | session | Youtube sets this cookie to track the views of embedded videos on Youtube pages. |
| yt.innertube::nextId | never | YouTube sets this cookie to register a unique ID to store data on what videos from YouTube the user has seen. |
| yt.innertube::requests | never | YouTube sets this cookie to register a unique ID to store data on what videos from YouTube the user has seen. |