<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v1.3 20210610//EN" "JATS-journalpublishing1-3-mathml3.dtd">
<article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ali="http://www.niso.org/schemas/ali/1.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" article-type="brief-report" dtd-version="1.3" xml:lang="EN">
<front>
<journal-meta>
<journal-id journal-id-type="publisher-id">Front. Manuf. Technol.</journal-id>
<journal-title-group>
<journal-title>Frontiers in Manufacturing Technology</journal-title>
<abbrev-journal-title abbrev-type="pubmed">Front. Manuf. Technol.</abbrev-journal-title>
</journal-title-group>
<issn pub-type="epub">2813-0359</issn>
<publisher>
<publisher-name>Frontiers Media S.A.</publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="publisher-id">1642524</article-id>
<article-id pub-id-type="doi">10.3389/fmtec.2025.1642524</article-id>
<article-version article-version-type="Version of Record" vocab="NISO-RP-8-2008"/>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Brief Research Report</subject>
</subj-group>
</article-categories>
<title-group>
<article-title>Smart placement, faster robots&#x2014;a comparison of algorithms for robot base-pose optimization</article-title>
<alt-title alt-title-type="left-running-head">Mayer and Althoff</alt-title>
<alt-title alt-title-type="right-running-head">
<ext-link ext-link-type="uri" xlink:href="https://doi.org/10.3389/fmtec.2025.1642524">10.3389/fmtec.2025.1642524</ext-link>
</alt-title>
</title-group>
<contrib-group>
<contrib contrib-type="author" corresp="yes">
<name>
<surname>Mayer</surname>
<given-names>Matthias</given-names>
</name>
<xref ref-type="aff" rid="aff1"/>
<xref ref-type="corresp" rid="c001">&#x2a;</xref>
<uri xlink:href="https://loop.frontiersin.org/people/3088711"/>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Methodology" vocab-term-identifier="https://credit.niso.org/contributor-roles/methodology/">Methodology</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Software" vocab-term-identifier="https://credit.niso.org/contributor-roles/software/">Software</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Writing &#x2013; original draft" vocab-term-identifier="https://credit.niso.org/contributor-roles/writing-original-draft/">Writing - original draft</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Investigation" vocab-term-identifier="https://credit.niso.org/contributor-roles/investigation/">Investigation</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Visualization" vocab-term-identifier="https://credit.niso.org/contributor-roles/visualization/">Visualization</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Data curation" vocab-term-identifier="https://credit.niso.org/contributor-roles/data-curation/">Data curation</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Validation" vocab-term-identifier="https://credit.niso.org/contributor-roles/validation/">Validation</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Writing &#x2013; review &#x26; editing" vocab-term-identifier="https://credit.niso.org/contributor-roles/Writing - review &#x26; editing/">Writing - review and editing</role>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Althoff</surname>
<given-names>Matthias</given-names>
</name>
<xref ref-type="aff" rid="aff1"/>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Conceptualization" vocab-term-identifier="https://credit.niso.org/contributor-roles/conceptualization/">Conceptualization</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Methodology" vocab-term-identifier="https://credit.niso.org/contributor-roles/methodology/">Methodology</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Supervision" vocab-term-identifier="https://credit.niso.org/contributor-roles/supervision/">Supervision</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Project administration" vocab-term-identifier="https://credit.niso.org/contributor-roles/project-administration/">Project administration</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Resources" vocab-term-identifier="https://credit.niso.org/contributor-roles/resources/">Resources</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Funding acquisition" vocab-term-identifier="https://credit.niso.org/contributor-roles/funding-acquisition/">Funding acquisition</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Writing &#x2013; review &#x26; editing" vocab-term-identifier="https://credit.niso.org/contributor-roles/Writing - review &#x26; editing/">Writing - review and editing</role>
</contrib>
</contrib-group>
<aff id="aff1">
<institution>Chair of Robotics, Artificial Intelligence and Real-Time Systems, TUM School of Computation, Information and Technology, Technical University of Munich</institution>, <city>Munich</city>, <country country="DE">Germany</country>
</aff>
<author-notes>
<corresp id="c001">
<label>&#x2a;</label>Correspondence: Matthias Mayer, <email xlink:href="mailto:matthias.mayer@tum.de">matthias.mayer@tum.de</email>
</corresp>
</author-notes>
<pub-date publication-format="electronic" date-type="pub" iso-8601-date="2026-03-06">
<day>06</day>
<month>03</month>
<year>2026</year>
</pub-date>
<pub-date publication-format="electronic" date-type="collection">
<year>2025</year>
</pub-date>
<volume>5</volume>
<elocation-id>1642524</elocation-id>
<history>
<date date-type="received">
<day>06</day>
<month>06</month>
<year>2025</year>
</date>
<date date-type="rev-recd">
<day>05</day>
<month>11</month>
<year>2025</year>
</date>
<date date-type="accepted">
<day>18</day>
<month>11</month>
<year>2025</year>
</date>
</history>
<permissions>
<copyright-statement>Copyright &#xa9; 2026 Mayer and Althoff.</copyright-statement>
<copyright-year>2026</copyright-year>
<copyright-holder>Mayer and Althoff</copyright-holder>
<license>
<ali:license_ref start_date="2026-03-06">https://creativecommons.org/licenses/by/4.0/</ali:license_ref>
<license-p>This is an open-access article distributed under the terms of the <ext-link ext-link-type="uri" xlink:href="https://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution License (CC BY)</ext-link>. The use, distribution or reproduction in other forums is permitted, provided the original author(s) and the copyright owner(s) are credited and that the original publication in this journal is cited, in accordance with accepted academic practice. No use, distribution or reproduction is permitted which does not comply with these terms.</license-p>
</license>
</permissions>
<abstract>
<p>Robotic automation is a key technology that increases the efficiency and flexibility of manufacturing processes. However, one of the challenges in deploying robots in novel environments is finding the optimal base pose for the robot, which affects its reachability and deployment cost. Yet, existing research on automatically optimizing the base pose of robots has not been compared. We address this problem by optimizing the base pose of industrial robots with Bayesian optimization (BO), exhaustive search (ES), genetic algorithms (GAs), and stochastic gradient descent (SGD), and we find that all algorithms can reduce the cycle time for various evaluated tasks in synthetic and real-world environments. Stochastic gradient descent shows superior performance with regard to the success rate, solving more than <inline-formula id="inf1">
<mml:math id="m1">
<mml:mrow>
<mml:mn>90</mml:mn>
<mml:mi>%</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> of our real-world tasks, while genetic algorithms show the lowest final costs. All benchmarks and implemented methods are available as baselines against which novel approaches can be compared.</p>
</abstract>
<kwd-group>
<kwd>performance evaluation and benchmarking</kwd>
<kwd>methods and tools for robot system design</kwd>
<kwd>industrial robots</kwd>
<kwd>base-pose optimization</kwd>
<kwd>robot placement</kwd>
</kwd-group>
<funding-group>
<award-group id="gs1">
<funding-source id="sp1">
<institution-wrap>
<institution>Deutsche Forschungsgemeinschaft</institution>
<institution-id institution-id-type="doi" vocab="open-funder-registry" vocab-identifier="10.13039/open_funder_registry">10.13039/501100001659</institution-id>
</institution-wrap>
</funding-source>
</award-group>
<funding-statement>The authors declare that financial support was received for the research and/or publication of this article. This work was supported by the Deutsche Forschungsgemeinschaft (German Research Foundation) under grant number AL 1185/31-1.</funding-statement>
</funding-group>
<counts>
<fig-count count="3"/>
<table-count count="1"/>
<equation-count count="7"/>
<ref-count count="28"/>
<page-count count="10"/>
</counts>
<custom-meta-group>
<custom-meta>
<meta-name>section-at-acceptance</meta-name>
<meta-value>Industrial Robotics and Automation</meta-value>
</custom-meta>
</custom-meta-group>
</article-meta>
</front>
<body>
<sec sec-type="intro" id="s1">
<label>1</label>
<title>Introduction</title>
<p>An often overlooked factor in the deployment of robots is the positioning of their base, which can substantially improve their performance, usually without additional monetary cost. The trend toward lighter robots also supports a more flexible base-pose selection as these robots need less sturdy foundations. By optimizing the placement of the robot, we can unlock hardware savings by making a robot more productive or by making it possible to use a simpler (modular) robot.</p>
<p>In this paper, we compare algorithms that optimize the base pose of robots to improve their productivity. We focus on methods that do not require significant adaptations to a specific robot, such that they can, in principle, accommodate changing modular robots. Within the literature, we found exhaustive search (ES) (<xref ref-type="bibr" rid="B14">Lechler et al., 2021</xref>), gradient-based methods (<xref ref-type="bibr" rid="B26">Son and Kwon, 2019</xref>), genetic algorithms (GAs) (<xref ref-type="bibr" rid="B21">Mitsi et al., 2008</xref>), and Bayesian optimization (BO) (<xref ref-type="bibr" rid="B9">Kim et al., 2021</xref>) as the most used methods to optimize robotic base poses. To apply gradient-based methods to arbitrary robots, we adapted Adam (<xref ref-type="bibr" rid="B10">Kingma and Ba, 2015</xref>), a stochastic gradient descent (SGD) method, to base placement optimization. Compared to the study by <xref ref-type="bibr" rid="B26">Son and Kwon (2019)</xref>, which assumes a spherical wrist, our SGD only requires a well-defined forward kinematics.</p>
<p>Our evaluation reveals that SGD succeeds significantly more often than other methods in the tasks with the most goals. In contrast, GA significantly lowers cycle times in tasks that force the robot to be placed in one part of the optimization domain, as shown in <xref ref-type="fig" rid="F1">Figure 1b</xref>. In most cases, BO is significantly outperformed, having the lowest success rate and the highest average cycle times. Additionally, we find strong generalization abilities for the fine-tuned algorithms, particularly for the task set containing 3D-scanned environments, as shown in <xref ref-type="fig" rid="F1">Figure 1a</xref>.</p>
<fig id="F1" position="float">
<label>FIGURE 1</label>
<caption>
<p>Visualization of the optimized base pose <inline-formula id="inf2">
<mml:math id="m2">
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2a;</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> of robot<xref ref-type="fn" rid="fn6">
<sup>6</sup>
</xref> <inline-formula id="inf3">
<mml:math id="m3">
<mml:mrow>
<mml:mi>R</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> solving point-to-point movements in two different environments. The trajectory <inline-formula id="inf4">
<mml:math id="m4">
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> connects the goal poses drawn as coordinate frames. On the left, we indicate the allowed base positions of the robot <inline-formula id="inf5">
<mml:math id="m5">
<mml:mrow>
<mml:mi mathvariant="script">B</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> in 3D space by the green outline of a box. Additional information, such as animations and all other best solutions, is available at <ext-link ext-link-type="uri" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://cobra.cps.cit.tum.de/tools/rbo">https://cobra.cps.cit.tum.de/tools/rbo</ext-link>. <bold>(a)</bold> Robot solving the task inside the 3D scan. <bold>(b)</bold> Robot solving the task in the edge set.</p>
</caption>
<graphic xlink:href="fmtec-05-1642524-g001.tif">
<alt-text content-type="machine-generated">Visualization of two found solutions in a task based on a 3D scan of a workshop from the real set of tasks and a synthetic task from the edge set of task where the robot has to reach between multiple densely packed cubic obstacles. The robots optimized base pose and the trajectory between the goal poses are shown. In the 3D scan additionally the cubic outline of the optimization domain is visualized to show its size relative to the industrial machines. The robot is shown at one (left) and multiple (right) configurations along the end-effector trajectory.</alt-text>
</graphic>
</fig>
<sec id="s1-1">
<label>1.1</label>
<title>Related work</title>
<p>We summarize the state of the art for base placement optimization and discuss related and established benchmarks. Optimizing the base pose can be considered part of laying out a manufacturing system. <xref ref-type="bibr" rid="B22">Moslemipour et al. (2012)</xref> discussed different methods, mostly from derivative-free black-box optimization.</p>
<p>Noticeable exceptions are <xref ref-type="bibr" rid="B26">Son and Kwon (2019)</xref> and <xref ref-type="bibr" rid="B3">Baumg&#xe4;rtner et al. (2024)</xref>, which formulate base placement optimization as (convex) optimization problems. <xref ref-type="bibr" rid="B26">Son and Kwon (2019)</xref> exploited the fact that the inverse kinematics of industrial robots with spherical wrists can be decomposed into a positioning and orientation sub-problem. <xref ref-type="bibr" rid="B3">Baumg&#xe4;rtner et al. (2024)</xref> optimized the entire robot structure, but particularly the robot base, jointly in a trajectory tracking problem. They modeled the base as a set of zero-velocity joints and solved the whole optimization via collocation.</p>
<p>We group the remaining methods into exhaustive search, capability maps, genetic algorithms, and Bayesian optimization.<list list-type="alpha-lower">
<list-item>
<p>ES: This method optimizes the base position of an industrial robot by evaluating all base positions on an equidistant grid (<xref ref-type="bibr" rid="B14">Lechler et al., 2021</xref>).</p>
</list-item>
<list-item>
<p>Capability maps: Another approach is capability maps, as used by <xref ref-type="bibr" rid="B5">Boschetti et al. (2013)</xref>, <xref ref-type="bibr" rid="B16">Lin et al. (2017)</xref>, and <xref ref-type="bibr" rid="B18">Makhal and Goins (2018)</xref>. All of these exploit rather expensive pre-calculations of capability maps for the considered robots, e.g., discretizing the robot workspace into voxels and storing the manipulability at the center of each voxel. These approaches position the robot such that all desired workspace poses lie within the areas of high capability.</p>
</list-item>
<list-item>
<p>GAs: <xref ref-type="bibr" rid="B21">Mitsi et al. (2008)</xref> used genetic algorithms to jointly optimize the base position and initial guesses for numerical inverse kinematic solutions. The initial inverse kinematic guesses are refined by local search using a quasi-Newton algorithm. A fitness function evaluates the closeness to all desired poses and maximizes manipulability at the desired poses. </p>
<p>Recently, base poses and modular reconfigurable robots have been jointly optimized by <xref ref-type="bibr" rid="B24">Romiti et al. (2023)</xref>, <xref ref-type="bibr" rid="B15">Lei et al. (2024)</xref>, and <xref ref-type="bibr" rid="B19">Mayer and Althoff (2025)</xref>. They encoded the base pose as up to six additional discretized genes for position and orientation and prepended them to the robot module encoding.</p>
</list-item>
<list-item>
<p>BO: <xref ref-type="bibr" rid="B9">Kim et al. (2021)</xref> used BO to optimize the shoulder placement of the arms of a bimanual humanoid robot. The authors particularly highlighted the ability to explore and exploit the Pareto front of optimal base poses with regard to a set of different manipulation tasks the robot should fulfill.</p>
</list-item>
<list-item>
<p>Benchmarks: The previous base placement optimization algorithms have not yet been compared on a common set of benchmark tasks. In the robotics community, various benchmark suites have helped select promising algorithms for many related problems. One example is motion planning, where Table 1 in <xref ref-type="bibr" rid="B6">Chamzas et al. (2022)</xref> provided a great overview of available benchmarks. Moreover, in the area of grasp planning, various benchmark sets and challenges have been proposed, as summarized by <xref ref-type="bibr" rid="B17">Mahler et al. (2019)</xref> (p. 1). Within the area of robotic assembly, challenges such as those run by NIST<xref ref-type="fn" rid="fn1">
<sup>1</sup>
</xref> have helped make progress in tasks such as the insertion of various parts and the handling of limp objects, e.g., wires and belts. The found benchmarks either excluded the robot base position from the optimization problem (<xref ref-type="bibr" rid="B6">Chamzas et al., 2022</xref>; <xref ref-type="bibr" rid="B17">Mahler et al., 2019</xref>), focusing on the motion/grasp planning problem, or left the whole system design open (NIST), such that the base optimization cannot be analyzed on its own. To isolate the base optimization, we use the benchmark suite CoBRA (<xref ref-type="bibr" rid="B20">Mayer et al., 2024</xref>), which describes various robotic tasks, including motion goals, obstacles to move around, and constraints to obey. Specifcally, we rely on CoBRA to define the optimization domain <inline-formula id="inf6">
<mml:math id="m6">
<mml:mrow>
<mml:mi mathvariant="script">B</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> for the robot base and to provide (modular) robots to solve our tasks with. These found solutions can be executed on real robots, as shown by <xref ref-type="bibr" rid="B5">Boschetti et al. (2013)</xref>, <xref ref-type="bibr" rid="B16">Lin et al. (2017)</xref>, <xref ref-type="bibr" rid="B18">Makhal and Goins (2018)</xref>, <xref ref-type="bibr" rid="B24">Romiti et al. (2023)</xref>, <xref ref-type="bibr" rid="B15">Lei et al. (2024)</xref>, and <xref ref-type="bibr" rid="B19">Mayer and Althoff (2025)</xref>. </p>
<p>We focus on robotic tasks that require point-to-point movements, as can be found, e.g., in machine tending, (spot) welding, or dispensing, which were used by <xref ref-type="bibr" rid="B14">Lechler et al. (2021)</xref>, <xref ref-type="bibr" rid="B5">Boschetti et al. (2013)</xref>, <xref ref-type="bibr" rid="B18">Makhal and Goins (2018)</xref> <xref ref-type="bibr" rid="B21">Mitsi et al. (2008)</xref>, and <xref ref-type="bibr" rid="B9">Kim et al. (2021)</xref>. According to the <xref ref-type="bibr" rid="B8">IFR International Federation of Robotics (2024)</xref>, these still constitute the majority of tasks automated by robots, ensuring the broad applicability of our approach.</p>
</list-item>
</list>
</p>
</sec>
<sec id="s1-2">
<label>1.2</label>
<title>Contributions</title>
<p>We present the first work comparing base placement optimization algorithms on a set of benchmarks and adapt Adam (<xref ref-type="bibr" rid="B10">Kingma and Ba, 2015</xref>), an SGD method, to the base placement optimization problem. In particular, we<list list-type="bullet">
<list-item>
<p>compare base placement optimization methods [GA, BO, random sampling (RS), and SGD] with respect to cost convergence and success rate;</p>
</list-item>
<list-item>
<p>propose benchmarks for base placement optimization;</p>
</list-item>
<list-item>
<p>for the first time, apply SGD base placement optimization;</p>
</list-item>
<list-item>
<p>test the generalizability of base placement optimization methods to various tasks and with different allowed base poses;</p>
</list-item>
<list-item>
<p>systematically tune the hyperparameters of GA, BO, and SGD for base placement optimization.</p>
</list-item>
</list>
</p>
<p>In <xref ref-type="sec" rid="s2">Section 2</xref>, we define the optimization problem and introduce the evaluated methods. <xref ref-type="sec" rid="s3">Section 3</xref> states the setup for our evaluation and summarizes the results. These are discussed in <xref ref-type="sec" rid="s4">Section 4</xref>, which is followed by a conclusion in <xref ref-type="sec" rid="s5">Section 5</xref>.</p>
</sec>
</sec>
<sec sec-type="methods" id="s2">
<label>2</label>
<title>Methods</title>
<p>This section defines the base placement optimization problem and presents how the considered optimization methods can solve it. We closely follow the notation introduced in CoBRA (<xref ref-type="bibr" rid="B20">Mayer et al., 2024</xref>). In summary, we use lowercase letters for scalars, e.g., <inline-formula id="inf7">
<mml:math id="m7">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">f</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2208;</mml:mo>
<mml:mi mathvariant="double-struck">R</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>; bars to indicate vectors, e.g., <inline-formula id="inf8">
<mml:math id="m8">
<mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>b</mml:mi>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2208;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="double-struck">R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>; uppercase and bold letters for poses, e.g., <inline-formula id="inf9">
<mml:math id="m9">
<mml:mrow>
<mml:mi mathvariant="bold">B</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>; and calligraphic letters for sets, e.g., <inline-formula id="inf10">
<mml:math id="m10">
<mml:mrow>
<mml:mi mathvariant="script">G</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
<p>Our robotic tasks are given as a tuple containing a set of goal poses for the end effector <inline-formula id="inf11">
<mml:math id="m11">
<mml:mrow>
<mml:mi mathvariant="script">G</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>, a set of constraint functions <inline-formula id="inf12">
<mml:math id="m12">
<mml:mrow>
<mml:mi mathvariant="script">C</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>, a set of environment obstacles <inline-formula id="inf13">
<mml:math id="m13">
<mml:mrow>
<mml:mi mathvariant="script">O</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>, and a cost function <inline-formula id="inf14">
<mml:math id="m14">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>J</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">C</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>. The set of constraints <inline-formula id="inf15">
<mml:math id="m15">
<mml:mrow>
<mml:mi mathvariant="script">C</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> enforces common desired properties, such as respecting the joint limits and avoiding collisions with <inline-formula id="inf16">
<mml:math id="m16">
<mml:mrow>
<mml:mi mathvariant="script">O</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>. For each task, a trajectory <inline-formula id="inf17">
<mml:math id="m17">
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> and base pose <inline-formula id="inf18">
<mml:math id="m18">
<mml:mrow>
<mml:mi mathvariant="bold">B</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:mi>S</mml:mi>
<mml:mi>E</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, i.e., a position and orientation<xref ref-type="fn" rid="fn2">
<sup>2</sup>
</xref>, need to be found that satisfy all constraints in <inline-formula id="inf19">
<mml:math id="m19">
<mml:mrow>
<mml:mi mathvariant="script">C</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>. The trajectory needs to pass through all goals <inline-formula id="inf20">
<mml:math id="m20">
<mml:mrow>
<mml:mi mathvariant="script">G</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> during its execution time <inline-formula id="inf21">
<mml:math id="m21">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">f</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, as described in <xref ref-type="sec" rid="s2-5">Section 2.5</xref>.</p>
<p>Our paper aims to find the optimal base pose<disp-formula id="e2">
<mml:math id="m24">
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2a;</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:munder>
<mml:mrow>
<mml:mi>arg min</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold">B</mml:mi>
</mml:mrow>
</mml:munder>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>J</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">C</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>R</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="bold">B</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>x</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:math>
<label>(1)</label>
</disp-formula>subject to <disp-formula id="e3">
<mml:math id="m26">
<mml:mrow>
<mml:mo>&#x2200;</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mi>0</mml:mi>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi mathvariant="bold">f</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2200;</mml:mo>
<mml:mi>c</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:mi mathvariant="script">C</mml:mi>
<mml:mo>:</mml:mo>
<mml:mi>c</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="bold">B</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>R</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2264;</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo>.</mml:mo>
</mml:mrow>
</mml:math>
<label>(2)</label>
</disp-formula>For notational convenience, we additionally introduce the set of base poses that fulfill all constraints:<disp-formula id="e1">
<mml:math id="m23">
<mml:mrow>
<mml:mi mathvariant="script">B</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mfenced open="{" close="}">
<mml:mrow>
<mml:mi mathvariant="bold">B</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:mi>S</mml:mi>
<mml:mi>E</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:mfenced>
<mml:mo stretchy="false">&#x2223;</mml:mo>
<mml:mo>&#x2200;</mml:mo>
<mml:mi>c</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:mi mathvariant="script">C</mml:mi>
<mml:mo>:</mml:mo>
<mml:mi>c</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="bold">B</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>R</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2264;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:mfenced>
<mml:mo>.</mml:mo>
</mml:mrow>
</mml:math>
<label>(3)</label>
</disp-formula>
</p>
<p>For all considered optimizers, we need an <inline-formula id="inf24">
<mml:math id="m27">
<mml:mrow>
<mml:mi>a</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>-dimensional vector <inline-formula id="inf25">
<mml:math id="m28">
<mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>b</mml:mi>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2208;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="double-struck">R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>a</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> to parameterize <inline-formula id="inf26">
<mml:math id="m29">
<mml:mrow>
<mml:mi mathvariant="bold">B</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>, where <inline-formula id="inf27">
<mml:math id="m30">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>b</mml:mi>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>:</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">[</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>b</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>b</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">]</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> contains the elements <inline-formula id="inf28">
<mml:math id="m31">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> through <inline-formula id="inf29">
<mml:math id="m32">
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> from <inline-formula id="inf30">
<mml:math id="m33">
<mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>b</mml:mi>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">[</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>b</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>b</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">]</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf31">
<mml:math id="m34">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the n-dimensional vector of zeros. We use<list list-type="bullet">
<list-item>
<p>
<inline-formula id="inf32">
<mml:math id="m35">
<mml:mrow>
<mml:mi>a</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula>: Only the Cartesian position is used, e.g., in <xref ref-type="bibr" rid="B14">Lechler et al. (2021)</xref>:</p>
</list-item>
</list>
<disp-formula id="e4">
<mml:math id="m36">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>b</mml:mi>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mtable class="matrix">
<mml:mtr>
<mml:mtd columnalign="center">
<mml:msub>
<mml:mrow>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
<mml:mo>&#xd7;</mml:mo>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>b</mml:mi>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>:</mml:mo>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="center">
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mn>1</mml:mn>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
<mml:mo>.</mml:mo>
</mml:mrow>
</mml:math>
<label>(4)</label>
</disp-formula>
<list list-type="bullet">
<list-item>
<p>
<inline-formula id="inf33">
<mml:math id="m37">
<mml:mrow>
<mml:mi>a</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>6</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula>: Adds an axis angle encoding (<xref ref-type="bibr" rid="B25">Siciliano and Khatib, (2016)</xref>, Table 2.1), similar to <xref ref-type="bibr" rid="B24">Romiti et al. (2023)</xref>, and extending <xref ref-type="bibr" rid="B21">Mitsi et al. (2008)</xref> and <xref ref-type="bibr" rid="B9">Kim et al. (2021)</xref>:</p>
</list-item>
</list>
<disp-formula id="e5">
<mml:math id="m38">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>b</mml:mi>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>pos</mml:mtext>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>b</mml:mi>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>:</mml:mo>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mtable class="matrix">
<mml:mtr>
<mml:mtd columnalign="center">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>axis</mml:mtext>
<mml:mo>-</mml:mo>
<mml:mtext>angle</mml:mtext>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>b</mml:mi>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
<mml:mo>:</mml:mo>
<mml:mn>6</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="center">
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mn>1</mml:mn>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
<mml:mo>.</mml:mo>
</mml:mrow>
</mml:math>
<label>(5)</label>
</disp-formula>
</p>
<p>Next, we present the considered optimization approaches.</p>
<sec id="s2-1">
<label>2.1</label>
<title>Baseline and exhaustive search</title>
<p>As a baseline, we implement a dummy base placement optimization that keeps the nominal pose of the robotic task. Additionally, we consider an RS optimizer that uniformly samples poses from the allowed set <inline-formula id="inf34">
<mml:math id="m39">
<mml:mrow>
<mml:mi mathvariant="script">B</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>. With an increasing number of sampled points, it approximates the ES method surveyed in <xref ref-type="sec" rid="s1-1">Section 1.1</xref>.</p>
</sec>
<sec id="s2-2">
<label>2.2</label>
<title>Genetic algorithms</title>
<p>GAs belong to the set of black-box optimization algorithms. Within a GA, a population of individual solution candidates encoded as a list of genes is optimized. Those genes are our parameter vectors, defined in <xref ref-type="disp-formula" rid="e4">Equations 4</xref>, <xref ref-type="disp-formula" rid="e5">5</xref>, and are altered by<list list-type="bullet">
<list-item>
<p>mutation, which locally alters a single gene or several genes of an individual;</p>
</list-item>
<list-item>
<p>cross-over, which combines genes from two individuals to create a new &#x201c;offspring&#x201d;;</p>
</list-item>
<list-item>
<p>selection, which determines how individuals are added to the next generation.</p>
</list-item>
</list>
</p>
<p>The mutation operator uniformly selects single values <inline-formula id="inf35">
<mml:math id="m40">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>b</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">[</mml:mo>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:mi>a</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">]</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> to alter and adds a random number from a scalar normal distribution with zero mean and unit standard deviation <inline-formula id="inf36">
<mml:math id="m41">
<mml:mrow>
<mml:mi mathvariant="script">N</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mn>0,1</mml:mn>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> to them. Cross-over selects the first <inline-formula id="inf37">
<mml:math id="m42">
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">[</mml:mo>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:mi>a</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">]</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> entries in one gene vector and combines it with the last <inline-formula id="inf38">
<mml:math id="m43">
<mml:mrow>
<mml:mi>a</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> elements from another individual. The selection is based on the negative cost function <inline-formula id="inf39">
<mml:math id="m44">
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>J</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">C</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi mathvariant="bold">B</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, which is considered the fitness of each individual.</p>
</sec>
<sec id="s2-3">
<label>2.3</label>
<title>Bayesian optimization</title>
<p>BO is another common method within derivative-free or black-box optimization algorithms. Similar to <xref ref-type="bibr" rid="B9">Kim et al. (2021)</xref>, our BO uses a Gaussian process <inline-formula id="inf40">
<mml:math id="m45">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>J</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">C</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi mathvariant="bold">B</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> to approximate the cost of <inline-formula id="inf41">
<mml:math id="m46">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> previously tested base poses <inline-formula id="inf42">
<mml:math id="m47">
<mml:mrow>
<mml:mo stretchy="false">{</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>J</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">C</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>J</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">C</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mo stretchy="false">}</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula>. The next base pose <inline-formula id="inf43">
<mml:math id="m48">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> to explore is sampled from <inline-formula id="inf44">
<mml:math id="m49">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>J</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">C</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi mathvariant="bold">B</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> based on the exploration/exploitation hyperparameter <inline-formula id="inf45">
<mml:math id="m50">
<mml:mrow>
<mml:mi>&#x3be;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>. The resulting cost <inline-formula id="inf46">
<mml:math id="m51">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>J</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">C</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> can, in turn, be used to refine <inline-formula id="inf47">
<mml:math id="m52">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>J</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">C</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi mathvariant="bold">B</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>. For base placement optimization, we define <inline-formula id="inf48">
<mml:math id="m53">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>J</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">C</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi mathvariant="bold">B</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> using <bold>B</bold>(<inline-formula id="inf49">
<mml:math id="m54">
<mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>b</mml:mi>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>)</mml:mo>
<mml:mo>&#x2208;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="double-struck">R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>a</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> following <xref ref-type="disp-formula" rid="e4">Equations 4</xref>, <xref ref-type="disp-formula" rid="e5">5</xref> and use it to fit the scalar cost value <inline-formula id="inf51">
<mml:math id="m56">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>J</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">C</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi mathvariant="bold">B</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>. At the start, BO commonly samples <inline-formula id="inf53">
<mml:math id="m58">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">i</mml:mi>
<mml:mi mathvariant="normal">n</mml:mi>
<mml:mi mathvariant="normal">i</mml:mi>
<mml:mi mathvariant="normal">t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2208;</mml:mo>
<mml:mi mathvariant="double-struck">N</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>
<sub>&#x3e;0</sub> points, e.g., randomly or from low-discrepancy sequences, such as the Hammersley set (<xref ref-type="bibr" rid="B28">Wong et al., 1997</xref>). The initial sampling method is also determined via hyperparameter tuning.</p>
</sec>
<sec id="s2-4">
<label>2.4</label>
<title>Stochastic gradient decent</title>
<p>SGD is a gradient-based method that gained prominence for training deep neural networks. Here, it serves as the outer method of a two-level optimization. A current state-of-the-art SGD algorithm is Adam (<xref ref-type="bibr" rid="B10">Kingma and Ba, 2015</xref>). Given a manipulator with known forward kinematics <inline-formula id="inf54">
<mml:math id="m59">
<mml:mrow>
<mml:mtext>FK</mml:mtext>
<mml:mo>:</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="double-struck">R</mml:mi>
</mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">DoF</mml:mi>
</mml:mrow>
</mml:msub>
</mml:msup>
<mml:mo>&#x2192;</mml:mo>
<mml:mi>S</mml:mi>
<mml:mi>E</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, i.e., a function returning the end-effector pose of a robot given its joint angles <inline-formula id="inf55">
<mml:math id="m60">
<mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2208;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="double-struck">R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">DoF</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> and a distance function <inline-formula id="inf56">
<mml:math id="m61">
<mml:mrow>
<mml:mi>&#x3b4;</mml:mi>
<mml:mo>:</mml:mo>
<mml:mi>S</mml:mi>
<mml:mi>E</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>&#xd7;</mml:mo>
<mml:mi>S</mml:mi>
<mml:mi>E</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>&#x2192;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2265;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, we can use numerical inverse kinematics (IK) to find configurations <inline-formula id="inf57">
<mml:math id="m62">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> close to desired goal poses <inline-formula id="inf58">
<mml:math id="m63">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>g</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2208;</mml:mo>
<mml:mi>S</mml:mi>
<mml:mi>E</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> (<xref ref-type="bibr" rid="B25">Siciliano and Khatib, 2016</xref>; Section 2.7) (inner method). We use Adam to optimize the base pose, such that <inline-formula id="inf59">
<mml:math id="m64">
<mml:mrow>
<mml:mi>&#x3b4;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> is reduced for the found configurations <inline-formula id="inf60">
<mml:math id="m65">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>. Starting at a random base pose determined by <inline-formula id="inf61">
<mml:math id="m66">
<mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>b</mml:mi>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2208;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="double-struck">R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>a</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>, we run the following two-level optimization loop <inline-formula id="inf62">
<mml:math id="m67">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">A</mml:mi>
<mml:mi mathvariant="normal">d</mml:mi>
<mml:mi mathvariant="normal">a</mml:mi>
<mml:mi mathvariant="normal">m</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2208;</mml:mo>
<mml:mi mathvariant="double-struck">N</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>
<sub>&#x3e;0</sub> times.<list list-type="order">
<list-item>
<p>We move the robot to <inline-formula id="inf63">
<mml:math id="m68">
<mml:mrow>
<mml:mi mathvariant="bold">B</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>b</mml:mi>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> and find the closest IK solutions <inline-formula id="inf64">
<mml:math id="m69">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2208;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="double-struck">R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">DoF</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> to all goals <inline-formula id="inf65">
<mml:math id="m70">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>g</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2208;</mml:mo>
<mml:mi mathvariant="script">G</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> according to a distance function (<xref ref-type="disp-formula" rid="e6">Equation 6</xref>)</p>
</list-item>
</list>
<disp-formula id="e6">
<mml:math id="m71">
<mml:mrow>
<mml:mi>&#x3b4;</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi mathvariant="bold">B</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>b</mml:mi>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mfenced>
<mml:mtext>FK</mml:mtext>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>g</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2265;</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
<label>(6)</label>
</disp-formula>
</p>
<p>within a maximum of <inline-formula id="inf66">
<mml:math id="m72">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">I</mml:mi>
<mml:mi mathvariant="normal">K</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2208;</mml:mo>
<mml:mi mathvariant="double-struck">N</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>
<sub>&#x3e;0</sub> steps. We terminate if all IK solutions are within the tolerance of each goal.<list list-type="simple">
<list-item>
<p>2. We calculate the gradient of <inline-formula id="inf67">
<mml:math id="m73">
<mml:mrow>
<mml:mi>&#x3b4;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> with respect to the base parameters <inline-formula id="inf68">
<mml:math id="m74">
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>b</mml:mi>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula> at each found IK solution <inline-formula id="inf69">
<mml:math id="m75">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> (<xref ref-type="disp-formula" rid="e7">Equation 7</xref>):</p>
</list-item>
</list>
<disp-formula id="e7">
<mml:math id="m76">
<mml:mrow>
<mml:mi>&#x2207;</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b4;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mi>&#x2202;</mml:mi>
<mml:mi>&#x3b4;</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi mathvariant="bold">B</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>b</mml:mi>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mfenced>
<mml:mtext>FK</mml:mtext>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>g</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mi>&#x2202;</mml:mi>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>b</mml:mi>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mrow>
</mml:mfrac>
<mml:mo>.</mml:mo>
</mml:mrow>
</mml:math>
<label>(7)</label>
</disp-formula>We then average them as <inline-formula id="inf70">
<mml:math id="m77">
<mml:mrow>
<mml:mi>&#x2207;</mml:mi>
<mml:mi>&#x3b4;</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mo>&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">&#x7c;</mml:mo>
<mml:mi mathvariant="script">G</mml:mi>
<mml:mo stretchy="false">&#x7c;</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mi>&#x2207;</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b4;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, and we apply the Adam step to <inline-formula id="inf71">
<mml:math id="m78">
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>b</mml:mi>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula> based on an exponential decaying average of <inline-formula id="inf72">
<mml:math id="m79">
<mml:mrow>
<mml:mi>&#x2207;</mml:mi>
<mml:mi>&#x3b4;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> determined by <inline-formula id="inf73">
<mml:math id="m80">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b2;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b2;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2208;</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">[</mml:mo>
<mml:mrow>
<mml:mn>0,1</mml:mn>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> and a step size <inline-formula id="inf74">
<mml:math id="m81">
<mml:mrow>
<mml:mi>&#x3b1;</mml:mi>
<mml:mo>&#x3e;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> (<xref ref-type="bibr" rid="B10">Kingma and Ba, 2015</xref>, Alg. 1).</p>
<p>The algorithm is restarted from other random initial guesses while there is time left to escape local minima.</p>
</sec>
<sec id="s2-5">
<label>2.5</label>
<title>Task solver</title>
<p>All base placement optimization methods have access to the same task solver that judges whether a suggested base pose <inline-formula id="inf75">
<mml:math id="m82">
<mml:mrow>
<mml:mi mathvariant="bold">B</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> allows the robot <inline-formula id="inf76">
<mml:math id="m83">
<mml:mrow>
<mml:mi>R</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> to fulfill all goals <inline-formula id="inf77">
<mml:math id="m84">
<mml:mrow>
<mml:mi mathvariant="script">G</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> of a given task. This solver first applies step-by-step elimination (<xref ref-type="bibr" rid="B2">Althoff et al., 2019</xref>, p. 7&#x2013;8) to reject base poses further away from any goal than the maximum length of the robot or those without (collision-free) inverse kinematic solutions. If these filters pass, we run RRT-Connect (<xref ref-type="bibr" rid="B11">Kuffner and La Valle, 2000</xref>) and the trajectory generator proposed by <xref ref-type="bibr" rid="B13">Kunz and Stilman (2012)</xref> to find a collision-free and feasible trajectory <inline-formula id="inf78">
<mml:math id="m85">
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> for the robot positioned at <inline-formula id="inf79">
<mml:math id="m86">
<mml:mrow>
<mml:mi mathvariant="bold">B</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>. The overall process is summarized in <xref ref-type="fig" rid="F2">Figure 2</xref>. We calculate the cost function <inline-formula id="inf80">
<mml:math id="m87">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>J</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">C</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> based on the found trajectory. If any step fails, a fixed failure cost <inline-formula id="inf81">
<mml:math id="m88">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>J</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">f</mml:mi>
<mml:mi mathvariant="normal">a</mml:mi>
<mml:mi mathvariant="normal">i</mml:mi>
<mml:mi mathvariant="normal">l</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2208;</mml:mo>
<mml:mi mathvariant="double-struck">R</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> is returned to the optimizer.</p>
<fig id="F2" position="float">
<label>FIGURE 2</label>
<caption>
<p>Order of filters to examine whether the base pose is feasible and calculate the cost at that pose.</p>
</caption>
<graphic xlink:href="fmtec-05-1642524-g002.tif">
<alt-text content-type="machine-generated">Flowchart illustrating a decision process for robot trajectory validation. It checks if the robot is long enough, if inverse kinematics are solvable without collision, and if a collision-free trajectory exists. For each step, a false result leads to rejection, while a true result progresses to the next step. The final step involves validating the trajectory and accepting it if all conditions are met, calculating J_C. If any condition is false, it results in no success and rejection with J_fail.</alt-text>
</graphic>
</fig>
<p>The overall runtime of the task solver varies depending on which filter rejects the suggested base pose. For reference, a failure in the first two steps can be determined within milliseconds as these only need a few forward kinematic calculations. Collision-free inverse kinematic solutions are identified in approximately 0.1 s, while the path planner succeeds in the order of seconds and only fails after a fixed time-out is reached.</p>
</sec>
</sec>
<sec id="s3">
<label>3</label>
<title>Numerical experiments</title>
<p>We ran the following numerical experiments to evaluate and compare the suggested base placement optimization algorithms<xref ref-type="fn" rid="fn3">
<sup>3</sup>
</xref>. First, we present the setup, including the set of considered robotic tasks and specific libraries for implementing the optimizers. Second, we analyze the adaptability, convergence, and generalizability of each approach for various robotic tasks.</p>
<sec id="s3-1">
<label>3.1</label>
<title>Setup</title>
<p>In all our experiments, we use Timor Python (<xref ref-type="bibr" rid="B12">K&#xfc;lz et al., 2023</xref>) for kinematic calculations and collision detection. Our benchmark tasks are implemented as CoBRA tasks (<xref ref-type="bibr" rid="B20">Mayer et al., 2024</xref>). We created our <ext-link ext-link-type="uri" xlink:href="https://cobra.cps.cit.tum.de/tasks?version=2022&#x26;metadata__tags=BPO24%2Csimple">simple set of 100 tasks</ext-link> by sampling three cubic obstacles on a grid around the origin and three desired poses outside those cubes that the end effector should stop at, as proposed by <xref ref-type="bibr" rid="B27">Whitman et al. (2020)</xref>. Moreover, we tested the tuned methods on the following sets:<list list-type="bullet">
<list-item>
<p>
<ext-link ext-link-type="uri" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://cobra.cps.cit.tum.de/tasks?version=2022&#x0026;metadata__tags=BPO24%2Chard">hard</ext-link>: <inline-formula id="inf82">
<mml:math id="m89">
<mml:mrow>
<mml:mn>100</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> synthetic tasks using the same sampling as the simple set of tasks, with five goals and obstacles instead of three.</p>
</list-item>
<list-item>
<p>
<ext-link ext-link-type="uri" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://cobra.cps.cit.tum.de/tasks?version=2022&#x0026;metadata__tags=BPO24%2Creal">real</ext-link>: <inline-formula id="inf83">
<mml:math id="m90">
<mml:mrow>
<mml:mn>27</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> tasks based on 3D-scanned real-world factory settings in which CNC machines are fed, e.g., <xref ref-type="fig" rid="F1">Figure 1a</xref>. As can be observed, these examine how methods react to non-cubic and irregular obstacles.</p>
</list-item>
<list-item>
<p>
<ext-link ext-link-type="uri" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://cobra.cps.cit.tum.de/tasks?version=2022&#x0026;metadata__tags=BPO24%2Cedge_case_hard">edge</ext-link>: <inline-formula id="inf84">
<mml:math id="m91">
<mml:mrow>
<mml:mn>100</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> particularly created cases where goals are all located outside <inline-formula id="inf85">
<mml:math id="m92">
<mml:mrow>
<mml:mi mathvariant="script">B</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> and additionally placed close to obstacles to limit the feasible base poses, such as goal 3 in <xref ref-type="fig" rid="F1">Figure 1b</xref>.</p>
</list-item>
</list>
</p>
<p>The tasks<xref ref-type="fn" rid="fn4">
<sup>4</sup>
</xref> are tagged with BPO24 and simple/hard/real/edge_case_hard in CoBRA.</p>
<p>All tasks have the following constraints:<list list-type="bullet">
<list-item>
<p>Joints limited in position <inline-formula id="inf86">
<mml:math id="m93">
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> and torque <inline-formula id="inf87">
<mml:math id="m94">
<mml:mrow>
<mml:mi>&#x3c4;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>,</p>
</list-item>
<list-item>
<p>no (self-)collisions,</p>
</list-item>
<list-item>
<p>all goal poses need to be passed, and</p>
</list-item>
<list-item>
<p>the robot base must be positioned around a given pose with <inline-formula id="inf88">
<mml:math id="m95">
<mml:mrow>
<mml:mo>&#xb1;</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula>1&#xa0;m in each Cartesian direction and unrestricted orientation<xref ref-type="fn" rid="fn5">
<sup>5</sup>
</xref>.</p>
</list-item>
</list>
</p>
<p>In all cases, the goal was to minimize the cycle time <inline-formula id="inf89">
<mml:math id="m96">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>J</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>T</mml:mtext>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">f</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> required to fulfill the given task with a given robot<xref ref-type="fn" rid="fn6">
<sup>6</sup>
</xref>. This objective has been shown to work for deployments in real-world tasks and is positively correlated with other costs, such as energy consumption (<xref ref-type="bibr" rid="B19">Mayer and Althoff, 2025</xref>). If the solver cannot find a solution trajectory for a suggested base pose, a default failure cost of <inline-formula id="inf90">
<mml:math id="m97">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>J</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">f</mml:mi>
<mml:mi mathvariant="normal">a</mml:mi>
<mml:mi mathvariant="normal">i</mml:mi>
<mml:mi mathvariant="normal">l</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula>20&#xa0;s is returned, which is well above the possible cycle time. All experiments were run on a 64-core AMD EPYC 7742 clocked at 2.25&#xa0;GHz. The inverse kinematic solver and <xref ref-type="disp-formula" rid="e6">Equation 6</xref> in SGD used a weighted sum of Euclidean distance and rotation angle between poses <inline-formula id="inf91">
<mml:math id="m98">
<mml:mrow>
<mml:mi>&#x3b4;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>, with the default weight <inline-formula id="inf92">
<mml:math id="m99">
<mml:mrow>
<mml:mn>5</mml:mn>
<mml:mtext>&#x2009;mm</mml:mtext>
<mml:mo>/</mml:mo>
<mml:mn>1.8</mml:mn>
<mml:mtext>&#xb0;</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> of Timor Python (<xref ref-type="bibr" rid="B12">K&#xfc;lz et al., 2023</xref>). We, therefore, keep this weighting parameter fixed.</p>
<p>The SGD optimizer used Adam and automatic differentiation implemented using PyTorch 2.2.1 (<xref ref-type="bibr" rid="B23">Paszke et al., 2019</xref>). The GA was implemented with PyGAD (<xref ref-type="bibr" rid="B7">Gad, 2023</xref>). BO used the implementation provided by scikit-optimize<xref ref-type="fn" rid="fn7">
<sup>7</sup>
</xref>. SGD, GA, and BO require setting hyperparameters to tune them for specific applications, in contrast to dummy and RS. We used Optuna (<xref ref-type="bibr" rid="B1">Akiba et al., 2019</xref>) in its default setting with the tree-structured Parzen estimator (TPE) optimizer (<xref ref-type="bibr" rid="B4">Bergstra et al., 2011</xref>) and median pruner to minimize the mean cost on the first 70% of simple tasks. The base placement optimization was limited to finding the best position for the robot base by using <xref ref-type="disp-formula" rid="e4">Equation 4</xref>. In total, we ran <inline-formula id="inf93">
<mml:math id="m100">
<mml:mrow>
<mml:mn>400</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> trials for each of the three tunable algorithms with Optuna. The optimized hyperparameters are listed in the <xref ref-type="sec" rid="s12">Supplementary Material</xref>. For RS, we did not identify any tunable parameter; it always uses uniform distribution sampling from the whole domain of <inline-formula id="inf94">
<mml:math id="m101">
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>b</mml:mi>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
<p>The final comparison of tuned algorithms was performed on a distinct set of tasks not used during hyperparameter optimization, i.e., the last 30% of the simple set and the complete sets hard, real, and edge. For all sets in addition to simple, we had to increase the failure penalty to <inline-formula id="inf95">
<mml:math id="m102">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>J</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">f</mml:mi>
<mml:mi mathvariant="normal">a</mml:mi>
<mml:mi mathvariant="normal">i</mml:mi>
<mml:mi mathvariant="normal">l</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula>50&#xa0;s as the additional goals and more complex obstacles need, on average, longer cycle times (see average cycle times in <xref ref-type="fig" rid="F3">Figure 3</xref>). The comparison with tasks outside the simple set is particularly important as it shows the generalization potential of each algorithm. Algorithms are compared in a fixed-budget setting: they obtain <inline-formula id="inf96">
<mml:math id="m103">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">C</mml:mi>
<mml:mi mathvariant="normal">P</mml:mi>
<mml:mi mathvariant="normal">U</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> &#x3d; 1200&#xa0;s &#x3d; 20&#xa0;min<xref ref-type="fn" rid="fn8">
<sup>8</sup>
</xref> per task to explore possible base poses. This time limit encompasses all optimization steps, including the internal calculations for each optimization method, running the provided filters, and, upon success, completing the path planning. The final score is the cost of the best solution, and we present statistics over five distinct seeds.</p>
<fig id="F3" position="float">
<label>FIGURE 3</label>
<caption>
<p>The optimized cost (top) and rate of success (bottom) over the optimization time (x-axis), for the four algorithms (color) optimizing the position (left) or position and orientation (right) on the different sets of tests. Each plot shows the mean<inline-graphic xlink:href="fmtec-05-1642524-fx2.tif"/>and edges<inline-graphic xlink:href="fmtec-05-1642524-fx1.tif"/>of their 95% confidence intervals. <bold>(a)</bold> Set of tasks hard. <bold>(b)</bold> Set of tasks real.</p>
</caption>
<graphic xlink:href="fmtec-05-1642524-g003.tif">
<alt-text content-type="machine-generated">Eight line graphs displaying convergence of average cycle time in seconds and success rate over the allotted optimization time in minutes. The eight graphs are split into two panels of four covering different set of tasks - hard on top, real on the bottom. The left graphs show convergence only optimizing position while the right optimizes the position and orientation of the robot base. The four considered algorithms are shown in different colors and each line plot shows the mean (solid line) and 95% confidence intervals (shaded region with dashed edges). The trends are discussed in section 4.</alt-text>
</graphic>
</fig>
</sec>
<sec id="s3-2">
<label>3.2</label>
<title>Results</title>
<p>First, we present the convergence of the minimum cost found (top) and the success rate (bottom) on the hard (<xref ref-type="fig" rid="F3">Figure 3a</xref>) and a real set of tasks (<xref ref-type="fig" rid="F3">Figure 3b</xref>). The success rate is the fraction of tasks and seeds for which each base placement optimization algorithm can find a valid base pose within the optimization time as the x-axis. The first column of each subfigure lists the results obtained by optimizing only the base position (see <xref ref-type="disp-formula" rid="e4">Equation 4</xref>) used during hyperparameter optimization; the second column lists the results when optimizing the base position and orientation (see <xref ref-type="disp-formula" rid="e5">Equation 5</xref>). The mean and 95% confidence interval calculated via bootstrapping over all tasks and seeds are shown for each method.</p>
<p>Second, we summarize the final average best cycle time and the success rate of each method across all sets of tasks in <xref ref-type="table" rid="T1">Table 1</xref>. To judge significance, we provide the mean expected cost/success rate over all found solutions, along with 95% confidence intervals calculated using bootstrapping. Therefore, the numbers provided in <xref ref-type="table" rid="T1">Table 1</xref> for the hard task set show the mean and confidence interval at <inline-formula id="inf97">
<mml:math id="m104">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">C</mml:mi>
<mml:mi mathvariant="normal">P</mml:mi>
<mml:mi mathvariant="normal">U</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> from <xref ref-type="fig" rid="F3">Figure 3</xref>. We highlight mean values outside the confidence interval of all other methods in the same row as worse or <bold>better</bold>. Furthermore, we conduct a Wilcoxon signed-rank test with Bonferroni <italic>p</italic>-value corrections over all tasks used in the evaluation to identify significant differences between algorithms; the full test statistics are provided in <xref ref-type="sec" rid="s12">Supplementary Tables S4, 5</xref>. The hard, real, and edge sets of tasks test generalization as they have different distributions of goal poses and obstacles compared to the simple set of tasks used for hyperparameter optimization. We omit the dummy optimizer as it can only solve the simple set of tasks in 47% of cases and the hard set of tasks in 18% while failing to solve any task from the other sets.</p>
<table-wrap id="T1" position="float">
<label>TABLE 1</label>
<caption>
<p>The mean and <inline-formula id="inf98">
<mml:math id="m105">
<mml:mrow>
<mml:mn>95</mml:mn>
<mml:mtext>&#x2009;%</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> confidence interval (CI) for the best found cycle time (upper half) and success rate (lower half) of each algorithm (columns). Arrows <inline-formula id="inf99">
<mml:math id="m106">
<mml:mrow>
<mml:mi>&#x2191;</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>&#x2193;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> indicate the direction of better values. Highlighted means are outside all other CIs on the <italic>worse</italic> or <bold>
<underline>better</underline>
</bold> side.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th rowspan="2" align="left">Measurement</th>
<th rowspan="2" align="center">Action space</th>
<th rowspan="2" align="center">Task set</th>
<th colspan="3" align="center">RS</th>
<th colspan="3" align="center">GA</th>
<th colspan="3" align="center">BO</th>
<th colspan="3" align="center">SGD</th>
</tr>
<tr>
<th align="center">Mean</th>
<th colspan="2" align="center">CI</th>
<th align="center">Mean</th>
<th colspan="2" align="center">CI</th>
<th align="center">Mean</th>
<th colspan="2" align="center">CI</th>
<th align="center">Mean</th>
<th colspan="2" align="center">CI</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td rowspan="8" align="left">
<inline-formula id="inf100">
<mml:math id="m107">
<mml:mrow>
<mml:mi>&#x2193;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> Average best cycle time [s]</td>
<td rowspan="4" align="center">Position</td>
<td align="center">Simple</td>
<td align="center">10.77</td>
<td align="center">10.50</td>
<td align="center">11.15</td>
<td align="center">10.69</td>
<td align="center">10.41</td>
<td align="center">11.08</td>
<td align="center">
<italic>11.37</italic>
</td>
<td align="center">11.10</td>
<td align="center">11.73</td>
<td align="center">10.81</td>
<td align="center">10.54</td>
<td align="center">11.20</td>
</tr>
<tr>
<td align="center">Hard</td>
<td align="center">23.29</td>
<td align="center">22.78</td>
<td align="center">23.93</td>
<td align="center">23.09</td>
<td align="center">22.64</td>
<td align="center">23.64</td>
<td align="center">
<italic>24.65</italic>
</td>
<td align="center">23.98</td>
<td align="center">25.42</td>
<td align="center">23.77</td>
<td align="center">23.26</td>
<td align="center">24.36</td>
</tr>
<tr>
<td align="center">Real</td>
<td align="center">15.70</td>
<td align="center">15.20</td>
<td align="center">16.24</td>
<td align="center">15.53</td>
<td align="center">15.05</td>
<td align="center">16.08</td>
<td align="center">16.55</td>
<td align="center">15.95</td>
<td align="center">17.24</td>
<td align="center">16.11</td>
<td align="center">15.54</td>
<td align="center">16.86</td>
</tr>
<tr>
<td align="center">Edge</td>
<td align="center">15.97</td>
<td align="center">15.11</td>
<td align="center">17.14</td>
<td align="center">
<bold>13.65</bold>
</td>
<td align="center">12.98</td>
<td align="center">15.44</td>
<td align="center">
<italic>18.13</italic>
</td>
<td align="center">16.23</td>
<td align="center">22.02</td>
<td align="center">16.26</td>
<td align="center">15.28</td>
<td align="center">17.48</td>
</tr>
<tr>
<td rowspan="4" align="center">Position &#x2b; rotation</td>
<td align="center">Simple</td>
<td align="center">10.84</td>
<td align="center">10.57</td>
<td align="center">11.22</td>
<td align="center">10.67</td>
<td align="center">10.42</td>
<td align="center">11.08</td>
<td align="center">
<italic>11.26</italic>
</td>
<td align="center">10.97</td>
<td align="center">11.64</td>
<td align="center">10.74</td>
<td align="center">10.47</td>
<td align="center">11.13</td>
</tr>
<tr>
<td align="center">Hard</td>
<td align="center">23.28</td>
<td align="center">22.80</td>
<td align="center">23.87</td>
<td align="center">22.71</td>
<td align="center">22.30</td>
<td align="center">23.26</td>
<td align="center">
<italic>24.40</italic>
</td>
<td align="center">23.78</td>
<td align="center">25.09</td>
<td align="center">23.11</td>
<td align="center">22.66</td>
<td align="center">23.63</td>
</tr>
<tr>
<td align="center">Real</td>
<td align="center">15.28</td>
<td align="center">14.86</td>
<td align="center">15.82</td>
<td align="center">15.22</td>
<td align="center">14.75</td>
<td align="center">15.77</td>
<td align="center">16.38</td>
<td align="center">15.85</td>
<td align="center">17.04</td>
<td align="center">15.74</td>
<td align="center">15.19</td>
<td align="center">16.47</td>
</tr>
<tr>
<td align="center">Edge</td>
<td align="center">15.64</td>
<td align="center">15.16</td>
<td align="center">16.21</td>
<td align="center">
<bold>14.28</bold>
</td>
<td align="center">13.90</td>
<td align="center">14.70</td>
<td align="center">
<italic>17.61</italic>
</td>
<td align="center">16.78</td>
<td align="center">18.65</td>
<td align="center">16.34</td>
<td align="center">15.78</td>
<td align="center">17.00</td>
</tr>
<tr>
<td rowspan="8" align="left">
<inline-formula id="inf101">
<mml:math id="m108">
<mml:mrow>
<mml:mi>&#x2191;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> Success rate [%]</td>
<td rowspan="4" align="center">Position</td>
<td align="center">Simple</td>
<td align="center">96.67</td>
<td align="center">92.67</td>
<td align="center">98.67</td>
<td align="center">96.67</td>
<td align="center">92.67</td>
<td align="center">98.67</td>
<td align="center">96.67</td>
<td align="center">92.67</td>
<td align="center">98.67</td>
<td align="center">96.67</td>
<td align="center">92.67</td>
<td align="center">98.67</td>
</tr>
<tr>
<td align="center">Hard</td>
<td align="center">47.40</td>
<td align="center">43.00</td>
<td align="center">51.80</td>
<td align="center">46.40</td>
<td align="center">42.00</td>
<td align="center">50.80</td>
<td align="center">
<italic>41.40</italic>
</td>
<td align="center">37.20</td>
<td align="center">45.80</td>
<td align="center">
<bold>54.60</bold>
</td>
<td align="center">50.20</td>
<td align="center">59.00</td>
</tr>
<tr>
<td align="center">Real</td>
<td align="center">85.93</td>
<td align="center">79.26</td>
<td align="center">91.11</td>
<td align="center">84.44</td>
<td align="center">77.78</td>
<td align="center">89.63</td>
<td align="center">88.89</td>
<td align="center">82.96</td>
<td align="center">93.33</td>
<td align="center">91.85</td>
<td align="center">85.93</td>
<td align="center">95.56</td>
</tr>
<tr>
<td align="center">Edge</td>
<td align="center">14.60</td>
<td align="center">11.80</td>
<td align="center">18.00</td>
<td align="center">13.80</td>
<td align="center">11.00</td>
<td align="center">17.00</td>
<td align="center">
<italic>5.40</italic>
</td>
<td align="center">3.60</td>
<td align="center">7.60</td>
<td align="center">15.00</td>
<td align="center">12.00</td>
<td align="center">18.40</td>
</tr>
<tr>
<td rowspan="4" align="center">Position &#x2b; rotation</td>
<td align="center">Simple</td>
<td align="center">96.67</td>
<td align="center">92.67</td>
<td align="center">98.67</td>
<td align="center">96.67</td>
<td align="center">92.67</td>
<td align="center">98.67</td>
<td align="center">96.67</td>
<td align="center">92.67</td>
<td align="center">98.67</td>
<td align="center">96.67</td>
<td align="center">92.67</td>
<td align="center">98.67</td>
</tr>
<tr>
<td align="center">Hard</td>
<td align="center">44.80</td>
<td align="center">40.40</td>
<td align="center">49.00</td>
<td align="center">50.60</td>
<td align="center">46.20</td>
<td align="center">55.00</td>
<td align="center">
<italic>39.40</italic>
</td>
<td align="center">35.20</td>
<td align="center">43.60</td>
<td align="center">
<bold>57.00</bold>
</td>
<td align="center">52.80</td>
<td align="center">61.20</td>
</tr>
<tr>
<td align="center">Real</td>
<td align="center">82.96</td>
<td align="center">76.30</td>
<td align="center">88.89</td>
<td align="center">85.19</td>
<td align="center">78.52</td>
<td align="center">90.37</td>
<td align="center">81.48</td>
<td align="center">74.07</td>
<td align="center">87.41</td>
<td align="center">
<bold>91.11</bold>
</td>
<td align="center">85.19</td>
<td align="center">94.81</td>
</tr>
<tr>
<td align="center">Edge</td>
<td align="center">54.40</td>
<td align="center">50.20</td>
<td align="center">58.67</td>
<td align="center">55.20</td>
<td align="center">50.80</td>
<td align="center">59.60</td>
<td align="center">
<italic>25.00</italic>
</td>
<td align="center">21.40</td>
<td align="center">29.00</td>
<td align="center">55.40</td>
<td align="center">51.00</td>
<td align="center">59.80</td>
</tr>
</tbody>
</table>
</table-wrap>
</sec>
</sec>
<sec sec-type="discussion" id="s4">
<label>4</label>
<title>Discussion</title>
<p>With regard to overall performance, we find that all algorithms outperform the dummy optimizer, highlighting that base-pose optimization reduces cycle time. Moreover, all methods constantly show noticeable confidence intervals in <xref ref-type="fig" rid="F3">Figure 3</xref> and <xref ref-type="table" rid="T1">Table 1</xref> due to the stochasticity of the evaluated approaches and the underlying trajectory generation process (see <xref ref-type="sec" rid="s2-5">Section 2.5</xref>). The time limit of 1200&#xa0;s seems sufficient for the simple and real sets of tasks, as evidenced by the success rate plateauing in <xref ref-type="fig" rid="F3">Figure 3b</xref>. The edge and hard sets of tasks could improve with more computation time as their success rates have not leveled off. Referencing the Wilcoxon tests in <xref ref-type="sec" rid="s12">Supplementary Tables S4, 5</xref>, we find that, over all tasks,<list list-type="bullet">
<list-item>
<p>SGD significantly increases the success rate over all algorithms (3.1<inline-formula id="inf102">
<mml:math id="m109">
<mml:mrow>
<mml:mo>&#xd7;</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula>10<sup>&#x2013;71</sup> <inline-formula id="inf103">
<mml:math id="m110">
<mml:mrow>
<mml:mo>&#x3c;</mml:mo>
<mml:mi>p</mml:mi>
<mml:mo>&#x3c;</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula>7.5<inline-formula id="inf104">
<mml:math id="m111">
<mml:mrow>
<mml:mo>&#xd7;</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula>10<sup>&#x2013;3</sup>),</p>
</list-item>
<list-item>
<p>GA significantly decreases costs over RS and BO (5.7<inline-formula id="inf105">
<mml:math id="m112">
<mml:mrow>
<mml:mo>&#xd7;</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula>10<sup>&#x2013;108</sup> <inline-formula id="inf106">
<mml:math id="m113">
<mml:mrow>
<mml:mo>&#x3c;</mml:mo>
<mml:mi>p</mml:mi>
<mml:mo>&#x3c;</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula>4.8<inline-formula id="inf107">
<mml:math id="m114">
<mml:mrow>
<mml:mo>&#xd7;</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula>10<sup>&#x2013;6</sup>), and</p>
</list-item>
<list-item>
<p>BO significantly increases costs over all other algorithms (5.7<inline-formula id="inf108">
<mml:math id="m115">
<mml:mrow>
<mml:mo>&#xd7;</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula>10<sup>&#x2013;108</sup> <inline-formula id="inf109">
<mml:math id="m116">
<mml:mrow>
<mml:mo>&#x3c;</mml:mo>
<mml:mi>p</mml:mi>
<mml:mo>&#x3c;</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula>3.2<inline-formula id="inf110">
<mml:math id="m117">
<mml:mrow>
<mml:mo>&#xd7;</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula>10<sup>&#x2013;92</sup>).</p>
</list-item>
</list>
</p>
<p>The state-of-the-art methods (GA, BO, and RS) perform quite similarly on the set of hard and real tasks and in both optimization domains, as shown in <xref ref-type="fig" rid="F3">Figure 3</xref>. However, in the end, BO often performs worse than the other methods, as indicated by the italic means outside the other confidence intervals in <xref ref-type="table" rid="T1">Table 1</xref>. Based on the average best cost at the end of the runtime, GA seems to have a slight edge over existing methods, with lower costs on the set edge (<bold>bold</bold> in <xref ref-type="table" rid="T1">Table 1</xref>, upper half) and the lowest average in all other cases. With regard to the success rate, our adaptation of SGD is better in three settings (<bold>bold</bold> in <xref ref-type="table" rid="T1">Table 1</xref> lower half) and shows the highest average in the other settings. It also increases the success rate faster than the other methods in three out of four cases, as shown in <xref ref-type="fig" rid="F3">Figure 3</xref>.</p>
<p>Concerning generalization to sets of tasks not used for hyperparameter parameterization, all algorithms experienced losses in the success rate, i.e., the mean success rates in each column are outside the confidence interval for the set simple. Still, for the set real, we find success rates of more than 80% for all algorithms. On average, SGD is the most successful on the real set of tasks, with more than a 90% success rate, an improvement over RS and GA.</p>
<p>The benefits of the larger optimization domain for position and orientation are not realized by all methods across all sets of tasks. Considering the success rate in <xref ref-type="table" rid="T1">Table 1</xref>, we observe that RS and BO deteriorate in the sets hard and real, while GA improves its performance. Additionally, <xref ref-type="table" rid="T1">Table 1</xref> shows that for the set edge, the larger search space increases the success rate for all methods. Finally, the larger search space also often decreases final cycle time, e.g., in three of four cases for SGD and GA.</p>
</sec>
<sec sec-type="conclusion" id="s5">
<label>5</label>
<title>Conclusion</title>
<p>For the first time, this paper compares existing robot base-pose optimizers, namely BO, RS, and GAs, with a focus on methods that do not require pre-calculations. In addition, for the first time, we apply Adam, an SGD-based optimizer, to this problem. Each algorithm was implemented in an anytime fashion, allowing the user to set a time budget for finding the best base pose. The hyperparameters of each method were optimized, and the methods were compared on a set of diverse robotic tasks, both synthetic and based on real-world 3D scans.</p>
<p>The three previously applied methods (BO, RS, and GA) showed comparable success rates on our set of simple tasks, but for the considered optimization time, BO found significantly worse cycle times, and GA achieved, on average, the best cycle times. The optimizer SGD showed a significantly improved success rate. It particularly outperformed the other methods in complex robotic tasks within cluttered real-world environments or tasks with more goals and obstacles. In the tasks based on real-world 3D scans, more than 90% could be solved with SGD, which outperformed the other methods. Additionally, allowing any orientation increases the success rate in our novel set of task edges, indicating that additional mounting effort benefits more complex tasks.</p>
</sec>
</body>
<back>
<sec sec-type="data-availability" id="s6">
<title>Data availability statement</title>
<p>The code of the solvers and experiments is available at <ext-link ext-link-type="uri" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://gitlab.lrz.de/tum-cps/robot-base-pose-optimization">https://gitlab.lrz.de/tum-cps/robot-base-pose-optimization</ext-link>. The datasets containing the tasks to optimize for and generated solutions for these tasks are hosted on the project website <ext-link ext-link-type="uri" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://cobra.cps.cit.tum.de/tools/rbo">https://cobra.cps.cit.tum.de/tools/rbo</ext-link>.</p>
</sec>
<sec sec-type="author-contributions" id="s7">
<title>Author contributions</title>
<p>MM: Methodology, Software, Writing &#x2013; original draft, Investigation, Visualization, Data curation, Validation, Writing &#x2013; review and editing. MA: Conceptualization, Methodology, Supervision, Project administration, Resources, Funding acquisition, Writing &#x2013; review and editing.</p>
</sec>
<ack>
<title>Acknowledgements</title>
<p>The authors would like to thank Jonathan K&#xfc;lz for Timor Python and their students Friedrich Dang, Hao Gao, Lukas Seitz, Matthias Pouleau, Seok Jung, and Tom Tschigfrei who tested several related ideas.</p>
</ack>
<sec sec-type="COI-statement" id="s9">
<title>Conflict of interest</title>
<p>The authors declare that the research was conducted in the absence of any commercial or financial relationships that could be construed as a potential conflict of interest.</p>
</sec>
<sec sec-type="ai-statement" id="s10">
<title>Generative AI statement</title>
<p>The authors declare that no Generative AI was used in the creation of this manuscript.</p>
<p>Any alternative text (alt text) provided alongside figures in this article has been generated by Frontiers with the support of artificial intelligence and reasonable efforts have been made to ensure accuracy, including review by the authors wherever possible. If you identify any issues, please contact us.</p>
</sec>
<sec sec-type="disclaimer" id="s11">
<title>Publisher&#x2019;s note</title>
<p>All claims expressed in this article are solely those of the authors and do not necessarily represent those of their affiliated organizations, or those of the publisher, the editors and the reviewers. Any product that may be evaluated in this article, or claim that may be made by its manufacturer, is not guaranteed or endorsed by the publisher.</p>
</sec>
<sec sec-type="supplementary-material" id="s12">
<title>Supplementary material</title>
<p>The Supplementary Material for this article can be found online at: <ext-link ext-link-type="uri" xlink:href="https://www.frontiersin.org/articles/10.3389/fmtec.2025.1642524/full#supplementary-material">https://www.frontiersin.org/articles/10.3389/fmtec.2025.1642524/full&#x23;supplementary-material</ext-link>
</p>
<supplementary-material xlink:href="DataSheet1.pdf" id="SM1" mimetype="application/pdf" xmlns:xlink="http://www.w3.org/1999/xlink"/>
</sec>
<ref-list>
<title>References</title>
<ref id="B1">
<mixed-citation publication-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Akiba</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Sano</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Yanase</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Ohta</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Koyama</surname>
<given-names>M.</given-names>
</name>
</person-group> (<year>2019</year>). &#x201c;<article-title>Optuna: a next-generation hyperparameter optimization framework</article-title>,&#x201d; in <conf-name>Proceedings - Int. Conference Knowledge Discover and Data Mining</conf-name>, <fpage>2623</fpage>&#x2013;<lpage>2631</lpage>. <pub-id pub-id-type="doi">10.1145/3292500.3330701</pub-id>
</mixed-citation>
</ref>
<ref id="B2">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Althoff</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Giusti</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Liu</surname>
<given-names>S. B.</given-names>
</name>
<name>
<surname>Pereira</surname>
<given-names>A.</given-names>
</name>
</person-group> (<year>2019</year>). &#x201c;<article-title>Effortless creation of safe robots from modules through self-programming and self-verification</article-title>,&#x201d;. <source>Sci. Robot.</source> <volume>4</volume>. <fpage>eaaw1924</fpage>. <pub-id pub-id-type="doi">10.1126/scirobotics.aaw1924</pub-id>
<pub-id pub-id-type="pmid">33137767</pub-id>
</mixed-citation>
</ref>
<ref id="B3">
<mixed-citation publication-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Baumg&#xe4;rtner</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Puchta</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Fleischer</surname>
<given-names>J.</given-names>
</name>
</person-group> (<year>2024</year>). &#x201c;<article-title>One problem, one solution: unifying robot design and cell layout optimization</article-title>,&#x201d; in <conf-name>IEEE/RSJ Int. Conference on Intelligent Robots and Systems (IROS)</conf-name>, <fpage>2292</fpage>&#x2013;<lpage>2298</lpage>. <pub-id pub-id-type="doi">10.1109/iros58592.2024.10801417</pub-id>
</mixed-citation>
</ref>
<ref id="B4">
<mixed-citation publication-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Bergstra</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Bardenet</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Bengio</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>K&#xe9;gl</surname>
<given-names>B.</given-names>
</name>
</person-group> (<year>2011</year>). &#x201c;<article-title>Algorithms for hyper-parameter optimization</article-title>,&#x201d; in <conf-name>Proceedings of the Int. Conference on Neural Information Processing Systems (NeurIPS)</conf-name>, <fpage>2546</fpage>&#x2013;<lpage>2554</lpage>.</mixed-citation>
</ref>
<ref id="B5">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Boschetti</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Rosa</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Trevisani</surname>
<given-names>A.</given-names>
</name>
</person-group> (<year>2013</year>). <article-title>Optimal robot positioning using task-dependent and direction-selective performance indexes: general definitions and application to a parallel robot</article-title>. <source>Robot. Comput.-Integr. Manuf.</source> <volume>29</volume>, <fpage>431</fpage>&#x2013;<lpage>443</lpage>. <pub-id pub-id-type="doi">10.1016/j.rcim.2012.09.013</pub-id>
</mixed-citation>
</ref>
<ref id="B6">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Chamzas</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Quintero-Pe&#xf1;a</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Kingston</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Orthey</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Rakita</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Gleicher</surname>
<given-names>M.</given-names>
</name>
<etal/>
</person-group> (<year>2022</year>). <article-title>MotionBenchMaker: a tool to generate and benchmark motion planning datasets</article-title>. <source>IEEE Robot. Automat. Lett.</source> <volume>7</volume>, <fpage>882</fpage>&#x2013;<lpage>889</lpage>.</mixed-citation>
</ref>
<ref id="B7">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Gad</surname>
<given-names>A. F.</given-names>
</name>
</person-group> (<year>2023</year>). <article-title>PyGAD: an intuitive genetic algorithm python library</article-title>. <source>Multimedia Tools Appl.</source> <volume>83</volume>, <fpage>1</fpage>&#x2013;<lpage>14</lpage>. <pub-id pub-id-type="doi">10.1007/s11042-023-17167-y</pub-id>
</mixed-citation>
</ref>
<ref id="B8">
<mixed-citation publication-type="book">
<collab>IFR International Federation of Robotics</collab> (<year>2024</year>). <source>Presentation of world robotics 2024 (VDMA robotics &#x2b; automation)</source>. <comment>Available online at: <ext-link ext-link-type="uri" xlink:href="https://ifr.org/img/worldrobotics/Press_Conference_2024.pdf">https://ifr.org/img/worldrobotics/Press_Conference_2024.pdf</ext-link>
</comment>.</mixed-citation>
</ref>
<ref id="B9">
<mixed-citation publication-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Kim</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Pan</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Hauser</surname>
<given-names>K.</given-names>
</name>
</person-group> (<year>2021</year>). &#x201c;<article-title>MO-BBO: multi-objective bilevel Bayesian optimization for robot and behavior co-design</article-title>,&#x201d; in <conf-name>Proceedings of the IEEE Int. Conference on Robotics and Automation (ICRA)</conf-name>, <fpage>9877</fpage>&#x2013;<lpage>9883</lpage>. <pub-id pub-id-type="doi">10.1109/icra48506.2021.9561846</pub-id>
</mixed-citation>
</ref>
<ref id="B10">
<mixed-citation publication-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Kingma</surname>
<given-names>D. P.</given-names>
</name>
<name>
<surname>Ba</surname>
<given-names>J.</given-names>
</name>
</person-group> (<year>2015</year>). &#x201c;<article-title>Adam: a method for stochastic optimization</article-title>,&#x201d; in <conf-name>3rd Int. Conference on Learning Representations ICLR</conf-name>. <comment>Available online at: <ext-link ext-link-type="uri" xlink:href="https://arxiv.org/abs/1412.6980">https://arxiv.org/abs/1412.6980</ext-link>
</comment>.</mixed-citation>
</ref>
<ref id="B11">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Kuffner</surname>
<given-names>J. J.</given-names>
</name>
<name>
<surname>La Valle</surname>
<given-names>S. M.</given-names>
</name>
</person-group> (<year>2000</year>). <article-title>RRT-Connect: an efficient approach to single-query path planning</article-title>. <source>Proc. 2000 ICRA. Millenn. Conf. IEEE Int. Conf. Robotics Automation. Symposia Proc.</source> <volume>2</volume>. <fpage>995</fpage>&#x2013;<lpage>1001</lpage>. <pub-id pub-id-type="doi">10.1109/robot.2000.844730</pub-id>
</mixed-citation>
</ref>
<ref id="B12">
<mixed-citation publication-type="confproc">
<person-group person-group-type="author">
<name>
<surname>K&#xfc;lz</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Mayer</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Althoff</surname>
<given-names>M.</given-names>
</name>
</person-group> (<year>2023</year>). &#x201c;<article-title>Timor python: a toolbox for industrial modular robotics</article-title>,&#x201d; in <conf-name>Proceedings of the IEEE/RSJ Int. Conference on Intelligent Robots and Systems (IROS)</conf-name>, <fpage>424</fpage>&#x2013;<lpage>431</lpage>. <pub-id pub-id-type="doi">10.1109/iros55552.2023.10341935</pub-id>
</mixed-citation>
</ref>
<ref id="B13">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Kunz</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Stilman</surname>
<given-names>M.</given-names>
</name>
</person-group> (<year>2012</year>). <article-title>Time-optimal trajectory generation for path following with bounded acceleration and velocity</article-title>. <source>Robotics Sci. Syst.</source> <fpage>209</fpage>&#x2013;<lpage>216</lpage>. <pub-id pub-id-type="doi">10.7551/mitpress/9816.003.0032</pub-id>
</mixed-citation>
</ref>
<ref id="B14">
<mixed-citation publication-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Lechler</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Krem</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Metzner</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Sjarov</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Franke</surname>
<given-names>J.</given-names>
</name>
</person-group> (<year>2021</year>). &#x201c;<article-title>Simulation-based robot placement using a data farming approach</article-title>,&#x201d; in <conf-name>Production at the leading edge of technology</conf-name>. <fpage>419</fpage>&#x2013;<lpage>428</lpage>. <pub-id pub-id-type="doi">10.1007/978-3-662-62138-7_42</pub-id>
</mixed-citation>
</ref>
<ref id="B15">
<mixed-citation publication-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Lei</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Romiti</surname>
<given-names>E.</given-names>
</name>
<name>
<surname>Laurenz</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Tsagarakis</surname>
<given-names>N. G.</given-names>
</name>
</person-group> (<year>2024</year>). &#x201c;<article-title>Task-driven computational framework for simultaneously optimizing design and mounted pose of modular reconfigurable manipulators</article-title>,&#x201d; in <conf-name>IEEE/RSJ Int. Conference on Intelligent Robots and Systems (IROS)</conf-name>, <fpage>4563</fpage>&#x2013;<lpage>4570</lpage>. <pub-id pub-id-type="doi">10.1109/iros58592.2024.10802089</pub-id>
</mixed-citation>
</ref>
<ref id="B16">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Lin</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Zhao</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Ding</surname>
<given-names>H.</given-names>
</name>
</person-group> (<year>2017</year>). <article-title>Posture optimization methodology of 6R industrial robots for machining using performance evaluation indexes</article-title>. <source>Robot. Comput.-Integr. Manuf.</source> <volume>48</volume>, <fpage>59</fpage>&#x2013;<lpage>72</lpage>. <pub-id pub-id-type="doi">10.1016/j.rcim.2017.02.002</pub-id>
</mixed-citation>
</ref>
<ref id="B17">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Mahler</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Matl</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Satish</surname>
<given-names>V.</given-names>
</name>
<name>
<surname>Danielczuk</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>DeRose</surname>
<given-names>B.</given-names>
</name>
<name>
<surname>McKinley</surname>
<given-names>S.</given-names>
</name>
<etal/>
</person-group> (<year>2019</year>). <article-title>Learning ambidextrous robot grasping policies</article-title>. <source>Sci. Robot.</source> <volume>4</volume>, <fpage>eaau4984</fpage>. <pub-id pub-id-type="doi">10.1126/scirobotics.aau4984</pub-id>
<pub-id pub-id-type="pmid">33137754</pub-id>
</mixed-citation>
</ref>
<ref id="B18">
<mixed-citation publication-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Makhal</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Goins</surname>
<given-names>A. K.</given-names>
</name>
</person-group> (<year>2018</year>). &#x201c;<article-title>Reuleaux: robot base placement by reachability analysis</article-title>,&#x201d; in <conf-name>Proceedings of the IEEE Int. Conference on Robotic Computing (IRC)</conf-name>. <fpage>137</fpage>&#x2013;<lpage>142</lpage>. <pub-id pub-id-type="doi">10.1109/IRC.2018.00028</pub-id>
</mixed-citation>
</ref>
<ref id="B19">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Mayer</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Althoff</surname>
<given-names>M.</given-names>
</name>
</person-group> (<year>2025</year>). <article-title>Holistic optimization of modular robots</article-title>. <source>
<italic>Trans. on Automation Sci. and Eng. (T-ASE)</italic> Press</source>, <fpage>00400</fpage>. <pub-id pub-id-type="doi">10.1109/TASE.2025.3628162</pub-id>
</mixed-citation>
</ref>
<ref id="B20">
<mixed-citation publication-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Mayer</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>K&#xfc;lz</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Althoff</surname>
<given-names>M.</given-names>
</name>
</person-group> (<year>2024</year>). &#x201c;<article-title>CoBRA: a composable benchmark for robotics applications</article-title>,&#x201d; in <conf-name>Proceedings of the IEEE Int. Conference on Robotics and Automation (ICRA)</conf-name>, <fpage>17665</fpage>&#x2013;<lpage>17671</lpage>. <pub-id pub-id-type="doi">10.1109/icra57147.2024.10610776</pub-id>
</mixed-citation>
</ref>
<ref id="B21">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Mitsi</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Bouzakis</surname>
<given-names>K.-D.</given-names>
</name>
<name>
<surname>Sagris</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Mansour</surname>
<given-names>G.</given-names>
</name>
</person-group> (<year>2008</year>). <article-title>Determination of optimum robot base location considering discrete end-effector positions by means of hybrid genetic algorithm</article-title>. <source>Robot. Comput.-Integr. Manuf.</source> <volume>24</volume>, <fpage>50</fpage>&#x2013;<lpage>59</lpage>. <pub-id pub-id-type="doi">10.1016/j.rcim.2006.08.003</pub-id>
</mixed-citation>
</ref>
<ref id="B22">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Moslemipour</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Lee</surname>
<given-names>T. S.</given-names>
</name>
<name>
<surname>Rilling</surname>
<given-names>D.</given-names>
</name>
</person-group> (<year>2012</year>). <article-title>A review of intelligent approaches for designing dynamic and robust layouts in flexible manufacturing systems</article-title>. <source>Int. J. Adv. Manuf. Technol.</source> <volume>60</volume>, <fpage>11</fpage>&#x2013;<lpage>27</lpage>. <pub-id pub-id-type="doi">10.1007/s00170-011-3614-x</pub-id>
</mixed-citation>
</ref>
<ref id="B23">
<mixed-citation publication-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Paszke</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Gross</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Massa</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>Lerer</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Bradbury</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Chanan</surname>
<given-names>G.</given-names>
</name>
<etal/>
</person-group> (<year>2019</year>). &#x201c;<article-title>PyTorch: an imperative style, high-performance deep learning library</article-title>,&#x201d; in <conf-name>Advances in Neural Information Processing Systems (NeurIPS)</conf-name>, <fpage>8024</fpage>&#x2013;<lpage>8035</lpage>. <pub-id pub-id-type="doi">10.5555/3454287.3455008</pub-id>
</mixed-citation>
</ref>
<ref id="B24">
<mixed-citation publication-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Romiti</surname>
<given-names>E.</given-names>
</name>
<name>
<surname>Iacobelli</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>Ruzzon</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Kashiri</surname>
<given-names>N.</given-names>
</name>
<name>
<surname>Malzahn</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Tsagarakis</surname>
<given-names>N.</given-names>
</name>
</person-group> (<year>2023</year>). &#x201c;<article-title>An optimization study on modular reconfigurable robots: finding the task-optimal design</article-title>,&#x201d; in <conf-name>Proceedings of the IEEE Int. Conference on Automation Science and Engineering (CASE)</conf-name>, <fpage>1</fpage>&#x2013;<lpage>8</lpage>. <pub-id pub-id-type="doi">10.1109/case56687.2023.10260507</pub-id>
</mixed-citation>
</ref>
<ref id="B25">
<mixed-citation publication-type="book">
<person-group person-group-type="author">
<name>
<surname>Siciliano</surname>
<given-names>B.</given-names>
</name>
<name>
<surname>Khatib</surname>
<given-names>O.</given-names>
</name>
</person-group> (<year>2016</year>). <source>Springer handbook of robotics</source>. <publisher-name>Springer</publisher-name>.</mixed-citation>
</ref>
<ref id="B26">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Son</surname>
<given-names>S. W.</given-names>
</name>
<name>
<surname>Kwon</surname>
<given-names>D. S.</given-names>
</name>
</person-group> (<year>2019</year>). <article-title>A convex programming approach to the base placement of a 6-DOF articulated robot with a spherical wrist</article-title>. <source>Int. J. Adv. Manuf. Technol.</source> <volume>102</volume>, <fpage>3135</fpage>&#x2013;<lpage>3150</lpage>. <pub-id pub-id-type="doi">10.1007/s00170-019-03391-0</pub-id>
</mixed-citation>
</ref>
<ref id="B27">
<mixed-citation publication-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Whitman</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Bhirangi</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Travers</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Choset</surname>
<given-names>H.</given-names>
</name>
</person-group> (<year>2020</year>). &#x201c;<article-title>Modular robot design synthesis with deep reinforcement learning</article-title>,&#x201d; in <conf-name>Proceedings of the AAAI Conference on Artificial Intelligence (AAAI)</conf-name>, <fpage>10418</fpage>&#x2013;<lpage>10425</lpage>. <pub-id pub-id-type="doi">10.1609/aaai.v34i06.6611</pub-id>
</mixed-citation>
</ref>
<ref id="B28">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Wong</surname>
<given-names>T.-T.</given-names>
</name>
<name>
<surname>Luk</surname>
<given-names>W.-S.</given-names>
</name>
<name>
<surname>Heng</surname>
<given-names>P.-A.</given-names>
</name>
</person-group> (<year>1997</year>). <article-title>Sampling with hammersley and halton points</article-title>. <source>J. Graph. Tools</source> <volume>2</volume>, <fpage>9</fpage>&#x2013;<lpage>24</lpage>. <pub-id pub-id-type="doi">10.1080/10867651.1997.10487471</pub-id>
</mixed-citation>
</ref>
</ref-list>
<fn-group>
<fn fn-type="custom" custom-type="edited-by">
<p>
<bold>Edited by:</bold> <ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/2243788/overview">Carmelo Mineo</ext-link>, National Research Council (CNR), Italy</p>
</fn>
<fn fn-type="custom" custom-type="reviewed-by">
<p>
<bold>Reviewed by:</bold> <ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/2135175/overview">Ruthber Rodriguez Serrezuela</ext-link>, Corporaci&#xf3;n Universitaria del Huila, Colombia</p>
<p>
<ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/134777/overview">Isak Karabegovi&#x107;</ext-link>, University of Biha&#x107;, Bosnia and Herzegovina</p>
</fn>
</fn-group>
<fn-group>
<fn id="fn1">
<label>1</label>
<p>
<ext-link ext-link-type="uri" xlink:href="http://www.nist.gov/el/intelligent-systems-division-73500/robotic-grasping-and-manipulation-assembly/assembly">www.nist.gov/el/intelligent-systems-division-73500/robotic-grasping-and-manipulation-assembly/assembly</ext-link>, accessed on <inline-formula id="inf111">
<mml:math id="m118">
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>5</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mtext>th</mml:mtext>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> November 2025.</p>
</fn>
<fn id="fn2">
<label>2</label>
<p>
<inline-formula id="inf112">
<mml:math id="m119">
<mml:mrow>
<mml:mi>S</mml:mi>
<mml:mi>E</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="double-struck">R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>&#xd7;</mml:mo>
<mml:mi>S</mml:mi>
<mml:mi>O</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is the space representing an arbitrary pose, i.e., position <inline-formula id="inf113">
<mml:math id="m120">
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="double-struck">R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> and orientation <inline-formula id="inf114">
<mml:math id="m121">
<mml:mrow>
<mml:mi>S</mml:mi>
<mml:mi>O</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> in three-dimensional space. Commonly represented as a <inline-formula id="inf115">
<mml:math id="m122">
<mml:mrow>
<mml:mn>4</mml:mn>
<mml:mo>&#xd7;</mml:mo>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> homogeneous transformation matrix (<xref ref-type="bibr" rid="B25">Siciliano and Khatib, 2016</xref>; Section 2.2.3).</p>
</fn>
<fn id="fn3">
<label>3</label>
<p>All code is available at <ext-link ext-link-type="uri" xlink:href="https://gitlab.lrz.de/tum-cps/robot-base-pose-optimization">https://gitlab.lrz.de/tum-cps/robot-base-pose-optimization</ext-link>
</p>
</fn>
<fn id="fn4">
<label>4</label>
<p>Available at: <ext-link ext-link-type="uri" xlink:href="https://cobra.cps.cit.tum.de/tools/rbo">https://cobra.cps.cit.tum.de/tools/rbo</ext-link>
</p>
</fn>
<fn id="fn5">
<label>5</label>
<p>Limiting each vector element of the axis-angle representation to <inline-formula id="inf116">
<mml:math id="m123">
<mml:mrow>
<mml:mo stretchy="false">[</mml:mo>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>&#x3c0;</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>&#x3c0;</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">]</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula> results in a bounded search space covering all orientations. These limits are enforced in the SGD and GA by clipping after applying the gradient step or the genetic operators.</p>
</fn>
<fn id="fn6">
<label>6</label>
<p>Made from the CoBRA module set modrob-gen2 with module order <inline-formula id="inf117">
<mml:math id="m124">
<mml:mrow>
<mml:mi>M</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">[</mml:mo>
<mml:mrow>
<mml:mn>105,2,2,24,2,25,1,1,1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mtext>GEP</mml:mtext>
<mml:mn>2010</mml:mn>
<mml:mtext>IL</mml:mtext>
</mml:mrow>
<mml:mo stretchy="false">]</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> and shown in <xref ref-type="fig" rid="F1">Figures 1a,b</xref>.</p>
</fn>
<fn id="fn7">
<label>7</label>
<p>
<ext-link ext-link-type="uri" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://scikit-optimize.github.io/stable/modules/generated/skopt.Optimizer.html">https://scikit-optimize.github.io/stable/modules/generated/skopt.Optimizer.html</ext-link>, accessed on <inline-formula id="inf118">
<mml:math id="m125">
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>5</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mtext>th</mml:mtext>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> November 2025.</p>
</fn>
<fn id="fn8">
<label>8</label>
<p>Set by preliminary tests on the simple set, which showed convergence after this optimization time.</p>
</fn>
</fn-group>
</back>
</article>