This Week I Learnt - April 26th - May 3rd

1 minute read

This is the first of (hopefully!) a series of weekly posts to keep track of what I’m working on and learnt in the current week.

Open Source

I’ve been trying to get non-GPS navigation working with AirSim + ArduPilot. PR 3364 provides a start wherein it doesn’t crash if GPS is disabled (by excluding it in settings.json), however the ArduPilot SITL only flies in Stabilize mode.

Some basic implementation is ready on branches AirSim/ap-non-gps & ardupilot/airsim-non-gps, but there are currently GPS prearm failures with GPS and non-GPS SITL. The strange problem I’m seeing is that the GPS altitude seems to jump from +100m to 0 in the data sent by AirSim. Release 1.3.0 doesn’t seem to have this problem (GPS prearm is still an issue), might need to do kind of git bisect and see if any specific commit caused this, though I don’t remember any such PRs.

Update: So I later figured out the problem, a very stupid mistake with the data encoding on the AirSim side, the comment history starts from here. TLDR

Also worked on running the AirSim ROS wrapper inside a docker container since my host installation is broken (old opencv source install, long story…). The final PR is at #3635. Did some code review of Fix px4 connection for WSL 2, the PX4 backend is definitely becoming a huge beast.

rpclib has a new maintainer, and 2.3.0 release! Made PR #3642 to change the rpclib version, lots of hardcoding in the scripts!

Academics

Started reading Distributed systems: for fun and profit, it’s a free ebook on Distributed Systems as a beginner text, the content is pretty interesting and written in an easily understandable way.

For an Analysis of Parallel Programs course at my university, I’m currently implementing a May-Happen-in-Parallel (MHP) Analysis on a subset of Java. The assignment details are available here. Along with this, I’ve been going through some papers and lectures on Context-sensitive, flow-sensitive alias analysis for the course project. The final paper which I’m going to analyze is Bottom-up Context-SensitivePointer Analysis for Java.

Others

Have been watching some videos and blog-posts on C++20 features, seems interesting but need to try them out.

Updated: