Sudeep Sidhu Open Source Python Developer

GSoC 2021 - Week 4

Key highlights of this week’s work are:

  • Implement PinJoint and Joint class

    • After doing hours of work and handling all the complicated corner cases, like when parent_axis and child_axis are oppposite to each other, finally got this PR merged!! PinJoint is ready to roll.

  • Check order of arguments in orient_axis()

    • When we broke orient() to orient_axis , we by chance changed the order of arguments of angle and axis, since that change had been released we handled this case by changing arugments in source code if their types is correct, i.e if correct parameters are in wrong order.

  • Add new features to class body

    • Since Body is general class for Particle and RigidBody , is synonymous to RefernceFrae and is to be used with Joints , Body class needed some functions from these classes for smooth functioning and less typing. I curently added the functions which I thought would be needed by the user again and again. Namely :- maascenter_vel(), and_vel_in(), dcm().

  • Add basis vector to body

    • Since Body is almost synonymous to ReferenceFrame, added the basis vector to class Body, so now vector with Body’s frame can be generated from Body.

  • Implement Sliding Joint

    • I had been working on SlidingJoint for a while, this week I cleaned the code, added tests for corner cases and completed the docstring with examples.

GSoC 2021 - Week 3

Key highlights of this week’s work are:

  • Implement PinJoint and Joint class

    • Corrected the assumptions, added extensive docstrings and tests.

  • Implement SlidingJoint

    • Completed the implementation of SlidingJoint, tests and docstrings included.

  • Check order of arguments in orient_axis()

    • The orient_axis() checks the order of it’s arguments(axis and angle) and raises TypeError if order is incorrect because earlier the value of arguments being correct and order being correct the error message made it difficult to tracse back to a simple error.

GSoC 2021 - Week 2

Key highlights of this week’s work are:

  • Implement PinJoint and Joint class

    • Implemented the _orient_frame() to orient frames in arbitrary axes to align child and parent axes. Added proper tests for this functionality. Finally this PR seems almost done and is in review phase.

  • Implement SlidingJoint

    • The SlidingJoint class is the practical implementation of a Pin Joint. This class inherits Joint class and forms KDEs, orient frames, set linear and angular velocities all by itself, according to the SlidingJoint. Implemented the entire class along with docstring and some unit tests.

GSoC 2021 - Week 1

Key highlights of this week’s work are:

  • Implement PinJoint and Joint class

    • There was one concept which I was missing in implementing Joints, and that was aligning axis before orienting frames. This week I tried to get some grip over physics topics and tried implementing the things I learnt.

  • Adds angle_between to physics.Vector

    • Added a new function, angle_between to Vector class to calculate angle between two vectors, which was earlier needed to calculate manually using formula.

GSoC 2021 - End of Community Bonding Period

GSoC community bonding offically came to end yesterday and from today the official coding period has started. The community bonding period was really productive as we started early and finalized the API design.

Key highlights of this week’s work are:

  • Implement PinJoint and Joint class

    • This PR implements Joint class and PinJoint class. Joint class will serve as an abstract base class which would be inherited by other joint classes. The PinJoint class is the practical implementation of a Pin Joint. This class inherits Joint class and forms KDEs, orient frames, set linear and angular velocities all by itself, according to the PinJoint.