@import url(http://kodlab.seas.upenn.edu/pub/skins/sinorca/basic.css); @import url(http://kodlab.seas.upenn.edu/pub/skins/sinorca/layout.css); @import url(http://kodlab.seas.upenn.edu/pub/skins/sinorca/sinorca.css);
At the end of the Spring semester and at the beginning of the summer, I had the EduBot use the Vicon system and a Nelder-Mead algorithm to auto-tune its backwards walking gait. Before this, the EduBotís best method of walking backwards was simply reversing its forward gait; this project enabled us to have a walking gait specifically designed for walking backwards. This task was fairly simple and was mostly making sure the robot didnít hurt itself, though it was helpful in finding a good backwards gait.
The EduBots had the circuit boards in their hip nodes updated with a new design. To implement this new design, I soldered 18 boards (for a total of 3 complete sets). These boards only had about 7 or 8 components each and were each a combination of two boards soldered together with ribbon cable. This task served as a good intro to soldering and was challenging without being too difficult.
The bulk of my time was spent creating a GUI which would then be used to control one or (eventually) more of the EduBots. Before this, I had never written a GUI nor used Python, so it ended up being a very rewarding task.
The general guidelines I was given were that the GUI needed to be in Python and that it needed to use the wxPython and PyGame modules. These choices were made so that I could combine the ease of learning and using Python with the flexibility and power of the wxWidgets library while having a simple method of using the devices we decided to plug into the computer. This combination would also allow the code I wrote to run on Windows, Mac OS, and Linux while always looking native to whichever operating system was running it.
A key component of this GUI was reading events from control devices and interpreting those events to create visual feedback for the user on the computer screen. Our eventual goal was to incorporate the devices we already had in the lab while making the code modular enough that a new device could be implemented and used by writing roughly 10 lines of code. We decided to use Wingman Rumble Pad and Logitech Dual Action controllers as well as a Behringer MIDI controller to control the robots. In order to facilitate this, a custom event type was implemented which could receive both MIDI events and joystick events (through PyGame). These events could then be processed to determine the type and source of each event in order to provide the user with an accurate, on-screen depiction of what was occurring. In the process of creating visualizations for these control devices, I also created custom wxWidgets for the analog sticks on the joystick devices and for the knobs on the MIDI controller. This way, the code is more modular and will allow us to implement future devices with greater ease.
There was also progress made in implementing a panel which provided the user with 3-D depiction of the robot itself so that its physical state was available to the user. This panel used OpenGL and allowed the user to point and click in order to give the user a view from any perspective.
Copyright Kodlab, 2017