本帖最后由 ANUU 于 2021-6-14 01:17 编辑  
创建工作空间
首先我们创建一个工作空间
当前桌面 右键打开终端
  
mkdir -p catkin_workspace/src  
- mkdir 创建一个目录
 
- mkdir -p 递归创建目录
 
 
cd catkin_workspace/
cd src/
catkin_init_workspace 
于是会跳出以下信息
Creating symlink "/home/amov/Desktop/catkin_workspace/src/CMakeLists.txt" pointing to "/opt/ros/melodic/share/catkin/cmake/toplevel.cmake"
说明创建成功了  
- cd 跳转目录
 
- catkin_init_workspace  ROS指令:工作空间初始化
 
 
然后我们再编译空间
跳转到工作空间目录 
cd .. 
catkin_make 
此时会跳出一大段信息
 
随后设置并检查环境变量 
source devel/setup.bash 
echo $ROS_PACKAGE_PATH  
  
- source : 设置环境变量指令
 
- echo $ROS_PACKAGE_PATH  跳出ros包执行环境变量路径
 
 
执行玩跳出以下信息说明我们环境变量设置好了
/home/amov/Desktop/catkin_workspace/src:/opt/ros/melodic/share 
到此 我们工作空间事情做好了 
创建工作包
cd src
catkin_create_pkg turtlesplay roscpp rospy std_msgs geometry_msgs turtlesim
 
- 功能包要在src内创建
 
- catkin_create_pkg :ROS创建功能包指令 指令后第一个是功能包的名字(turtlesplay)  指令后第二个名字开始则是他的功能包依赖 (std_msgs rospy roscpp)
 
可以弹出信息框内看见功能包创建成功信息: 
然后我们在跳转工作空间编译功能包: 
 
catkin_make 
编译没有报错说明我们创建功能包正常
如果报错一般就是没有找到功能包的依赖(有两种情况)(两种我都遇到过.....) 
- 依赖包名字打错
 
 
如图所示:
 
首先我们检查有没有依赖名 有没有拼写出错 ,很明显出错了
把 turtlesim 拼写成了tutlesim
这种情况我们删除原来依赖包再重新创建一个就好了! 
- ros未安装相关的依赖包
如果未安装依赖包的话,我们就使用ros下载指令
 
 
 sudo apt-get install ros-XXX(ROS版本)- XXX(功能包) 
报错 的话我们确保 ros没有安装出错的话我们就开始安装 
安装Visual Studio Code
为了代码编辑开发的效率,建议我们在软件商城安装 Visual Studio Code 
 
安装成功后 我们重新回到我们的工作空间里功能包下
创建一个cpp源文件 
touch hello_turtle.cpp 
找到我们创建的.c文件 右键属性 打开 
 
选择visual studio Code 作为默认值
 
然后双击打开 舒适感慢慢有没有
 
于是我们就可以尽情的使用vis敲代码咯! 
创建海龟初始化程序
首先我们将文件中打入这么一段代码 
#include 
#include 
#include 
int main(int argc,char **argv)
{
    ros::init(argc,argv,"hello_turtle");
    //Init  of  the ROS program "hello_turtle"
    ros::NodeHandle n;
    //  Create a RosNodeHanele n
    ros::Publisher turtle_vel_pub = n.advertise("/turtle1/cmd_vel", 100);
    // Create a Publisher,make name /turtle1/cmd_vel的topic, message type:  geometry_msgs::Twist,quene: 10
    ros::Rate loop_rate(100);
    // setup the ROS rate
    int count = 0;
    while(ros::ok())
    {
            // inti geometry_msgs::Twist  
            geometry_msgs::Twist vel_msg;
           for(count =0;count
  |