2025-10-13 09:50:39 +00:00

83 lines
3.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# <p align="center">ROS_TurtleControl</p>
### 根据学号各个位数相加的结果并拆分后定位小乌龟的指定位置根据学号尾数的奇偶规定旋转方向奇数顺时针偶数逆时针根据学号末三位除以3的余数规定旋转半径整除直径取3
###
## 一、创建环境
### 新建项目文件夹、工作空间、工具包
```c
mkdir ros_turtlecontrol
```
创建工作空间。<br>
```c
mkdir src
catkin_make
```
创建工具包。<br>
```c
cd src
catkin_create_pkg Aee1220310013 rospy std_msgs geometry_msgs visualization_msgs message_generation
```
```c
cd Aee1220310013
mkdir scripts
mkdir srv
```
## 二、编写程序
### 在 scripts 文件夹下放置编写的 python 程序
### 在 srv 文件夹放置 .srv 文件
可参考程序文件路径 [scripts](src/Aee1220310013/scripts) 和 [srv](src/Aee1220310013/srv)<br>
## 三、编译工作空间
### 编译前需要配置工具包文件夹Aee1220310013下的 CMakeLists.txt 和 package.xml 文件。具体可点击查看 [CMakeLists.txt](src/Aee1220310013/CMakeLists.txt) 和 [package.xml](src/Aee1220310013/package.xml)
赋予文件可执行权限。终端要在 ros_turtlecontrol 文件夹下,或最好使用文件的完整路径。<br>
```c
chmod +x src/Aee1220310013/scripts/server.py
chmod +x src/Aee1220310013/scripts/client.py
```
编译工作空间。终端要在 ros_turtlecontrol 文件夹下。<br>
```c
catkin_make
```
## 四、运行程序
### 需要开启四个终端分别运行 roscore 、turtlesim 、 server 、client。
启动 ROS 核心。终端A<br>
```c
roscore
```
启动小乌龟。终端B<br>
```c
rosrun turtlesim turtlesim_node
```
启动服务端程序。终端C<br>
注:在启动服务端程序前需要赋予环境变量(终端要在 ros_turtlecontrol 文件夹下,或最好使用文件的完整路径),如何设置过全局环境变量可忽略 source 命令,仅执行 rosrun 即可<br>
```c
source devel/setup.bash
```
```c
rosrun Aee1220310013 server.py
```
启动客户端程序。终端D<br>
注:在启动客户端程序前需要赋予环境变量(终端要在 ros_turtlecontrol 文件夹下,或最好使用文件的完整路径),如何设置过全局环境变量可忽略 source 命令,仅执行 rosrun 即可<br>
```c
source devel/setup.bash
```
```c
rosrun Aee1220310013 client.py
```
## 五、结果
程序命令输入完成后会提示输入学号,输入学号回车。客户端会将输入的学号发送给服务端进行处理,来根据最开始的要求转化为坐标、旋转半径、旋转方向。最后将坐标、半径、方向信息发送回客户端,使客户端的小乌龟按照信息来运行。<br>
### 结果图
终端运行数据结果roscore<br>
![roscore](/Pictures/roscore.png#pic_center)<br>
终端运行数据结果rosrun turtlesim turtlesim_node<br>
![turtlesim](/Pictures/turtlesim.png#pic_center)<br>
终端运行数据结果rosrun Aee1220310013 server.py<br>
![server](/Pictures/server.png#pic_center)<br>
终端运行数据结果rosrun Aee1220310013 client.py 部分截取):<br>
![client](/Pictures/client.png#pic_center)<br>
终端运行数据结果rosrun Aee1220310013 client.py 部分截取):<br>
![coordinate_one](/Pictures/coordinate_one.png#pic_center)<br>
终端运行数据结果rosrun Aee1220310013 client.py 部分截取):<br>
![coordinate_two](/Pictures/coordinate_two.png#pic_center)<br>
小乌龟运动图片:<br>
![result_one](/Pictures/result_one.png#pic_center)<br>
![result_two](/Pictures/result_two.png#pic_center)<br>
![result_three](/Pictures/result_three.png#pic_center)<br>