FreeSN: A Freeform Strut-node Structured Modular Self-reconfigurable Robot - Design and Implementation