ROS用c++来实现小海龟走矩形
  • categories

前言

工作空间: catkin_ws1

ROS功能包: xhgpfk

c++文件: xhgfk.cpp

定义一个可执行文件: luguoqin

Ctrl+Alt+T打开终端

创建ROS工作空间

i.在用户的家目录下创建一个名为 catkin_ws1 的工作空间,并在其中创建一个名为 src 的子目录,用于存放 ROS 的源代码包。(可自己更改)

mkdir -p ~/catkin_ws1/src

创建ROS工作空间

ii.切换到catkin_ws1 工作空间内的 src 目录

cd ~/catkin_ws1/src

创建ROS工作空间

iii.初始化一个新的 catkin 工作空间(前提一定要在“工作空间”下的“src 目录”)

catkin_init_workspace

创建ROS工作空间

编译工作空间

iv.切换到catkin_ws1 工作空间

cd ~/catkin_ws1/

编译工作空间

v.编译(前提一定要在“工作空间”下)

catkin_make

编译工作空间
可以看到出现build、devel、src,3个文件夹

编译工作空间

把工作空间添加到ros环境变量

vi.使 ROS 工作空间的环境变量在每次打开新的终端时自动设置(里面的catkin_ws1要换成自己的“工作空间”)

echo "source ~/catkin_ws1/devel/setup.bash" >> ~/.bashrc

把工作空间添加到ros环境变量

vii.重新执行 ~/.bashrc 文件中的所有命令

source ~/.bashrc

把工作空间添加到ros环境变量

创建ros功能包

viii.切换到catkin_ws1 工作空间内的 src 目录

cd ~/catkin_ws1/src

创建ros功能包

ix.创建新的 ROS 包(xhgpfk为包名,可以自己更改)

catkin_create_pkg用于创建新的 ROS 包的命令行工具

catkin_create_pkg xhgpfk roscpp geometry_msgs

创建ros功能包

x.打开VSC(Visual Studio Code)点击File(文件)点击Open Folder(打开文件夹)选择“编译空间”的文件

创建ros功能包

xi.点击“编译空间”的文件的src看到ROS功能包的src鼠标右键单击创建一个c++文件,例如:xhgfk.cpp

创建ros功能包

创建ros功能包

创建ros功能包

xii.小海龟的方框代码如下:

#include <ros/ros.h>
#include <geometry_msgs/Twist.h>

int main(int argc, char** argv)
  {
    ros::init(argc, argv, "turtle_vel_ctrl_node");
    ros::NodeHandle n;

    ros::Publisher vel_pub = n.advertise<geometry_msgs::Twist>("/turtle1/cmd_vel", 20);
    ros::Rate loop_rate(2);

    int count = 0;

    while(ros::ok())
    {
      geometry_msgs::Twist vel_cmd;
      vel_cmd.linear.x = 1.0;
      vel_cmd.linear.y = 0.0;
      vel_cmd.linear.z = 0.0;
      vel_cmd.angular.x = 0.0;
      vel_cmd.angular.y = 0.0;
      vel_cmd.angular.z = 0.0;

      if(count == 5)
        {
          vel_cmd.angular.z = 3.1415926; // Change angular velocity when count reaches 5
          count = 0; // Reset count
        }
      else
        {
          count++; // Increment count
        }

      vel_pub.publish(vel_cmd);
      ros::spinOnce();
      loop_rate.sleep();
    }

      return 0;
  }

xiii.在下面找到CMakeLists.txt,在最后面(第207行开始)添加代码进行编译(你的c++是什么名字就改为什么名字xhgfk.cpp),(luguoqin这个可以改一个随便的)

add_executable(luguoqin src/xhgfk.cpp)
add_dependencies(luguoqin ${${PROJECT_NAME}_EXPORTED_TARGETS}
${catkin_EXPORTED_TARGETS})
target_link_libraries(luguoqin ${catkin_LIBRARIES})

xiv.切换到 catkin_ws1 工作空间

cd ~/catkin_ws1/

创建ROS功能包

xv.在创建或修改了 ROS 包后,需要使用 catkin_make 来编译这些更改

catkin_make

创建ROS工作空间
创建ROS工作空间

xvi.Ctrl+Alt+T打开终端

xvii.用于启动 ROS 的节点

roscore

创建ROS工作空间

xiii.用于运行 ROS 节点

rosrun turtlesim turtlesim_node

创建ROS工作空间

xix.运行小海龟跑方框的指令

rosrun xhgpfk luguoqin

创建ROS工作空间

实现效果

实现效果

改变小海龟颜色、路径颜色

请点击我改变小海龟颜色、路径颜色


comment: