# 巡线仿真环境
**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
---
```