ROS tf變換之小龜跟隨

2021-09-25 01:18:18 字數 2258 閱讀 8865

廣播turtle1和turtle2相對於世界座標系的座標變換,收聽turtle1和turtle2之間的座標變換,然後用鍵盤控制turtle1運動,turtle2跟隨turtle1運動。

1、turtle_tf_broadcaster.cpp

#include #include #include std::string turtle_name;

void posecallback(const turtlesim::poseconstptr& msg)

int main(int argc, char** ar**)

; turtle_name = ar**[1];

// 訂閱烏龜的pose資訊

ros::nodehandle node;

ros::subscriber sub = node.subscribe(turtle_name+"/pose", 10, &posecallback);

ros::spin();

return 0;

};

2、turtle_tf_listener.cpp

#include #include #include #include int main(int argc, char** ar**)

catch (tf::transformexception &ex)

// 根據turtle1和turtle2之間的座標變換,計算turtle2需要運動的線速度和角速度

// 並發布速度控制指令,使turtle2向turtle1移動

geometry_msgs::twist vel_msg;

vel_msg.angular.z = 4.0 * atan2(transform.getorigin().y(),

transform.getorigin().x());

vel_msg.linear.x = 0.5 * sqrt(pow(transform.getorigin().x(), 2) +

pow(transform.getorigin().y(), 2));

turtle_vel.publish(vel_msg);

rate.sleep();

}return 0;

};

3、cmakelist.txt檔案

cmake_minimum_required(version 2.8.3)

project(learn_tf)

find_package(catkin required components

geometry_msgs

roscpp

tfturtlesim

)catkin_package(

)## specify additional locations of header files

## your package locations should be listed before other locations

include_directories(

# include

$)add_executable(turtle_tf_broadcaster src/turtle_tf_broadcaster.cpp)

target_link_libraries(turtle_tf_broadcaster $)

add_executable(turtle_tf_listener src/turtle_tf_listener.cpp)

target_link_libraries(turtle_tf_listener $)

4、package.xml

<?xml version="1.0"?>

learn_tf

0.0.0

the learn_tf package

patience

todo

catkin

geometry_msgs

roscpp

tfturtlesim

geometry_msgs

roscpp

tfturtlesim

geometry_msgs

roscpp

tfturtlesim

5、在功能包目錄下建立launc**件夾,並在此資料夾下建立start_tf.launc**件

6、執行$roslaunch learn_tf start_tf.launch

小波變換與傅利葉變換

from 小波變換與傅利葉變換 分類 預設欄目 如果有人問我,如果傅利葉變換沒有學好 深入理解概念 是否能學好小波。答案是否定的。如果有人還問我,如果第一代小波變換沒學好,能否學好第二代小波變換。答案依然是否定的。但若你問我,沒學好傅利葉變換,能否操作 程式設計 小波變換,或是沒學好第一代小波,能否...

小波變換與傅利葉變換

from 小波變換與傅利葉變換 分類 預設欄目 如果有人問我,如果傅利葉變換沒有學好 深入理解概念 是否能學好小波。答案是否定的。如果有人還問我,如果第一代小波變換沒學好,能否學好第二代小波變換。答案依然是否定的。但若你問我,沒學好傅利葉變換,能否操作 程式設計 小波變換,或是沒學好第一代小波,能否...

小波變換 小波變換入門 haar小波

小波可以認為是乙個帶通濾波器,只允許頻率和小波基函式頻率相近的訊號通過。小波變換的基本思想是用一組小波函式和基函式表示乙個函式或者訊號。首先,以haar小波變換過程為例來理解小波變換。例 求只有4個畫素 9 7 3 5 的影象的哈爾小波變換係數。計算步驟如下 步驟2 求差值 differencing...