Skip to main content
Log in

RoboSim: a simulation environment for programming virtual robots

  • Original Article
  • Published:
Engineering with Computers Aims and scope Submit manuscript

Abstract

In this paper, the design of RoboSim, a simulation environment for programming virtual Linkbot and Lego Mindstorms NXT/EV3 robots, is described in detail. RoboSim integrates into the Ch programming environment, a C/C++ interpreter that provides the ability to remotely control robots through interpreted C/C++ code. The same Ch code can control either hardware or virtual robots without any modification. Open source software projects Open Dynamics Engine, OpenSceneGraph, and Qt are employed to produce the virtual environment and user interface which provide the capability of running on all major software platforms. The design of the software includes multiple modules each specific to a particular task; therefore, the simulation library and graphical user interface (GUI) utilize the common pieces. The GUI provides an interactive view of RoboSim to add robots, obstacles, and graphical objects to preview the environment before executing code for the robots. Execution of Ch code designed for the robots generates a new RoboSim window which has the identical scene from the GUI with dynamic simulation capabilities. The interpreted code controlling the simulation can be paused and resumed as necessary to fully understand how the robots are moving.

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
Fig. 11
Fig. 12
Fig. 13
Fig. 14

Similar content being viewed by others

References

  1. Awaad I, León B (2008) XPERSim: a simulator for robot learning by experimentation. In: Carpin S, Noda I, Pagello E, Reggiani M, Stryk O (eds) Simulation, modeling, and programming for autonomous robots, lecture notes in computer science, vol 5325. Springer, Berlin, pp 5–16

    Chapter  Google Scholar 

  2. Barobo, Inc. (2016). http://www.barobo.com. Accessed 3 Aug 2016

  3. C-STEM Downloads Page: http://c-stem.ucdavis.edu/downloads (2016)

  4. C-STEM Studio: http://c-stem.ucdavis.edu/studio (2016)

  5. Cheng HH (1993) Handling of complex numbers in the Ch programming language. Sci Program 2(3):76–106

    Google Scholar 

  6. Cheng HH (1993) Scientific computing in the Ch programming language. Sci Program 2(3):49–75

    Google Scholar 

  7. Cheng HH (1994) Programming with dual numbers and its applications in mechanisms design. Eng Comput 10(4):212–229

    Article  Google Scholar 

  8. Cheng HH (2014) Learning robot programming with linkbot for the absolute beginner. UC Davis Center for Integrated Computing and STEM Education

  9. Cheng HH, Trang DT (2006) Object-oriented interactive mechanism design and analysis. Eng Comput 21(3):237–246

    Article  Google Scholar 

  10. Freese M, Singh S, Ozaki F, Matsuhira N (2010) Virtual robot experimentation platform V-REP: a versatile 3D robot simulator. In: Proceedings of the second international conference on simulation, modeling, and programming for autonomous robots, SIMPAR’10. Springer, Berlin, pp 51–62

  11. Gazebo (2016). http://playerstage.sourceforge.net/index.php?src=gazebo

  12. Gerkey BP, Vaughan RT, Howard A (2003) The player/stage project: tools for multi-robot and distributed sensor systems. In: In Proceedings of the 11th international conference on advanced robotics, pp 317–323

  13. Gonçales J, Lima J, Malheiros P, Costa P (2009) Realistic simulation of a Lego Mindstorms NXT based robot. In: IEEE CCA/ISIC, pp 1242–1247

  14. Goodin C, Durst PJ, Gates B, Cummins C, Priddy J (2010) High fidelity sensor simulations for the virtual autonomous navigation environment. In: Proceedings of the second international conference on simulation, modeling, and programming for autonomous robots, SIMPAR’10. Springer, Berlin, pp 75–86

  15. Gucwa K, Cheng HH (2013) Programming modular robots in a simulated environment for hardware control validation. In: 2013 ASME/IEEE international conference on mechatronic and embedded systems and applications (MESA)

  16. Gucwa K, Cheng HH (2014) RoboSim: a simulated environment for programming modular robots. In: 2014 IEEE/ASME 10th international conference on mechatronic and embedded systems and applications (MESA)

  17. Gucwa K, Cheng HH (2014) RoboSim for integrated computing and STEM education. In: 2014 ASEE annual conference

  18. Gucwa KJ, Cheng HH (2015) An interactive virtual environment for programming modular robots. In: 2015 ASME/IEEE international conference on mechatronic and embedded systems and applications (MESA)

  19. Ko D, Cheng HH, Ryland GG (2010) Reconfigurable software for reconfigurable modular robots. In: 2010 IEEE international conference on robotics and automation, Workshop on modular robotics: state of the art

  20. Lego Mindstorms Education NXT Software (2015). http://education.lego.com/en-US. Accessed 3 Aug 2016

  21. Lego Mindstorms NXT (2014). http://mindstorms.lego.com. Accessed 3 Aug 2016

  22. Liu A, Newsom J, Schunn C, Shoop R (2013) Students learn programming faster through robotic simulation. Tech Dir 72(8):16–19

  23. Liu AS, Schunn CD, Flot J, Shoop R (2013) The role of physicality in rich programming environments. Comput Sci Educ 23(4):315–331

    Article  Google Scholar 

  24. Liu C, Chen Q (2012) Walking control strategy for biped robots based on central pattern generator. In: IEEE international conference on robotics and automation, ICRA 2012, 14-18 May, 2012, St. Paul, Minnesota, USA, pp 57–62

  25. Marilou (2014). http://www.anykode.com/marilou.php. Accessed 3 Aug 2016

  26. Murata S, Yoshida E, Kamimura A, Kurokawa H, Tomita K, Kokaji S (2002) M-TRAN: self-reconfigurable modular robotic system. IEEE/ASME Trans Mechatron 7(4):431–441

    Article  Google Scholar 

  27. OpenSceneGraph: http://www.openscenegraph.org. Accessed 3 Aug 2016

  28. Qian B, Cheng HH (2015) ChMindstorms for controlling multi-robot systems. In: 2015 ASME/IEEE international conference on mechatronic and embedded systems and applications (MESA)

  29. Qt Signals and Slots. http://doc.qt.io/qt-5/signalsandslots.html. Accessed 3 Aug 2016

  30. RoboSim (2016). http://c-stem.ucdavis.edu/studio/robosim. Accessed 3 Aug 2016

  31. Robot Operating System. http://www.ros.org. Accessed 3 Aug 2016

  32. Robot Virtual Worlds. http://www.robotvirtualworlds.com. Accessed 3 Aug 2016

  33. RobotC (2015). http://www.robotc.net/. Accessed 3 Aug 2016

  34. Ryland G, Cheng HH (2010) Design of iMobot, an intelligent reconfigurable mobile robot with novel locomotion. In: Proceedings of IEEE international conference robotics and automation (ICRA), pp 60–65

  35. Ryland G, Cheng HH (2010) Novel Locomotion of iMobot, an intelligent reconfigurable mobile robot. In: Video Proceedings of 2010 IEEE international conference on robotics and automation

  36. Smith R (2004) Dynamics simulation: a whirlwind tour. http://www.ode.org/slides/parc/index.html. Accessed 3 Aug 2016

  37. SoftIntegration: Ch—an embeddable C/C++ interpreter (2013). http://www.softintegration.com. Accessed 3 Aug 2016

  38. SoftIntegration: the Ch Language Environment–SDK User’s Guide. SoftIntegration, Inc (2013). http://www.softintegration.com. Accessed 3 Aug 2016

  39. UC Davis Center for Integrated Computing and STEM Education (C-STEM) (2016). http://c-stem.ucdavis.edu. Accessed 3 Aug 2016

  40. Yim M, Duff DG, Roufas KD (2000) Polybot: a modular reconfigurable robot. In: Proceedings of IEEE international conference robotics and automation (ICRA), pp 514–520

  41. Zahedi K, von Twickel A, Pasemann F (2008) YARS: a physical 3D simulator for evolving controllers for real robots. In: Carpin S, Noda I, Pagello E, Reggiani M, von Stryk O (eds) SIMPAR, lecture notes in computer science, vol 5325. Springer, Venice, Italy, pp 75–86

    Google Scholar 

Download references

Acknowledgements

This work was supported in part by the National Science Foundation Grant numbers CNS-1132709, IIS-1208690, IIS-1256780, and IIP-1152678.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Harry H. Cheng.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Gucwa, K.J., Cheng, H.H. RoboSim: a simulation environment for programming virtual robots. Engineering with Computers 34, 475–485 (2018). https://doi.org/10.1007/s00366-017-0553-7

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s00366-017-0553-7

Keywords

Navigation