A star、RRT star等算法,找到了一段轨迹路径,也就是一系列的点,但没有指明点的连接方式,可能是平滑的曲线,也可能是折线。这些算法是不考虑机器人运动学约束的,因此轨迹上会出现明显的不光滑点,可以想象,机器人不可能在某一点出现运动突变,如果是万向轮的机器人要想按照这个轨迹走,它必须每走完一段路,就要停下来,然后旋转一个角度对着路径然后再加速往前走。这样很明显浪费很多时间和效率。如果是阿克曼的机器人那么它就无法按照这个路径进行运动。
cd ../.. git clone https://github.com/robotology/osqp-eigen.git cd osqp-eigen mkdir build cd build 安装到 /usr/local/lib/ cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr/local ../ make sudo make install
import osqp import numpy as np from scipy import sparse
# Define problem data P = sparse.csc_matrix([[4, 1], [1, 2]]) q = np.array([1, 1]) A = sparse.csc_matrix([[1, 1], [1, 0], [0, 1]]) l = np.array([1, 0, 0]) u = np.array([1, 0.7, 0.7]) # Create an OSQP object prob = osqp.OSQP() # Setup workspace and change alpha parameter prob.setup(P, q, A, l, u, alpha=1.0) # Solve problem res = prob.solve()
bearing_std_dev (default: 0.001): The standard deviation of bearing uncertainty in the laser scans (rad).
min_split_dist (default: 0.05): When performing “split” step of split and merge, a split between two points results when the two points are at least this far apart (m) 线段split的阈值,过大时很多线段被合并成一条,过小时,出现很多碎短的线段
outlier_dist (default: 0.05): Points who are at least this distance from all their neighbours are considered outliers (m).
range_std_dev (default: 0.02): The standard deviation of range uncertainty in the laser scans (m).
1 2 3 4 5
float32 radius float32 angle float32[4] covariance float32[2] start float32[2] end