IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> windows上ubuntu双系统安装+ROS配置全过程+小海龟+RVIZ -> 正文阅读

[系统运维]windows上ubuntu双系统安装+ROS配置全过程+小海龟+RVIZ

win系统下安装 Linux 双系统教程

【系统名称】: Linux
【系统大小】: 1.82G
【系统版本】: 18.04.1
【安装环境】: win10
【下载方式】:

  • 百度网盘: https://pan.baidu.com/s/15-4W5HhduVRqLa-gUxJgCw
    提取码:48y9
  • 镜像下载地址: https://ubuntu.com/download/desktop
    此处给出下载 18.04 版本的方法

点击Download下载20.04.2.0 LTS版本,如果想下载18.04版本点击Download下方。
在这里插入图片描述
选择【ubuntu 18.04 LTS (Bionic Beaver)】。在这里插入图片描述
选择【64-bit PC (AMD64) desktop image】。
在这里插入图片描述

一、制作 U 盘启动

提前准备一个空 U 盘(请提前备份 U 盘里面的资料,因为后面操作要格式化)

  • 下载【UltralSO】

    • 百度网盘:https://pan.baidu.com/s/13GlP7jPD1OiRvoSGEN8Tkg
      提取码:8671
  • 解压文件,打开解压文件夹,鼠标右击【UltralSO_9.7.1.3519_cn】选择以【管理员身份运行】。

  • 安装完成后,点击【结束】。

  • 点击输入注册码:输入注册名【Guanjiu】,输入注册码【A06C-83A7-701D-6CFC】,点击【确定】。

  • 插入U盘(4G以上),双击桌面【UltralSO】图标启动软件。

  • 点击【文件】,选择【打开】。

  • 选择下载后的【ubuntu-18.04.1-desktop-amd64】,点击【打开】。

  • 回到【UltralSO】界面,菜单栏选择【启动】,选择【写入镜像】。

  • 在界面下方点击【写入】,之后选择【是】。

  • 【刻录成功】,退出软件。

二、磁盘分区

  • 下载【DiskGenius】
    • 百度网盘:https://pan.baidu.com/s/1yA_JuXg0WMZsIQfTamETdg
      提取码:dx68
  • 打开解压后的文件夹,双击运行【DiskGeniusLoad】。
  • 鼠标右击一个磁盘(可选择自己容量较大的一个磁盘),选择【新建分区】。

下图所示的是已经完成分区的情况,所以一开始安装时与下图不符也不要worry。
在这里插入图片描述

  • 分配新建分区的容量(不少于20G,推荐分配更多的内存到Linux系统中,我自己分配了50G的容量),点击【开始】。
    在这里插入图片描述
  • 点击【是】。
    在这里插入图片描述
  • 分区完成,点击【完成】。

三、安装系统

  • 重启电脑,选择电脑从介质(U盘)启动(由于电脑型号不同同,设置方法不同,提供以下两种方法)。
    • 方法一、开机画面出现后,立刻按本机型的U盘启动【快捷键】(各主流机型快捷键如下图)选择自己的【U盘英文名称】即可启动。
      在这里插入图片描述
    • 方法二、进入电脑Bios设置U盘为第一启动项(当方法一无法选择U盘启动时,需用此方法进行设置),不同类型的机器进入BIOS按键和设置方法均不同(建议自行搜索对应的电脑型号设置教程),总体来说就是在boot里面设置U盘为第一启动项,设置后按F10保存,重启电脑自动从U盘启动。
      在这里插入图片描述
  • 双击【安装ubuntu】。
    在这里插入图片描述
  • 然后一路yes,直到看到以下界面,选择【其他选项】。
    在这里插入图片描述
  • 选取空余分区,也就是从内存最大的【free】分区开始选取,开始分区,最终分区情况及内存分布为下图标有【unknown】的位置。
    • 注意【efi】【swap】【/】分区时为【logical】分区,【/home】为【primary】分区。
    • 内存分配【efi】150MB、【swap】8000MB、【/】15000MB、【/home】剩下的全部内存都分给它。
      在这里插入图片描述
  • 点击【install】安装。
  • 【地域】随便选,【设置用户】,一定要记住【用户名】和【密码】。
  • 安装完成

重启电脑后就可以发现有ubuntu和Windows的选择菜单了。
img

Linux系统下安装ROS

官方教程地址:http://wiki.ros.org/melodic/Installation/Ubuntu

  • 点击屏幕左下角,在弹出的图标界面中选择【软件和更新】
    在这里插入图片描述
  • 点击【下载自】下拉框,从其他站点选择
  • 选择aliyun服务器,并点击【关闭】,会要求输入密码进行认证,认证完之后会弹出窗口,点击【重新载入】。
    img
    在这里插入图片描述

安装过程:

  • 打开终端,快捷方式:【Ctrl+Shift+T】
  • 输入以下命令行:

添加ROS软件源

官方镜像

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

(上面可能会报错,报错可以换一个源)

$sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ $DISTRIB_CODENAME main" > /etc/apt/sources.list.d/ros-latest.list'

添加密钥

$sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv- key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

在这里插入图片描述
安装ROS

sudo apt update
sudo apt install ros-melodic-desktop-full

在这里插入图片描述
在这里插入图片描述
初始化rosdep

sudo rosdep init
rosdep update

在这里插入图片描述
设置环境变量

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

安装ros install

sudo apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential

至此,完成 ROS 软件的安装。通过在终端输入 roscore 指令可以验证软件是否安装完成。
在这里插入图片描述

工作空间的搭建

  • 创建工作空间
mkdir -p ~/catkin_ws/src	//创建带有src 子文件夹的catkin_ws 文件夹
cd ~/catkin_ws/src         //进入 src 
catkin_init_workspace     //工作空间初始化   
  • 编译整个工作空间
cd ~/catkin_ws
catkin_make              //编译器指令,通过该指令编译src下所有功能包源码,结果放入build 和 devel 文件夹下

在这里插入图片描述

  • 建立install文件夹
catkin_make install	//建立安装空间
  • 设置环境变量‘
source ~/catkin_ws/devel/setup.bash
vi ~/.bashrc

在这里插入图片描述
退出如图所示的配置界面后,添加一句 source 命令,将环境变量配置进入 bash 系统中。至此,环境变量的配置已完成。

source ~/.bashrc

创建功能包

创建功能包的指令

catkin_create_pkg <package_name> [depend1] [depend2] [depend3]

depend为依赖

eg:

创建一个名为learning_communication 的功能包。首先进入代码空间, 使用如下指令创建功能包。

cd ~/catkin_ws/src
catkin_create_pkg learning_communication srd_msgs rospy cpp

创建完成后,代码空间 src 便会产生该功能包,然后回到工作空间的根目录下进行编译。

cd ~/catkin_ws
catkin_make

小海龟示例

roscore                              //启动ROS Master
rosrun turtlesim turtlesim_node      //启动小海龟仿真器
rosrun turtlesim turtle_teleop_key   //启动海龟节点控制器

在这里插入图片描述
在这里插入图片描述
查看话题列表

rosnode list

发布话题消息

rostopic pub -r 10 /turtle1/cmd_vel geometry_msgs/Twist "linear:
x: 1.0
y: 0.0
z: 0.0
angular:
x: 0.0
y: 0.0
z: 0.0"
//可以设置小海龟的位置坐标与其行动角度

发布服务请求

rosservice call /spawn "x: 5.0
y: 5.0
theta: 0.0
name: 'turtle2'"

话题记录(举例:对小海龟的运动进行记录,类似拍了个视频)

rosbag record -a -O cmd_record

话题复现(举例:把上面录制的运动轨迹进行复现)

rosbag play cmd_record.bag

RIVIZ初次使用

  • 进入工作空间
cd ~/catkin_ws
  • 创建包
catkin_create_pkg using_markers roscpp visualization_msgs

在这里插入图片描述

  • 创建cpp文件
touch using_markers/src/basic_shapes.cpp
  • 将代码复制到cpp文件或者使用gedit命令书写进文件夹
    • 代码如下:
#include <ros/ros.h>
#include <visualization_msgs/Marker.h>

int main( int argc, char** argv )
{
  ros::init(argc, argv, "basic_shapes");
  ros::NodeHandle n;
  ros::Rate r(1);
  ros::Publisher marker_pub = n.advertise<visualization_msgs::Marker>("visualization_marker", 1);

  // Set our initial shape type to be a cube
  uint32_t shape = visualization_msgs::Marker::CUBE;

  while (ros::ok())
  {
    visualization_msgs::Marker marker;
    // Set the frame ID and timestamp.  See the TF tutorials for information on these.
    marker.header.frame_id = "/my_frame";
    marker.header.stamp = ros::Time::now();

    // Set the namespace and id for this marker.  This serves to create a unique ID
    // Any marker sent with the same namespace and id will overwrite the old one
    marker.ns = "basic_shapes";
    marker.id = 0;

    // Set the marker type.  Initially this is CUBE, and cycles between that and SPHERE, ARROW, and CYLINDER
    marker.type = shape;

    // Set the marker action.  Options are ADD, DELETE, and new in ROS Indigo: 3 (DELETEALL)
    marker.action = visualization_msgs::Marker::ADD;

    // Set the pose of the marker.  This is a full 6DOF pose relative to the frame/time specified in the header
    marker.pose.position.x = 0;
    marker.pose.position.y = 0;
    marker.pose.position.z = 0;
    marker.pose.orientation.x = 0.0;
    marker.pose.orientation.y = 0.0;
    marker.pose.orientation.z = 0.0;
    marker.pose.orientation.w = 1.0;

    // Set the scale of the marker -- 1x1x1 here means 1m on a side
    marker.scale.x = 1.0;
    marker.scale.y = 1.0;
    marker.scale.z = 1.0;

    // Set the color -- be sure to set alpha to something non-zero!
    marker.color.r = 0.0f;
    marker.color.g = 1.0f;
    marker.color.b = 0.0f;
    marker.color.a = 1.0;

    marker.lifetime = ros::Duration();

    // Publish the marker
    while (marker_pub.getNumSubscribers() < 1)
    {
      if (!ros::ok())
      {
        return 0;
      }
      ROS_WARN_ONCE("Please create a subscriber to the marker");
      sleep(1);
    }
    marker_pub.publish(marker);

    // Cycle between different shapes
    switch (shape)
    {
    case visualization_msgs::Marker::CUBE:
      shape = visualization_msgs::Marker::SPHERE;
      break;
    case visualization_msgs::Marker::SPHERE:
      shape = visualization_msgs::Marker::ARROW;
      break;
    case visualization_msgs::Marker::ARROW:
      shape = visualization_msgs::Marker::CYLINDER;
      break;
    case visualization_msgs::Marker::CYLINDER:
      shape = visualization_msgs::Marker::CUBE;
      break;
    }

    r.sleep();
  }
}

  • 进入工作空间构建代代码
cd ~/catkin_ws
catkin_make

在这里插入图片描述

  • 运行刚才构建的节点
rosrun using_markers basic_shapes
  • 启动RVIZ
rosrun rviz rviz

img
注意,在启动RVIZ之前,重新打开一个终端运行

roscore

在这里插入图片描述
运行RVIZ之后,如果报错“No tf data,Actual error,Fixed Frame [map] does not exit",另外开一个终端输入:

rosrun tf static_transform_publisher 0 0 0 0 0 1 map my_frame 10

在这里插入图片描述

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-08-17 15:47:33  更:2021-08-17 15:47:41 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年6日历 -2024/6/1 16:55:41-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码