brim.brim.pedals.HolonomicPedals#

class brim.brim.pedals.HolonomicPedals(name: str)#

Bases: PedalsBase

Constrain the feet to the pedals using holonomic constraints.

Explanation

This connection defines the feet as holonomic constraints on the pedals. The closed loop should be time independent in all directions, otherwise one will introduce additional constraints making the resulting system invalid. Some simple checks are done to verify that this is not the case. It is however that these will not catch the error. An example where this may occur is when the legs are purely two 2D and the distance between the pedals is different from the hip width.

Attributes

auxiliary_handler

Auxiliary data handler of the model.

cranks

Cranks of the bicycle.

descriptions

Descriptions of the attributes of the object.

left_leg

Left leg of the rider.

load_groups

Load groups of the connection.

name

Name of the object.

required_models

right_leg

Right leg of the rider.

submodels

Submodels of the connection.

system

System object used to store the information of the model itself.

Methods

__init__

Create a new instance of the connection.

add_load_groups

Add load groups to the connection.

define_constraints

Define the constraints on the connection.

define_kinematics

Define the kinematics of the connection.

define_loads

Define the loads on the connection.

define_objects

Define the objects in the connection.

get_all_symbols

Get all declared symbols of a model.

get_description

Get description of a given object.

get_param_values

Get a parameters mapping of a model based on a bicycle parameters object.

set_plot_objects

Set the symmeplot plot objects.

__init__(name: str) None#

Create a new instance of the connection.

Parameters:

name (str) – Name of the connection.

__repr__() str#

Return repr(self).

__str__() str#

Return str(self).

__weakref__#

list of weak references to the object (if defined)

add_load_groups(*load_groups: LoadGroupBase) None#

Add load groups to the connection.

property auxiliary_handler: AuxiliaryDataHandler | None#

Auxiliary data handler of the model.

property cranks: CranksBase#

Cranks of the bicycle.

define_constraints() None#

Define the constraints on the connection.

define_kinematics() None#

Define the kinematics of the connection.

define_loads() None#

Define the loads on the connection.

define_objects() None#

Define the objects in the connection.

property descriptions: dict[Any, str]#

Descriptions of the attributes of the object.

get_all_symbols() set[sympy.core.basic.Basic]#

Get all declared symbols of a model.

get_description(obj: Any) str#

Get description of a given object.

get_param_values(bicycle_parameters: Bicycle) dict[sympy.core.symbol.Symbol, float]#

Get a parameters mapping of a model based on a bicycle parameters object.

property left_leg: LeftLegBase#

Left leg of the rider.

property load_groups: tuple[brim.core.base_classes.LoadGroupBase]#

Load groups of the connection.

property name: str#

Name of the object.

property right_leg: RightLegBase#

Right leg of the rider.

set_plot_objects(plot_object: MplPlotBase) None#

Set the symmeplot plot objects.

property submodels: tuple[brim.core.base_classes.ModelBase]#

Submodels of the connection.

property system: System | None#

System object used to store the information of the model itself.

Notes

This system object is used to store the information of the model itself. It does not by definition contain any information about the submodels or connections. Therefore, one cannot use this system object to form the equations of motion. Instead, one should use the to_system() method to get the system object representing the entire model.