树莓派5+PayCam C4008+ORB-SLAM3

发布时间:2026/7/14 6:49:58
树莓派5+PayCam C4008+ORB-SLAM3 一、配置树莓派516g双目相机PayCam C4008rosros2 jazzyubuntuubuntu 24.04二、下载并安装新相机的通用驱动sudo apt update # 安装 v4l2_camera 驱动 sudo apt install ros-jazzy-v4l2-camera #验证驱动是否安装成功 ros2 run v4l2_camera v4l2_camera_node #如果没有报错说明驱动已经在 Jazzy 系统下正常工作了三、标定1.安装ROS 2 Jazzy 官方标定工具sudo apt update sudo apt install ros-$ROS_DISTRO-camera-calibration2.相机标定ros2 run camera_calibration cameracalibrator --size 11x8 --square 0.015 --approximate 0.3 --ros-args --remap /left:/left/image_raw --remap /right:/right/image_rawcd ~/paycam标定/相机标定 tar -zxvf /tmp/calibrationdata.tar.gz2.imu标定1克隆驱动包cd ~/orb_slam3_ws/src git clone https://github.com/vmayres/wit_ros2_imu.git cd ~/orb_slam3_ws colcon build --packages-select wit_ros2_imu source install/setup.bash2启动imu# 进入该包的安装目录寻找它的可执行文件名通常在 lib 下 ros2 run wit_ros2_imu wit_ros2_imu --ros-args -p port:/dev/ttyUSB0 -p baud:1152003配置文件gedit src/imu_utils_ros2/imu_utils/launch/A3.xmllaunch node pkgimu_utils execimu_allan nameimu_allan outputscreen param nameimu_topic value/imu/data_raw/ param nameimu_name valuewit_hwt905/ param namedata_save_path value/home/liyy/orb_slam3_ws/data// param namemax_time_min value120/ param namemax_cluster value100/ /node /launch4启动标定2hros2 launch imu_utils A3.xml2.联合标定1启动imuros2 run wit_ros2_imu wit_ros2_imu --ros-args -p port:/dev/ttyUSB0 -p baud:1152002切分cd orb_slam3_ws/ ros2 run stereo_image_splitter splitter_node3启动相机ros2 run usb_cam usb_cam_node_exe --ros-args -p video_device:/dev/video0 -p image_width:1280 -p image_height:480 -p pixel_format:mjpeg2rgb -p framerate:30.0 -r __ns:/stereo4查看画面ros2 run rqt_image_view rqt_image_view5录制包cd ~/paycam标定/联合标定 ros2 bag record /left/image_raw /right/image_raw /imu/data_raw -o ros2_calib_bag6一键转换rosbags-convert --src ros2_calib_bag --dst calib_data.bag7在本地一键构建 Kalibr 镜像拉取官方的 Docker 脚本并在你本地打包# 1. 克隆 Kalibr 官方源码仓库到本地 git clone https://github.com/ethz-asl/kalibr.git # 2. 进入克隆下来的文件夹 cd kalibr # 3. 使用官方提供的 Dockerfile 构建你本地的镜像命名为 my_kalibr # 这一步会基于 Ubuntu 20.04 ROS Noetic 自动在本地编译好 Kalibr docker build -t my_kalibr -f Dockerfile_ros1_20_04 . sudo docker build -t my_kalibr -f Dockerfile_ros1_20_04 .8使用你本地生成的镜像启动容器cd ~/paycam标定/联合标定 # 启动你刚才在本地打包好的 my_kalibr 镜像 docker run -it -v $(pwd):/data my_kalibr /bin/bash9)进入容器直接开始联合标定计算# 1. 激活容器内的 ROS 环境 source devel/setup.bash # 2. 运行联合标定命令开始计算 rosrun kalibr kalibr_calibrate_imu_camera --bag /data/calib_data.bag --cams /data/cam_chain.yaml --imu /data/imu.yaml --target /data/target.yaml --timeoffset-padding 0.1相机单独用录制的包标定rosrun kalibr kalibr_calibrate_cameras \ --bag /data/calib_data.bag \ --target /data/target.yaml \ --models pinhole-radtan pinhole-radtan \ --topics /left/image_raw /right/image_raw四、运行命令1.切分python3 split.py2.启动imucd orb_slam3_ws ros2 run wit_ros2_imu wit_ros2_imu --ros-args -p port:/dev/ttyUSB0 -p baud:1152003.启动相机ros2 run usb_cam usb_cam_node_exe --ros-args -p video_device:/dev/video2 -p image_width:1280 -p image_height:480 -p pixel_format:yuyv -r /image_raw:/camera/stereo/image_raw五、装到树莓派上ros2 run usb_cam usb_cam_node_exe --ros-args -p video_device:/dev/video0 -p image_width:1280 -p image_height:480 -p pixel_format:mjpeg2rgb -p framerate:30.0ros2 run stereo_image_splitter splitter_node --ros-args --remap /camera/image_raw:/image_rawros2 run wit_ros2_imu wit_ros2_imu --ros-args -p port:/dev/ttyUSB0 -p baud:115200 -r /wit/imu:/imu/data_rawros2 run orbslam3_ros2 paycam_stereo_inertial ~/ORB_SLAM3/Vocabulary/ORBvoc.txt ~/paycam_ws/src/orbslam3_ros2/config/paycam_hwt905.yaml false