【无标题】

cd ~/catkin_ws/src
catkin_create_pkg my_package rospy std_msgs sensor_msgs

 在你的ROS包中创建一个scripts目录,并在其中编写你的Python脚本。例如,创建一个名为camera_info_modifier.py的脚本:

mkdir -p ~/catkin_ws/src/my_package/scripts
touch ~/catkin_ws/src/my_package/scripts/camera_info_modifier.py
chmod +x ~/catkin_ws/src/my_package/scripts/camera_info_modifier.py
#!/usr/bin/env python

import rospy
from sensor_msgs.msg import CameraInfo

def callback(data):
    # 处理 CameraInfo 消息
    modified_data = CameraInfo()
    modified_data.header = data.header
    modified_data.height = data.height
    modified_data.width = data.width
    modified_data.distortion_model = data.distortion_model
    modified_data.D = data.D
    modified_data.K = data.K
    modified_data.R = data.R
    modified_data.P = data.P
    modified_data.binning_x = data.binning_x
    modified_data.binning_y = data.binning_y
    modified_data.roi = data.roi

    # 可以根据需要对数据进行修改
    modified_data.header.frame_id = "new_frame_id"
    
    # 发布修改后的消息
    pub.publish(modified_data)

if __name__ == '__main__':
    rospy.init_node('camera_info_modifier_node', anonymous=True)
    
    # 定义发布者,发布到新的话题
    pub = rospy.Publisher('/new_camera_info_topic', CameraInfo, queue_size=10)
    
    # 定义订阅者,订阅旧的话题
    rospy.Subscriber('/old_camera_info_topic', CameraInfo, callback)
    
    rospy.spin()

3. 配置CMakeLists.txt

虽然Python脚本不需要编译,但仍需要配置CMakeLists.txt文件,以确保ROS能够找到你的脚本。编辑~/catkin_ws/src/my_package/CMakeLists.txt文件,添加如下内容:

catkin_install_python(PROGRAMS scripts/camera_info_modifier.py
  DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)
cd ~/catkin_ws
catkin_make
source devel/setup.bash
rosrun my_package camera_info_modifier.py

 

 

 

 

 

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值