342

阿木币

0

精华

89 小时

在线时间

职场新人

Rank: 3Rank: 3

发表于 2021-6-10 10:58:20 6549 浏览 3 回复

[入门教程] 跟着海龟模拟器学ROS(持续更新中...)

本帖最后由 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

编译没有报错说明我们创建功能包正常 如果报错一般就是没有找到功能包的依赖(有两种情况)(两种我都遇到过.....)

  1. 依赖包名字打错

如图所示: 在这里插入图片描述 首先我们检查有没有依赖名 有没有拼写出错 ,很明显出错了 把 turtlesim 拼写成了tutlesim 这种情况我们删除原来依赖包再重新创建一个就好了!

  1. 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

评分

参与人数 1阿木币 +5 收起 理由
admin + 5 很给力!

查看全部评分


扫一扫浏览分享
回复

使用道具 举报

3

阿木币

0

精华

183 小时

在线时间

技术大V

Rank: 4

发表于 2021-6-13 10:23:59
不错,不错,继续加油
回复 点赞 1

使用道具 举报

342

阿木币

0

精华

89 小时

在线时间

职场新人

Rank: 3Rank: 3

 楼主| 发表于 2021-6-14 01:09:17
chasing 发表于 2021-6-13 10:23
不错,不错,继续加油

感谢鼓励 冲冲冲
回复 点赞

使用道具 举报

342

阿木币

0

精华

89 小时

在线时间

职场新人

Rank: 3Rank: 3

 楼主| 发表于 2021-6-14 01:09:55
本帖最后由 ANUU 于 2021-6-14 08:55 编辑

话说后面内容就出不来了.....
回复 点赞

使用道具 举报

返回列表
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表