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.
Similar content being viewed by others
References
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
Barobo, Inc. (2016). http://www.barobo.com. Accessed 3 Aug 2016
C-STEM Downloads Page: http://c-stem.ucdavis.edu/downloads (2016)
C-STEM Studio: http://c-stem.ucdavis.edu/studio (2016)
Cheng HH (1993) Handling of complex numbers in the Ch programming language. Sci Program 2(3):76–106
Cheng HH (1993) Scientific computing in the Ch programming language. Sci Program 2(3):49–75
Cheng HH (1994) Programming with dual numbers and its applications in mechanisms design. Eng Comput 10(4):212–229
Cheng HH (2014) Learning robot programming with linkbot for the absolute beginner. UC Davis Center for Integrated Computing and STEM Education
Cheng HH, Trang DT (2006) Object-oriented interactive mechanism design and analysis. Eng Comput 21(3):237–246
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
Gazebo (2016). http://playerstage.sourceforge.net/index.php?src=gazebo
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
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
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
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)
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)
Gucwa K, Cheng HH (2014) RoboSim for integrated computing and STEM education. In: 2014 ASEE annual conference
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)
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
Lego Mindstorms Education NXT Software (2015). http://education.lego.com/en-US. Accessed 3 Aug 2016
Lego Mindstorms NXT (2014). http://mindstorms.lego.com. Accessed 3 Aug 2016
Liu A, Newsom J, Schunn C, Shoop R (2013) Students learn programming faster through robotic simulation. Tech Dir 72(8):16–19
Liu AS, Schunn CD, Flot J, Shoop R (2013) The role of physicality in rich programming environments. Comput Sci Educ 23(4):315–331
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
Marilou (2014). http://www.anykode.com/marilou.php. Accessed 3 Aug 2016
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
OpenSceneGraph: http://www.openscenegraph.org. Accessed 3 Aug 2016
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)
Qt Signals and Slots. http://doc.qt.io/qt-5/signalsandslots.html. Accessed 3 Aug 2016
RoboSim (2016). http://c-stem.ucdavis.edu/studio/robosim. Accessed 3 Aug 2016
Robot Operating System. http://www.ros.org. Accessed 3 Aug 2016
Robot Virtual Worlds. http://www.robotvirtualworlds.com. Accessed 3 Aug 2016
RobotC (2015). http://www.robotc.net/. Accessed 3 Aug 2016
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
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
Smith R (2004) Dynamics simulation: a whirlwind tour. http://www.ode.org/slides/parc/index.html. Accessed 3 Aug 2016
SoftIntegration: Ch—an embeddable C/C++ interpreter (2013). http://www.softintegration.com. Accessed 3 Aug 2016
SoftIntegration: the Ch Language Environment–SDK User’s Guide. SoftIntegration, Inc (2013). http://www.softintegration.com. Accessed 3 Aug 2016
UC Davis Center for Integrated Computing and STEM Education (C-STEM) (2016). http://c-stem.ucdavis.edu. Accessed 3 Aug 2016
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
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
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
Corresponding author
Rights and permissions
About this article
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
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00366-017-0553-7