文章目录

  • 前言
  • 一、ros安装
    • 1、添加ROS软件源:
    • 2、添加密钥:
    • 3、安装ROS:
    • 4、初始化rosdep:
    • 5、设置环境变量:
    • 6、安装rosinstall
  • 二、体验小海龟案例
    • 1.键盘控制小海龟:
      • 1、新建一个终端运行ros
      • 2、新建终端启动小海龟的仿真器
      • 3、新建终端打开键盘控制器
    • 2.话题查看器查看两个node之间的消息传递
    • 3、C++写一个程序,控制小海龟走一个圆形
  • 三、总结
  • 四、参考

前言

环境:
ubuntu 20.04
VMware16.0
vscode


一、ros安装

1、添加ROS软件源:

sudo sh -c ‘echo “deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main” > /etc/apt/sources.list.d/ros-latest.list’

2、添加密钥:

sudo apt-key adv --keyserver ‘hkp://keyserver.ubuntu.com:80’ --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

3、安装ROS:

sudo apt update

注:这句命令是更新软件源,会从上面的软件源搜索所有与ros相关的安装包的路径,更新到系统中,可能会有某些出现错误,可以更换为热点再试试。

可是我遇到的这个问题怎么也找不到,后面发现这不是安装ros必须的,好像是我前面安装了python2.7然后改为3.8出现的问题吧,进行了许多操作也无法解决,然后我就先忽略了。

sudo apt install ros-noetic-desktop-full

注意:不同的ubuntu版本对应不同版本的ros,我是ubuntu20.0.4,所以采用noetic,这里的下载时间可能会有点久,稍等。

4、初始化rosdep:

sudo rosdep init

初始化rosdep,用于帮助我们完成一些功能包的依赖的设置和安装。
错误1:

这种情况可能是被墙了,重试几次或者换一下网络。

错误2:

输入下面的命令修改一下host文件:

       sudo gedit /etc/hosts

在第一行添加raw.githubusercontent.com的ip地址,再进行初始化:

        199.232.28.133 raw.githubusercontent.com

错误3:

输入下面命令:

sudo rm /etc/ros/rosdep/sources.list.d/20-default.list

如果正常的化应该会出现下面的情况,可是我的不正常,又回到第二个错误了:

于是我借助了六部工坊的配置修改工具进行处理:
1、安装Python的软件包管理工具 pip

     sudo apt-get install python3-pip

2、使用pip安装配置修改工具

      sudo pip3 install 6-rosdep

3、运行配置修改工具

      sudo 6-rosdep

随后便可以正常运行sudo rosdep init了。如果还是解决不了,建议可以采用鱼香大佬的一键安装,简单直接。
鱼香一键安装

  • init完了以后输入下面的命令进行更新:
 rosdep update

5、设置环境变量:

注意下面这行命令也与ubuntu的版本有关:

         echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc

运行下面的命令让环境变量生效:

        source ~/.bashrc

6、安装rosinstall

       sudo apt install python3-rosinstall python3-rosinstall-generator python3-wstool

错误:

没能成功解决,但运行roscore成功。


至此,ros安装结束。

二、体验小海龟案例

1.键盘控制小海龟:

1、新建一个终端运行ros

        roscore

2、新建终端启动小海龟的仿真器

            rosrun turtlesim turtlesim_node

3、新建终端打开键盘控制器

          rosrun turtlesim turtle_teleop_key

通过键盘上下键对小海龟进行控制,一个小细节就是,鼠标需要在打开键盘的终端点击一下键盘才生效。

2.话题查看器查看两个node之间的消息传递

在上面的三个终端运行的时候,再新建一个终端输入下面的命令查看话题:

rqt_graph

/teleop_turtle发布者通过 /turtle1/cmd_vel 这个话题向订阅者 /turtlesim 进行发布内容。

3、C++写一个程序,控制小海龟走一个圆形

输出话题的内容:

rostopic info /turtle1/cmd_vel


查看自定义类型有什么:

rosmsg show geometry_msgs/Twist

  • 实践:

因为ros中已经封装了小海龟的案例,所以我们可以写一个C++程序通过话题通信对小海龟进行控制。

  • 创建工作空间并用code打开:
mkdir -p test_ws/src
cd test_ws
catkin_make
code .
  • 设置环境变量:
source devel/setup.bash
  • 创建功能包:
    cd到src目录下,新建haigui包
catkin_create_pkg haigui std_msgs roscpp
  • 在功能包下的右击创建cpp文件:
  • 代码:
/*编写 ROS 节点,控制小乌龟画圆准备工作:1.获取topic(已知: /turtle1/cmd_vel)2.获取消息类型(已知: geometry_msgs/Twist)3.运行前,注意先启动 turtlesim_node 节点实现流程:1.包含头文件2.初始化 ROS 节点3.创建发布者对象4.循环发布运动控制消息
*/#include "ros/ros.h"
#include "geometry_msgs/Twist.h"int main(int argc, char *argv[])
{setlocale(LC_ALL,"");// 2.初始化 ROS 节点ros::init(argc,argv,"control");ros::NodeHandle nh;// 3.创建发布者对象ros::Publisher pub = nh.advertise<geometry_msgs::Twist>("/turtle1/cmd_vel",1000);// 4.循环发布运动控制消息//4-1.组织消息geometry_msgs::Twist msg;msg.linear.x = 1.0;msg.linear.y = 0.0;msg.linear.z = 0.0;msg.angular.x = 0.0;msg.angular.y = 0.0;msg.angular.z = 2.0;//4-2.设置发送频率ros::Rate r(10);//4-3.循环发送while (ros::ok()){pub.publish(msg);ros::spinOnce();}return 0;
}

  • 错误1:

这两句在最初引入的时候会报错,好像是找不到文件,我们需要在报红处点击详情进行include操作。

不同版本的位置不同,一般都在opt下,在输入节后,在方框外点击使其生效。

  • 错误2:

出现这种问题的情况比较多,我是因为修改了没保存,所以大家在下载完vscode之后设置为自动保存最好。

  • 修改haigui文件夹下的CMakeLists.txt文件内容:

add_executable(circular src/circular.cpp)
target_link_libraries(circular ${catkin_LIBRARIES})

  • 测试:

退回到test_ws下的目录进行编译,使得代码生效。

依次打开下面三个终端进行测试:

roscore

输入上面的命令启动ros

rosrun turtlesim turtlesim_node

运行小海龟

cd  ~/test_ws/                 //进入工作空间
source devel/setup.bash          //设置环境
rosrun haigui circular
  • 效果:

ros小海龟


三、总结

其实假期阶段已经安装过ros2,只不过当时是使用别的up主封装好的一键安装的方法,简单省事。现在又重新一步步进行下载安装感觉就是对ros的内在的一些操作理解更加透彻。尤其是遇到各种各样的问题,进一步提高了解决问题的能力。但是,在我入门过ros2后,感觉ros让我不是很舒服,可能还没适应,老是感觉ros2更好用,命令也好记,以上就是ros的初体验。

四、参考

ROS通信实操(小乌龟通信实现)(九)C++、Python
详细介绍如何在ubuntu20.04中安装ROS系统,超快完成安装(最新版教程)

ubuntu 20.04安装ROS体验小海龟转圈圈相关推荐

  1. Ubuntu 20.04安装Ros Noetic及Ubuntu 18.04安装ROS Melodic(两版本详细填坑)

    Ubuntu 20.04安装Ros Noetic及18.04安装ROS Melodic 表1-1 ROS的历史版本 1. 设置安装源 2. 添加秘钥 3. 更新列表 4. 开始安装 5. 配置ROS环 ...

  2. 【ROS】在 Ubuntu 20.04 安装 ROS 的详细教程

    ROS安装指南 目录 ROS安装指南 前言 一.配置Linux清华镜像源 1.1 介绍 1.2 开始配置 二.安装ROS 2.1 ROS的介绍 2.1 开始安装:配置公钥 2.2 系统更新 2.3 安 ...

  3. Ubuntu 20.04 安装 ros 遇到的问题: The following packages have unmet dependencies

    在运行 sudo apt install ros-noetic-desktop-full 后出现的错误如下: 出现了版本不匹配的问题. 然后用了推荐的 sudo apt --fix-broken in ...

  4. ubuntu 20.04 安装ibus-rime输入法

    ubuntu 20.04 安装ibus-rime输入法 为什么安装这个输入法 ibus-rime 安装 使用命令安装 基本设置 为什么安装这个输入法 没有安装搜狗输入法是因为安装完搜狗输入法之后再安装 ...

  5. Ubuntu 20.04 安装deepin-wine

    Ubuntu 20.04 安装deepin-wine Deepin Linux作为统信UOS的社区版本,在用户体验上还是相当不错的,一般办公家庭应用已经问题不大了,尤其是Deepin-Wine可以直接 ...

  6. ubuntu 20.04 安装好搜狗输入法无法输入中文,只能输入英文的问题,因为没有安装依赖

    ubuntu 20.04 安装好搜狗输入法无法输入中文,只能输入英文的问题. 在搜狗官网下载了搜狗输入法sogoupinyin_3.4.0.9700_amd64.deb, 使用命令 sudo dpkg ...

  7. Ubuntu 20.04安装有道词典(成功版本)

    前言 推荐的参考文章:Ubuntu 20.04安装有道词典 有道词典推荐的下载链接http://cidian.youdao.com/multi.html 这个链接http://cidian.youda ...

  8. 【Ubuntu 20.04安装和深度学习环境搭建 4090显卡】

    Ubuntu安装步骤参考文章 知乎:Ubuntu 20.04系统安装及初始配置 目录 一. 制作启动盘 1.1 下载镜像文件 1.2 制作启动盘 二. 安装系统 2.1 启动计算机并进入BIOS 2. ...

  9. Ubuntu 20.04安装、显卡驱动配置及搜狗输入法配置(U盘离线安装、vi编辑器,esc ZZ,tty3模式)(一)

    小白装Ubuntu20.04-系列记录(一) 目录 小白装Ubuntu20.04-系列记录(一) Ubuntu 20.04安装 显卡驱动配置(U盘离线安装.vi编辑器,esc ZZ,tty3模式) 搜 ...

最新文章

  1. fisher's exact test
  2. 二叉树结点入度等于出度
  3. X264代码中一些参数的意义
  4. 【error】深度优先搜索TypeError: unhashable type: ‘list‘
  5. 装饰一个类及内部方法
  6. [html] 写出不定宽度的子级div,在相对于固定宽度的父级元素水平居中的布局
  7. python消息队列模块_day43-python消息队列二-queue模块
  8. 2017-2018-1 20155234第三周《信息安全系统设计基础》学习总结
  9. Sublime Text 3 汉化小技巧
  10. python通过文件路径读取图片
  11. Fluid mechanics学习笔记--NS方程
  12. 营业执照识别项目记录--CTPN使用
  13. 计算机教学能力大赛实施报告模板,教学能力比赛教学实施报告现场汇报PPT模板-橙色主题.pptx...
  14. 单摄像机对于二维平面的测量
  15. 只读存储器和随机存储器有什么区别?
  16. Java反射机制在工厂模式中的应用
  17. 2019年MongoDB中文社区 长沙大会
  18. 微带滤波器摘要_微带滤波器
  19. Word2010 下划线字体距离的调整方法
  20. 4、Kafka API实战

热门文章

  1. Generalized Focal Loss 原理与代码解析
  2. Python: 相乘
  3. 点线面如何标绘在地图上
  4. HTML学生个人网站作业设计:动漫网站设计——卡通漫画教育资讯首页(1页) HTML+CSS+JavaScript 简单DIV布局个人介绍网页模板代码 DW学生个人网站制作成品下载
  5. 基本概念-共益企业、ESG、CSR
  6. 内网渗透-常用反弹shell方法总结
  7. 【华为OD机试真题2023B卷 JAVAJS】评论转换输出
  8. 关于MySQL的注意事项
  9. 我的世界1.7.2服务器内置修改器,我的世界1.7.2中配光影、内置修改器等MOD整合包...
  10. 光影精灵usb安装linux,惠普光影精灵台式机安装Ubuntu16.04