<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Robotics |</title><link>https://ahmed-mohsen-7.github.io/tags/robotics/</link><atom:link href="https://ahmed-mohsen-7.github.io/tags/robotics/index.xml" rel="self" type="application/rss+xml"/><description>Robotics</description><generator>HugoBlox Kit (https://hugoblox.com)</generator><language>en-us</language><lastBuildDate>Sat, 13 Jul 2024 00:00:00 +0000</lastBuildDate><image><url>https://ahmed-mohsen-7.github.io/media/icon_hu_ff4c617481c8304a.png</url><title>Robotics</title><link>https://ahmed-mohsen-7.github.io/tags/robotics/</link></image><item><title>The Firefly: Autonomous Greenhouse Drone</title><link>https://ahmed-mohsen-7.github.io/projects/firefly/</link><pubDate>Sat, 13 Jul 2024 00:00:00 +0000</pubDate><guid>https://ahmed-mohsen-7.github.io/projects/firefly/</guid><description>&lt;p&gt;Core member in developing different software modules for an autonomous drone including: Control, trajectory planner, State estimation.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Key Contributions:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;State Estimation&lt;/strong&gt;: Integrated different open-source state estimation modules, choosing the best one for the application based on pre-determined performance metrics&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Sensor Fusion&lt;/strong&gt;: Fused LiDAR, VIO, and IMU data streams into the height estimation pipelines, advancing the system from research prototype to commercial deployment.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Embedded Systems&lt;/strong&gt;: Optimized navigation algorithms for real-time performance on resource-constrained platforms, leveraging embedded Linux and ROS2.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Hardware Assembly&lt;/strong&gt;: Participated in sensor calibration and initial setup, writing documentation to standardize these procedures.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Software Used:&lt;/strong&gt;
Ros 1 &amp;amp; 2, C++, Python, Autopilot Firmware, Docker, SkiffOS, Linux, Bash, Gazebo, Rviz, Git, OptiTrack, FoxgLove&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Sample Result:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This video shows the full drone&amp;rsquo;s mission including takeoff, flying, and landing back to the charging station.&lt;/p&gt;
&lt;div style="display: flex; justify-content: flex-end; margin-top: 2rem;"&gt;
&lt;iframe src="https://drive.google.com/file/d/1qkE2q_EvT4gHFT7_FfV0tIFBCzkcFscR/preview" width="640" height="480" style="max-width: 100%; border: none; border-radius: 8px;"&gt;&lt;/iframe&gt;
&lt;/div&gt;</description></item><item><title>Trajectory Planner for Autonomous Ground Vehicles in Unknown Environments</title><link>https://ahmed-mohsen-7.github.io/projects/trajectory_planner/</link><pubDate>Sat, 13 Jul 2024 00:00:00 +0000</pubDate><guid>https://ahmed-mohsen-7.github.io/projects/trajectory_planner/</guid><description>&lt;p&gt;Developed a comprehensive autonomous navigation stack for ground vehicles as part of my Master&amp;rsquo;s thesis, extending
with a new trajectory planner, a novel recovery behavior, and MPC-based feedback control.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Key Contributions:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Trajectory Planning&lt;/strong&gt;: Replaced FASTER&amp;rsquo;s JPS-only planning approach with Hybrid A* as the primary trajectory planner, supplemented by JPS to improve planning efficiency, reducing optimization failures and total simulation time.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Free Space Estimation Recovery Behavior&lt;/strong&gt;: Designed and implemented a novel free-space estimation approach that acts as a recovery behavior in critical situations, particularly narrow paths and corridors where nominal free-space estimation tends to fail.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Feedback Control&lt;/strong&gt;: Integrated Model Predictive Control (MPC) as the vehicle&amp;rsquo;s feedback control mechanism, enabling precise real-time trajectory tracking toward the optimal path.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Methods Used:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Hybrid A* trajectory planning, supplemented by Jump Point Search (JPS)&lt;/li&gt;
&lt;li&gt;Novel free-space estimation recovery behavior for narrow-space navigation&lt;/li&gt;
&lt;li&gt;Model Predictive Control (MPC) for feedback control&lt;/li&gt;
&lt;li&gt;Simulation-based validation against baseline planners (FASTER/JPS-only, Hybrid A*-only)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Software Used:&lt;/strong&gt;
ROS, C++, Gurobi Optimizer, Gazebo, Rviz, JPS3D&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Results (validated in simulation):&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;23% reduction in optimization failures compared to the original FASTER approach (JPS-only planning)&lt;/li&gt;
&lt;li&gt;3% reduction in total simulation time compared to using Hybrid A* alone&lt;/li&gt;
&lt;li&gt;5x improvement in recovery success rate over nominal free-space estimation in obstacle-dense, narrow-corridor environments&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This video shows the mobile robot navigating to a random target point (green sphere) while avoiding new obstacles in the unknown environment.&lt;/p&gt;
&lt;div style="display: flex; justify-content: flex-end; margin-top: 2rem;"&gt;
&lt;iframe src="https://drive.google.com/file/d/1QqfabunIrlzDQM1eV_LZS0Yo78BxrjXR/preview" width="640" height="480" style="max-width: 100%; border: none; border-radius: 8px;"&gt;&lt;/iframe&gt;
&lt;/div&gt;</description></item><item><title>Robot Navigation using Reinforcement Learning</title><link>https://ahmed-mohsen-7.github.io/projects/rl_navigation/</link><pubDate>Thu, 01 Dec 2022 00:00:00 +0000</pubDate><guid>https://ahmed-mohsen-7.github.io/projects/rl_navigation/</guid><description>&lt;p&gt;Built a custom OpenAI Gym environment inspired by Turtlebot3 to train robot navigation policies from scratch, and implemented and compared three reinforcement learning algorithms (DQN, DDPG, and TD3) across both discrete and continuous action spaces.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Key Contributions:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Custom Environment Design&lt;/strong&gt;: Built a Gym-compatible navigation environment (&lt;code&gt;world.py&lt;/code&gt;) from scratch, including a map-to-grayscale conversion pipeline (via OpenCV) to distinguish navigable space from walls and obstacles, and registered it as a proper Gym environment (&lt;code&gt;World-v1&lt;/code&gt; with obstacles, &lt;code&gt;World-v2&lt;/code&gt; without).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Reward Shaping&lt;/strong&gt;: Designed a two-component reward function combining a distance reward (inverse of Euclidean distance to target) and a bearing reward (alignment between robot heading and target direction), balancing goal-seeking behavior with orientation control.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Algorithm Implementation &amp;amp; Comparison&lt;/strong&gt;: Implemented and trained three RL algorithms, DQN (discrete action space) and DDPG/TD3 (continuous action space, controlling linear and angular velocity), to solve the navigation task under identical environment conditions.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Environment Details:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Observation space: robot pose (x, y, θ) and target position (x, y)&lt;/li&gt;
&lt;li&gt;Action space: linear velocity (v) and angular velocity (w), continuous for DDPG/TD3&lt;/li&gt;
&lt;li&gt;Randomized start/target poses per episode, constrained to avoid walls, obstacles, and overlapping start/goal positions&lt;/li&gt;
&lt;li&gt;Motion modeled via an integration approximation for pose updates given (v, w)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Methods Used:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Deep Q-Network (DQN) for discrete action-space navigation&lt;/li&gt;
&lt;li&gt;Deep Deterministic Policy Gradient (DDPG) and Twin Delayed DDPG (TD3) for continuous action-space navigation&lt;/li&gt;
&lt;li&gt;Custom Gym environment with distance + bearing reward shaping&lt;/li&gt;
&lt;li&gt;Computer vision-based map preprocessing (grayscale conversion for navigable-space detection)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Software Used:&lt;/strong&gt;
Python, OpenAI Gym, Stable-Baselines3, OpenCV, Pillow&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Results (validated in simulation):&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This video shows the robot navigatin to a random target location, trained using RL policy.&lt;/p&gt;
&lt;div style="display: flex; justify-content: flex-end; margin-top: 2rem;"&gt;
&lt;iframe src="https://drive.google.com/file/d/1jKqXJ_4NQIm32j_P0myAXHUWCRvsIBO9/preview" width="640" height="480" style="max-width: 100%; border: none; border-radius: 8px;"&gt;&lt;/iframe&gt;
&lt;/div&gt;</description></item></channel></rss>