初识ROS操作系统

学习背景

今日在学长学习任务安排下,初识ROS操作系统,为以后项目打下基础,接下来我会复盘一下今天遇到的问题和bug

Step by step

推荐一个学习ROS操作系统的资料
http://www.autolabor.com.cn/book/ROSTutorials/chapter1.html
里面讲的步骤还是比较详细的,可以跟着一步一步来上手

第一步 安装虚拟机

首先需要下载安装虚拟机,可以选择VirtualBox或者VMWare,我选择了VirtualBox,之后安装ubuntu系统,由于我之前就安装好了,这边就不展示详细的过程了,网上也有很多详细的教程

第二步 安装ROS

这一步我昨天非常久,想起来真是悔恨啊,大把大把的时间就被浪费了,智商不够只能多花些时间了。

  1. 配置ubuntu的软件和更新
    打开ubuntu中软件和更新对话框,勾选图中四个选项
    配置软件和更新
    接下来很重要的一步,也是接下来意义非凡的一步,需要更换下载源,不知道为啥我设置一开始为美国,怪不得后面下载速度慢的出奇,一个250MB左右的文件跟我说要下载十几个小时,下载速度在几十KB左右,所以最好更换下载源,你点击其他,系统会根据你的位置自动推荐下载源,一般都会选到中科大的下载源
    在这里插入图片描述
  2. 设置安装源
    这里也是小技巧比较多,一般推荐使用国内资源,下载速度会快很多
    打开终端
sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'
  1. 设置key
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
  1. 安装
sudo apt update
sudo apt install ros-noetic-desktop-full

这一步可能需要等待一段时间,现在你可以摸会鱼休闲一下,哈哈哈,有可能会因为网络问题安装失败,重复几遍更新和安装指令即可

  1. 配置环境变量
echo "source /opt/ros/下载版本/setup.bash" >> ~/.bashrc
source ~/.bashrc

这里下载版本需要非常注意,昨天在这里也卡了很久,我下载的是kinetic版本,但是教程里面是melodic版本,原来是这里出错了,我检查了很久才检查出来,希望对大家有点参考价值,如果你之前不小心已经运行过了错误的echo指令,没有关系,依旧可以修改

gedit ~/.bashrc

定位到最后几行,删去错误的指令,类似于source /opt/ros/melodic/setup.bash ,有多少删多少,最后重新执行一边,成功

  1. 安装构建依赖
sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential
sudo apt install python3-rosdep

初始化rosdep

sudo rosdep init
rosdep update

初始化这一步往往都会出错,莫慌,大概率是因为境外的资源被屏蔽,所以接下来的操作可能会稍微繁琐些,但只要跟着一步一步肯定也没问题
进入终端

cd /usr/lib/python3/dist-packages/
find . -type f | xargs grep "raw.githubusercontent"

接下来修改相关文件,分别对应相应的文件,并做修改
相关文件主要为

./rosdistro/__init__.py
./rosdep2/gbpdistro_support.py
./rosdep2/sources_list.py
./rosdep2/rep3.py

将这些文件里的url内容,大致长这样aw.githubusercontent.com/ros/rosdistro/master
将它修改为gitee.com/zhao-xuzuo/rosdistro/raw/master
一般一个文件里就一处
全部修改完毕后,再次执行指令

sudo rosdep init
rosdep update

完美实现

第三步 测试ROS

接下来看看ROS环境是否可以正常运行

  1. 启动三个命令行
  2. 命令行1键入
roscore
  1. 命令行2键入
rosrun turtlesim turtlesim_node

此时应该出现了图形化界面,并且有一只动弹不得的小乌龟
在这里插入图片描述

  1. 命令行3键入
rosrun turtlesim turtle_teleop_key

此时就可以通过上下左右控制2中乌龟的运动

第四步 实现HelloWorld

  1. 创建工作空间并初始化
mkdir -p 自定义空间名称/src
cd 自定义空间名称
catkin_make
  1. 进入 src 创建 ros 包并添加依赖
cd src
catkin_create_pkg 自定义ROS包名 roscpp rospy std_msgs

C++版

做完了上面的基本步骤,接下来就是不同编程语言不同的地方

  1. 进入 ros 包的 src 目录编辑源文件
cd 自定义的包

C++源码

#include "ros/ros.h"

int main(int argc, char *argv[])
{
    //执行 ros 节点初始化
    ros::init(argc,argv,"hello");
    //创建 ros 节点句柄(非必须)
    ros::NodeHandle n;
    //控制台输出 hello world
    ROS_INFO("hello world!");

    return 0;
}

  1. 编辑 ros 包下的 CMakelists.txt文件
cmake_minimum_required(VERSION 3.0.2)
project(rosbag)

find_package(catkin REQUIRED COMPONENTS
  roscpp
  rospy
  std_msgs
)

catkin_package()

add_executable(源文件名 源文件名.cpp)
target_link_libraries(源文件名 ${catkin_LIBRARIES})

  1. 进入工作空间目录并编译
cd 自定义空间名称
catkin_make

  1. 执行
    打开两个命令行
    命令行1
roscore

命令行2

cd 工作空间
source ./devel/setup.bash
rosrun ros包名 C++节点

成功输出
在这里插入图片描述

python版

  1. 进入 ros 包添加 scripts 目录并编辑 python 文件
cd ros包
mkdir scripts

进入scripts文件夹 新建python文件

#! /usr/bin/env python
#coding=UTF-8
import rospy

if __name__ == "__main__":
    rospy.init_node("Hello")
    rospy.loginfo("Hello World!!!!")

#coding=UTF-8 这一句很关键,因为原本应当是ASCII码,需要修改,否则后面编译时出现中文会报错

  1. 为 python 文件添加可执行权限
chmod +x 自定义文件名.py

  1. 编辑 ros 包下的 CMakeLisst.txt 文件
    定位到大约170行左右
    在这里插入图片描述取消原先的注释
catkin_install_python(PROGRAMS
   scripts/python源文件名.py
   DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
 )

  1. 进入工作空间目录并编译
cd 自定义空间名称
catkin_make

  1. 进入工作空间目录并执行
    分别启动两个命令行
    命令行1
roscore

命令行2

cd 工作空间
source ./devel/setup.bash
rosrun 包名 自定义文件名.py

在这里插入图片描述

来点心得

其实按理来说这点工作应该很快就可以搞定的,但是昨天硬是搞了大约四个小时,python那一块也没有完成,总结一下经验就是有时候需要先搞清楚,再去行动,不能刚看见某一步就冲冲冲,冷静下来,不然只会事倍功半
说到ROS操作系统,应该算是简单的安装好了,基本测试没问题,期待接下来用它干点大事情,哈哈哈哈

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智能小车是一种基于机器人技术的智能移动设备,可以自主地感知环境、做出决策、执行任务和与人进行交互。ROS(Robot Operating System)是一种开源的机器人操作系统,可以提供许多机器人应用程序的开发和运行环境,是智能小车设计的理想平台。 智能小车设计需要考虑以下几个方面: 1.硬件设计:包括小车底盘、传感器、执行器、控制电路等。小车底盘可以选择四轮驱动、两轮驱动或者麦克纳姆轮底盘,传感器可以选择激光雷达、摄像头、超声波传感器等,执行器可以选择电机、舵机等,控制电路可以选择Arduino、树莓派等。 2.软件设计:包括ROS系统的安装、配置和程序编写。ROS系统可以提供许多常用的机器人应用程序,如建图、定位、路径规划、避障等,程序编写可以使用Python、C++等语言。 3.算法设计:包括机器人感知、决策和控制算法。机器人感知算法可以根据传感器数据对环境进行建模和识别,决策算法可以根据环境模型和任务要求制定决策方案,控制算法可以根据决策方案控制执行器完成任务。 4.系统集成:包括硬件和软件的集成、调试和测试。集成需要将各个模块进行组装和连接,调试需要对系统进行调试和优化,测试需要进行各种场景下的测试和验证。 智能小车设计需要具备机械、电子、软件和算法等多方面的知识和技能,需要有团队合作和项目管理的能力。同时,需要考虑成本、可靠性、安全性和可扩展性等问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值