The Roombots example you posted does not use a level shifter because they are using the Create USB cable to talk to the robot. If you are planning to use this cable, you do not need the level shifter. If you are not planning to use this cable and instead will be interfacing directly to the Raspberry Pi serial pins (on the GPIO header), then the answer below applies:
Yes, you should use a level shifter between the iRobot Create and the Raspberry Pi, and you must use one on the input to the Raspberry Pi. The Create uses 5V logic levels, while the Raspberry Pi uses 3.3V logic levels. The Raspberry Pi output high (3.3V) is high enough for the Create to "see" it as a "high" input, so you don't necessarily need a logic level shifter for the Create inputs. However, a Create output high (5.0V) is higher than the processor on the Raspberry Pi can handle for long, and sustained use will cause the serial port on the Raspberry Pi to fail. The circuit in the drawing is indeed bidirectional, but only one of those directions (Create TX to Pi RX) is being used; you could just as easily replace the FET with a Schottky diode from source to drain and eliminate R2.
Please note that while I'm an iRobot employee, the postings on this site are my own and don't necessarily represent iRobot's positions, strategies, or opinions.