Skip to content
View ahmedsleem109's full-sized avatar

Block or report ahmedsleem109

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
ahmedsleem109/README.md
Ahmed Sleem β€” Robot Learning Engineer

LinkedIn Open to remote or relocation Cairo, Egypt

I build robots that learn to walk, grasp and follow instructions in simulation, and then I test them until they fail. I care less about a good demo than about knowing why a system breaks: every result I publish comes with its trial count, its seeds, its failure cases and the script that produced it.

  • πŸŽ“ BSc Mechatronics & Robotics, German University in Cairo
  • πŸ€– Focus: reinforcement learning for locomotion and whole-body control, vision-language-action (VLA) models, world models
  • πŸ’» Compute: everything below was trained on one 6 GB laptop GPU (RTX 3060)

Featured projects

πŸ”§ WorkshopRobot β€” "bring me the 10mm wrench"

Go2 quadruped with a Z1 arm fetching a tool

A robot dog with an arm hears a tool request, walks to the workbench, finds the tool, picks it up and brings it back, and says something useful when it can't.

  • Grasping: 125/125 (5 tools Γ— 25 trials, while standing on its legs)
  • End to end: 60/70 (86 %) over 7 scenario suites Γ— 10 seeds; 8 of the 10 failures are falls on a step, not manipulation
  • Learned policy: a fine-tuned SmolVLA went from 0/20 to 18/20 grasps on held-out scenes after a step-by-step diagnosis of why it failed

Stack: MuJoCo Β· RL walking policy Β· Qwen3-VL for finding objects Β· SmolVLA / LeRobot Code & full results β†’


πŸ›‘οΈ Humanoid robustness study β€” what actually stops a humanoid from falling?

Three G1 policies receiving the same shove

The usual recipe for robust walking mixes random pushes during training with domain randomization. I trained three Unitree G1 policies that differ only in that, then shoved them 22,000 times.

  • Pushes do the work: the force the robot survives half the time rises from 337 N to 639 N
  • Domain randomization adds only 2.4 % on top
  • Includes a bug in my own evaluation that I found, fixed and documented (it was hiding the falls)

Stack: MuJoCo / mjlab Β· PPO Β· 4,096 parallel robots Code & full results β†’


🀝 Bimanual tray carry β€” balancing a ball from camera images

Two arms carrying a tray with a ball, balancer off vs on

Two OpenArm v2 arms pick up a tray and carry it while keeping a loose ball from rolling off, using only two camera images, with real collisions and nothing glued in place.

  • 12/12 carries with camera noise, 40 ms latency, backlash, weak motors and randomized dynamics all at once (12 randomized layouts, fixed seeds)
  • Without the balancer: 1/12
  • Try it in your browser β†’ (real MuJoCo physics, shove the ball yourself)

Code & full results β†’


More projects

  • RopePhysics: a C++/CUDA rope and cable simulator checked against textbook physics; a learned policy routes 1024/1024 new wire harnesses where a hand-written one routes none.
  • Warehouse humanoid: a G1 carrying a 4 kg tote (0/64 falls), planned by a small local vision-language model, with its breaking points mapped (latency, shoves, friction, motor strength).
  • Baglens: checks whether a robot recording can be trusted before anyone debugs from it; published precision/recall, runs as an MCP server.
  • Jointly: a desktop app that turns CAD into simulation-ready URDF, MJCF, SDF and USD robot models.
  • Humanoid triple backflip (private): a G1 runs off a cliff, does three backflips across the gap and lands running; 100 % strict success in evaluation with motors boosted to 2Γ— torque.

Currently working on

Foresight: a Unitree G1 with real Dex3-1 hands follows language instructions ("put the red mug on the shelf"), grasping with actual finger contact. A VLA model drives an RL whole-body controller, and a learned world model imagines the next 1–2 seconds and blocks actions predicted to fall, collide or drop the object.

Open source

  • unitree_rl_mjlab (Unitree): dependency bounds that keep fresh installs working
  • ros2_medkit: fault debouncing and diagnostic-data fixes for ROS 2 robots

Tech stack

MuJoCo mjlab, MJX, Brax RL: PPO LeRobot, SmolVLA Qwen-VL
Python C++ CUDA PyTorch JAX ROS 2 ONNX

Looking for robot learning, RL and simulation roles. Let's talk on LinkedIn β†’

Popular repositories Loading

  1. WorkshopRobot WorkshopRobot Public

    Language-commanded mobile manipulation in MuJoCo: a Go2 quadruped with a Z1 arm fetches a named tool on one 6 GB GPU. 125/125 grasps, 86% end-to-end, and a VLA negative result diagnosed to 18/20.

    Python 3

  2. humanoidmujoco humanoidmujoco Public

    Pushes vs domain randomization: which makes a Unitree G1 humanoid robust? Three PPO policies, 22,000 shoves, 50%-recovery force 337 N -> 639 N; DR adds 2.4%.

    Python 1

  3. openarm-tray-carry openarm-tray-carry Public

    Two OpenArm v2 arms carry a tray together and keep a ball on it β€” grasped and balanced from camera images, with collisions on and nothing welded. MuJoCo.

    Python 1

  4. ahmedsleem109.github.io ahmedsleem109.github.io Public

    CSS

  5. ahmedsleem109 ahmedsleem109 Public

    Robot learning engineer: RL humanoids, VLA models, world models (MuJoCo)

  6. awesome-LaTeX awesome-LaTeX Public

    Forked from egeerardyn/awesome-LaTeX

    Curated list of LaTeX awesomeness