From eef02300bd4b99a11e6a1756f7b8d4e25c6c0908 Mon Sep 17 00:00:00 2001 From: Erik Andresen Date: Fri, 15 May 2015 14:00:56 +0200 Subject: [PATCH] initial hpec sav based path following --- CMakeLists.txt | 18 ++- cfg/path_following.cfg | 14 ++ cfg/transformation_matrix.yml | 6 + data/chessboard.jpg | Bin 0 -> 109587 bytes package.xml | 8 +- scripts/imagefeed.py | 36 ++++++ src/path_following.cpp | 234 ++++++++++++++++++++++++++++++++++ 7 files changed, 307 insertions(+), 9 deletions(-) create mode 100755 cfg/path_following.cfg create mode 100644 cfg/transformation_matrix.yml create mode 100644 data/chessboard.jpg create mode 100755 scripts/imagefeed.py create mode 100644 src/path_following.cpp diff --git a/CMakeLists.txt b/CMakeLists.txt index c35ceaf..5369f92 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,7 +4,7 @@ project(wild_thumper) ## Find catkin macros and libraries ## if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz) ## is used, also find other catkin packages -find_package(catkin REQUIRED) +find_package(catkin REQUIRED sensor_msgs cv_bridge roscpp std_msgs image_transport dynamic_reconfigure) ## System dependencies are found with CMake's conventions # find_package(Boost REQUIRED COMPONENTS system) @@ -66,6 +66,10 @@ find_package(catkin REQUIRED) # std_msgs # Or other packages containing msgs # ) +generate_dynamic_reconfigure_options( + cfg/path_following.cfg +) + ################################### ## catkin specific configuration ## ################################### @@ -78,7 +82,7 @@ find_package(catkin REQUIRED) catkin_package( # INCLUDE_DIRS include # LIBRARIES wild_thumper -# CATKIN_DEPENDS other_catkin_pkg +# CATKIN_DEPENDS sensor_msgs # DEPENDS system_lib ) @@ -96,16 +100,16 @@ catkin_package( # ) ## Declare a cpp executable -# add_executable(wild_thumper_node src/wild_thumper_node.cpp) +add_executable(path_following src/path_following.cpp) ## Add cmake target dependencies of the executable/library ## as an example, message headers may need to be generated before nodes -# add_dependencies(wild_thumper_node wild_thumper_generate_messages_cpp) +add_dependencies(path_following ${PROJECT_NAME}_gencfg) ## Specify libraries to link a library or executable target against -# target_link_libraries(wild_thumper_node -# ${catkin_LIBRARIES} -# ) +target_link_libraries(path_following + ${catkin_LIBRARIES} +) ############# ## Install ## diff --git a/cfg/path_following.cfg b/cfg/path_following.cfg new file mode 100755 index 0000000..901b0bf --- /dev/null +++ b/cfg/path_following.cfg @@ -0,0 +1,14 @@ +#!/usr/bin/env python + +from dynamic_reconfigure.parameter_generator_catkin import * + +gen = ParameterGenerator() + +gen.add("binary_threshold", int_t, 0, "Binary Threshold", 192, 0, 255) +gen.add("ht_min_points", int_t, 0, "HT Min Points", 30, 0, 1000) +gen.add("roi_y", int_t, 0, "ROI Y (cm)", 70, 0, 1000) +gen.add("road_distance_cm", double_t, 0, "Road distance (cm)", 15, 0, 1000) +gen.add("lad_cm", double_t, 0, "Look ahead distance (cm)", 60, 0, 1000) +gen.add("speed_m_s", double_t, 0, "Speed m/s", 0, 0, 1) + +exit(gen.generate("wild_thumper", "path_following", "PathFollowing")) diff --git a/cfg/transformation_matrix.yml b/cfg/transformation_matrix.yml new file mode 100644 index 0000000..17e9ee5 --- /dev/null +++ b/cfg/transformation_matrix.yml @@ -0,0 +1,6 @@ +%YAML:1.0 +transformation_matrix: !!opencv-matrix + rows: 3 + cols: 3 + dt: d + data: [ 1.27755347e-02, 7.48846231e-02, -2.97173802e-01, -2.46883581e-03, 1.59522560e-01, -5.47704021e-01, -5.19536325e-06, 2.98962964e-04, 1.52353391e-02] diff --git a/data/chessboard.jpg b/data/chessboard.jpg new file mode 100644 index 0000000000000000000000000000000000000000..676cf20e57ba70199dc60b6d6fdf761035d7c92f GIT binary patch literal 109587 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%0D4q(7_3W6@ej-tVEy6mP4F*>qA{Ni>XMQaZBqP^ zz!d#QPE8v5?N&fhj$@E?HB_Xk)8>=+mj3|Psg;x`ZiDTCnb^Z82Rnh{tLpl6>1ia8 zHbW;o_B;4n;O3-kuCJayq$)K#zSlLQ^!TJgB#o(*PrJ5gJEzi-040yTUlVBt>ecNGd1g`vJu_Zgr(5f~2D>Z~L5QRz zj1Ij1hP|q37UL5VK3{I4usmg<#c>nsHc=> z(n9Li*75-u20|A+d*ZTnJxTT1qSn|IbU?d9b>}?(b=9TvYVo$8B#H%-{{Vuuu=$nGyR@sZ zYX_Gjk^ng;<>I*6tmo7`VJ@=sHY0Xe<2l-Xe1b=DwXkH6fMsEl2|Ix& znu^ly9Xiz-S))@NU31SF=9~b%yz?aBNPbW|4!9Ld#ny5psw~FC<_6kN@SKc$iu3AH zgk+oaxAo|BscFmHr7iK-H3z=Q!5de1pd{z@rs_9V+BLIAW5e8`TqywUAoGvHsX~*- ze;v9vmYp3_r&GxlZhbc6Sn)TTZvzxdaU5WtGr05m*DI4)ZNw{0fUr^IKv1jL}$ld|5`M$ugLZ)fp_n z{Kwk1d_0h7-W}U4Dj&(Hu~R-{EJY_4Y=~00m*&GpP{Xde)ShjVG;na zLP96ST_ZzJuuhhcvE&A(P)LMKJWmSVZtCN?@d-dkFuXgDk z8kXVktRiIu95!%k3&I*R-s&=I4=4aTKJ4&#Clv1xYH@1XjCwE5BZ>FOz~B-I7~}J- zX3~!`-}?MDRxec4SIpVcFBeGg`M8aTn(gKi8<&ug z{c97%n!Iq?{gMVhDZt#k6Y~t7ewCqbb*Xr7!Zw>B#on!amhmc_ow6YtxFCU%Ly}F( zPT%lQpm)^bWwkF$HEmb)uyx2?*&qa9I?ccouRsaR>#BW$;UE+hxO7>p0`t!c%z z-TsTCG$0A}xFnMUq+pzb?b50({q@8bULk1aJ1&isO6$RleA|aTIjLgRV$n4;)&N;W zwvzJ3Hij!VIPb?wib{&KCA5~S`tncZ+@<`+h0d8B*NwGb5J`_NIi$0-eY_M_$n_uo zy2+1Nf+#g5Nt5j}%+_&$NBXmpeg6O|uw=Qk(axunR{Cb$o`uHD9_zdt-zF0xv!I<e){#8+UR40M@QQQgQzP35S{iX=7Y5Q<6SnPCdnAUQTq9lx*K$>-yZf zT#PpGmSFfhu<`k1xdY-RmX&$NK zc(rL{^I2^?vluxC<^&vL-nQ>72KnP@{TJRLRBjAEux;g>!#l$qL(abU1_McmY-y@XofZh z+&Sc&fAy;8#H~czd^&~*n364y(hsa;U$ppfFAy*-auAGv4hCsHD?B#-6M_jO zP)(Ym0NmuO4F3Q+!b +8xzh7GKZX~i{5;c?N47&^j98E2DnHNR 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 p`L3< catkin - + sensor_msgs + cv_bridge + roscpp + std_msgs + image_transport @@ -50,4 +54,4 @@ - \ No newline at end of file + diff --git a/scripts/imagefeed.py b/scripts/imagefeed.py new file mode 100755 index 0000000..31a0149 --- /dev/null +++ b/scripts/imagefeed.py @@ -0,0 +1,36 @@ +#!/usr/bin/env python +# Lucas Walter +# GNU GPLv3 +# Load an image from disk and publish it repeatedly + +import cv2 +import numpy as np +import rospy +import sys +from sensor_msgs.msg import Image + +if __name__ == '__main__': + rospy.init_node('image_publish') + + name = sys.argv[1] + image = cv2.imread(name) + #cv2.imshow("im", image) + #cv2.waitKey(5) + + hz = rospy.get_param("~rate", 1) + rate = rospy.Rate(hz) + + pub = rospy.Publisher('/test/image', Image, queue_size=1) + + msg = Image() + msg.header.stamp = rospy.Time.now() + msg.encoding = 'bgr8' + msg.height = image.shape[0] + msg.width = image.shape[1] + msg.step = image.shape[1] * 3 + msg.data = image.tostring() + pub.publish(msg) + + while not rospy.is_shutdown(): + pub.publish(msg) + rate.sleep() diff --git a/src/path_following.cpp b/src/path_following.cpp new file mode 100644 index 0000000..7bbd7ef --- /dev/null +++ b/src/path_following.cpp @@ -0,0 +1,234 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +using namespace cv; + +static const std::string OPENCV_WINDOW = "Image window"; +static const Scalar& red = CV_RGB(255,0,0); +static const Scalar& orange = CV_RGB(255,165,0); +static const Scalar& green = CV_RGB(0,255,0); +static const Scalar& blue = CV_RGB(0,0,255); +static const Scalar& purple = CV_RGB(128,0,128); + +class PathFollower +{ + ros::NodeHandle nh; + image_transport::ImageTransport it; + image_transport::Subscriber image_sub; + ros::Publisher cmdvel_pub; + int roi_x; + int roi_y; + int binary_threshold; + int ht_min_points; + int roi_width, roi_height; + double x_px_per_cm, y_px_per_cm, y_offset_cm; + int x_offset_px; + float lap_x_cm, lap_y_cm; + float road_distance_cm, lad_cm; + int img_vsize, img_hsize; + double axial_dist_cm; + float speed_m_s; + Mat transformation_matrix; + dynamic_reconfigure::Server server; + + public: + PathFollower() : it(nh) + { + ros::NodeHandle pnh("~"); + FileStorage fs(ros::package::getPath("wild_thumper") + "/cfg/transformation_matrix.yml", FileStorage::READ); + dynamic_reconfigure::Server::CallbackType f; + + fs["transformation_matrix"] >> transformation_matrix; + pnh.param("roi_x_init", roi_x, 280); + pnh.param("roi_width", roi_width, 50); + pnh.param("roi_height", roi_height, 50); + pnh.param("x_px_per_cm", x_px_per_cm, 2.778); + pnh.param("y_px_per_cm", y_px_per_cm, 2.778); + pnh.param("y_offset_cm", y_offset_cm, 23.5); + pnh.param("img_vsize", img_vsize, 480); + pnh.param("img_hsize", img_hsize, 640); + pnh.param("x_offset_px", x_offset_px, 65); + pnh.param("axial_dist_cm", axial_dist_cm, 25.4); + lap_x_cm=0; + lap_y_cm=0; + f = boost::bind(&PathFollower::dynreconf_callback, this, _1, _2); + server.setCallback(f); + + // Subscrive to input video feed and publish output video feed + image_sub = it.subscribe("/camera/rgb/image_raw", 1, &PathFollower::imageCb, this); + cmdvel_pub = nh.advertise("/cmd_vel", 10); + + fs.release(); + + cv::namedWindow(OPENCV_WINDOW); + } + + ~PathFollower() + { + cv::destroyWindow(OPENCV_WINDOW); + } + + int pathfinder(cv::Mat &frame, float &r, float &phi) + { + cv::vector lines; + cv::warpPerspective(frame, frame, transformation_matrix, frame.size(), INTER_LINEAR); + Mat roi(frame, Rect(roi_x, roi_y, roi_width, roi_height)); + + cv::threshold(roi, roi, binary_threshold, 255, CV_THRESH_BINARY); + cv::erode(roi, roi, cv::Mat(), cv::Point(-1, -1), 1); + cv::HoughLines(roi, lines, 1, CV_PI/90, ht_min_points, 0, 0); + + if (lines.size() > 0) { // use first result + r = lines[0][0]; + phi = lines[0][1]; + + if (phi > CV_PI/2) { // keep in +-90° + phi = phi-CV_PI; + r = -r; + } + + // Update dynamic ROI + roi_x = roi_x - roi_width/2 + r; + } + + return lines.size(); + } + + void calc_lap(float r, float phi) { + float roi_x_h, lap_x_h, lap_y_h; + + // 1. rotate ROI by phi (in Hilfskoordinatensystem) + roi_x_h = (cos(-phi)*px_to_cm_x(roi_x) + -sin(-phi)*px_to_cm_y(roi_y)); + + // 2. lap_h + lap_x_h = roi_x_h + r - road_distance_cm; + // lap_x_h + lap_y_h = sqrt(lad_cm*lad_cm - lap_x_h*lap_x_h); + + // 3. rotate LAP back by phi + lap_x_cm = (cos(phi)*lap_x_h + -sin(phi)*lap_y_h); + lap_y_cm = (sin(phi)*lap_x_h + cos(phi)*lap_y_h); + } + + float pure_pursuit(float r, float phi) { + calc_lap(r, phi); + + return -atan((2*lap_x_cm*axial_dist_cm)/((float)lad_cm*lad_cm)); + } + + void imageCb(const sensor_msgs::ImageConstPtr& msg) + { + cv_bridge::CvImagePtr cv_ptr; + cv::Mat cimg; + float r, phi; + int htvalid; + float alpha; + + try + { + cv_ptr = cv_bridge::toCvCopy(msg, sensor_msgs::image_encodings::MONO8); + } + catch (cv_bridge::Exception& e) + { + ROS_ERROR("cv_bridge exception: %s", e.what()); + return; + } + htvalid = pathfinder(cv_ptr->image, r, phi); + + cv::cvtColor(cv_ptr->image, cimg, CV_GRAY2RGB); + cv::rectangle(cimg, cv::Point(roi_x, roi_y), cv::Point(roi_x+roi_width, roi_y+roi_height), red, 1); + + // grid + cv::line(cimg, Point(0, cm_to_px_y(50)), Point(img_hsize, cm_to_px_y(50)), blue, 1); + putText(cimg, " 50cm", Point(img_hsize-60, cm_to_px_y(50)+15), FONT_HERSHEY_PLAIN, 1.0, blue); + cv::line(cimg, Point(0, cm_to_px_y(60)), Point(img_hsize, cm_to_px_y(60)), blue, 1); + putText(cimg, " 60cm", Point(img_hsize-60, cm_to_px_y(60)+15), FONT_HERSHEY_PLAIN, 1.0, blue); + cv::line(cimg, Point(0, cm_to_px_y(70)), Point(img_hsize, cm_to_px_y(70)), blue, 1); + putText(cimg, " 70cm", Point(img_hsize-60, cm_to_px_y(70)+15), FONT_HERSHEY_PLAIN, 1.0, blue); + cv::line(cimg, Point(0, cm_to_px_y(80)), Point(img_hsize, cm_to_px_y(80)), blue, 1); + putText(cimg, " 80cm", Point(img_hsize-60, cm_to_px_y(80)+15), FONT_HERSHEY_PLAIN, 1.0, blue); + cv::line(cimg, Point(0, cm_to_px_y(100)), Point(img_hsize, cm_to_px_y(100)), blue, 1); + putText(cimg, "100cm", Point(img_hsize-60, cm_to_px_y(100)+15), FONT_HERSHEY_PLAIN, 1.0, blue); + // distance + cv::line(cimg, Point(cm_to_px_x(road_distance_cm), 0), Point(cm_to_px_x(road_distance_cm), img_vsize), purple, 1); + + if (htvalid) { + double a = cos(phi), b = sin(phi); + double x0 = a*r + roi_x; + double y0 = b*r + roi_y; + Point pt1, pt2; + pt1.y = 0; + pt1.x = r/(cos(phi)); + pt2.y = roi_height; + pt2.x = (r - pt2.y*sin(phi)) / (cos(phi)); + cv::line(cimg, Point(roi_x, roi_y) + pt1, Point(roi_x, roi_y) + pt2, orange, 2); + + alpha = pure_pursuit(px_to_cm_x(roi_x + r), phi); + ROS_INFO("alpha=%.2f deg", alpha*180/M_PI); + if (speed_m_s > 0) { + set_vel(speed_m_s, alpha); + } + } + + cv::circle(cimg, Point(cm_to_px_x(lap_x_cm), cm_to_px_y(lap_y_cm)), 5, green, -1); + + // Update GUI Window + cv::imshow(OPENCV_WINDOW, cimg); + cv::waitKey(3); + } + + int cm_to_px_x(float cm) { + return round(cm * x_px_per_cm + img_hsize/2 - x_offset_px); + } + + double px_to_cm_x(int px) { + return (px-img_hsize/2+x_offset_px) / x_px_per_cm; + } + + int cm_to_px_y(float cm) { + return round((-cm+y_offset_cm) * y_px_per_cm + img_vsize); + } + + double px_to_cm_y(int px) { + return (img_vsize-px) / y_px_per_cm + y_offset_cm; + } + + void dynreconf_callback(wild_thumper::PathFollowingConfig &config, uint32_t level) { + int px; + + binary_threshold = config.binary_threshold; + ht_min_points = config.ht_min_points; + px = cm_to_px_y(config.roi_y); + if (px > 0 && px < img_vsize - roi_height) roi_y = px; + else ROS_ERROR("Bad roi_y position %.2fcm", roi_y); + road_distance_cm = config.road_distance_cm; + lad_cm = config.lad_cm; + speed_m_s = config.speed_m_s; + } + + void set_vel(float speed, float alpha) { + geometry_msgs::Twist msg; + + msg.linear.x = speed; + msg.angular.z = alpha; + + cmdvel_pub.publish(msg); + } +}; + +int main(int argc, char** argv) +{ + ros::init(argc, argv, "path_following"); + + PathFollower ic; + ros::spin(); + return 0; +} -- 2.39.5