Mateusz Sadowski's Posts (4)

Sort by

YDLIDAR X2 - $69 LiDAR review

Hi guys!

I recently had a chance to test out YDLIDAR X2, that could be a cheaper alternative to RPLIDAR. Here are some of the characteristics of this unit:

Scanning range360°
Range resolution2% of distance
Scan frequency5-8Hz
Range frequency3000Hz
Max current500mA
Laser wavelength775-795nm
Laser power3-5mW
Price~89 USD

I only tested it for an indoor SLAM (with ROS and Google Cartographer) getting a result as you can see above

I think this sensor might be an interesting option for obstacle avoidance (although I'm not sure if the 7Hz update rate is good enough). If anyone thinks adding this LiDAR to ArduCopter obstacle avoidance supported devices then let me know and I'll look into implementing it!

If you'd like to know more details then check out my blog post: , where I also link to the repository with my Cartographer setup.

If you have any questions about the unit let me know and I'll answer them. I'm also happy to run some tests for the community!

Read more…

Livox Mid-40 LiDAR short review

livox_mid40.jpg?profile=RESIZE_710x Hi guys! Recently I had a chance to experiment with Livox Mid-40 - a 230 m range LiDAR using rotational Risley Prisms.

I thought I would share my findings with the community in case it can be considered a viable scanning solution!

The first thing to note about this unit is the weight of 710g that could be a blocker for smaller UAVs. The scanning field of view is 38.4° (circular) and the scanning pattern is as follows:

scan_pattern.png?profile=RESIZE_710xVisualizing the data here is a raw point cloud of a static scene (decay time - 0s, the gif shows the consecutive scans):


When we preserve each of the scan for 2 seconds we get such results:


My initial idea for using this sensor was for SLAM however due to the scanning pattern I found it difficult to use with off the shelf tools however I think the sensor could work well for UAV laser scanning (assuming a decent positioning system).

If anyone of you based in Europe has a platform that could carry this LiDAR and a positioning system we could use for referencing the scans then I'd be up for some joint integration project.

If you would like to learn more about this LiDAR here is a review that I wrote on my blog. Feel free to let me know if you have any questions and if you have any ideas for some further tests then let me know!

Read more…


At Terabee we did some intensive experiments with TeraRanger Tower and Pixhawk running ArduCopter. The purpose of the experiment was to explore the obstacle avoidance indoors using rangefinders only.

In our setup we used TeraRanger Tower with 8 sensors (in a separate test we used 4 sensors in a + configuration. It worked flawlessly) and a single TeraRanger Evo looking down as an altimeter (without GPS the obstacle avoidance works in altitude hold mode).

One of the things we learned is that AVOID_DIST_MAX parameter has the minimum value of 3.0 meters for a reason. When we forced the value to 1.5 meters we crashed into a wall, twice. Our best guess is that the aircraft didn’t have enough time and control authority to move away from the wall (we allowed the obstacle avoidance to request up to 5 degrees lean angle).

We are really happy with the results of our experiments and we are really excited to see ArduPilot growing further. We would like to thank the ArduPilot dev team for their fabulous work!

If you would like to know more about our testing of indoor avoidance, here is a much longer writeup containing all the technical details I could think of.

If you have any questions about our setup then I’m always happy to help!

Read more…

In the last two months I was exploring an idea of using a haptic device to control a multirotor. Here is the video I made showing the system working in simulation:

The setup

For the simulation I used Px4 SITL running with jMAVSim. For interfacing with Px4 I'm using mavos + two custom ROS nodes. If you are interested in trying it yourself then you can find all source code in the following repo: .

The diagram below roughly shows the architecture of my system:



In short: I wouldn't use Novint Falcon as casual 'controller' for UAV. I found the device to be slightly unreliable (sometimes motors stop for about 1 second). Nevertheless I still consider this concept to be quite interesting. Obviously it can only work in stabilized modes where you control groundspeed. One personal advantage I have from this project is that I probably could use whatever device that produces sensible output to control a Px4 based system.

Unfortunately at this time I cannot test the system with a real drone. As soon as I get hands on Pixhawk I will try to set it up and post an update.

Future work

I'm not planning to put too much more effort into this project as there are many more things to explore. I'm happy however to accept pull requests on improvements and fix any potential bugs.

Some remaining work:

  • Implement yaw rotation using digital buttons (lame, I know)
  • Implement homing mode on starting program (for offsetting Novint Falcon encoders)
  • Programatically establish minimum and maximum values for positions received from Falcon for each axis
  • Clean up the code
  • Review offb_node.cpp timings (especially refresh rates)

More info

If you would like to know more about the project then here are some links:

  1. Github repository with the project:
  2. 1st blog post:
  3. 2nd blog post:
Read more…