void PathPlanner::setInitPos(AxisVector initPos) {
	AxisVector z; z.zero();
	std::array<AxisVector, 3> r;
	r[0] = initPos;
	r[1] = z;
	r[2] = z;
	trajectoryGen.reset(r);
	lastPoint = initPos;
}
Exemplo n.º 2
0
void PathPlanner::setInitPos(AxisVector initPos) {
	AxisVector z; z.zero();
// 	std::array<AxisVector, 4> r;
	std::vector<AxisVector> r = std::vector<AxisVector>(4);
	r[0] = initPos;
	r[1] = z;
	r[2] = z;
	r[3] = z;

	this->last = r;
	this->finish = true;
}
Exemplo n.º 3
0
// bool PathPlanner::move(std::array<AxisVector, 100> array, bool limitOn) {
bool PathPlanner::move(std::vector<AxisVector> array, bool limitOn) {
	if(!finish)
		return false;
	coefficients.zero();

	positions = array;
	jerk_limit_on = limitOn;
	
	// find end of array
	AxisVector zero; zero.zero();
	int nr_in_points = 0;

	for(int i = 0; i < array.size(); i++){
		if(array[i] < zero)
			i = array.size();
		else
			nr_in_points++;
	}
	
	// Safety check, if -1 at end of array missing, don't calculate trajectory
// 	if(nr_in_points == array.size()){
// 		std::cout << "return false" << std::endl;
// 		return false;
// 	}
	this->points_nr = nr_in_points;
		
	if(calculateCoefficients_fromPosition()){
		finish = false;
		finish_segment = false;
		t = 0;
		dTold = 0;
		k = 0;
	}
	else {
		finish = true;
		finish_segment = true;
		t = 0;
		dTold = 0;
		k = 0;
	}	
	return true;
}
Exemplo n.º 4
0
 inline AxisValue getAxis(unsigned int axis) const {
     if (axisState.size() <= axis) {
         return AxisValue::null();
     }
     return axisState[axis];
 }