Monty  Boehm

Monty Boehm


Gen.jl: A General-purpose Probabilistic Programming System


Gen: A General-Purpose Probabilistic Programming System with Programmable Inference

Why Gen

Gen automates the implementation details of probabilistic inference algorithms

Gen’s inference library gives users building blocks for writing efficient probabilistic inference algorithms that are tailored to their models, while automating the tricky math and the low-level implementation details. Gen helps users write hybrid algorithms that combine neural networks, variational inference, sequential Monte Carlo samplers, and Markov chain Monte Carlo.

Gen allows users to flexibly navigate performance trade-offs

Gen features an easy-to-use modeling language for writing down generative models, inference models, variational families, and proposal distributions using ordinary code. But it also lets users migrate parts of their model or inference algorithm to specialized modeling languages for which it can generate especially fast code. Users can also hand-code parts of their models that demand better performance.

Gen supports custom hybrid inference algorithms

Neural network inference is fast, but can be inaccurate on out-of-distribution data, and requires expensive training. Model-based inference is more computationally expensive, but does not require retraining, and can be more accurate. Gen supports custom hybrid inference algorithms that benefit from the strengths of both approaches.

Users write custom inference algorithms without extending the compiler

Instead of an inference engine that tightly couples inference algorithms with language compiler details, Gen gives users a flexible API for implementing an open-ended set of inference and learning algorithms. This API includes automatic differentiation (AD), but goes far beyond AD and includes many other operations that are needed for model-based inference algorithms.

Efficient inference in models with stochastic structure

Generative models and inference models in Gen can have dynamic computation graphs. Gen’s unique support for custom reversible jump and involutive MCMC algorithms allows for more efficient inference in generative models with stochastic structure.


Installing Gen

We maintain a Julia implementation of the Gen architecture, and we are currently working on porting Gen to other languages. To install the Julia implementation of Gen, download Julia. Then, install the Gen package with the Julia package manager:

From the Julia REPL, type ] to enter the Pkg REPL mode and then run:

pkg> add Gen

Warning: This is rapidly evolving research software.

See for introduction, documentation, and tutorials.

Gen was created at the MIT Probabilistic Computing Project. To get in contact, please email

If you use Gen in your research, please cite our 2019 PLDI paper:

Gen: A General-Purpose Probabilistic Programming System with Programmable Inference. Cusumano-Towner, M. F.; Saad, F. A.; Lew, A.; and Mansinghka, V. K. In Proceedings of the 40th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI ‘19). (pdf) (bibtex)

Author: Probcomp
Source Code: 
License: Apache-2.0 license

#machinelearning #robotics #julia 

Gen.jl: A General-purpose Probabilistic Programming System

PythonRobotics: Python Sample Codes for Robotics Algorithms


Python codes for robotics algorithm.

What is this?

This is a Python code collection of robotics algorithms.


Easy to read for understanding each algorithm's basic idea.

Widely used and practical algorithms are selected.

Minimum dependency.

See this paper for more details:


For running each sample code:

Python 3.9.x






For development:

pytest (for unit tests)

pytest-xdist (for parallel unit tests)

mypy (for type check)

sphinx (for document generation)

pycodestyle (for code style check)


This README only shows some examples of this project.

If you are interested in other examples or mathematical backgrounds of each algorithm,

You can check the full documentation online:

All animation gifs are stored here: AtsushiSakai/PythonRoboticsGifs: Animation gifs of PythonRobotics

How to use

  1. Clone this repo.

git clone

  1. Install the required libraries.

using conda :

conda env create -f requirements/environment.yml

using pip :

pip install -r requirements/requirements.txt

Execute python script in each directory.

Add star to this repo if you like it :smiley:.


Extended Kalman Filter localization

EKF pic

Documentation: Notebook

Particle filter localization


This is a sensor fusion localization with Particle Filter(PF).

The blue line is true trajectory, the black line is dead reckoning trajectory,

and the red line is an estimated trajectory with PF.

It is assumed that the robot can measure a distance from landmarks (RFID).

These measurements are used for PF localization.


Histogram filter localization


This is a 2D localization example with Histogram filter.

The red cross is true position, black points are RFID positions.

The blue grid shows a position probability of histogram filter.

In this simulation, x,y are unknown, yaw is known.

The filter integrates speed input and range observations from RFID for localization.

Initial position is not needed.



Gaussian grid map

This is a 2D Gaussian grid mapping example.


Ray casting grid map

This is a 2D ray casting grid mapping example.


Lidar to grid map

This example shows how to convert a 2D range measurement to a grid map.


k-means object clustering

This is a 2D object clustering with k-means algorithm.


Rectangle fitting

This is a 2D rectangle fitting for vehicle detection.



Simultaneous Localization and Mapping(SLAM) examples

Iterative Closest Point (ICP) Matching

This is a 2D ICP matching example with singular value decomposition.

It can calculate a rotation matrix, and a translation vector between points and points.



FastSLAM 1.0

This is a feature based SLAM example using FastSLAM 1.0.

The blue line is ground truth, the black line is dead reckoning, the red line is the estimated trajectory with FastSLAM.

The red points are particles of FastSLAM.

Black points are landmarks, blue crosses are estimated landmark positions by FastSLAM.




SLAM simulations by Tim Bailey

Path Planning

Dynamic Window Approach

This is a 2D navigation sample code with Dynamic Window Approach.


Grid based search

Dijkstra algorithm

This is a 2D grid based the shortest path planning with Dijkstra's algorithm.

PythonRobotics/figure_1.png at master · AtsushiSakai/PythonRobotics

In the animation, cyan points are searched nodes.

A* algorithm

This is a 2D grid based the shortest path planning with A star algorithm.

PythonRobotics/figure_1.png at master · AtsushiSakai/PythonRobotics

In the animation, cyan points are searched nodes.

Its heuristic is 2D Euclid distance.

D* algorithm

This is a 2D grid based the shortest path planning with D star algorithm.

figure at master · nirnayroy/intelligentrobotics

The animation shows a robot finding its path avoiding an obstacle using the D* search algorithm.


D* Lite algorithm

This algorithm finds the shortest path between two points while rerouting when obstacles are discovered. It has been implemented here for a 2D grid.

D* Lite

The animation shows a robot finding its path and rerouting to avoid obstacles as they are discovered using the D* Lite search algorithm.


Potential Field algorithm

This is a 2D grid based path planning with Potential Field algorithm.


In the animation, the blue heat map shows potential value on each grid.


Grid based coverage path planning

This is a 2D grid based coverage path planning simulation.


State Lattice Planning

This script is a path planning code with state lattice planning.

This code uses the model predictive trajectory generator to solve boundary problem.


Optimal rough terrain trajectory generation for wheeled mobile robots

State Space Sampling of Feasible Motions for High-Performance Mobile Robot Navigation in Complex Environments

Biased polar sampling

PythonRobotics/figure_1.png at master · AtsushiSakai/PythonRobotics

Lane sampling

PythonRobotics/figure_1.png at master · AtsushiSakai/PythonRobotics

Probabilistic Road-Map (PRM) planning


This PRM planner uses Dijkstra method for graph search.

In the animation, blue points are sampled points,

Cyan crosses means searched points with Dijkstra method,

The red line is the final path of PRM.



Rapidly-Exploring Random Trees (RRT)


PythonRobotics/figure_1.png at master · AtsushiSakai/PythonRobotics

This is a path planning code with RRT*

Black circles are obstacles, green line is a searched tree, red crosses are start and goal positions.


Incremental Sampling-based Algorithms for Optimal Motion Planning

Sampling-based Algorithms for Optimal Motion Planning

RRT* with reeds-shepp path

Robotics/animation.gif at master · AtsushiSakai/PythonRobotics)

Path planning for a car robot with RRT* and reeds shepp path planner.


This is a path planning simulation with LQR-RRT*.

A double integrator motion model is used for LQR local planner.



LQR-RRT*: Optimal Sampling-Based Motion Planning with Automatically Derived Extension Heuristics

MahanFathi/LQR-RRTstar: LQR-RRT* method is used for random motion planning of a simple pendulum in its phase plot

Quintic polynomials planning

Motion planning with quintic polynomials.


It can calculate a 2D path, velocity, and acceleration profile based on quintic polynomials.


Reeds Shepp planning

A sample code with Reeds Shepp path planning.



15.3.2 Reeds-Shepp Curves

optimal paths for a car that goes both forwards and backwards

ghliu/pyReedsShepp: Implementation of Reeds Shepp curve.

LQR based path planning

A sample code using LQR based path planning for double integrator model.


Optimal Trajectory in a Frenet Frame


This is optimal trajectory generation in a Frenet Frame.

The cyan line is the target course and black crosses are obstacles.

The red line is the predicted path.


Optimal Trajectory Generation for Dynamic Street Scenarios in a Frenet Frame

Optimal trajectory generation for dynamic street scenarios in a Frenet Frame

Path Tracking

move to a pose control

This is a simulation of moving to a pose control



Stanley control

Path tracking simulation with Stanley steering control and PID speed control.



Stanley: The robot that won the DARPA grand challenge

Automatic Steering Methods for Autonomous Automobile Path Tracking

Rear wheel feedback control

Path tracking simulation with rear wheel feedback steering control and PID speed control.

PythonRobotics/figure_1.png at master · AtsushiSakai/PythonRobotics


Linear–quadratic regulator (LQR) speed and steering control

Path tracking simulation with LQR speed and steering control.



Model predictive speed and steering control

Path tracking simulation with iterative linear model predictive speed and steering control.

MPC pic



Real-time Model Predictive Control (MPC), ACADO, Python | Work-is-Playing

Nonlinear Model predictive control with C-GMRES

A motion planning and path tracking simulation with NMPC of C-GMRES



Arm Navigation

N joint arm to point control

N joint arm to a point control simulation.

This is an interactive simulation.

You can set the goal position of the end effector with left-click on the plotting area.


In this simulation N = 10, however, you can change it.

Arm navigation with obstacle avoidance

Arm navigation with obstacle avoidance simulation.


Aerial Navigation

drone 3d trajectory following

This is a 3d trajectory following simulation for a quadrotor.


rocket powered landing

This is a 3d trajectory generation simulation for a rocket powered landing.




bipedal planner with inverted pendulum

This is a bipedal planner for modifying footsteps for an inverted pendulum.

You can set the footsteps, and the planner will modify those automatically.





If this project helps your robotics project, please let me know with creating an issue.

Your robot's video, which is using PythonRobotics, is very welcome!!

This is a list of user's comment and references:users_comments


Any contribution is welcome!!

Please check this document:How to contribute


If you use this project's code for your academic work, we encourage you to cite our papers

If you use this project's code in industry, we'd love to hear from you as well; feel free to reach out to the developers directly.

Supporting this project

If you or your company would like to support this project, please consider:

Sponsor @AtsushiSakai on GitHub Sponsors

Become a backer or sponsor on Patreon

One-time donation via PayPal

If you would like to support us in some other way, please contact with creating an issue.



They are providing a free license of their IDEs for this OSS development.


Author: AtsushiSakai
Source Code:
License: View license

#python #robotics 

PythonRobotics: Python Sample Codes for Robotics Algorithms
Melvin Sajith

Melvin Sajith


How to install MediaPipe on the Jetson Nano and on all Jetson modules

 How to install MediaPipe on the Jetson Nano and on all Jetson modules -

In this Video I Will show how to install MediaPipe in Nvidia jetson modules and run an example program to make sure that it is working.

The normal way to install mediapipe in Linux is not working. So I have found a way to install mediapipe from source code. This way of installing is a little bit hard but it works very well in the Jetson modules.

#Jetson #nvidia  #python #programming #artificial-intelligence #robotics

Video Link -


How to install MediaPipe on the Jetson Nano and on all Jetson modules
Antwan  Larson

Antwan Larson


How to Use Simple Hardware To Create Your Own Robots using Arduino

In this workshop, we will go through the basics of robotics using Arduino. We will show you how you can use simple hardware to create your own robots.

This session will be presented by an old friend of the Assembly, Judhi Prasetyo, lecturer & head of the RoboTech lab at Middlesex University Dubai and an experienced maker who has shared his knowledge with our community many times in the past.

#arduino  #robotics  

How to Use Simple Hardware To Create Your Own Robots using Arduino

6 in-demand Technologies to UpSkill Your Career in 2021

Unpredictable, unprecedented yup, that's how we can term 'technology' today. The rate at which the technology is accelerating, and the disruption caused by the pandemic is making everybody in the IT professional field recheck and buck up their tech skills.

According to a survey conducted, one million tech jobs went unfilled in 2020, leading to an enormous technology talent deficit in the U.S... Furthermore, a study conducted by udemy states that over 50% of company learning & development leaders said technical skills were their top priority for training in 2020.

Tech experts predict the demand and usage of apps will continue to grow and is expected to generate revenue of  $100 billion. Yet, tech companies have numerous IT positions lying vacant against the professionals due to no skill upgrade.  So the need of the hour to stay in the market is to upskill or reskill to meet companies' growing demand to keep moving forward.

 The tech world is enormously huge, and staying up to date with new technologies is challenging. As, Tech being a vast field, there are many exciting directions you can move forward in your career.

So to keep the air clear, we have done our research and handpicked SIX in-demand courses for you to upskill in 2021.

Read about them from our blog: Top Technologies To Upskill Career



#technology #robotics #rpa #blockchain #cybersecurity #artificialintelligence #internetofthings #iot #cloudcomputing 


6 in-demand Technologies to UpSkill Your Career in 2021

Interview With Murali Gopalakrishna, GM, Robotics @ NVIDIA

For this week’s practitioners series, Analytics India Magazine (AIM) got in touch with Murali Gopalakrishna, Head of Product Management, Autonomous Machines and General Manager for Robotics. He also leads the business development team focusing on robots, drones, industrial IoT and enterprise collaboration products at NVIDIA. In this interview, we discuss in detail the robotics solutions developed by NVIDIA and their significance.


Read more:


#robotics #nvidia 

Interview With Murali Gopalakrishna, GM, Robotics @ NVIDIA

Top 10 Cloud Robotics Start-ups to Watch

Check out 10 top rising cloud robotics start-ups

Cloud robotics is an area of robotics that attempts to entreat cloud technologies such as cloud computing, cloud storage, and other internet technologies. It is not an easy task to run a cloud robotics start-ups. But it is amazing to see the rising number of start-ups specializing in cloud robotics. These start-ups are seen to work on innovative technologies.

Here is the list of 10 cloud robotics start-ups that are working on the innovation of technologies and products.

  1. Graphcore
  2. Arctoris
  4. Salty Cloud, PBC (Public Benefit Company)
  5. Bright Machines
  6. Soar Robotics
  7. Freedom Robotics
  8. Covariant
  9. Aitomation – Workflow Automation
  10. RosHub – Robotic Fleet Management

#cloud computing #robotics #cloud

Top 10 Cloud Robotics Start-ups to Watch

Why Did OpenAI Disband Its Robotics Team?

Last month, OpenAI cofounder Wojciech Zaremba said the company has disbanded its robotics team in a Weights & Biases podcast. “I was actually working for several years on robotics. Recently, we changed the focus at OpenAI. I disbanded the robotics team. There are actually plenty of domains that are very rich with data. Ultimately that was holding us back, in the case of robotics,” said Zaremba.

#robotics #ai #data

Why Did OpenAI Disband Its Robotics Team?
Phil Tabor

Phil Tabor


Teaching Robots to Walk with Reinforcement Learning

Among the successes of modern bipedal robotics, deep reinforcement learning has been conspicuously absent. That is, until a group from Berkley applied Proximal Policy Optimization to teaching a bipedal robot named Cassie how to walk. They leveraged simulations in the MuJoCo simulator, coupled with judicious use of domain randomization, to get a robot to walk in the real world. In this video, we’ll analyze their paper and see how they did it.

#robotics #python #artificial-intelligence #machine-learning #deep-learning

Teaching Robots to Walk with Reinforcement Learning
Archie  Powell

Archie Powell


How to Invest in Robotics and Artificial Intelligence

Learn more about the Market Conditions and Invest in Robotics and Artificial Intelligence

We frequently put robotics and artificial intelligence together, but they are two separate fields. The robotics and artificial intelligence industries are some of the largest markets in the tech space today. Almost every industry in the world is adopting these technologies to boost growth and increase customer engagement.

**Best Robotics Stocks to Invest in- **
  • Oceaneering International. Inc: Oceaneering, is engineering and applied technology service provider to different industries like oil and gas, aerospace, marine, defense, entertainment, logistics, science, and renewable energy sources. The company aims to provide unmatched services to its customers to develop, regardless of the market conditions.
  • Brooks Automation, Inc: Brooks Automation, is a provider of automation, vacuum, and instrumentation solutions for semiconductor manufacturing, life sciences, and other industries. Recently, the company announced that it will split into two independent companies, one of which will focus completely on the life sciences industry and the other will focus on the high innovation automation technology.
  • **FLIR Systems: **FLIR manufactures, develops, distributes, and markets technologies, that enhance perception and awareness. The company provides advanced systems and components, that are used for thermal imaging, situational awareness, and security applications, including navigation, recreation, research, and development.
The Market Overview of Artificial Intelligence-

According to the reports, the global AI market is expected to grow from US$58.3 billion in 2021 to US$309.6 billion by 2026. Among the many factors that will drive the growth in the artificial intelligence market, the Covid-19 pandemic is the chief reason.

Best AI Stocks to Invest in-
  • Tata Elxsi: Over the past decade, Tata Elxsi, has been facilitating tech-based advancements. Starting from self-driving cars to video analytics solutions, the company provides groundbreaking technologies powered by artificial intelligence and analytics.
  • **Bosch: **The Bosch Center for Artificial Intelligence (BCAI), works towards producing innovative AI technologies and implementing them in their own products to have a real-world impact.
  • **Happiest Minds: **Happiest Minds, is helping organizations to provide enhanced customer services, combined with augmented intelligence and natural language processing, image analytics, video analytics, and other services. The company aims to create next-generation smart systems that can think, learn and create with an intelligence equivalent to humans.

#artificial intelligence #latest news #robotics #robotics

How to Invest in Robotics and Artificial Intelligence

Breathing Life Into Robots Through Simulators

Simulation enables engineers to prototype rapidly and with minimal human effort. In robotics, physics simulations provide a secure and low-cost virtual playground for robots to gain physical skills through Deep Reinforcement Learning (DRL).

Read more:

#robotics #deep-learning

Breathing Life Into Robots Through Simulators

New Dataset for AI-Enabled Sign Language Translation

The dataset will allow more automatic sign language understanding and translation. These technologies could be applied to applications such as virtual assistants and robotics.

Artificial intelligence (AI) is helping humans save, parse, and learn language. With a new dataset, researchers and developers could get a massive boost developing technologies for the deaf community.

The How2Sign Dataset

The dataset includes over 80 hours of videos showing sign language interpreters translating a variety of tutorials. Amanda Duarte, a researcher in the Emerging Technologies for Artificial Intelligence group at the Barcelona Supercomputing Center (BSC), spent two years recording these videos and preparing the data.

Duarte also made use of Carnegie’s Carnegie Mellon University’s Panoptic Studio, a state-of-the-art dome-shaped studio that allowed researchers to video translators and reconstruct their movements in 3D.

Thanks to Duarte, How2Sign provides a public resource for researchers in natural language processing and computer vision, helping usher in a new era of deaf and hard of hearing enabled products and services. Making the internet more accessible is a huge goal, and one of the first applications is software that transfers signs from one user to another.

The dataset provides a valuable resource for researchers and developers to design quality technology that considers the needs of the deaf community. Artificial intelligence requires computation and algorithms capability, but it also requires data.

#artificial intelligence technologies #cognitive computing #deep learning #expert systems #machine learning #trending now #chatbots #robotics

New Dataset for AI-Enabled Sign Language Translation
Wasswa  Meagan

Wasswa Meagan


Orbitron: Reinventing the wheels and its control algorithm

Being a heavy Sci-fi fan myself, I always wondered: how would those spherical wheels from Tron and I-Robot work in real life? And this simple thought began the 6-month journey of Project Orbitron.

Now, this project consisted of two major goals upon start:

  • Building a vehicle with spherical wheels that implement a 4 wheel independent steering/driving (4WIS/D) system using Arduino
  • Developing an intuitive control algorithm for 4WIS/D vehicle in Mathematica

This article will showcase my vehicle prototype Orbitron along with a short story behind the building scene. Then, I’ll introduce you to the highlight: a clever algorithm I built to control Orbitron seamlessly.

You can also check out this maker portfolio video I made for my college application or check out the GitHub repo containing the full code.


As I mentioned above, ORBITRON is a vehicle with spherical wheels, hence the name ‘ORB’itron. Unfortunately, I was a bit under-qualified to suspend wheels in mid-air with electromagnets, as many sci-fi movies suggested. Instead, I implemented a 4 Wheel Independent Steering/Driving (4WIS/D) system: a steering system for a four-wheeled vehicle that allows for separate speed and direction controls for each wheel.

#arduino #robotics #algorithms #programming #orbitron

Orbitron: Reinventing the wheels and its control algorithm

Quality-Diversity Algorithms: A new approach based on MAP-Elites applied toRobotNavigation

Evolutionary Algorithms have taken an important place in many application fields, including robotics. In this article, we will, first, present the navigation problem in robotics. After that, we will show why it’s better to look for diversity than for quality and experiment with some well-known methods to do this kind of thing. Finally, we will present a new intuition for associating quality with diversity to outperform both quality and diversity-oriented algorithms.

Navigation Task

In robotics, it is common that agents are roughly represented as several sensors that collect sensory information about the environment and several actors that can take values in a discrete or continuous range.

Representative diagram of the relation between an agent and his environnement (by me)

In this blog post, we are interested in the task of navigation. This task consists of an agent with proximity sensors to move in an environment to reach a goal.

Our experiment sensors are range finders and radars arranged around the agent, as presented in this illustration taken from [3].

The actor is the motor that can give an impulse in the forward or reverse direction and an impulse to the left or the right, both represented by velocities taking their values in the real interval [-2,2].

The environment is a maze with a single goal that the agent has to reach by minimising distance travelled and collisions.

In their article, Lehman and Staley[3] used two mazes, one they referred to as “medium,” but it was more a “standard” maze. The second they considered as “hard” because of the deceptive behaviour that results from following the distance to the goal.

#robotics #evolutionary-algorithms #neural-networks #artificial-intelligence #algorithms

Quality-Diversity Algorithms: A new approach based on MAP-Elites applied toRobotNavigation

Why We Don’t See More Robotics Startups

In April 2019, San Francisco-based robotics startup Anki shut shop after filing for bankruptcy. In the nine years of its existence, the company had developed popular robotic toys such as Overdrive, Cozmo, and Vector. CEO Boris Sofman blamed the company’s closure on a last-minute financing snafu.

Read more:


Why We Don’t See More Robotics Startups