<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Home | Zilin Chen's Homepage</title><link>https://zilin-chen-22.github.io/zilinchen.github.io/</link><atom:link href="https://zilin-chen-22.github.io/zilinchen.github.io/index.xml" rel="self" type="application/rss+xml"/><description>Home</description><generator>Hugo Blox Builder (https://hugoblox.com)</generator><language>en-us</language><lastBuildDate>Tue, 24 Oct 2023 00:00:00 +0000</lastBuildDate><image><url>https://zilin-chen-22.github.io/zilinchen.github.io/media/icon_hu7729264130191091259.png</url><title>Home</title><link>https://zilin-chen-22.github.io/zilinchen.github.io/</link></image><item><title>7-DOF Robotic Arm Motion Planning Algorithm Development for Humanoid Robots</title><link>https://zilin-chen-22.github.io/zilinchen.github.io/blog/xiaomi/</link><pubDate>Tue, 15 Jul 2025 00:00:00 +0000</pubDate><guid>https://zilin-chen-22.github.io/zilinchen.github.io/blog/xiaomi/</guid><description>&lt;h2 id="project-overview">Project Overview&lt;/h2>
&lt;p>&lt;strong>Core Objective&lt;/strong>: Develop motion planning algorithms for Xiaomi&amp;rsquo;s 7-DOF humanoid robotic arm, enhancing motion precision (&amp;lt;0.3mm error), stability, and robustness against payload variations.&lt;br>
&lt;strong>Technical Framework&lt;/strong>:&lt;/p>
&lt;ul>
&lt;li>Theoretical Basis: DH parameters, inverse kinematics (IK), trajectory interpolation&lt;/li>
&lt;li>Toolchain: MuJoCo simulation, C/Python co-development&lt;/li>
&lt;li>Validation Protocol: Dual verification system complying with ISO 9283 standards (positioning accuracy, path repeatability)&lt;/li>
&lt;/ul>
&lt;h2 id="key-technical-achievements">Key Technical Achievements&lt;/h2>
&lt;ol>
&lt;li>&lt;strong>Kinematics Algorithm Development&lt;/strong>
&lt;ul>
&lt;li>Forward Kinematics: Established DH-based coordinate transformation model with 0.1mm calculation precision&lt;/li>
&lt;li>IK Solver Optimization:
&lt;ul>
&lt;li>Developed universal inverse kinematics interface auto-adapting to URDF configurations&lt;/li>
&lt;li>Hybrid numerical-geometric solution reducing end-effector positioning error to 0.3mm&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Trajectory Smoothing: Implemented Kalman filtering with B-spline interpolation, decreasing joint velocity fluctuations by 30%&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Simulation-Physical Validation&lt;/strong>
&lt;ul>
&lt;li>MuJoCo Environment: Calibrated dynamic parameters (gravity compensation, joint friction models) matching h1_2 hardware specs&lt;/li>
&lt;li>Hardware-in-the-Loop Validation: &amp;lt;1.5% deviation in 50 test trajectories between simulation and physical tests&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ol>
&lt;div style="text-align: center;">
&lt;img src="traj.jpg" alt="trajectory planning image" style="width: 80%;">
&lt;div>
trajetory planner with filter
&lt;/div>
&lt;/div>
&lt;div style="text-align: center;">
&lt;img src="error.jpg" alt="enduable error image" style="width: 40%;">
&lt;img src="error2.jpg" alt="enduable error image" style="width: 40%;">
&lt;div>
enduable test results demo
&lt;/div>
&lt;/div>
&lt;h2 id="system-optimization">System Optimization&lt;/h2>
&lt;p>&lt;strong>Three-Core Enhancement Strategy&lt;/strong>:&lt;/p>
&lt;ol>
&lt;li>Fail-Safe Mechanism: Collision detection triggering 10ms emergency stop&lt;/li>
&lt;li>Computational Efficiency: optimized code achieving 1kHz control frequency&lt;/li>
&lt;/ol>
&lt;p>&lt;strong>Strategic Recommendations&lt;/strong>:&lt;/p>
&lt;ol>
&lt;li>Engineering: Implement fault injection testing for failure mode analysis&lt;/li>
&lt;li>Collaboration: Establish knowledge-sharing platform for URDF optimization&lt;/li>
&lt;/ol></description></item><item><title>Ultra-Lightweight DEA Drone Flight Controller Development</title><link>https://zilin-chen-22.github.io/zilinchen.github.io/blog/dea_drone/</link><pubDate>Tue, 04 Mar 2025 00:00:00 +0000</pubDate><guid>https://zilin-chen-22.github.io/zilinchen.github.io/blog/dea_drone/</guid><description>&lt;p>Since March 2025, I have been collaborating with Professor &lt;strong>Huichan Zhao&lt;/strong> to develop an innovative flight control system for an ultra-lightweight drone utilizing soft artificial muscles. The drone weighs only 23 grams and employs Dielectric Elastomer Actuators (DEA) as its primary propulsion mechanism.&lt;/p>
&lt;h2 id="project-overview">Project Overview&lt;/h2>
&lt;p>This research focuses on overcoming the unique challenges of controlling drones powered by soft artificial muscles. Unlike traditional motor-based systems, DEA actuators offer silent operation, high energy efficiency, and biomimetic movement patterns, but require specialized control approaches due to their nonlinear electromechanical properties.&lt;/p>
&lt;h3 id="flight-controller-development">Flight Controller Development&lt;/h3>
&lt;p>I am designing a custom flight controller architecture specifically optimized for DEA-driven drones:&lt;/p>
&lt;ul>
&lt;li>Implemented real-time control algorithms accounting for DEA hysteresis and viscoelastic behavior&lt;/li>
&lt;li>Developed adaptive PID controllers with gain scheduling for voltage-to-strain conversion&lt;/li>
&lt;li>Integrated sensor fusion for IMU data processing with Kalman filtering&lt;/li>
&lt;/ul>
&lt;h3 id="simulator-implementation">Simulator Implementation&lt;/h3>
&lt;p>To enable safe testing and rapid prototyping, I built a physics-based simulator featuring:&lt;/p>
&lt;ul>
&lt;li>High-fidelity DEA actuator models with electromechanical coupling dynamics&lt;/li>
&lt;li>Aerodynamic modeling for ultra-lightweight frames&lt;/li>
&lt;li>Real-time visualization of drone state and actuator deformation&lt;/li>
&lt;/ul>
&lt;h2 id="technical-challenges">Technical Challenges&lt;/h2>
&lt;p>The project addresses several key research challenges:&lt;/p>
&lt;ol>
&lt;li>&lt;strong>Nonlinear Control&lt;/strong>: Compensating for DEA&amp;rsquo;s voltage-dependent strain response and creep effects&lt;/li>
&lt;li>&lt;strong>Weight Constraints&lt;/strong>: Implementing full control stack within 23g total system mass&lt;/li>
&lt;/ol>
&lt;h2 id="current-progress">Current Progress&lt;/h2>
&lt;p>As of today, we have achieved:&lt;/p>
&lt;ul>
&lt;li>Successful closed-loop attitude control in simulation with &amp;lt;5° steady-state error&lt;/li>
&lt;li>Preliminary flight tests in mujoco simulation, demonstrating basic stabilization capabilities&lt;/li>
&lt;/ul>
&lt;div style="text-align: center;">
&lt;img src="noise_control.png" alt="simulation image" style="width: 40%;">
&lt;img src="stable.png" alt="simulation image" style="width: 40%;">
&lt;/div>
&lt;p>[Project repository link to be added upon publication]&lt;/p></description></item><item><title>Skills</title><link>https://zilin-chen-22.github.io/zilinchen.github.io/uses/</link><pubDate>Sat, 01 Mar 2025 00:00:00 +0000</pubDate><guid>https://zilin-chen-22.github.io/zilinchen.github.io/uses/</guid><description>&lt;h2 id="academic-skills">Academic skills&lt;/h2>
&lt;h3 id="programming-language">Programming language&lt;/h3>
&lt;p>I am familiar with a number of programming languages:&lt;/p>
&lt;ul>
&lt;li>C (including C99/clang/gcc, etc.)&lt;/li>
&lt;li>C++&lt;/li>
&lt;li>CMake&lt;/li>
&lt;li>Python&lt;/li>
&lt;li>MATLAB&lt;/li>
&lt;/ul>
&lt;p>I&amp;rsquo;m also a user for other languages:&lt;/p>
&lt;ul>
&lt;li>Java&lt;/li>
&lt;/ul>
&lt;h3 id="software">Software&lt;/h3>
&lt;p>I know how to use several useful tools:&lt;/p>
&lt;ul>
&lt;li>AutoCAD&lt;/li>
&lt;li>SolidWorks&lt;/li>
&lt;li>Multisim&lt;/li>
&lt;li>Ansys&lt;/li>
&lt;/ul>
&lt;h2 id="musical-instrument">Musical Instrument&lt;/h2>
&lt;p>I am a piano player, also a double bass player. I know some other instruments as well, such as cello.&lt;/p>
&lt;p>I earn myself some title, such as:&lt;/p>
&lt;ul>
&lt;li>Central Conservatory of Music Piano Amateur Player, Grade 9 (highest grade)&lt;/li>
&lt;li>China Conservatory of Music Double Bass Player, Grade 10 (highest grade)&lt;/li>
&lt;li>Practical Grade 8 for Piano, ABRSM (highest grade in practical)&lt;/li>
&lt;/ul>
&lt;p>I&amp;rsquo;m also the former Vice President of Tsinghua University Symphonic Orchestra, and the conductor for its second team.&lt;/p></description></item><item><title>UTAT-ADR Autonomous Drone Racing Research</title><link>https://zilin-chen-22.github.io/zilinchen.github.io/blog/fsc/</link><pubDate>Fri, 20 Sep 2024 00:00:00 +0000</pubDate><guid>https://zilin-chen-22.github.io/zilinchen.github.io/blog/fsc/</guid><description>&lt;p>From September till December, 2024, I joint a team in UTIAS, University of Toronto, which mainly focus on Autonomous Drone Racing.&lt;/p>
&lt;p>Under professor Hugh H. T. Liu&amp;rsquo;s guidance, I mainly focus on building a simulator for the drone, also planned the yaw angle.&lt;/p>
&lt;h2 id="research-overview">Research Overview&lt;/h2>
&lt;p>Human pilots can use their own talent to controll drones to fly rapidly through gates, and the goal of the whole team is to use computer-based autonomous pilot to guide the drone.&lt;/p>
&lt;h2 id="my-contribution">My Contribution&lt;/h2>
&lt;h3 id="building-a-simulation-system">Building a simulation system&lt;/h3>
&lt;p>The team previously used Betaflight to be its flight controller. However, to make full use of AI, we need to simulate how the drone behaves. So, developing a simulator according to Betaflight&amp;rsquo;s original code is very important.&lt;/p>
&lt;p>I read all the lines from Betaflight, and extracted the controller code and test it. Also, I tested the input signal and output RPM curve.&lt;/p>
&lt;p>This task is not a hard one, but it took me a lot of time to get to know how Betaflight work. As an open-source code, it&amp;rsquo;s super long and hard to read.&lt;/p>
&lt;p>The following is the code structure of Betaflight that I organized：
&lt;figure >
&lt;div class="flex justify-center ">
&lt;div class="w-100" >&lt;img alt="Structure of Betaflight" srcset="
/zilinchen.github.io/blog/fsc/controller_structure_hu7059809425375089324.webp 400w,
/zilinchen.github.io/blog/fsc/controller_structure_hu12091372878740306727.webp 760w,
/zilinchen.github.io/blog/fsc/controller_structure_hu6423071772227521308.webp 1200w"
src="https://zilin-chen-22.github.io/zilinchen.github.io/zilinchen.github.io/blog/fsc/controller_structure_hu7059809425375089324.webp"
width="738"
height="760"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;p>This one is a demo of the part I contributed for the simulator:
&lt;figure >
&lt;div class="flex justify-center ">
&lt;div class="w-100" >&lt;img alt="controller demo" srcset="
/zilinchen.github.io/blog/fsc/sim_hu8507087693354633461.webp 400w,
/zilinchen.github.io/blog/fsc/sim_hu12803366713941661070.webp 760w,
/zilinchen.github.io/blog/fsc/sim_hu13239621856469927107.webp 1200w"
src="https://zilin-chen-22.github.io/zilinchen.github.io/zilinchen.github.io/blog/fsc/sim_hu8507087693354633461.webp"
width="760"
height="479"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;h3 id="yaw-planning">Yaw planning&lt;/h3>
&lt;p>The racing drone we built is using computer vision to guide and locate itself. The drone need to look at the &amp;ldquo;gate&amp;rdquo; to get to know where it is.&lt;/p>
&lt;p>My work is to help the drone get better vision to have a more accurate position.&lt;/p>
&lt;p>The following is a demo of the yaw-planning. The red arrow is the yaw angle of a world-champion level human-pilot, while the blue arrow is the planned one. The black line is the gate.
&lt;figure >
&lt;div class="flex justify-center ">
&lt;div class="w-100" >&lt;img alt="Yaw planning demo" srcset="
/zilinchen.github.io/blog/fsc/yaw_planning_hu4145312099636648761.webp 400w,
/zilinchen.github.io/blog/fsc/yaw_planning_hu1689267154093082803.webp 760w,
/zilinchen.github.io/blog/fsc/yaw_planning_hu14112844666145059473.webp 1200w"
src="https://zilin-chen-22.github.io/zilinchen.github.io/zilinchen.github.io/blog/fsc/yaw_planning_hu4145312099636648761.webp"
width="760"
height="429"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;p>&lt;a href="https://github.com/Zilin-Chen-22/Yaw_Planning" target="_blank" rel="noopener">Click here&lt;/a> to see the orinigal code.&lt;/p></description></item><item><title>Intelligent Autonomous Guided Car</title><link>https://zilin-chen-22.github.io/zilinchen.github.io/blog/intelligent-car/</link><pubDate>Mon, 01 Jul 2024 00:00:00 +0000</pubDate><guid>https://zilin-chen-22.github.io/zilinchen.github.io/blog/intelligent-car/</guid><description>&lt;p>During one of our summer semester course, I led a team of three in designing an autonomous car-shaped vehicle capable of transporting objects from start to finish. The vehicle have integrated advanced features including line-following, obstacle navigation, destination location, and Bluetooth connectivity for remote control.&lt;/p>
&lt;p>I acquired proficiency in utilizing PID control algorithms to fine-tune input parameters for precise motor control. I utilized an STM32 microcontroller for vehicle control and Open MV for image capture (computer vision), trajectory planning, and dynamic output management.&lt;/p>
&lt;p>
&lt;figure >
&lt;div class="flex justify-center ">
&lt;div class="w-100" >&lt;img alt="Picture of my group" srcset="
/zilinchen.github.io/blog/intelligent-car/summer_semester_photo_hu14420534038906574668.webp 400w,
/zilinchen.github.io/blog/intelligent-car/summer_semester_photo_hu4045064630173791130.webp 760w,
/zilinchen.github.io/blog/intelligent-car/summer_semester_photo_hu11713117714738198386.webp 1200w"
src="https://zilin-chen-22.github.io/zilinchen.github.io/zilinchen.github.io/blog/intelligent-car/summer_semester_photo_hu14420534038906574668.webp"
width="760"
height="285"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;h2 id="task">Task&lt;/h2>
&lt;p>Our vehicle is asked to finish two task automatically:&lt;/p>
&lt;ul>
&lt;li>line-following: pick up the stuff and carry it, move along the line and then place the stuff down at the end point&lt;/li>
&lt;li>path-finding: knowing the start-point and the end-point absolute position in the real world, but have a lot of obstacles in the path. The vehicle is asked to plan a suitable way for itself to find the end and put the stuff down.&lt;/li>
&lt;/ul>
&lt;h3 id="hardware">Hardware&lt;/h3>
&lt;p>We use STM32 as the main controller, controlling all the motors, servos, and send and grab data from bluetooth, openMV and Gyro (We use JY901S).&lt;/p>
&lt;div style="text-align: center;">
&lt;img src="stm32.png" alt="STM32 connect" style="width: 50%;">
&lt;/div>
&lt;p>In the main function, read OpenMV, Bluetooth, and IMU data in a loop with 5ms as one unit. One loop takes 20ms (the remaining 5ms is used to process all the above data). Refresh motor and servo control data in each loop.&lt;/p>
&lt;p>Detail issues:&lt;/p>
&lt;ul>
&lt;li>Interrupt conflict: prioritize encoder interrupt to ensure PID stability.&lt;/li>
&lt;li>Abnormal data: retain the last received data without refreshing.&lt;/li>
&lt;li>Check bit: avoid incorrect vehicle state control caused by accidental error transmission of data, enhance fault tolerance.&lt;/li>
&lt;/ul>
&lt;h3 id="line-following">Line following&lt;/h3>
&lt;p>The vehicle can follow the line automatically. Here is an video when we are still testing:&lt;/p>
&lt;div style="text-align: center;">
&lt;video src="car_line.mp4" controls="controls" width="50%">
您的浏览器不支持视频标签。
&lt;/video>
&lt;/div>
&lt;p>&lt;a href="https://zilin-chen-22.github.io/zilinchen.github.io/blog/intelligent-car/car_line.mp4" target="_blank" rel="noopener">Click here&lt;/a> if not working.&lt;/p>
&lt;h3 id="path-finding">Path Finding&lt;/h3>
&lt;p>Here is one video while testing:&lt;/p>
&lt;div style="text-align: center;">
&lt;video src="obstacles.mp4" controls="controls" width="50%">
您的浏览器不支持视频标签。
&lt;/video>
&lt;/div>
&lt;p>&lt;a href="https://zilin-chen-22.github.io/zilinchen.github.io/blog/intelligent-car/obstacles.mp4" target="_blank" rel="noopener">Click here&lt;/a> if not working.&lt;/p>
&lt;p>Here is another one:&lt;/p>
&lt;div style="text-align: center;">
&lt;video src="obstacles2.mp4" controls="controls" width="50%">
您的浏览器不支持视频标签。
&lt;/video>
&lt;/div>
&lt;p>&lt;a href="https://zilin-chen-22.github.io/zilinchen.github.io/blog/intelligent-car/obstacles2.mp4" target="_blank" rel="noopener">Click here&lt;/a> if not working.&lt;/p></description></item><item><title>Research on Dual-arm Collaborative Robot Working Space</title><link>https://zilin-chen-22.github.io/zilinchen.github.io/blog/dual-arm_collaborative_robot/</link><pubDate>Tue, 12 Mar 2024 00:00:00 +0000</pubDate><guid>https://zilin-chen-22.github.io/zilinchen.github.io/blog/dual-arm_collaborative_robot/</guid><description>&lt;p>From Febuary till December, 2024, I joint a team of four to work on a dual-arm collaborative robot system.&lt;/p>
&lt;p>Under assistant professor Ze Wang&amp;rsquo;s guidance, I mainly focus on finding the work space of the robot.&lt;/p>
&lt;h2 id="research-overview">Research Overview&lt;/h2>
&lt;p>&lt;em>Advisor: Ze Wang, Professor and Assistant Dean at School of Mechanical Engineering, Tsinghua University&lt;/em>&lt;/p>
&lt;p>The main focus of this study is to use dual-arm collaborative robot system to enhance the stiffness while working. Most dual-arm system do not have a rigid connection between the two arms. We are developing a system which have a rigid connection, which is the main innovation.&lt;/p>
&lt;p>We designed three different configuration for the dual-arm system, as shown below:
&lt;figure >
&lt;div class="flex justify-center ">
&lt;div class="w-100" >&lt;img alt="Different Configurations" srcset="
/zilinchen.github.io/blog/dual-arm_collaborative_robot/collaborative_robot_config_hu8704123345176170243.webp 400w,
/zilinchen.github.io/blog/dual-arm_collaborative_robot/collaborative_robot_config_hu13023425252861754865.webp 760w,
/zilinchen.github.io/blog/dual-arm_collaborative_robot/collaborative_robot_config_hu10149623411190354149.webp 1200w"
src="https://zilin-chen-22.github.io/zilinchen.github.io/zilinchen.github.io/blog/dual-arm_collaborative_robot/collaborative_robot_config_hu8704123345176170243.webp"
width="760"
height="294"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>Motion Trajectory Planning Research&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>Summarized current research progress on motion trajectory planning of two-arm collaborative robots.&lt;/li>
&lt;li>Identified key areas for improvement and proposed innovative solutions.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>End Effector Stability Enhancement&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>Improved the stability on the end effector of a two-arm collaborative robot.&lt;/li>
&lt;li>Implemented techniques to ensure precise and consistent performance.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Workspace and Collision Analysis&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>Analyzed the workspace and constraints of the robot.&lt;/li>
&lt;li>Developed strategies to prevent collisions between the two arms of the collaborative robot.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Robot Configuration Design Collaboration&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>Collaborated with a team of four to design different robot configurations.&lt;/li>
&lt;li>Focused on improving stiffness and overall structural integrity of the robots.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h2 id="my-contribution">My Contribution&lt;/h2>
&lt;p>I mainly focus on the working space of this system. Unlike most dual-arm robot system, ours need to consider the problem of two robotic arms interfering with each other.&lt;/p>
&lt;p>Using MATLAB to do simulating work, I developed a programme using Monte Carlo method to find the available workspace.&lt;/p>
&lt;p>One example is shown below:
&lt;figure >
&lt;div class="flex justify-center ">
&lt;div class="w-100" >&lt;img alt="Example Picture" srcset="
/zilinchen.github.io/blog/dual-arm_collaborative_robot/mood2-0.6_hu13085531709718863408.webp 400w,
/zilinchen.github.io/blog/dual-arm_collaborative_robot/mood2-0.6_hu18287824352815372532.webp 760w,
/zilinchen.github.io/blog/dual-arm_collaborative_robot/mood2-0.6_hu9485363187183291949.webp 1200w"
src="https://zilin-chen-22.github.io/zilinchen.github.io/zilinchen.github.io/blog/dual-arm_collaborative_robot/mood2-0.6_hu13085531709718863408.webp"
width="760"
height="582"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
The red dots is the available dots, where the robot can reach under the strict rigid connection.&lt;/p>
&lt;p>We can see the slice on the plate of z = 0.2:
&lt;figure >
&lt;div class="flex justify-center ">
&lt;div class="w-100" >&lt;img alt="Example Picture" srcset="
/zilinchen.github.io/blog/dual-arm_collaborative_robot/mood1-0.3-0.2slice_hu5697874097612082875.webp 400w,
/zilinchen.github.io/blog/dual-arm_collaborative_robot/mood1-0.3-0.2slice_hu9076667755032070114.webp 760w,
/zilinchen.github.io/blog/dual-arm_collaborative_robot/mood1-0.3-0.2slice_hu6661022154321461746.webp 1200w"
src="https://zilin-chen-22.github.io/zilinchen.github.io/zilinchen.github.io/blog/dual-arm_collaborative_robot/mood1-0.3-0.2slice_hu5697874097612082875.webp"
width="760"
height="582"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
Below is what is looked like on this plate:
&lt;figure >
&lt;div class="flex justify-center ">
&lt;div class="w-100" >&lt;img alt="Example Picture" srcset="
/zilinchen.github.io/blog/dual-arm_collaborative_robot/mood2-0.6-0.2section_hu1748616455973382965.webp 400w,
/zilinchen.github.io/blog/dual-arm_collaborative_robot/mood2-0.6-0.2section_hu1376079867616233151.webp 760w,
/zilinchen.github.io/blog/dual-arm_collaborative_robot/mood2-0.6-0.2section_hu1764330208090635719.webp 1200w"
src="https://zilin-chen-22.github.io/zilinchen.github.io/zilinchen.github.io/blog/dual-arm_collaborative_robot/mood2-0.6-0.2section_hu1748616455973382965.webp"
width="760"
height="582"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;p>&lt;a href="https://cloud.tsinghua.edu.cn/d/ea81f9defecc4959af53/" target="_blank" rel="noopener">Click here&lt;/a> to find the original code&lt;/p></description></item></channel></rss>