机器人视觉学习记录 1 环境安装# 1. 创建环境Python 3.9 兼容性最好conda create-nrobot_visionpython3.9-y# 2. 激活环境conda activate robot_vision# 3. 安装 PyBullet 及核心依赖pipinstallpybullet numpy scipy matplotlib opencv-python# 4. 安装 3D 视觉和机器人相关库Demo 2-4 需要pipinstallopen3d ikpy# 5. 安装 ROS2 接口可选如果后续用 ROS2# pip install rclpy # 仅当你本地有 ROS2 安装时2 环境测试importpybulletaspimportpybullet_data physicsClientp.connect(p.GUI)p.setAdditionalSearchPath(pybullet_data.getDataPath())plane_idp.loadURDF(plane.urdf)box_idp.loadURDF(cube.urdf,basePosition[0,0,1])# 无限循环直到 GUI 窗口被关闭whilep.isConnected():p.stepSimulation()# 窗口关闭后自动执行到这里print(GUI 已关闭)3 坐标转换来源浅析相机相关坐标系的相互转换针孔相机模型的数学定义规定像平面位于f4 其他数学公式推导- 图像坐标系到相机坐标系图像坐标系物理坐标系x u -u 0 u_0u0​ u -c x c_xcx​x/f x f_xfx​X c X_cXc​/Z c Z_cZc​X c X_cXc​ (u -c x c_xcx​)Z c Z_cZc​/f x f_xfx​同理根据上述图像坐标系和相机坐标系的y轴方向相反可得v f l i p v_{flip}vflip​ height-1-v 图像坐标是从0到height-1Y c Y_cYc​ (v f l i p v_{flip}vflip​-c y c_ycy​)Z c Z_cZc​/f y f_yfy​- 视角场和焦距的关系由上图得到f width / (2 × tan(fov/2))文档和资料pybullet code: https://github.com/bulletphysics/bullet3/tree/master