Legged Locomotion
As an undergraduate at UMass Lowell I worked in the TRACE Lab (now at Purdue University) which works to further research and development of legged locomotion among other robotics systems. My role in the lab involved Digit, a bipedal robot from Agility Robotics. My roles included:
-
Dynamic modeling and simulation
- Experience with FROST, MATLAB, urdf filetype, holonomic constraints, and ROS
- Worked with Digit's default simulator to implement our own changes
-
Trajectory planning and optimization
- Experience with a phase variable system for joint trajectories
5 Link Walker
To understand the basics of robotics and hybrid walking, we started with a simple 2D 5 link robot and simulated the discrete walking using time-based joint trajectories. The time based trajectories were useful so that we could focus on understanding the basics of the math and make it easier to code.
-
Topics Covered
- Discrete dynamics
- Error dynamics
- introduction to FROST
- urdf filetype
- Holonomic constraints
- MATLAB ODE45 and event ODE
7 Link Walker
Once the 5 link model was working properly, the next step was to replace the time based trajectory with a phase variable system. This type of system allows for much more flexibility in controlling certain variables and joint paths, as shown in the three variations above. These seemingly complex gaits were generated only by changing a few coefficients. For the phase implimentation to work it was necesary that the robot had knees, so we upgraded to a seven link robot.
-
Progress made:
- Implimented the phase variable and guessed bezier coeficients
- Did not optimize bezier coeficients
- Implimented the phase variable and guessed bezier coeficients
Digit
The simulation for Digit required the code to be updated to 3D. This is mostly changes in the linear algebra and matrix sizes. We also needed to come up with new holonomic constraints due to the new degrees of freedom, as well as the complexity in Digit's closed loop chains.
- Progress:
- Converted dynamics to 3D
- Created visualization code for Digit in 3D using forward kinematics
- Implimented a numerical jacobian to the code
- Used the forward kinematics functions as an input in the numeric jacobian function to calculate J and J dot
- Formulated new holonomic constraints to account for passive joints and new degrees of freedom