- categories
前言
工作空间: catkin_ws1
ROS功能包: xhgpfk
c++文件: xhgfk.cpp
定义一个可执行文件: luguoqin
Ctrl+Alt+T
打开终端
创建ROS工作空间
i.在用户的家目录下创建一个名为 catkin_ws1 的工作空间,并在其中创建一个名为 src 的子目录,用于存放 ROS 的源代码包。(可自己更改)
mkdir -p ~/catkin_ws1/src
ii.切换到catkin_ws1 工作空间内的 src 目录
cd ~/catkin_ws1/src
iii.初始化一个新的 catkin 工作空间(前提一定要在“工作空间”下的“src 目录”)
catkin_init_workspace
编译工作空间
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
vii.重新执行 ~/.bashrc 文件中的所有命令
source ~/.bashrc
创建ros功能包
viii.切换到catkin_ws1 工作空间内的 src 目录
cd ~/catkin_ws1/src
ix.创建新的 ROS 包(xhgpfk
为包名,可以自己更改)
catkin_create_pkg
用于创建新的 ROS 包的命令行工具
catkin_create_pkg xhgpfk roscpp geometry_msgs
x.打开VSC(Visual Studio Code)点击File(文件)点击Open Folder(打开文件夹)选择“编译空间”的文件
xi.点击“编译空间”的文件的src看到ROS功能包的src鼠标右键单击创建一个c++文件,例如:xhgfk.cpp
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/
xv.在创建或修改了 ROS 包后,需要使用 catkin_make 来编译这些更改
catkin_make
xvi.Ctrl+Alt+T
打开终端
xvii.用于启动 ROS 的节点
roscore
xiii.用于运行 ROS 节点
rosrun turtlesim turtlesim_node
xix.运行小海龟跑方框的指令
rosrun xhgpfk luguoqin
实现效果
改变小海龟颜色、路径颜色
请点击我改变小海龟颜色、路径颜色
- Valine
- LiveRe
- ChangYan