Skip to content

Software to transform a Hokuyo laser rangefinder into a 3D lidar system

License

Notifications You must be signed in to change notification settings

ljthink/lidar_scanner

 
 

Repository files navigation

# INFO521 HEADER

Usage: Please refer to section 5 "Results and Replication" for how to run this
If you're too lazy to read it, here's the TL;DR
you need python3 with networkx, scipy, numpy, and plyfile
then do: $ ./simulate/simulate.py
it will load the previously generated data (refer to section 5 on how to regenerate the data yourself) and will run shortest path algorithms for four limbs. It will print the movements of these limbs to stdout.

This is hosted privately on github, I can add you if you are interested in the revision history or would like a more up to date version. The version before you is cut from the `ml-project` github branch.


# 3D Lidar scanner and path planner in python using a hoyuko rangefinder 
# Path Planning:
Has multiple ways to chart a course on a surface

# Lidar:
Attach a Z-axis servo to a rangefinder, turning a 2d rangefinder into a 3d lidar system. Contains code to format results into an .xyz point cloud file.
The driver libraries are a pain in the ass to build, you shouldn't try to rebuild them. I've already built them and bundled them in the arm and amd64 directories.

# Path Planning:
Given a surface mesh, chart a course through it

# Directory layout
$ROOT/*{.py,.sh.service}    -  Lidar scanner code, used on a raspberry pi with hokuyo laser rangefinder
$ROOT/data  -   Meshes and other data that was either generated by the lidar scanner or afterwards
$ROOT/simulate  -   Path planning and scan data manipulation
$ROOT/{amd64,arm}   -   Hokuyo drivers, painstakingly built by hand

If you're crazy and want to rebuild them, the following is a rough guide:

	# Install flexiport https://github.com/gbiggs/flexiport

	mkdir build && cd build
	cmake ../ -DBUILD_DOCUMENTATION=OFF
	make
	# Must make install, cmake config is bad and cannot
	# point to artifact dir directly
	make install

	# Build boost from source
	# Make SURE that the user-config.jam file is copied
	# to your home directory, and you have specified your
	# target python version and path in said user-config

	# build boost
	./bootstrap.sh --with-python
	./b2 --with-python
	# at this point you should have produced a shared lib for boost

	# Install the lidar lib https://github.com/gbiggs/hokuyoaist
	mkdir build && cd build
	# Make sure you change the path to your boost link path, 
	# flexiport root path, and target python path
	LD_LIBRARY_PATH="/home/$USER/boost/boost_1_65_1/stage/lib" CMAKE_PREFIX_PATH="$CMAKE_PREFIX_PATH:/home/$USER/flexiport/" cmake ../ -DBUILD_DOCUMENTATION=OFF -DBOOST_ROOT=~/boost/boost_1_65_1
	-DPYTHON_EXECUTABLE:FILEPATH=/usr/bin/python3
	 
	LD_LIBRARY_PATH="/home/$USER/boost/boost_1_65_1/stage/lib" make

	# Ensure built library is correct binary header type 
	# (ELF32 ARM EABI5 or ELF64 amd64)
	file build/python/hoyukoaist.so

About

Software to transform a Hokuyo laser rangefinder into a 3D lidar system

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 99.0%
  • Shell 1.0%