1 Introducing Electric Sheep
The team Electric Sheep was founded mid-2017 in Christchurch as the first New Zealand humanoid RoboCup team. The name is derived both from the novel by Phillip K. Dick Do Androids Dream of Electric Sheep? and the University of Canterbury’s historic background in agriculture .
Funding was acquired from the College of Engineering and the HITlab NZ in early 2018, which allowed the team to start building their low-cost humanoid platform with the intention of open-sourcing the designs after the competition. Although the team is new, it also has previous RoboCup experience from the captain who is from the UK-based teamBold Hearts, which notably achieved 2nd place in the world championship kid-sized competition in 2014 .
Electric Sheep will compete in the kid-sized humanoid league, which the team believe to have the lowest cost boundary to entry, a league offering a large number of interesting competitors and opportunities for future collaboration and improvement. Our intention is to combine the multiple backgrounds of the team members and foster interest in robotics in New Zealand.
The robotic platform was designed and built by the team over a period of 8 months. Part of our time has been spent developing a unique humanoid platform in the parametric CAD design software: OpenSCAD (see Figure 3)  and 3D printing with a MakerBot Replicator 2. Figure 3 shows the robots’ chassis which consists of 22 3D printed parts; 6 for each leg, 3 for each arm, and two for both the body and the head (not including internal PCB mounts). Our platform thus is easily configurable, printable and simulatable.
A Raspberry Pi 3 B+ running Raspbian lite is used as the main board and is responsible for processing all inputs and outputs of the platform. This was chosen as a powerful, low-cost, well documented and understood computing board.
Our platform is powered by a 4 cell 14.8V 2200mAh LiPo battery which is reduced down to 12V (smart motors) and also converted to 5V (main board, control boards, PWM servos). A 4 cell LiPo was chosen over a 3 cell LiPo as the voltage remains above 12V throughout operation, which allows the smart servos to operate with a reliable torque characteristic, where decrease in voltage would result in decrease in torque during operation.
Three different motors are used for the head, arm, and leg movements (as shown left in Figure 4). To integrate the signals from these motors, two different controller boards are used to control motors via serial and PWM, controlled by the main board via serial and I2C. The smart motors are placed in the legs, as shown in Figure 3.
The robots have two degrees of freedom (DoF) in their ankles, one DoF in their knees, three DoF in the hip joints, two DoF in the shoulder joints, two DoF in the elbow joints, and two DoF in the neck; for a total of 20 joints.
The framework is currently written from scratch in C++ with our intention to move to a framework such as Robot Operating System (ROS) when we upgrade the hardware next year. Currently there are two main loops:
Vision – Each cycle of the vision loop is synced with the input of the camera at 30 fps (our main source of new information about the environment). This loop processes the camera input and plans future tasks for the robot as discussed in Section 3.4.
Hardware – This thread operates at 100+ ups, servicing each motor and collecting non-camera inputs. This loop is updated by the vision loop which requests an action relative to the current state/location observed.
The robot uses a USB web camera which gives it an 640x480 pixel image in YUYV422 at 30 fps (see Figure 5). Figure 6 shows the order in which we process an image, where several basic algorithms are used to pre-process the image, with the purpose of reducing the search space for performing a classification filter, where a proposed ball candidate is rated on expected features such as: roundness, colour profile, distance, size and distance from previously identified location.Figure 5 shows the results of the ball classification branch. Section 4.5 specifies how we plan to extend this system in the near future.
We are currently using three classification filters: number of pixels, ratio of the pixels in the candidate area and the size of the candidate area. As the vision gets further developed, additional filters will be specified. However, the current three can successfully identify a white ball on the field under partial natural lighting conditions.
Our walking algorithm is adopted from the Rhoban team (2012 - present) who described their method IKWalk in depth in their 2015 Open Source Contribution paper . Their walk engine is designed for small humanoid robots with 12 DoF in the legs. It generates an oscillatory pattern that defines parameterised trajectories, then computes the target motor positions for inverse kinematics. Unlike the Rhoban team, our walking engine does not receive pressure feedback from pressure sensors in the feet, but instead we compute offsets on walk engine parameters based on the predicted centre of mass from the IMU.
In Figure 7 we express a simplified behaviour tree for game-play which allows us to reason about the actions taken by the robot.
In order to detect a fall, gyroscope and accelerometer values are read where it is determined whether correctional actions are still viable. If the robot is unable to correct, it braces for impact by relaxing motors which reduces wear on the internal gears. Next a sequence of actions are run to get the robot safely into a known stance, after which the get up sequence is run.
4 Research Interests
4.1 Low-Cost Humanoid Research Platform
The purpose of creating a new humanoid robot platform was to do so with a lower entry budget, where each unit costs approximately $2000 USD with the use of a moderately good 3D printer (such as the Makerbot series). Our intention is to open source the humanoid robot platform after the competition to encourage more teams to easily enter the competition. We believe this may also allow researchers to build multiple humanoid robots at a lower cost, with full knowledge and control over the system. One such use is discussed in Section 4.3.
Our intention is to implement a simplistic localisation based on a heading derived from the gyroscope, as well as the location of the robot to be derived from edge of the field and other players reporting their position relative to the field and ball. This data will be fused and passed through an extended Kalman filter, where we expect to derive the approximate location and rotation of the player
. This will be tracked over time, where confidence is increased both upon continued matches compared to estimation and is calibrated on high confidence events, such as kick-off.
We are considering breaking the symmetry of the field through cooperative localisation. It would work through the use of the team communication protocol and would be consensus based on agent confidence values. Each agent would communicate their own confidence on where they are at in the field, and update their position based on the information obtained from the others.
4.3 Human Robot Interaction (HRI)
The Human Interface Technology lab (HITlab NZ) has a number of people working on HRI research; specifically, social HRI (see for example [19, 7, 3]). Even when well aware that robots are machines without consciousness, humans still automatically interact with them as if they were social agents [11, 13]. This includes them expecting robots to adhere to social norms [4, 12], like turn-taking in a conversation and stepping to the side on time when their pathways are about to collide; and then planning their own behaviour based off of these expected robot behaviours. In terms of the RoboCup, this means that if robots and humans are ever going to play a football game together, robots will not just have to be able to play football but to play football in the same ways as humans.
In the shorter term, developing a cheap robot platform allows the HITlab NZ to customize the robot (Section 4.1) to the experiment at hand up to a certain extent. Moreover, with one of the PhD projects focusing on robot abuse, developing a low cost platform allows for designing experiments where participants can potentially damage the robots they’re interacting with, since repairing the robot and replacing any damaged parts will be relatively cheap and replacement parts can be purchased or printed in advance.
4.4 Bipedal Motion Engine
Our current walk engine consists of a custom scripted gaited bipedal walk, where various predetermined parameters (such as stride length, timing and joint offset) are used to actively balance the robot with the use of the gyro to determine how much correction is needed. Better well known and tested methods also exist for bipedal walking such as zero moment point (ZMP), where the center of pressure (CoP) is to remain within the support polygon during movement.
Unfortunately, like many other teams, this still leaves procedures such as “get-up from fallen” to be scripted, sometimes resulting in the robot unable to recover from some scenarios. In order to move towards our goal in 2050, our robots must be able to do more than slow walking to compete with human players and will have to do so in much more challenging settings.
We intend to experiment with specifying an end-target pose as an input and to a motion engine, which computes a pose for the next time step. Instead of specifying a sequence of actions for the robot to stand-up, we instead internally compute actions that help achieve our goal. Initial validation will be done using the MuJoCo physics engine .
To detect the ball, we plan to use an edge detection algorithm in combination with blob detection and filling algorithm to get several candidate blobs. The detected blob candidates are then passed to the ball recognition system, which is a pre-trained convolutional neural network (CNN). We also plan to use an extended Kalman filter to track the ball and this information is then integrated into the ball recognition system in the subsequent image sequences. We are actively in the process of improving both accuracy and computational efficiency of the ball recognition system using Basic Target Searching Algorithm, as proposed in.
Line Detection: To detect field and goal lines, we intend to implement the method proposed by . More specifically, an edge detector followed by probabilistic Hough line detection is to be applied. Smaller segments are to be filtered to avoid false positives. Finally, the remaining similar line segments are merged by using a straight-line algorithm to have fewer larger and accurate lines. The shorter line segments are used for detecting the field circle, while the remaining lines are passed to the localization method.
Goal Detection: We are trialling two methods to detect the goal post. The first method is to have a specific pattern on our goalkeeper and detect this, as well as goal lines, to differentiate our goal posts from the opponent goal posts. The second method involves a complete object recognition model using CNN to detect the goal in localised regions by means of a line detection algorithm.
We would like to acknowledge the open source projects: OpenSCAD and GitLab. We would also like to thank the University of Canterbury, specifically the College of Engineering, the School of Product Design, and the HITlab NZ, for providing financial and material resources. Finally, we’d like to thank the following persons: Associate Professor Christoph Bartneck, Associate Professor Richard Green, Dr Simon Hoermann and Dr Tim Huber.
-  University of Canterbury, History of the Coat of Arms (2018), https://www.canterbury.ac.nz/about/history/history-of-the-coat-of-arms/
-  B-Human SPL Team: RoboCup SPL and Humanoid League GameController (2018), https://github.com/RoboCup-Humanoid-TC/GameController
-  Brandstetter, J., Bartneck, C.: Robots will dominate the use of our language. Adaptive Behavior 25(6), 275–288 (2017)
-  Eyssel, F., Kuchenbrandt, D., Hegel, F., de Ruiter, L.: Activating elicited agent knowledge: How robot and user features shape the perception of social robots. In: RO-MAN, 2012 IEEE. pp. 851–857. IEEE (2012)
-  Farazi, H., Allgeuer, P., Behnke, S.: A Monocular Vision System for Playing Soccer in Low Color Information Environments. CoRR (2016)
-  FUmanoids Kid-Sized Team: Mixed Team Communication protocol (2018), https://github.com/RoboCup-Humanoid-TC/mitecom
-  Juarez, A., Bartneck, C., Feijs, L.: Using semantic technologies to describe robotic embodiments. In: Proceedings of the 6th international conference on Human-robot interaction. pp. 425–432. ACM (2011)
-  Kalman, R.E.: A New Approach to Linear Filtering and Prediction Problems. Transactions of the ASME–Journal of Basic Engineering 82(Series D), 35–45 (1960)
-  Kim, J.Y., Park, I.W., Lee, J., Oh, J.H.: Experiments of vision guided walking of humanoid robot, KHR-2. In: 5th IEEE-RAS International Conference on Humanoid Robots, 2005. vol. 5, pp. 135–140. IEEE, Tsukuba, Japan (2005)
-  Kintel, M.: OpenSCAD: The Programmers Solid 3D CAD Modeller (2018), https://www.openscad.org/
-  Krach, S., Hegel, F., Wrede, B., Sagerer, G., Binkofski, F., Kircher, T.: Can machines think? interaction and perspective taking with robots investigated via fmri. PloS one 3(7), e2597 (2008)
-  Mutlu, B., Forlizzi, J.: Robots in organizations: the role of workflow, social, and environmental factors in human-robot interaction. In: Proceedings of the 3rd ACM/IEEE international conference on Human robot interaction. pp. 287–294. ACM (2008)
-  Rosenthal-von der Pütten, A.M., Schulte, F.P., Eimler, S.C., Hoffmann, L., Sobieraj, S., Maderwald, S., Krämer, N.C., Brand, M.: Neural correlates of empathy towards robots. In: Proceedings of the 8th ACM/IEEE international conference on Human-robot interaction. pp. 215–216. IEEE Press (2013)
-  Rouxel, Q., Passault, G., Hofer, L., N’Guyen, S., Ly, O.: Rhoban Hardware and Software Open Source Contributions for RoboCup Humanoids. In: Proceedings of 10th Workshop on Humanoid Soccer Robots, IEEE-RAS Int. Conference on Humanoid Robots, Seoul, Korea (2015)
-  Scheunemann, M.M., van Dijk, S.G., Rossi, A., Barry, D., Polani, D.: Bold Hearts Team Description RoboCup 2018 Kid Size. Tech. rep., University of Hertfordshire (UK) (2018)
Susanto, Rudiawan, E., Analia, R., Sutopo, D., Soebakti, H.: The deep learning development for real-time ball and goal detection of barelang-FC. In: 2017 International Electronics Symposium on Engineering Technology and Applications (IES-ETA). IEEE, Surabaya, Indonesia (2017)
-  Todorov, E., Erez, T., Tassa, Y.: MuJoCo: A physics engine for model-based control. In: 2012 IEEE/RSJ International Conference on Intelligent Robots and Systems. University of Washington, IEEE, Vilamoura, Portugal (2004)
-  Vukobratovic, M., Borovac, B.: Zero-Moment Point - Thirty Five Years Of Its Life. International Journal of Humanoid Robotics 1(1), 157–173 (2004)
-  Zlotowski, J., Proudfoot, D., Bartneck, C.: More human than human: does the uncanny curve really matter? Proceedings of the 8th ACM/IEEE International Conference on Human-Robot Interaction (2013)