# 巡线仿真环境 **Repository Path**: Cube004/patrol-simulation-environment ## Basic Information - **Project Name**: 巡线仿真环境 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2024-07-24 - **Last Updated**: 2024-07-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ROS2 仿真与控制项目 ## 1. 安装依赖 注:humble为ROS版本,安装时请根据具体版本适当替换。 ```sh sudo apt install ros-humble-gazebo-ros sudo apt install ros-humble-gazebo-ros-pkgs sudo apt install ros-humble-gazebo-plugins sudo apt install gazebo libgazebo-dev ``` ## 2. 配置文件修改 下载文件后,根据模型文件的位置在各个配置文件中填写绝对路径。 ### 修改 `urdf/my_car.urdf` 第197行: ```xml ``` 修改为: ```xml ``` ### 修改 `worlds/paodao.world` (两处) 和 `worlds/paodao_2.world`(四处): ```xml /home/cube/Documents/ros_test/src/xunxian/meshes/rounded_rectangle_track_fixed.stl ``` 修改为: ```xml ${工作空间路径}/src/xunxian/meshes/rounded_rectangle_track_fixed.stl ``` ## 3. 启动仿真环境 ### 更新安装目录的文件 ```sh colcon build ``` ### 向终端导入环境变量 ```sh source install/setup.bash ``` ### 启动launch文件 ```sh ros2 launch xunxian gazebo_xunxian.launch.py ``` ## 4. 获取并解析图片 摄像头画面输出话题:`/head_camera_sensor/image_raw` ### 安装图片消息的解析库 ```sh sudo apt install ros-humble-cv-bridge ros-humble-image-transport ``` ### 示例代码: ```cpp void imageCallback(const sensor_msgs::msg::Image::SharedPtr msg) { // 使用cv_bridge将ROS图像消息转换为OpenCV格式 cv_bridge::CvImagePtr cv_ptr; try { cv_ptr = cv_bridge::toCvCopy(msg, sensor_msgs::image_encodings::BGR8); } catch (cv_bridge::Exception &e) { RCLCPP_ERROR(this->get_logger(), "cv_bridge exception: %s", e.what()); return; } // 获取OpenCV格式的图像 cv::Mat img = cv_ptr->image; // 显示图像 cv::imshow("Camera Image", img); cv::waitKey(1); } ``` ## 5. 控制车辆 ### 使用命令行控制 ```sh ros2 run teleop_twist_keyboard teleop_twist_keyboard ``` ### 使用话题进行控制 话题名称:`/cmd_vel` 话题类型:`geometry_msgs/msg/Twist` 话题参数: ```yaml --- linear: x: 0.0 y: 0.0 z: 0.0 angular: x: 0.0 y: 0.0 z: 0.0 --- ```