Skip to main content
Log in

Validation of multibody modeling and simulation using an instrumented bicycle: from the computer to the road

  • Published:
Multibody System Dynamics Aims and scope Submit manuscript

Abstract

This paper describes the use of an instrumented bicycle and its computational model for teaching multibody dynamics. The presented approach employs the Whipple model for the kinematic and inverse dynamic simulation of a bicycle ride using as an input three generalized coordinates registered with digital sensors. During the experimental phase, students ride the instrumented bicycle to collect the necessary sensor data. The kinematic and inverse dynamic simulations based on these signals provide a full picture of the motion of the system in different positions and at a range of velocities and accelerations. In addition, they estimate the traction, control, and tire-to-road contact forces during the ride. To validate the simulated results, the simulated velocity and accelerations are compared with the data acquired with an inertial measurement unit (IMU) installed on the bicycle. The paper describes the experimental setup of the instrumented bicycle, enabling readers to build the very same system for their own educational use. The instrumented bicycle system is based on open-source software and as much as possible on open hardware.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10

Similar content being viewed by others

References

  1. Escalona, J.L., Recuero, A.M.: A bicycle model for education in multibody dynamics and real-time interactive simulation. Multibody Syst. Dyn. 27(3), 383–402 (2012)

    Article  MathSciNet  MATH  Google Scholar 

  2. Whipple, F.J.W.: The stability of the motion of a bicycle. Quart J. Pure Appl. Math. 30, 312–348 (1899)

    MATH  Google Scholar 

  3. Meijaard, J.P., Papadopoulos, J.M., Ruina, A., Schwab, A.L.: Linearized dynamics equations for the balance and steer of a bicycle: a benchmark and review. Proc. R. Soc. A 463, 1955–1982 (2007)

    Article  MathSciNet  MATH  Google Scholar 

  4. Kooijman, J.D.G., Meijaard, J.P., Papadopoulos, J.M., Ruina, A., Schwab, A.L.: A bicycle can be self-stable without gyroscopic or caster effects. Science 332(6027), 339–342 (2011)

    Article  MathSciNet  MATH  Google Scholar 

  5. Kooijman, J.D.G., Schwab, A.L., Meijaard, J.P.: Experimental validation of a model of an uncontrolled bicycle. Multibody Syst. Dyn. 19(1–2), 115–132 (2008)

    Article  MATH  Google Scholar 

  6. Frączek, J., Wojtyra, M.: Teaching multibody dynamics at Warsaw University of Technology. Multibody Syst. Dyn. 13, 353–361 (2005)

    Article  MATH  Google Scholar 

  7. Cavacece, M., Pennestrì, E., Sinatra, R.: Experiences in teaching multibody dynamics. Multibody Syst. Dyn. 13, 363–369 (2005)

    Article  MATH  Google Scholar 

  8. Pennestrì, E., Vita, L: Multibody dynamics in advanced educations. In: Ambrósio, J.A.C. (ed.) Advances in Computational Multibody Systems, pp. 345–370. Springer, Dordrecht (2005)

    Chapter  Google Scholar 

  9. Fissete, P., Samin, J.C.: Teaching multibody dynamics from modeling to animation. Multibody Syst. Dyn. 13, 339–351 (2005)

    Article  MATH  Google Scholar 

  10. Fissete, P., Samin, J.C.: Engineering education in multibody dynamics. In: Bottasso, C.L. (ed.) Multibody Dynamics. Computational Methods and Applications, pp. 159–178. Springer, Dordrecht (2007)

    Chapter  Google Scholar 

  11. Docquier, N., Fissete, P., Samin, J.C.: Hypotheses formulation in multibody dynamics: an educational challenge. Application to mountain bike dynamics. In: Multibody Dynamics 2009, ECCOMAS Thematic Conference, 29 June–2 July, Warsaw, Poland (2009)

    Google Scholar 

  12. de Jalón, G., Callejo, A.J.: Incorporating multibody dynamics into undergraduate subjects. In: 5th Asian Conference on Multibody Dynamics, 23–26 August, Kyoto, Japan (2010)

    Google Scholar 

  13. García de Jalón, J., Callejo, A.: A straight methodology to include multibody dynamics in graduate and undergraduate subjects. Mech. Mach. Theory 46(2), 168–182 (2011)

    Article  MATH  Google Scholar 

  14. Callejo, A., García de Jalón, J.: Teaching undergraduate numerical methods through a practical multibody dynamics project. In: Proceedings of the ASME Design Engineering Technical Conference, 4(Parts A and B), pp. 657–665 (2011)

    Google Scholar 

  15. Petuya, V., Altuzarra, O., Pinto, C., Hernandez, A: An educational software for the kinematic analysis of spatial mechanisms. In: Multibody Dynamics 2009, ECCOMAS Thematic Conference, 29 June–2 July, Warsaw, Poland (2009)

    Google Scholar 

  16. Rideout, G.: Teaching multibody dynamics in an undergraduate curriculum – an intuitive and explicit formalism based on parasitic elements. In: ASEE Annual Conference and Exposition, Conference Proceedings (2008)

    Google Scholar 

  17. Wolfsteiner, P.: Teaching multibody system simulation, an approach with Matlab. In: ASEE Annual Conference and Exposition, Conference Proceedings (2012)

    Google Scholar 

  18. Schwab, A.L.: On the interpretation of the Lagrange multipliers in the constraint formulation of contact problems: or why some multipliers are always zero? In: Proceedings of the ASME 2014 International Design Engineering Technical Conferences, DETC2014-34709 (2014)

    Google Scholar 

  19. Madgwick, S.O.H., Harrison, A.J.L., Vaidyanathan, A.: Estimation of IMU and MARG orientation using a gradient descent algorithm. In: Proceedings of the IEEE International Conference on Rehabilitation Robotics, Zurich, Switzerland, 29 June–1 July 2011, pp. 1–7 (2011)

    Google Scholar 

  20. Valenti, R.G., Dryanovski, I., Xiao, J.: Keeping a good attitude: a quaternion-based orientation filter for IMUs and MARGs. Sensors 15, 19302–19330 (2015)

    Article  Google Scholar 

Download references

Acknowledgements

This paper was funded by the Spanish Ministry of Economy and Competitiveness under project reference TRA2014-57609-R. Their support is gratefully acknowledged.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Sergio Muñoz.

Additional information

Publisher’s Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Appendix: Description of instrumented bicycle

Appendix: Description of instrumented bicycle

Five sensors are integrated for the measurements: inertial measurement unit (IMU) Bosch BMI160 containing a three-axis digital accelerometer and a three-axis digital gyroscope, a G-NSDOG2-001 two-axis inclinometer from TE Connectivity Sensors and two two-phase incremental rotary encoders LPD3806-600BM-G5-24G. The BMI160 is provided on a shuttle board for easy prototyping. The main specifications of these sensors are:

  • IMU BMI160: accelerations with a selectable range ±2, ±4, ±8, ±16 g and a 16-bit resolution and an angular velocity of a selectable range ±125, ±250, ±500, ±1000, \({\pm } 2000^{\circ }/\mbox{s}\) and a 16-bit resolution.

  • Inclinometer G-NSDOG2-001: Range of \({\pm} 20^{\circ }\) and 12-bit resolution.

  • Encoders LPD3806-600BM-G5-24G: 2400 pulses/rev or \(0.15^{\circ }\) accuracy.

All sensors are connected to the Arduino Due board, which communicates with BMI160 through a four-wire SPI protocol. Rotary encoders are connected to general I/O pins of Arduino, and each encoder requires two pins to determine the rotation direction and number of steps. Raspberry Pi 3 serves as a bridge between low-level time critical data sampling performed by Arduino and high-level processor-intensive tasks of data storage and communication with smart phone and laptops through WiFi. Task divisions between boards and communication protocols are presented in Fig. 11, while electrical connections between components are depicted in Fig. 12. To make the system easier for the user to control, a simple control panel have been designed to provide the basic information—battery charge level, operation status (ready, data acquisition, calibration in progress)—with three buttons which enable the imitation of data acquisition, stopping it, or entering calibration mode (see Fig. 4). The calibration process is performed while keeping the bicycle in the upright positon to set the zero value of the two encoders and the inclinometer and the orientation of the accelerometer with respect to the gravity force.

Fig. 11
figure 11

Communications and roles of the instrumented bicycle components.

Fig. 12
figure 12

Electrical connections between the components of the instrumented bicycle.

The software of the system consists of the Arduino Due code, a C++ host program running on Raspberry Pi, and the PHP code on Raspberry Pi for creating a user web interface. All codes are available as supplementary material to this article. To ease data storage and management, the MySQL database engine has been installed on Pi. The web server Apache plus PHP, on the other hand, has been installed for hosting user interface web pages and manuals. In addition, the file server Samba has been installed to facilitate code and data transfer during development between Raspberry Pi and a laptop. A tight VNC server has been installed to provide a remote desktop user experience for users connecting from laptops. This eliminates the need of a separate screen, keyboard, and mouse to operate Pi.

Code running on Arduino calibrates all of the sensors, acquiring data from them and transferring the data to Pi. Arduino also handles physical control panel. It is worth noting that this task could equally easily be implemented on Raspberry Pi GPIO pins.

The C++ host program running on Pi is the core of communication between Ardunio and the user. This program acts as a TCP/IP socket server for the PHP code to exchange commands between users running on laptops/phones and Arduino. The TCP/IP socket for communication with Matlab is used to visualize the data and run real-time simulations. Whenever a measurement session is on, the C++ host code collects the data measured by Arduino and saves it to the MySQL database, also transmitting the data to Matlab clients connected through TCP/IP sockets.

The web interface has been coded in HTML with CSS and PHP server side scripts. On the client side, JavaScript is used to communicate with the server asynchronously to refresh data that is presented to the user and to send user commands to the server. When a data request is made, JavaScript on the client side transmits the command to an Apache web server, where PHP script receives that data and forwards it to the C++ code using sockets. The C++ code executes the command locally (for example, power down), or forwards it to Arduino, and then responds to the PHP script, which produces a response for the client. If the client requests measurement data, the PHP script reads the data directly from the MySQL server and sends formatted data to the client.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Escalona, J.L., Kłodowski, A. & Muñoz, S. Validation of multibody modeling and simulation using an instrumented bicycle: from the computer to the road. Multibody Syst Dyn 43, 297–319 (2018). https://doi.org/10.1007/s11044-018-9626-7

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11044-018-9626-7

Keywords

Navigation