Program Listing for File mobile_model.h
↰ Return to documentation for file (include/franka/mobile_model.h)
// Copyright (c) 2026 Franka Robotics GmbH
// Use of this source code is governed by the Apache-2.0 license, see LICENSE
#pragma once
#include <array>
#include <cstdint>
#include <memory>
#include <string>
namespace franka {
enum class MobileFrame : std::uint8_t {
kFrontDriveModule,
kRearDriveModule
};
inline constexpr size_t kNumDriveModules = 2;
inline constexpr size_t kJointsPerDriveModule = 2;
struct MobileJointPositions {
std::array<double, kNumDriveModules * kJointsPerDriveModule> drive_modules{};
};
class MobileModel final {
public:
static constexpr size_t kNumModules = kNumDriveModules;
static constexpr size_t kJointsPerModule = kJointsPerDriveModule;
explicit MobileModel(const std::string& urdf_model);
MobileModel(MobileModel&& other) noexcept;
MobileModel& operator=(MobileModel&& other) noexcept;
~MobileModel() noexcept;
MobileModel(const MobileModel&) = delete;
MobileModel& operator=(const MobileModel&) = delete;
std::array<double, 16> pose(MobileFrame frame, const MobileJointPositions& joint_positions) const;
private:
class Data;
std::unique_ptr<Data> data_;
};
} // namespace franka