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

3.6 KiB
Raw Permalink Blame History

ROS_TurtleControl

根据学号各个位数相加的结果并拆分后定位小乌龟的指定位置根据学号尾数的奇偶规定旋转方向奇数顺时针偶数逆时针根据学号末三位除以3的余数规定旋转半径整除直径取3

一、创建环境

新建项目文件夹、工作空间、工具包

mkdir ros_turtlecontrol

创建工作空间。

mkdir src
catkin_make

创建工具包。

cd src
catkin_create_pkg Aee1220310013 rospy std_msgs geometry_msgs visualization_msgs message_generation
cd Aee1220310013
mkdir scripts
mkdir srv

二、编写程序

在 scripts 文件夹下放置编写的 python 程序

在 srv 文件夹放置 .srv 文件

可参考程序文件路径 scriptssrv

三、编译工作空间

编译前需要配置工具包文件夹Aee1220310013下的 CMakeLists.txt 和 package.xml 文件。具体可点击查看 CMakeLists.txtpackage.xml

赋予文件可执行权限。终端要在 ros_turtlecontrol 文件夹下,或最好使用文件的完整路径。

chmod +x src/Aee1220310013/scripts/server.py
chmod +x src/Aee1220310013/scripts/client.py

编译工作空间。终端要在 ros_turtlecontrol 文件夹下。

catkin_make

四、运行程序

需要开启四个终端分别运行 roscore 、turtlesim 、 server 、client。

启动 ROS 核心。终端A

roscore

启动小乌龟。终端B

rosrun turtlesim turtlesim_node

启动服务端程序。终端C
注:在启动服务端程序前需要赋予环境变量(终端要在 ros_turtlecontrol 文件夹下,或最好使用文件的完整路径),如何设置过全局环境变量可忽略 source 命令,仅执行 rosrun 即可

source devel/setup.bash
rosrun Aee1220310013 server.py

启动客户端程序。终端D
注:在启动客户端程序前需要赋予环境变量(终端要在 ros_turtlecontrol 文件夹下,或最好使用文件的完整路径),如何设置过全局环境变量可忽略 source 命令,仅执行 rosrun 即可

source devel/setup.bash
rosrun Aee1220310013 client.py

五、结果

程序命令输入完成后会提示输入学号,输入学号回车。客户端会将输入的学号发送给服务端进行处理,来根据最开始的要求转化为坐标、旋转半径、旋转方向。最后将坐标、半径、方向信息发送回客户端,使客户端的小乌龟按照信息来运行。

结果图

终端运行数据结果roscore
roscore
终端运行数据结果rosrun turtlesim turtlesim_node
turtlesim
终端运行数据结果rosrun Aee1220310013 server.py
server
终端运行数据结果rosrun Aee1220310013 client.py 部分截取):
client
终端运行数据结果rosrun Aee1220310013 client.py 部分截取):
coordinate_one
终端运行数据结果rosrun Aee1220310013 client.py 部分截取):
coordinate_two
小乌龟运动图片:
result_one
result_two
result_three