ROS1学习-01使用ROS系统进行相关代码开发,使用docker解决环境问题,遇到一些奇怪问题,总结汇总下,开始学习研究

Posted freewebsys

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ROS1学习-01使用ROS系统进行相关代码开发,使用docker解决环境问题,遇到一些奇怪问题,总结汇总下,开始学习研究相关的知识,希望对你有一定的参考价值。

目录

前言


本文的原文连接是:
https://blog.csdn.net/freewebsys/article/details/126063760

未经博主允许不得转载。
博主地址是:http://blog.csdn.net/freewebsys

1,关于ROS系统


https://www.ros.org/

机器人操作系统 ROS (Robot Operating System) 是一个用于编写机器人软件的灵活框架,它集成了大量的工具、库、协议,提供类似操作系统所提供的功能,包括硬件抽象描述、底层驱动程序管理、共用功能的执行、程序间的消息传递、程序发行包管理,可以极大简化繁杂多样的机器人平台下的复杂任务创建与稳定行为控制。

  1. ROS 的核心是一个分布式、低耦合的通讯机制;
  2. ROS 提供多种机器人开发工具,可以快速实现数据可视化、机器人仿真等功能;
  3. ROS 开源社区中包含大量机器人应用功能,可以帮助我们快速开发功能原型;
  4. ROS 已经成为一个庞大的生态系统,包含机器人领域的方方面面,同时也得到了越来越多第三方工具的支持,为机器人开发提供了系统化的解决方案。

环境搭建比较复杂

2,使用docker进行安装


项目要是新创建的还是使用ros2比较好。ros2 增加了一些新的技术栈:

Zeroconf;
Protocol Buffers;
ZeroMQ (and the other MQs);
Redis;
WebSockets; and
DDS (Data Distribution Service).

同时也支持 windows了,生产环境估计没有人会用windows吧。
但也是好事情。支持的是 debian 和 redhat 包安装。这里主要讲的是docker安装。
https://docs.ros.org/en/rolling/Installation.html

也可以直接使用源进行安装 ros2 :
https://docs.ros.org/en/dashing/Installation/Ubuntu-Install-Debians.html

http://wiki.ros.org/docker/Tutorials/Docker

docker官方网站:
https://hub.docker.com/_/ros

版本选择:
https://blog.csdn.net/qq_38880380/article/details/122508789

ros1 的版本:

这边测试了下 noetic kinetic indigo 这几个版本,indigo 使用的是ubuntu的版本。编译没有通过。尽量选择高版本吧,绿色表示还维护吧。推荐 noetic 这个版本。

#下载镜像
docker pull ros:noetic-ros-base-buster
# 启动镜像
docker run -itd --name noetic-ros -v /home/test/ros:/data ros:noetic-ros-base-buster
#进入镜像:
docker exec -it noetic-ros bash
#设置环境变量,不知道为啥没有生效
#按照版本自动匹配的
source "/opt/ros/$ROS_DISTRO/setup.bash"
sudo apt update
#这个包有问题,需要重新安装下
sudo apt-get install ros-noetic-diagnostic-updater
#然后就可以折腾了编译自己的驱动模块开发了

本身环境已经非常全面了,联调的时候需要有个本地的master,使用 roscore 直接启动下就可以了。可以看到是ros1 的版本。

# roscore 
... logging to /root/.ros/log/71671f70-0fa3-11ed-bf7f-0242ac110002/roslaunch-8209d7a266da-19032.log
Checking log directory for disk usage. This may take awhile.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.

... loading XML file [/opt/ros/kinetic/etc/ros/roscore.xml]
... executing command param [rosversion roslaunch]
Added parameter [/rosversion]
... executing command param [rosversion -d]
Added parameter [/rosdistro]
Added core node of type [rosout/rosout] in namespace [/]
started roslaunch server http://8209d7a266da:33735/
ros_comm version 1.12.17


SUMMARY
========

PARAMETERS
 * /rosdistro: kinetic
 * /rosversion: 1.12.17

3,总结


刚刚开始折腾 ros ,就研究这么多个吧。因为是c++写的,还是挺复杂的。
折腾环境就得有段时间,所以推荐大家使用docker进行编译构建搭建环境。
部署的时候再推到设备上进行测试。
这样可以使用好点的电脑进行开发,毕竟机器人的CPU性能一般。

官方中文文档:
http://wiki.ros.org/cn/ROS/Introduction

本文的原文连接是:
https://blog.csdn.net/freewebsys/article/details/126063760

博主地址是:https://blog.csdn.net/freewebsys

以上是关于ROS1学习-01使用ROS系统进行相关代码开发,使用docker解决环境问题,遇到一些奇怪问题,总结汇总下,开始学习研究的主要内容,如果未能解决你的问题,请参考以下文章

ROS1学习-01使用ROS系统进行相关代码开发,使用docker解决环境问题,遇到一些奇怪问题,总结汇总下,开始学习研究

为什么机器人操作系统ROS1ROS2这么难学

ROS1Noetic和ROS2Foxy系统资源消耗对比(以turtlesim遥控为例)

Windows使用ROS机器人操作系统教程说明

ROS学习笔记-ROS1和ROS2

ROS1云课→12图像可视化