| 
									
										
										
										
											2025-10-12 15:03:43 +08:00
										 |  |  |  | # <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 文件
 | 
					
						
							| 
									
										
										
										
											2025-10-12 15:53:34 +08:00
										 |  |  |  | 可参考程序文件路径 [scripts](src/Aee1220310013/scripts) 和 [srv](src/Aee1220310013/srv)<br> | 
					
						
							| 
									
										
										
										
											2025-10-12 15:03:43 +08:00
										 |  |  |  | ## 三、编译工作空间
 | 
					
						
							| 
									
										
										
										
											2025-10-12 15:50:01 +08:00
										 |  |  |  | ### 编译前需要配置工具包文件夹(Aee1220310013)下的 CMakeLists.txt 和 package.xml 文件。具体可点击查看 [CMakeLists.txt](src/Aee1220310013/CMakeLists.txt) 和 [package.xml](src/Aee1220310013/package.xml)
 | 
					
						
							| 
									
										
										
										
											2025-10-13 09:50:39 +00:00
										 |  |  |  | 赋予文件可执行权限。终端要在 ros_turtlecontrol 文件夹下,或最好使用文件的完整路径。<br> | 
					
						
							| 
									
										
										
										
											2025-10-12 15:03:43 +08:00
										 |  |  |  | ```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> | 
					
						
							| 
									
										
										
										
											2025-10-13 09:50:39 +00:00
										 |  |  |  | 注:在启动服务端程序前需要赋予环境变量(终端要在 ros_turtlecontrol 文件夹下,或最好使用文件的完整路径),如何设置过全局环境变量可忽略 source 命令,仅执行 rosrun 即可<br> | 
					
						
							| 
									
										
										
										
											2025-10-12 15:03:43 +08:00
										 |  |  |  | ```c | 
					
						
							|  |  |  |  | source devel/setup.bash | 
					
						
							|  |  |  |  | ``` | 
					
						
							|  |  |  |  | ```c | 
					
						
							|  |  |  |  | rosrun Aee1220310013 server.py | 
					
						
							|  |  |  |  | ``` | 
					
						
							|  |  |  |  | 启动客户端程序。(终端D)<br> | 
					
						
							| 
									
										
										
										
											2025-10-13 09:50:39 +00:00
										 |  |  |  | 注:在启动客户端程序前需要赋予环境变量(终端要在 ros_turtlecontrol 文件夹下,或最好使用文件的完整路径),如何设置过全局环境变量可忽略 source 命令,仅执行 rosrun 即可<br> | 
					
						
							| 
									
										
										
										
											2025-10-12 15:03:43 +08:00
										 |  |  |  | ```c | 
					
						
							|  |  |  |  | source devel/setup.bash | 
					
						
							|  |  |  |  | ``` | 
					
						
							|  |  |  |  | ```c | 
					
						
							|  |  |  |  | rosrun Aee1220310013 client.py | 
					
						
							|  |  |  |  | ``` | 
					
						
							|  |  |  |  | ## 五、结果
 | 
					
						
							|  |  |  |  | 程序命令输入完成后会提示输入学号,输入学号回车。客户端会将输入的学号发送给服务端进行处理,来根据最开始的要求转化为坐标、旋转半径、旋转方向。最后将坐标、半径、方向信息发送回客户端,使客户端的小乌龟按照信息来运行。<br> | 
					
						
							|  |  |  |  | ### 结果图
 | 
					
						
							|  |  |  |  | 终端运行数据结果(roscore):<br> | 
					
						
							| 
									
										
										
										
											2025-10-12 15:41:34 +08:00
										 |  |  |  | <br> | 
					
						
							| 
									
										
										
										
											2025-10-12 15:03:43 +08:00
										 |  |  |  | 终端运行数据结果(rosrun turtlesim turtlesim_node):<br> | 
					
						
							| 
									
										
										
										
											2025-10-12 15:41:34 +08:00
										 |  |  |  | <br> | 
					
						
							| 
									
										
										
										
											2025-10-12 15:03:43 +08:00
										 |  |  |  | 终端运行数据结果(rosrun Aee1220310013 server.py):<br> | 
					
						
							| 
									
										
										
										
											2025-10-12 15:41:34 +08:00
										 |  |  |  | <br> | 
					
						
							|  |  |  |  | 终端运行数据结果(rosrun Aee1220310013 client.py 部分截取):<br> | 
					
						
							|  |  |  |  | <br> | 
					
						
							|  |  |  |  | 终端运行数据结果(rosrun Aee1220310013 client.py 部分截取):<br> | 
					
						
							|  |  |  |  | <br> | 
					
						
							|  |  |  |  | 终端运行数据结果(rosrun Aee1220310013 client.py 部分截取):<br> | 
					
						
							|  |  |  |  | <br> | 
					
						
							| 
									
										
										
										
											2025-10-12 15:03:43 +08:00
										 |  |  |  | 小乌龟运动图片:<br> | 
					
						
							| 
									
										
										
										
											2025-10-12 15:41:34 +08:00
										 |  |  |  | <br> | 
					
						
							|  |  |  |  | <br> | 
					
						
							|  |  |  |  | <br> |