From b60316ae7fd55d72e6c7e9aa3d015e321d5df2b7 Mon Sep 17 00:00:00 2001 From: abhivij Date: Sat, 25 May 2019 00:12:21 +1000 Subject: [PATCH 1/5] artag_location launch file via user input --- .../launch/artags_location.launch | 8 +++ .../src/artags_location.launch | 5 ++ .../src/create_artag_config.cpp | 49 +++++++++++++++++++ 3 files changed, 62 insertions(+) create mode 100644 rover/src/owr_positioning/launch/artags_location.launch create mode 100644 rover/src/owr_positioning/src/artags_location.launch create mode 100644 rover/src/owr_positioning/src/create_artag_config.cpp diff --git a/rover/src/owr_positioning/launch/artags_location.launch b/rover/src/owr_positioning/launch/artags_location.launch new file mode 100644 index 00000000..1be89706 --- /dev/null +++ b/rover/src/owr_positioning/launch/artags_location.launch @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/rover/src/owr_positioning/src/artags_location.launch b/rover/src/owr_positioning/src/artags_location.launch new file mode 100644 index 00000000..ce709117 --- /dev/null +++ b/rover/src/owr_positioning/src/artags_location.launch @@ -0,0 +1,5 @@ + + + + + diff --git a/rover/src/owr_positioning/src/create_artag_config.cpp b/rover/src/owr_positioning/src/create_artag_config.cpp new file mode 100644 index 00000000..6d6bdc8d --- /dev/null +++ b/rover/src/owr_positioning/src/create_artag_config.cpp @@ -0,0 +1,49 @@ +/* + Author : Abhishek Vijayan + Purpose : Create a launch file containing positions of AR Tags +*/ + +#include +#include +using namespace std; + +int determine_artag(){ + int id; + cout << "Enter ARTag Id : "; + cin >> id; + return id; +} + +int main() { + ofstream launch_file; + launch_file.open("artags_location.launch"); + bool add_artag = true; + char response; + int id; + float x, y, z, x_r, y_r, z_r; + if(launch_file.is_open()){ + launch_file << "\n"; + while(add_artag){ + id = determine_artag(); + cout << "Enter x, y, z co-ordinates separated by space (or in different lines) : "; + cin >> x >> y >> z; + cout << "Enter rotation in x, y, z separated by space (or in different lines) : "; + cin >> x_r >> y_r >> z_r; + launch_file << "\n"; +// + cout << "Do you want to add details of another AR Tag ? (Y/N) : "; + cin >> response; + if(response == 'N'){ + add_artag = false; + } + } + launch_file << "\n"; + launch_file.close(); + } + return 0; +} From b35c174f163c908dd3e7cc14621d963ace81532c Mon Sep 17 00:00:00 2001 From: abhivij Date: Sat, 1 Jun 2019 15:27:06 +1000 Subject: [PATCH 2/5] better launch file location --- rover/src/owr_positioning/CMakeLists.txt | 1 + rover/src/owr_positioning/launch/artags.launch | 3 --- .../src/owr_positioning/launch/artags_location.launch | 8 ++------ rover/src/owr_positioning/src/artags_location.launch | 5 ----- rover/src/owr_positioning/src/create_artag_config.cpp | 11 ++++++++++- 5 files changed, 13 insertions(+), 15 deletions(-) delete mode 100644 rover/src/owr_positioning/src/artags_location.launch diff --git a/rover/src/owr_positioning/CMakeLists.txt b/rover/src/owr_positioning/CMakeLists.txt index 4a57d736..4db961e5 100644 --- a/rover/src/owr_positioning/CMakeLists.txt +++ b/rover/src/owr_positioning/CMakeLists.txt @@ -123,6 +123,7 @@ add_executable(gps_tf src/GPSTransform.cpp) add_executable(mag src/MagnetConverter.cpp) add_executable(optical_localization src/optical_localization.cpp) add_executable(image_cropping src/ImageCropping.cpp) +add_executable(create_artag_config src/create_artag_config.cpp) target_link_libraries(optical_localization ${OpenCV_LIBRARIES} ${catkin_LIBRARIES}) set_target_properties(optical_localization PROPERTIES COMPILE_FLAGS "-O3") target_link_libraries(image_cropping ${OpenCV_LIBRARIES} ${catkin_LIBRARIES}) diff --git a/rover/src/owr_positioning/launch/artags.launch b/rover/src/owr_positioning/launch/artags.launch index 88269e76..529ec735 100644 --- a/rover/src/owr_positioning/launch/artags.launch +++ b/rover/src/owr_positioning/launch/artags.launch @@ -1,8 +1,5 @@ - - - diff --git a/rover/src/owr_positioning/launch/artags_location.launch b/rover/src/owr_positioning/launch/artags_location.launch index 1be89706..b978604a 100644 --- a/rover/src/owr_positioning/launch/artags_location.launch +++ b/rover/src/owr_positioning/launch/artags_location.launch @@ -1,8 +1,4 @@ - - - - - - + + diff --git a/rover/src/owr_positioning/src/artags_location.launch b/rover/src/owr_positioning/src/artags_location.launch deleted file mode 100644 index ce709117..00000000 --- a/rover/src/owr_positioning/src/artags_location.launch +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/rover/src/owr_positioning/src/create_artag_config.cpp b/rover/src/owr_positioning/src/create_artag_config.cpp index 6d6bdc8d..5b57f953 100644 --- a/rover/src/owr_positioning/src/create_artag_config.cpp +++ b/rover/src/owr_positioning/src/create_artag_config.cpp @@ -5,6 +5,8 @@ #include #include +#include +#include using namespace std; int determine_artag(){ @@ -15,8 +17,14 @@ int determine_artag(){ } int main() { + string dir_location = "/home/ros/owr_software/rover/src/owr_positioning/launch/"; + string file_name = "artags_location.launch"; ofstream launch_file; - launch_file.open("artags_location.launch"); + launch_file.open((dir_location+file_name).c_str()); + if(not launch_file){ + cout << "Could not create " << dir_location << file_name <<"\n" ; + return 1; + } bool add_artag = true; char response; int id; @@ -44,6 +52,7 @@ int main() { } launch_file << "\n"; launch_file.close(); + cout << "Successfully created " << dir_location << file_name << "\n"; } return 0; } From 215c9a8825d00fbc055893be7c26eed58c1097fe Mon Sep 17 00:00:00 2001 From: abhivij Date: Sat, 15 Jun 2019 15:24:46 +1000 Subject: [PATCH 3/5] working create_artag_config --- rover/src/owr_positioning/CMakeLists.txt | 4 + .../launch/artags_location.launch | 4 +- .../launch/create_artag_config.launch | 70 ++++++++++ .../src/create_artag_config.cpp | 128 +++++++++++------- 4 files changed, 156 insertions(+), 50 deletions(-) create mode 100644 rover/src/owr_positioning/launch/create_artag_config.launch diff --git a/rover/src/owr_positioning/CMakeLists.txt b/rover/src/owr_positioning/CMakeLists.txt index 4db961e5..35e50d4b 100644 --- a/rover/src/owr_positioning/CMakeLists.txt +++ b/rover/src/owr_positioning/CMakeLists.txt @@ -157,6 +157,10 @@ target_link_libraries(mag ${catkin_LIBRARIES} ${OpenCV_LIBRARIES} ) +target_link_libraries(create_artag_config + ${catkin_LIBRARIES} + ${OpenCV_LIBRARIES} +) # src/${PROJECT_NAME}/owr_positioning.cpp # ) diff --git a/rover/src/owr_positioning/launch/artags_location.launch b/rover/src/owr_positioning/launch/artags_location.launch index b978604a..159d06b9 100644 --- a/rover/src/owr_positioning/launch/artags_location.launch +++ b/rover/src/owr_positioning/launch/artags_location.launch @@ -1,4 +1,4 @@ - - + + diff --git a/rover/src/owr_positioning/launch/create_artag_config.launch b/rover/src/owr_positioning/launch/create_artag_config.launch new file mode 100644 index 00000000..5893b701 --- /dev/null +++ b/rover/src/owr_positioning/launch/create_artag_config.launch @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/rover/src/owr_positioning/src/create_artag_config.cpp b/rover/src/owr_positioning/src/create_artag_config.cpp index 5b57f953..4825d13a 100644 --- a/rover/src/owr_positioning/src/create_artag_config.cpp +++ b/rover/src/owr_positioning/src/create_artag_config.cpp @@ -3,56 +3,88 @@ Purpose : Create a launch file containing positions of AR Tags */ -#include -#include +#include "artags.h" #include -#include -using namespace std; - -int determine_artag(){ - int id; - cout << "Enter ARTag Id : "; - cin >> id; - return id; +#include +#include + +//#define DIR_LOCATION = "/home/ros/owr_software/rover/src/owr_positioning/launch/"; +//#define FILE_NAME = "artags_location.launch"; + +std::string dir_location = "/home/ros/owr_software/rover/src/owr_positioning/launch/"; +std::string file_name = "artags_location.launch"; +std::ofstream launch_file; +bool add_artag = true; + +int main(int argc, char ** argv) { +//std::string dir_location = "/home/ros/owr_software/rover/src/owr_positioning/launch/"; +//std::string file_name = "artags_location.launch"; + + ROS_INFO("Launch file creator started"); + ros::init(argc, argv, "arTag_localization"); + + ::launch_file.open((::dir_location + ::file_name).c_str()); + if(not ::launch_file){ + std::cout << "Could not create " << ::dir_location << ::file_name <<"\n" ; + return 1; + } + else{ + ::launch_file << "\n"; + } + artag_localization arl; + arl.run(); + if(::launch_file.is_open()){ + ::launch_file << "\n"; + ::launch_file.close(); + std::cout << "Successfully created " << ::dir_location << ::file_name << "\n"; + } + return 0; +} + +void artag_localization::run() { + while(ros::ok() && ::add_artag) { + ros::spinOnce(); + } +} + +artag_localization::artag_localization() : tfBuffer(), tfListener(tfBuffer) { + //subscribe to the topic that provides the pose of observed ar tags + sub = nh.subscribe("/ar_pose_marker", 1, &artag_localization::callback, this); } -int main() { - string dir_location = "/home/ros/owr_software/rover/src/owr_positioning/launch/"; - string file_name = "artags_location.launch"; - ofstream launch_file; - launch_file.open((dir_location+file_name).c_str()); - if(not launch_file){ - cout << "Could not create " << dir_location << file_name <<"\n" ; - return 1; - } - bool add_artag = true; - char response; - int id; - float x, y, z, x_r, y_r, z_r; - if(launch_file.is_open()){ - launch_file << "\n"; - while(add_artag){ - id = determine_artag(); - cout << "Enter x, y, z co-ordinates separated by space (or in different lines) : "; - cin >> x >> y >> z; - cout << "Enter rotation in x, y, z separated by space (or in different lines) : "; - cin >> x_r >> y_r >> z_r; - launch_file << "\n"; +void artag_localization::callback(const ar_track_alvar_msgs::AlvarMarkers::ConstPtr& msg) { + //find the amount of tags found + + int size = msg->markers.size(); + int id; + float x, y, z, x_r, y_r, z_r; + char response; + + //for now we will only look at the first tag + if (size != 0){ + //get the id of the first tag + id = msg->markers[0].id; + + if(::launch_file.is_open() && id != 255){ + std::cout << "Detected ARTag : " << id << "\n"; + std::cout << "Enter x, y, z co-ordinates separated by space (or in different lines) : "; + std::cin >> x >> y >> z; + std::cout << "Enter rotation in x, y, z separated by space (or in different lines) : "; + std::cin >> x_r >> y_r >> z_r; + ::launch_file << "\n"; // - cout << "Do you want to add details of another AR Tag ? (Y/N) : "; - cin >> response; - if(response == 'N'){ - add_artag = false; - } - } - launch_file << "\n"; - launch_file.close(); - cout << "Successfully created " << dir_location << file_name << "\n"; - } - return 0; + std::cout << "Do you want to add details of another AR Tag ? (Y/N) : "; + std::cin >> response; + if(response == 'N'){ + ::add_artag = false; + } + } + + } + } From 757eb02a093b46c9de9058a647f41f296a6192c1 Mon Sep 17 00:00:00 2001 From: abhivij Date: Sat, 15 Jun 2019 15:51:05 +1000 Subject: [PATCH 4/5] config creation code improvement --- .../launch/artags_location.launch | 4 ++-- .../src/create_artag_config.cpp | 23 +++++++++---------- 2 files changed, 13 insertions(+), 14 deletions(-) diff --git a/rover/src/owr_positioning/launch/artags_location.launch b/rover/src/owr_positioning/launch/artags_location.launch index 159d06b9..a005b8bf 100644 --- a/rover/src/owr_positioning/launch/artags_location.launch +++ b/rover/src/owr_positioning/launch/artags_location.launch @@ -1,4 +1,4 @@ - - + + diff --git a/rover/src/owr_positioning/src/create_artag_config.cpp b/rover/src/owr_positioning/src/create_artag_config.cpp index 4825d13a..2ccad3f1 100644 --- a/rover/src/owr_positioning/src/create_artag_config.cpp +++ b/rover/src/owr_positioning/src/create_artag_config.cpp @@ -8,25 +8,24 @@ #include #include -//#define DIR_LOCATION = "/home/ros/owr_software/rover/src/owr_positioning/launch/"; -//#define FILE_NAME = "artags_location.launch"; +#define DIR_LOCATION "/home/ros/owr_software/rover/src/owr_positioning/launch/" +#define FILE_NAME "artags_location.launch" -std::string dir_location = "/home/ros/owr_software/rover/src/owr_positioning/launch/"; -std::string file_name = "artags_location.launch"; std::ofstream launch_file; bool add_artag = true; int main(int argc, char ** argv) { -//std::string dir_location = "/home/ros/owr_software/rover/src/owr_positioning/launch/"; -//std::string file_name = "artags_location.launch"; - ROS_INFO("Launch file creator started"); ros::init(argc, argv, "arTag_localization"); + + std::string file_path = ""; + file_path += DIR_LOCATION; + file_path += FILE_NAME; - ::launch_file.open((::dir_location + ::file_name).c_str()); + ::launch_file.open(file_path.c_str()); if(not ::launch_file){ - std::cout << "Could not create " << ::dir_location << ::file_name <<"\n" ; - return 1; + std::cout << "Could not create " << file_path <<"\n" ; + return EXIT_FAILURE; } else{ ::launch_file << "\n"; @@ -36,9 +35,9 @@ int main(int argc, char ** argv) { if(::launch_file.is_open()){ ::launch_file << "\n"; ::launch_file.close(); - std::cout << "Successfully created " << ::dir_location << ::file_name << "\n"; + std::cout << "Successfully created " << file_path << "\n"; } - return 0; + return EXIT_SUCCESS; } void artag_localization::run() { From e6ae4e53017d6cfa4ff53eaa8caa8a66b66abb5e Mon Sep 17 00:00:00 2001 From: abhivij Date: Sat, 22 Jun 2019 12:25:58 +1000 Subject: [PATCH 5/5] rebase changes --- rover/src/owr_positioning/launch/artags_location.launch | 5 +++-- .../src/owr_positioning/launch/create_artag_config.launch | 7 ++++--- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/rover/src/owr_positioning/launch/artags_location.launch b/rover/src/owr_positioning/launch/artags_location.launch index a005b8bf..d44a1853 100644 --- a/rover/src/owr_positioning/launch/artags_location.launch +++ b/rover/src/owr_positioning/launch/artags_location.launch @@ -1,4 +1,5 @@ - - + + + diff --git a/rover/src/owr_positioning/launch/create_artag_config.launch b/rover/src/owr_positioning/launch/create_artag_config.launch index 5893b701..70249ca0 100644 --- a/rover/src/owr_positioning/launch/create_artag_config.launch +++ b/rover/src/owr_positioning/launch/create_artag_config.launch @@ -8,7 +8,7 @@ - + + @@ -35,6 +36,7 @@ + @@ -65,6 +67,5 @@ - - +