Raspberry Pi has only one hardware PWM channel and Linux distribution it runs is not a real time system, so software PWM may be very unstable. You are not guaranteed, that your program will be executed at exact frequency you want, so you will have trouble getting precise timing required to drive servos.
If you already have Arduino Mega and SSC-32, I would suggest to make all the computations on the RPi, and just send the results to the servo controller via serial. I imagine your system like this: you have a central controller (RPi) that processes images from camera, detects obstacles, calculates positions for robot's legs and sends them to servo controller. These tasks can be done in various intervals - even if you have 100ms delay, nothing bad happens, because real-time part (requiring exact timing like driving servos) is handled by servo controller, which has hardware features that make it much more suitable for such a task.
Alternatively, to make system more compact, you could use dedicated RPi servo shield, or make your own basing on chips like PCA9685, which is PWM driver controlled via I2C. You can chain these chips to control more channels than 16.