diff --git a/CMakeLists.txt b/CMakeLists.txt index d115c1f..9ad5644 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -49,23 +49,25 @@ catkin_package( DEPENDS eigen ) -add_library(polynomial include/pauvsi_trajectory/Polynomial.hpp) -set_target_properties(polynomial PROPERTIES LINKER_LANGUAGE CXX) -target_link_libraries(polynomial ${Eigen_LIBRARIES} ${catkin_LIBRARIES}) +add_library(multirotor_trajectory_polynomial include/multirotor_trajectory/Polynomial.hpp) +set_target_properties(multirotor_trajectory_polynomial PROPERTIES LINKER_LANGUAGE CXX) +target_link_libraries(multirotor_trajectory_polynomial ${Eigen_LIBRARIES} ${catkin_LIBRARIES}) -add_library(types include/pauvsi_trajectory/Types.h) -set_target_properties(types PROPERTIES LINKER_LANGUAGE CXX) -target_link_libraries(types ${Eigen_LIBRARIES} ${catkin_LIBRARIES}) +add_library(multirotor_trajectory_types include/multirotor_trajectory/Types.h) +set_target_properties(multirotor_trajectory_types PROPERTIES LINKER_LANGUAGE CXX) +target_link_libraries(multirotor_trajectory_types ${Eigen_LIBRARIES} ${catkin_LIBRARIES}) -add_library(trajGen include/pauvsi_trajectory/TrajectoryGenerator.cpp) -target_link_libraries(trajGen ${Eigen_LIBRARIES} ${catkin_LIBRARIES} polynomial types) +add_library(multirotor_trajectory_generator include/multirotor_trajectory/TrajectoryGenerator.cpp) +target_link_libraries(multirotor_trajectory_generator ${Eigen_LIBRARIES} ${catkin_LIBRARIES} multirotor_trajectory_polynomial multirotor_trajectory_types) add_executable(trajectory_server src/trajectory_server.cpp) -target_link_libraries(trajectory_server ${catkin_LIBRARIES} ${Eigen_LIBRARIES} trajGen) +target_link_libraries(trajectory_server ${catkin_LIBRARIES} ${Eigen_LIBRARIES} multirotor_trajectory_generator) add_dependencies(trajectory_server ${PROJECT_NAME}_generate_messages_cpp) -add_executable(unit_test test/unit_test.cpp) -target_link_libraries(unit_test ${catkin_LIBRARIES} ${Eigen_LIBRARIES} trajGen polynomial) +add_executable(traj_test test/traj_test.cpp) +target_link_libraries(traj_test ${catkin_LIBRARIES} ${Eigen_LIBRARIES} multirotor_trajectory_generator multirotor_trajectory_polynomial) -add_executable(virtual_flight_controller src/virtual-flight-controller.cpp) -target_link_libraries(virtual_flight_controller ${catkin_LIBRARIES} ${Eigen_LIBRARIES} ${Boost_LIBRARIES} trajGen polynomial) + +#OBSOLETE +#add_executable(virtual_flight_controller src/virtual-flight-controller.cpp) +#target_link_libraries(virtual_flight_controller ${catkin_LIBRARIES} ${Eigen_LIBRARIES} ${Boost_LIBRARIES} trajGen polynomial) diff --git a/include/multirotor_trajectory/Polynomial.hpp b/include/multirotor_trajectory/Polynomial.hpp index e6449cf..249f873 100644 --- a/include/multirotor_trajectory/Polynomial.hpp +++ b/include/multirotor_trajectory/Polynomial.hpp @@ -138,6 +138,18 @@ void polyRoot(Polynomial in, double t0, double tf){ } +DesiredState polyVal(EfficientTrajectorySegment ets, double t) +{ + DesiredState ds; + ds.pos = polyVal(ets.pos, t); + ds.vel = polyVal(ets.vel, t); + ds.accel = polyVal(ets.accel, t); + ds.jerk = polyVal(ets.jerk, t); + ds.snap = polyVal(ets.snap, t); + + return ds; +} + #endif /* PAUVSI_M7_PAUVSI_TRAJECTORY_INCLUDE_PAUVSI_TRAJECTORY_POLYNOMIAL_HPP_ */ diff --git a/include/multirotor_trajectory/Types.h b/include/multirotor_trajectory/Types.h index 58d30c2..1c0a442 100644 --- a/include/multirotor_trajectory/Types.h +++ b/include/multirotor_trajectory/Types.h @@ -178,5 +178,10 @@ struct PhysicalCharacterisics{ Eigen::Matrix4d torqueTransition_inv; // maps total force and moments to motor forces }; +struct DesiredState{ + Eigen::Vector3d pos, vel, accel, snap, jerk; +}; + + #endif /* PAUVSI_TRAJECTORY_INCLUDE_PAUVSI_TRAJECTORY_TYPES_H_ */ diff --git a/src/trajectory_server.cpp b/src/trajectory_server.cpp index c070c1d..6938bf8 100644 --- a/src/trajectory_server.cpp +++ b/src/trajectory_server.cpp @@ -1,18 +1,18 @@ #include "ros/ros.h" -#include +#include #include -#include "../include/pauvsi_trajectory/Config.h" -#include "../include/pauvsi_trajectory/Polynomial.hpp" -#include "../include/pauvsi_trajectory/Physics.h" +#include "../include/multirotor_trajectory/Config.h" +#include "../include/multirotor_trajectory/Polynomial.hpp" +#include "../include/multirotor_trajectory/Physics.h" -#include "../include/pauvsi_trajectory/TrajectoryGenerator.h" +#include "../include/multirotor_trajectory/TrajectoryGenerator.h" #include PhysicalCharacterisics phys; -bool generateTrajectory(pauvsi_trajectory::trajectoryGeneration::Request &req, pauvsi_trajectory::trajectoryGeneration::Response &res); +bool generateTrajectory(multirotor_trajectory::trajectoryGeneration::Request &req, multirotor_trajectory::trajectoryGeneration::Response &res); ros::Publisher path_pub; @@ -37,7 +37,7 @@ int main(int argc, char **argv) return 0; } -bool generateTrajectory(pauvsi_trajectory::trajectoryGeneration::Request &req, pauvsi_trajectory::trajectoryGeneration::Response &res) +bool generateTrajectory(multirotor_trajectory::trajectoryGeneration::Request &req, multirotor_trajectory::trajectoryGeneration::Response &res) { //ROS_INFO("Starting trajectory generation from <%f, %f, %f> to <%f, %f, %f>", req.quadPosition.x, req.quadPosition.y, req.quadPosition.z, req.goalPosition.x, req.goalPosition.y, req.goalPosition.z); TrajectoryGenerator tg; diff --git a/src/virtual-flight-controller.cpp b/src/virtual-flight-controller.cpp index 949c3c3..64e76b8 100644 --- a/src/virtual-flight-controller.cpp +++ b/src/virtual-flight-controller.cpp @@ -26,6 +26,11 @@ #include +/* + * NOTE: OBSOLETE Use rotors simulator: https://github.com/ethz-asl/rotors_simulator + */ + + #define USE_GAZEBO true void updateForces(const std_msgs::Float64MultiArrayConstPtr msg); diff --git a/test/unit_test.cpp b/test/traj_test.cpp similarity index 97% rename from test/unit_test.cpp rename to test/traj_test.cpp index 47eff8d..7ad2f63 100644 --- a/test/unit_test.cpp +++ b/test/traj_test.cpp @@ -6,10 +6,10 @@ */ #include "ros/ros.h" -#include "../include/pauvsi_trajectory/Polynomial.hpp" -#include "../include/pauvsi_trajectory/TrajectoryGenerator.h" +#include "../include/multirotor_trajectory/Polynomial.hpp" +#include "../include/multirotor_trajectory/TrajectoryGenerator.h" -#include "../include/pauvsi_trajectory/Physics.h" +#include "../include/multirotor_trajectory/Physics.h" #include