ros create a tf

分享

激活ros环境

catkin_create_pkg static_tf_broadcaster --rosdistro noetic rospy tf2_ros geometry_msgs

cd static_tf_broadcaster
mkdir -p scripts
cat > scripts/static_tf.py << 'EOF'
#!/usr/bin/env python
import rospy
import tf2_ros
from geometry_msgs.msg import TransformStamped

if __name__ == '__main__':
    rospy.init_node('static_tf_broadcaster_radar')
    
    broadcaster = tf2_ros.StaticTransformBroadcaster()
    
    t = TransformStamped()
    t.header.stamp = rospy.Time.now()
    t.header.frame_id = "base_link"      # 主体坐标系
    t.child_frame_id = "radar_link"      # 雷达坐标系
    
    # 平移:x=0.2, y=0.0, z=0.5
    t.transform.translation.x = 0.2
    t.transform.translation.y = 0.0
    t.transform.translation.z = 0.5
    
    # 无旋转
    t.transform.rotation.x = 0.0
    t.transform.rotation.y = 0.0
    t.transform.rotation.z = 0.0
    t.transform.rotation.w = 1.0
    
    broadcaster.sendTransform(t)
    rospy.loginfo("静态 TF 已发布: base_link -> radar_link (0.2, 0.0, 0.5)")
    rospy.spin()
EOF

catkin_make 并解决CMake报错

source devel/setup.bash

terminal 1 roscore

terminal 2

rosrun static_tf_broadcaster static_tf.py

rosrun tf2_ros static_transform_publisher 0.2 0 0.5 0 0 0 base_link lidar_frame

terminal 3 rviz

rviz界面

填写fixed frame

add

找到 添加 tf

很简单就能看到 变换了

阅读更多

comprehensive some mod and net tip show

今天玩了一下modinfo,主要是一直对linux内核裁剪有兴趣,但是没什么条件熟悉这一块的外围。 lsmod | Select-Object -Skip 1 | ForEach-Object { $m=$_.Split()[0] $info=modinfo $m [PSCustomObject]@{ Module=$m Description=($info | Select-String "^description:" | ForEach-Object {$_.Line -replace "description:\s*",""}) Depends=($info | Select-String "^depends:" | ForEach-Object {$_.Line -replace "depends:\s*

By bakamake